From 271e19012a0e406449126b40bdedfe7e81239fe5 Mon Sep 17 00:00:00 2001 From: BREW <81044362+b-re-w@users.noreply.github.com> Date: Wed, 8 Jan 2025 16:23:17 +0900 Subject: [PATCH 1/2] Feat: Add iOS Support (Temporary) --- iosApp/iosApp.xcodeproj/project.pbxproj | 68 +- .../xcshareddata/xcschemes/iosApp.xcscheme | 78 + iosApp/iosApp/ContentView.swift | 2 + iosApp/iosApp/dylib-Info-template.plist | 26 + python-multiplatform/build.gradle.kts | 17 +- .../lib/ios/Python.xcframework/Info.plist | 44 + .../Python.framework/Headers/Python.h | 139 + .../Python.framework/Headers/abstract.h | 911 +++++ .../Python.framework/Headers/bltinmodule.h | 14 + .../Python.framework/Headers/boolobject.h | 47 + .../Headers/bytearrayobject.h | 44 + .../Python.framework/Headers/bytesobject.h | 66 + .../Python.framework/Headers/ceval.h | 145 + .../Python.framework/Headers/codecs.h | 176 + .../Python.framework/Headers/compile.h | 22 + .../Python.framework/Headers/complexobject.h | 30 + .../Headers/cpython/abstract.h | 87 + .../Headers/cpython/bytearrayobject.h | 34 + .../Headers/cpython/bytesobject.h | 37 + .../Headers/cpython/cellobject.h | 44 + .../Python.framework/Headers/cpython/ceval.h | 25 + .../Headers/cpython/classobject.h | 71 + .../Python.framework/Headers/cpython/code.h | 357 ++ .../Headers/cpython/compile.h | 50 + .../Headers/cpython/complexobject.h | 33 + .../Headers/cpython/context.h | 74 + .../Headers/cpython/critical_section.h | 134 + .../Headers/cpython/descrobject.h | 62 + .../Headers/cpython/dictobject.h | 102 + .../Headers/cpython/fileobject.h | 16 + .../Headers/cpython/fileutils.h | 8 + .../Headers/cpython/floatobject.h | 27 + .../Headers/cpython/frameobject.h | 35 + .../Headers/cpython/funcobject.h | 184 + .../Headers/cpython/genobject.h | 83 + .../Python.framework/Headers/cpython/import.h | 25 + .../Headers/cpython/initconfig.h | 274 ++ .../Headers/cpython/listobject.h | 53 + .../Python.framework/Headers/cpython/lock.h | 63 + .../Headers/cpython/longintrepr.h | 146 + .../Headers/cpython/longobject.h | 116 + .../Headers/cpython/memoryobject.h | 50 + .../Headers/cpython/methodobject.h | 66 + .../Headers/cpython/modsupport.h | 26 + .../Headers/cpython/monitoring.h | 250 ++ .../Python.framework/Headers/cpython/object.h | 525 +++ .../Headers/cpython/objimpl.h | 104 + .../Headers/cpython/odictobject.h | 43 + .../Headers/cpython/picklebufobject.h | 31 + .../Headers/cpython/pthread_stubs.h | 105 + .../Headers/cpython/pyatomic.h | 569 ++++ .../Headers/cpython/pyatomic_gcc.h | 551 +++ .../Headers/cpython/pyatomic_msc.h | 1095 ++++++ .../Headers/cpython/pyatomic_std.h | 976 ++++++ .../Headers/cpython/pyctype.h | 39 + .../Headers/cpython/pydebug.h | 38 + .../Headers/cpython/pyerrors.h | 131 + .../Python.framework/Headers/cpython/pyfpe.h | 15 + .../Headers/cpython/pyframe.h | 45 + .../Python.framework/Headers/cpython/pyhash.h | 47 + .../Headers/cpython/pylifecycle.h | 92 + .../Python.framework/Headers/cpython/pymem.h | 84 + .../Headers/cpython/pystate.h | 277 ++ .../Headers/cpython/pystats.h | 169 + .../Headers/cpython/pythonrun.h | 96 + .../Headers/cpython/pythread.h | 43 + .../Python.framework/Headers/cpython/pytime.h | 27 + .../Headers/cpython/setobject.h | 71 + .../Headers/cpython/sysmodule.h | 22 + .../Headers/cpython/traceback.h | 13 + .../Headers/cpython/tracemalloc.h | 26 + .../Headers/cpython/tupleobject.h | 38 + .../Headers/cpython/unicodeobject.h | 703 ++++ .../Headers/cpython/warnings.h | 20 + .../Headers/cpython/weakrefobject.h | 63 + .../Headers/critical_section.h | 16 + .../Python.framework/Headers/datetime.h | 267 ++ .../Python.framework/Headers/descrobject.h | 100 + .../Python.framework/Headers/dictobject.h | 108 + .../Headers/dynamic_annotations.h | 499 +++ .../Python.framework/Headers/enumobject.h | 17 + .../Python.framework/Headers/errcode.h | 45 + .../Python.framework/Headers/exports.h | 108 + .../Python.framework/Headers/fileobject.h | 41 + .../Python.framework/Headers/fileutils.h | 62 + .../Python.framework/Headers/floatobject.h | 54 + .../Python.framework/Headers/frameobject.h | 20 + .../Headers/genericaliasobject.h | 14 + .../Python.framework/Headers/import.h | 103 + .../Headers/internal/mimalloc/mimalloc.h | 565 ++++ .../internal/mimalloc/mimalloc/atomic.h | 389 +++ .../internal/mimalloc/mimalloc/internal.h | 969 ++++++ .../Headers/internal/mimalloc/mimalloc/prim.h | 329 ++ .../internal/mimalloc/mimalloc/track.h | 147 + .../internal/mimalloc/mimalloc/types.h | 721 ++++ .../Headers/internal/pycore_abstract.h | 61 + .../Headers/internal/pycore_asdl.h | 112 + .../Headers/internal/pycore_ast.h | 926 +++++ .../Headers/internal/pycore_ast_state.h | 268 ++ .../Headers/internal/pycore_atexit.h | 66 + .../Headers/internal/pycore_backoff.h | 145 + .../Headers/internal/pycore_bitutils.h | 186 ++ .../internal/pycore_blocks_output_buffer.h | 321 ++ .../Headers/internal/pycore_brc.h | 74 + .../Headers/internal/pycore_bytes_methods.h | 82 + .../Headers/internal/pycore_bytesobject.h | 148 + .../Headers/internal/pycore_call.h | 205 ++ .../Headers/internal/pycore_capsule.h | 17 + .../Headers/internal/pycore_cell.h | 48 + .../Headers/internal/pycore_ceval.h | 303 ++ .../Headers/internal/pycore_ceval_state.h | 134 + .../Headers/internal/pycore_code.h | 596 ++++ .../Headers/internal/pycore_codecs.h | 86 + .../Headers/internal/pycore_compile.h | 118 + .../Headers/internal/pycore_complexobject.h | 25 + .../Headers/internal/pycore_condvar.h | 91 + .../Headers/internal/pycore_context.h | 61 + .../internal/pycore_critical_section.h | 233 ++ .../Headers/internal/pycore_crossinterp.h | 340 ++ .../Headers/internal/pycore_descrobject.h | 28 + .../Headers/internal/pycore_dict.h | 340 ++ .../Headers/internal/pycore_dict_state.h | 32 + .../Headers/internal/pycore_dtoa.h | 75 + .../internal/pycore_emscripten_signal.h | 30 + .../internal/pycore_emscripten_trampoline.h | 81 + .../Headers/internal/pycore_exceptions.h | 37 + .../Headers/internal/pycore_faulthandler.h | 99 + .../Headers/internal/pycore_fileutils.h | 335 ++ .../internal/pycore_fileutils_windows.h | 98 + .../Headers/internal/pycore_floatobject.h | 62 + .../Headers/internal/pycore_flowgraph.h | 40 + .../Headers/internal/pycore_format.h | 27 + .../Headers/internal/pycore_frame.h | 330 ++ .../Headers/internal/pycore_freelist.h | 153 + .../Headers/internal/pycore_function.h | 55 + .../Headers/internal/pycore_gc.h | 365 ++ .../Headers/internal/pycore_genobject.h | 32 + .../Headers/internal/pycore_getopt.h | 22 + .../Headers/internal/pycore_gil.h | 66 + .../Headers/internal/pycore_global_objects.h | 105 + .../pycore_global_objects_fini_generated.h | 1553 +++++++++ .../Headers/internal/pycore_global_strings.h | 813 +++++ .../Headers/internal/pycore_hamt.h | 134 + .../Headers/internal/pycore_hashtable.h | 150 + .../Headers/internal/pycore_identifier.h | 20 + .../Headers/internal/pycore_import.h | 212 ++ .../Headers/internal/pycore_importdl.h | 135 + .../Headers/internal/pycore_initconfig.h | 200 ++ .../internal/pycore_instruction_sequence.h | 73 + .../Headers/internal/pycore_instruments.h | 75 + .../Headers/internal/pycore_interp.h | 421 +++ .../Headers/internal/pycore_intrinsics.h | 51 + .../Headers/internal/pycore_jit.h | 25 + .../Headers/internal/pycore_list.h | 66 + .../Headers/internal/pycore_llist.h | 106 + .../Headers/internal/pycore_lock.h | 241 ++ .../Headers/internal/pycore_long.h | 310 ++ .../Headers/internal/pycore_memoryobject.h | 20 + .../Headers/internal/pycore_mimalloc.h | 69 + .../Headers/internal/pycore_modsupport.h | 107 + .../Headers/internal/pycore_moduleobject.h | 54 + .../Headers/internal/pycore_namespace.h | 21 + .../Headers/internal/pycore_object.h | 793 +++++ .../Headers/internal/pycore_object_alloc.h | 71 + .../Headers/internal/pycore_object_stack.h | 87 + .../Headers/internal/pycore_object_state.h | 41 + .../Headers/internal/pycore_obmalloc.h | 702 ++++ .../Headers/internal/pycore_obmalloc_init.h | 66 + .../Headers/internal/pycore_opcode_metadata.h | 1922 +++++++++++ .../Headers/internal/pycore_opcode_utils.h | 73 + .../Headers/internal/pycore_optimizer.h | 272 ++ .../Headers/internal/pycore_parking_lot.h | 97 + .../Headers/internal/pycore_parser.h | 95 + .../Headers/internal/pycore_pathconfig.h | 26 + .../Headers/internal/pycore_pyarena.h | 68 + .../internal/pycore_pyatomic_ft_wrappers.h | 94 + .../Headers/internal/pycore_pybuffer.h | 21 + .../Headers/internal/pycore_pyerrors.h | 178 + .../Headers/internal/pycore_pyhash.h | 107 + .../Headers/internal/pycore_pylifecycle.h | 136 + .../Headers/internal/pycore_pymath.h | 205 ++ .../Headers/internal/pycore_pymem.h | 138 + .../Headers/internal/pycore_pymem_init.h | 103 + .../Headers/internal/pycore_pystate.h | 299 ++ .../Headers/internal/pycore_pystats.h | 21 + .../Headers/internal/pycore_pythonrun.h | 39 + .../Headers/internal/pycore_pythread.h | 159 + .../Headers/internal/pycore_qsbr.h | 154 + .../Headers/internal/pycore_range.h | 21 + .../Headers/internal/pycore_runtime.h | 410 +++ .../Headers/internal/pycore_runtime_init.h | 329 ++ .../internal/pycore_runtime_init_generated.h | 1550 +++++++++ .../Headers/internal/pycore_semaphore.h | 65 + .../Headers/internal/pycore_setobject.h | 39 + .../Headers/internal/pycore_signal.h | 108 + .../Headers/internal/pycore_sliceobject.h | 20 + .../Headers/internal/pycore_stackref.h | 195 ++ .../Headers/internal/pycore_strhex.h | 39 + .../Headers/internal/pycore_structseq.h | 40 + .../Headers/internal/pycore_symtable.h | 204 ++ .../Headers/internal/pycore_sysmodule.h | 35 + .../Headers/internal/pycore_time.h | 337 ++ .../Headers/internal/pycore_token.h | 106 + .../Headers/internal/pycore_traceback.h | 106 + .../Headers/internal/pycore_tracemalloc.h | 170 + .../Headers/internal/pycore_tstate.h | 46 + .../Headers/internal/pycore_tuple.h | 35 + .../Headers/internal/pycore_typeobject.h | 243 ++ .../Headers/internal/pycore_typevarobject.h | 27 + .../Headers/internal/pycore_ucnhash.h | 36 + .../Headers/internal/pycore_unicodeobject.h | 338 ++ .../internal/pycore_unicodeobject_generated.h | 2976 +++++++++++++++++ .../Headers/internal/pycore_unionobject.h | 25 + .../Headers/internal/pycore_uop_ids.h | 294 ++ .../Headers/internal/pycore_uop_metadata.h | 1006 ++++++ .../Headers/internal/pycore_warnings.h | 31 + .../Headers/internal/pycore_weakref.h | 119 + .../Python.framework/Headers/intrcheck.h | 23 + .../Python.framework/Headers/iterobject.h | 24 + .../Python.framework/Headers/listobject.h | 55 + .../ios-arm64/Python.framework/Headers/lock.h | 16 + .../Python.framework/Headers/longobject.h | 114 + .../Python.framework/Headers/marshal.h | 31 + .../Python.framework/Headers/memoryobject.h | 34 + .../Python.framework/Headers/methodobject.h | 137 + .../Python.framework/Headers/modsupport.h | 146 + .../Python.framework/Headers/moduleobject.h | 122 + .../Python.framework/Headers/monitoring.h | 18 + .../Python.framework/Headers/object.h | 1270 +++++++ .../Python.framework/Headers/objimpl.h | 211 ++ .../Python.framework/Headers/opcode.h | 42 + .../Python.framework/Headers/opcode_ids.h | 244 ++ .../Python.framework/Headers/osdefs.h | 57 + .../Python.framework/Headers/osmodule.h | 17 + .../Python.framework/Headers/patchlevel.h | 35 + .../Python.framework/Headers/py_curses.h | 116 + .../Python.framework/Headers/pyatomic.h | 16 + .../Python.framework/Headers/pybuffer.h | 145 + .../Python.framework/Headers/pycapsule.h | 58 + .../Headers/pyconfig-android-aarch64.h | 2015 +++++++++++ .../Headers/pyconfig-android-x86_64.h | 2015 +++++++++++ .../Headers/pyconfig-ios-arm64.h | 2015 +++++++++++ .../Headers/pyconfig-ios-x86_64.h | 2015 +++++++++++ .../Python.framework/Headers/pyconfig.h | 19 + .../Python.framework/Headers/pydtrace.h | 59 + .../Python.framework/Headers/pyerrors.h | 335 ++ .../Python.framework/Headers/pyexpat.h | 57 + .../Python.framework/Headers/pyframe.h | 26 + .../Python.framework/Headers/pyhash.h | 59 + .../Python.framework/Headers/pylifecycle.h | 80 + .../Python.framework/Headers/pymacconfig.h | 91 + .../Python.framework/Headers/pymacro.h | 193 ++ .../Python.framework/Headers/pymath.h | 62 + .../Python.framework/Headers/pymem.h | 110 + .../Python.framework/Headers/pyport.h | 609 ++++ .../Python.framework/Headers/pystate.h | 132 + .../Python.framework/Headers/pystats.h | 26 + .../Python.framework/Headers/pystrcmp.h | 23 + .../Python.framework/Headers/pystrtod.h | 37 + .../Python.framework/Headers/pythonrun.h | 49 + .../Python.framework/Headers/pythread.h | 112 + .../Python.framework/Headers/pytypedefs.h | 30 + .../Python.framework/Headers/rangeobject.h | 27 + .../Python.framework/Headers/setobject.h | 49 + .../Python.framework/Headers/sliceobject.h | 69 + .../Python.framework/Headers/structmember.h | 56 + .../Python.framework/Headers/structseq.h | 46 + .../Python.framework/Headers/sysmodule.h | 44 + .../Python.framework/Headers/traceback.h | 26 + .../Python.framework/Headers/tupleobject.h | 46 + .../Python.framework/Headers/typeslots.h | 88 + .../Python.framework/Headers/unicodeobject.h | 1021 ++++++ .../Python.framework/Headers/warnings.h | 45 + .../Python.framework/Headers/weakrefobject.h | 46 + .../ios-arm64/Python.framework/Info.plist | 34 + .../ios-arm64/Python.framework/Python | Bin 0 -> 5373488 bytes .../Python.framework/Headers/Python.h | 139 + .../Python.framework/Headers/abstract.h | 911 +++++ .../Python.framework/Headers/bltinmodule.h | 14 + .../Python.framework/Headers/boolobject.h | 47 + .../Headers/bytearrayobject.h | 44 + .../Python.framework/Headers/bytesobject.h | 66 + .../Python.framework/Headers/ceval.h | 145 + .../Python.framework/Headers/codecs.h | 176 + .../Python.framework/Headers/compile.h | 22 + .../Python.framework/Headers/complexobject.h | 30 + .../Headers/cpython/abstract.h | 87 + .../Headers/cpython/bytearrayobject.h | 34 + .../Headers/cpython/bytesobject.h | 37 + .../Headers/cpython/cellobject.h | 44 + .../Python.framework/Headers/cpython/ceval.h | 25 + .../Headers/cpython/classobject.h | 71 + .../Python.framework/Headers/cpython/code.h | 357 ++ .../Headers/cpython/compile.h | 50 + .../Headers/cpython/complexobject.h | 33 + .../Headers/cpython/context.h | 74 + .../Headers/cpython/critical_section.h | 134 + .../Headers/cpython/descrobject.h | 62 + .../Headers/cpython/dictobject.h | 102 + .../Headers/cpython/fileobject.h | 16 + .../Headers/cpython/fileutils.h | 8 + .../Headers/cpython/floatobject.h | 27 + .../Headers/cpython/frameobject.h | 35 + .../Headers/cpython/funcobject.h | 184 + .../Headers/cpython/genobject.h | 83 + .../Python.framework/Headers/cpython/import.h | 25 + .../Headers/cpython/initconfig.h | 274 ++ .../Headers/cpython/listobject.h | 53 + .../Python.framework/Headers/cpython/lock.h | 63 + .../Headers/cpython/longintrepr.h | 146 + .../Headers/cpython/longobject.h | 116 + .../Headers/cpython/memoryobject.h | 50 + .../Headers/cpython/methodobject.h | 66 + .../Headers/cpython/modsupport.h | 26 + .../Headers/cpython/monitoring.h | 250 ++ .../Python.framework/Headers/cpython/object.h | 525 +++ .../Headers/cpython/objimpl.h | 104 + .../Headers/cpython/odictobject.h | 43 + .../Headers/cpython/picklebufobject.h | 31 + .../Headers/cpython/pthread_stubs.h | 105 + .../Headers/cpython/pyatomic.h | 569 ++++ .../Headers/cpython/pyatomic_gcc.h | 551 +++ .../Headers/cpython/pyatomic_msc.h | 1095 ++++++ .../Headers/cpython/pyatomic_std.h | 976 ++++++ .../Headers/cpython/pyctype.h | 39 + .../Headers/cpython/pydebug.h | 38 + .../Headers/cpython/pyerrors.h | 131 + .../Python.framework/Headers/cpython/pyfpe.h | 15 + .../Headers/cpython/pyframe.h | 45 + .../Python.framework/Headers/cpython/pyhash.h | 47 + .../Headers/cpython/pylifecycle.h | 92 + .../Python.framework/Headers/cpython/pymem.h | 84 + .../Headers/cpython/pystate.h | 277 ++ .../Headers/cpython/pystats.h | 169 + .../Headers/cpython/pythonrun.h | 96 + .../Headers/cpython/pythread.h | 43 + .../Python.framework/Headers/cpython/pytime.h | 27 + .../Headers/cpython/setobject.h | 71 + .../Headers/cpython/sysmodule.h | 22 + .../Headers/cpython/traceback.h | 13 + .../Headers/cpython/tracemalloc.h | 26 + .../Headers/cpython/tupleobject.h | 38 + .../Headers/cpython/unicodeobject.h | 703 ++++ .../Headers/cpython/warnings.h | 20 + .../Headers/cpython/weakrefobject.h | 63 + .../Headers/critical_section.h | 16 + .../Python.framework/Headers/datetime.h | 267 ++ .../Python.framework/Headers/descrobject.h | 100 + .../Python.framework/Headers/dictobject.h | 108 + .../Headers/dynamic_annotations.h | 499 +++ .../Python.framework/Headers/enumobject.h | 17 + .../Python.framework/Headers/errcode.h | 45 + .../Python.framework/Headers/exports.h | 108 + .../Python.framework/Headers/fileobject.h | 41 + .../Python.framework/Headers/fileutils.h | 62 + .../Python.framework/Headers/floatobject.h | 54 + .../Python.framework/Headers/frameobject.h | 20 + .../Headers/genericaliasobject.h | 14 + .../Python.framework/Headers/import.h | 103 + .../Headers/internal/mimalloc/mimalloc.h | 565 ++++ .../internal/mimalloc/mimalloc/atomic.h | 389 +++ .../internal/mimalloc/mimalloc/internal.h | 969 ++++++ .../Headers/internal/mimalloc/mimalloc/prim.h | 329 ++ .../internal/mimalloc/mimalloc/track.h | 147 + .../internal/mimalloc/mimalloc/types.h | 721 ++++ .../Headers/internal/pycore_abstract.h | 61 + .../Headers/internal/pycore_asdl.h | 112 + .../Headers/internal/pycore_ast.h | 926 +++++ .../Headers/internal/pycore_ast_state.h | 268 ++ .../Headers/internal/pycore_atexit.h | 66 + .../Headers/internal/pycore_backoff.h | 145 + .../Headers/internal/pycore_bitutils.h | 186 ++ .../internal/pycore_blocks_output_buffer.h | 321 ++ .../Headers/internal/pycore_brc.h | 74 + .../Headers/internal/pycore_bytes_methods.h | 82 + .../Headers/internal/pycore_bytesobject.h | 148 + .../Headers/internal/pycore_call.h | 205 ++ .../Headers/internal/pycore_capsule.h | 17 + .../Headers/internal/pycore_cell.h | 48 + .../Headers/internal/pycore_ceval.h | 303 ++ .../Headers/internal/pycore_ceval_state.h | 134 + .../Headers/internal/pycore_code.h | 596 ++++ .../Headers/internal/pycore_codecs.h | 86 + .../Headers/internal/pycore_compile.h | 118 + .../Headers/internal/pycore_complexobject.h | 25 + .../Headers/internal/pycore_condvar.h | 91 + .../Headers/internal/pycore_context.h | 61 + .../internal/pycore_critical_section.h | 233 ++ .../Headers/internal/pycore_crossinterp.h | 340 ++ .../Headers/internal/pycore_descrobject.h | 28 + .../Headers/internal/pycore_dict.h | 340 ++ .../Headers/internal/pycore_dict_state.h | 32 + .../Headers/internal/pycore_dtoa.h | 75 + .../internal/pycore_emscripten_signal.h | 30 + .../internal/pycore_emscripten_trampoline.h | 81 + .../Headers/internal/pycore_exceptions.h | 37 + .../Headers/internal/pycore_faulthandler.h | 99 + .../Headers/internal/pycore_fileutils.h | 335 ++ .../internal/pycore_fileutils_windows.h | 98 + .../Headers/internal/pycore_floatobject.h | 62 + .../Headers/internal/pycore_flowgraph.h | 40 + .../Headers/internal/pycore_format.h | 27 + .../Headers/internal/pycore_frame.h | 330 ++ .../Headers/internal/pycore_freelist.h | 153 + .../Headers/internal/pycore_function.h | 55 + .../Headers/internal/pycore_gc.h | 365 ++ .../Headers/internal/pycore_genobject.h | 32 + .../Headers/internal/pycore_getopt.h | 22 + .../Headers/internal/pycore_gil.h | 66 + .../Headers/internal/pycore_global_objects.h | 105 + .../pycore_global_objects_fini_generated.h | 1553 +++++++++ .../Headers/internal/pycore_global_strings.h | 813 +++++ .../Headers/internal/pycore_hamt.h | 134 + .../Headers/internal/pycore_hashtable.h | 150 + .../Headers/internal/pycore_identifier.h | 20 + .../Headers/internal/pycore_import.h | 212 ++ .../Headers/internal/pycore_importdl.h | 135 + .../Headers/internal/pycore_initconfig.h | 200 ++ .../internal/pycore_instruction_sequence.h | 73 + .../Headers/internal/pycore_instruments.h | 75 + .../Headers/internal/pycore_interp.h | 421 +++ .../Headers/internal/pycore_intrinsics.h | 51 + .../Headers/internal/pycore_jit.h | 25 + .../Headers/internal/pycore_list.h | 66 + .../Headers/internal/pycore_llist.h | 106 + .../Headers/internal/pycore_lock.h | 241 ++ .../Headers/internal/pycore_long.h | 310 ++ .../Headers/internal/pycore_memoryobject.h | 20 + .../Headers/internal/pycore_mimalloc.h | 69 + .../Headers/internal/pycore_modsupport.h | 107 + .../Headers/internal/pycore_moduleobject.h | 54 + .../Headers/internal/pycore_namespace.h | 21 + .../Headers/internal/pycore_object.h | 793 +++++ .../Headers/internal/pycore_object_alloc.h | 71 + .../Headers/internal/pycore_object_stack.h | 87 + .../Headers/internal/pycore_object_state.h | 41 + .../Headers/internal/pycore_obmalloc.h | 702 ++++ .../Headers/internal/pycore_obmalloc_init.h | 66 + .../Headers/internal/pycore_opcode_metadata.h | 1922 +++++++++++ .../Headers/internal/pycore_opcode_utils.h | 73 + .../Headers/internal/pycore_optimizer.h | 272 ++ .../Headers/internal/pycore_parking_lot.h | 97 + .../Headers/internal/pycore_parser.h | 95 + .../Headers/internal/pycore_pathconfig.h | 26 + .../Headers/internal/pycore_pyarena.h | 68 + .../internal/pycore_pyatomic_ft_wrappers.h | 94 + .../Headers/internal/pycore_pybuffer.h | 21 + .../Headers/internal/pycore_pyerrors.h | 178 + .../Headers/internal/pycore_pyhash.h | 107 + .../Headers/internal/pycore_pylifecycle.h | 136 + .../Headers/internal/pycore_pymath.h | 205 ++ .../Headers/internal/pycore_pymem.h | 138 + .../Headers/internal/pycore_pymem_init.h | 103 + .../Headers/internal/pycore_pystate.h | 299 ++ .../Headers/internal/pycore_pystats.h | 21 + .../Headers/internal/pycore_pythonrun.h | 39 + .../Headers/internal/pycore_pythread.h | 159 + .../Headers/internal/pycore_qsbr.h | 154 + .../Headers/internal/pycore_range.h | 21 + .../Headers/internal/pycore_runtime.h | 410 +++ .../Headers/internal/pycore_runtime_init.h | 329 ++ .../internal/pycore_runtime_init_generated.h | 1550 +++++++++ .../Headers/internal/pycore_semaphore.h | 65 + .../Headers/internal/pycore_setobject.h | 39 + .../Headers/internal/pycore_signal.h | 108 + .../Headers/internal/pycore_sliceobject.h | 20 + .../Headers/internal/pycore_stackref.h | 195 ++ .../Headers/internal/pycore_strhex.h | 39 + .../Headers/internal/pycore_structseq.h | 40 + .../Headers/internal/pycore_symtable.h | 204 ++ .../Headers/internal/pycore_sysmodule.h | 35 + .../Headers/internal/pycore_time.h | 337 ++ .../Headers/internal/pycore_token.h | 106 + .../Headers/internal/pycore_traceback.h | 106 + .../Headers/internal/pycore_tracemalloc.h | 170 + .../Headers/internal/pycore_tstate.h | 46 + .../Headers/internal/pycore_tuple.h | 35 + .../Headers/internal/pycore_typeobject.h | 243 ++ .../Headers/internal/pycore_typevarobject.h | 27 + .../Headers/internal/pycore_ucnhash.h | 36 + .../Headers/internal/pycore_unicodeobject.h | 338 ++ .../internal/pycore_unicodeobject_generated.h | 2976 +++++++++++++++++ .../Headers/internal/pycore_unionobject.h | 25 + .../Headers/internal/pycore_uop_ids.h | 294 ++ .../Headers/internal/pycore_uop_metadata.h | 1006 ++++++ .../Headers/internal/pycore_warnings.h | 31 + .../Headers/internal/pycore_weakref.h | 119 + .../Python.framework/Headers/intrcheck.h | 23 + .../Python.framework/Headers/iterobject.h | 24 + .../Python.framework/Headers/listobject.h | 55 + .../Python.framework/Headers/lock.h | 16 + .../Python.framework/Headers/longobject.h | 114 + .../Python.framework/Headers/marshal.h | 31 + .../Python.framework/Headers/memoryobject.h | 34 + .../Python.framework/Headers/methodobject.h | 137 + .../Python.framework/Headers/modsupport.h | 146 + .../Python.framework/Headers/moduleobject.h | 122 + .../Python.framework/Headers/monitoring.h | 18 + .../Python.framework/Headers/object.h | 1270 +++++++ .../Python.framework/Headers/objimpl.h | 211 ++ .../Python.framework/Headers/opcode.h | 42 + .../Python.framework/Headers/opcode_ids.h | 244 ++ .../Python.framework/Headers/osdefs.h | 57 + .../Python.framework/Headers/osmodule.h | 17 + .../Python.framework/Headers/patchlevel.h | 35 + .../Python.framework/Headers/py_curses.h | 116 + .../Python.framework/Headers/pyatomic.h | 16 + .../Python.framework/Headers/pybuffer.h | 145 + .../Python.framework/Headers/pycapsule.h | 58 + .../Headers/pyconfig-android-aarch64.h | 2015 +++++++++++ .../Headers/pyconfig-android-x86_64.h | 2015 +++++++++++ .../Headers/pyconfig-ios-arm64.h | 2015 +++++++++++ .../Headers/pyconfig-ios-x86_64.h | 2015 +++++++++++ .../Python.framework/Headers/pyconfig.h | 19 + .../Python.framework/Headers/pydtrace.h | 59 + .../Python.framework/Headers/pyerrors.h | 335 ++ .../Python.framework/Headers/pyexpat.h | 57 + .../Python.framework/Headers/pyframe.h | 26 + .../Python.framework/Headers/pyhash.h | 59 + .../Python.framework/Headers/pylifecycle.h | 80 + .../Python.framework/Headers/pymacconfig.h | 91 + .../Python.framework/Headers/pymacro.h | 193 ++ .../Python.framework/Headers/pymath.h | 62 + .../Python.framework/Headers/pymem.h | 110 + .../Python.framework/Headers/pyport.h | 609 ++++ .../Python.framework/Headers/pystate.h | 132 + .../Python.framework/Headers/pystats.h | 26 + .../Python.framework/Headers/pystrcmp.h | 23 + .../Python.framework/Headers/pystrtod.h | 37 + .../Python.framework/Headers/pythonrun.h | 49 + .../Python.framework/Headers/pythread.h | 112 + .../Python.framework/Headers/pytypedefs.h | 30 + .../Python.framework/Headers/rangeobject.h | 27 + .../Python.framework/Headers/setobject.h | 49 + .../Python.framework/Headers/sliceobject.h | 69 + .../Python.framework/Headers/structmember.h | 56 + .../Python.framework/Headers/structseq.h | 46 + .../Python.framework/Headers/sysmodule.h | 44 + .../Python.framework/Headers/traceback.h | 26 + .../Python.framework/Headers/tupleobject.h | 46 + .../Python.framework/Headers/typeslots.h | 88 + .../Python.framework/Headers/unicodeobject.h | 1021 ++++++ .../Python.framework/Headers/warnings.h | 45 + .../Python.framework/Headers/weakrefobject.h | 46 + .../Python.framework/Info.plist | 34 + .../Python.framework/Python | Bin 0 -> 10807832 bytes .../lib/ios/Python.xcframework/iphoneos | 1 + .../ios/Python.xcframework/iphonesimulator | 1 + sample/build.gradle.kts | 17 + .../multiplatform/demo/MainViewController.kt | 5 +- 550 files changed, 112815 insertions(+), 16 deletions(-) create mode 100644 iosApp/iosApp.xcodeproj/xcshareddata/xcschemes/iosApp.xcscheme create mode 100644 iosApp/iosApp/dylib-Info-template.plist create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/Info.plist create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/Python.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/abstract.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/bltinmodule.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/boolobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/bytearrayobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/bytesobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/ceval.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/codecs.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/compile.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/complexobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/abstract.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/bytearrayobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/bytesobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/cellobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/ceval.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/classobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/code.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/compile.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/complexobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/context.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/critical_section.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/descrobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/dictobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/fileobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/fileutils.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/floatobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/frameobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/funcobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/genobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/import.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/initconfig.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/listobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/lock.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/longintrepr.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/longobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/memoryobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/methodobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/modsupport.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/monitoring.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/object.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/objimpl.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/odictobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/picklebufobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pthread_stubs.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyatomic.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyatomic_gcc.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyatomic_msc.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyatomic_std.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyctype.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pydebug.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyerrors.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyfpe.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyframe.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyhash.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pylifecycle.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pymem.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pystate.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pystats.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pythonrun.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pythread.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pytime.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/setobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/sysmodule.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/traceback.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/tracemalloc.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/tupleobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/unicodeobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/warnings.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/weakrefobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/critical_section.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/datetime.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/descrobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/dictobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/dynamic_annotations.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/enumobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/errcode.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/exports.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/fileobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/fileutils.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/floatobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/frameobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/genericaliasobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/import.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/mimalloc/mimalloc.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/mimalloc/mimalloc/atomic.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/mimalloc/mimalloc/internal.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/mimalloc/mimalloc/prim.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/mimalloc/mimalloc/track.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/mimalloc/mimalloc/types.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_abstract.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_asdl.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_ast.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_ast_state.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_atexit.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_backoff.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_bitutils.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_blocks_output_buffer.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_brc.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_bytes_methods.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_bytesobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_call.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_capsule.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_cell.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_ceval.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_ceval_state.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_code.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_codecs.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_compile.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_complexobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_condvar.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_context.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_critical_section.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_crossinterp.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_descrobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_dict.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_dict_state.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_dtoa.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_emscripten_signal.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_emscripten_trampoline.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_exceptions.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_faulthandler.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_fileutils.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_fileutils_windows.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_floatobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_flowgraph.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_format.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_frame.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_freelist.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_function.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_gc.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_genobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_getopt.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_gil.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_global_objects.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_global_objects_fini_generated.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_global_strings.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_hamt.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_hashtable.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_identifier.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_import.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_importdl.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_initconfig.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_instruction_sequence.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_instruments.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_interp.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_intrinsics.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_jit.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_list.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_llist.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_lock.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_long.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_memoryobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_mimalloc.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_modsupport.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_moduleobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_namespace.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_object.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_object_alloc.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_object_stack.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_object_state.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_obmalloc.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_obmalloc_init.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_opcode_metadata.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_opcode_utils.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_optimizer.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_parking_lot.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_parser.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pathconfig.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pyarena.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pyatomic_ft_wrappers.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pybuffer.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pyerrors.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pyhash.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pylifecycle.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pymath.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pymem.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pymem_init.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pystate.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pystats.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pythonrun.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pythread.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_qsbr.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_range.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_runtime.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_runtime_init.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_runtime_init_generated.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_semaphore.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_setobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_signal.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_sliceobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_stackref.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_strhex.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_structseq.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_symtable.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_sysmodule.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_time.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_token.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_traceback.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_tracemalloc.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_tstate.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_tuple.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_typeobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_typevarobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_ucnhash.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_unicodeobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_unicodeobject_generated.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_unionobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_uop_ids.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_uop_metadata.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_warnings.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_weakref.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/intrcheck.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/iterobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/listobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/lock.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/longobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/marshal.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/memoryobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/methodobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/modsupport.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/moduleobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/monitoring.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/object.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/objimpl.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/opcode.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/opcode_ids.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/osdefs.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/osmodule.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/patchlevel.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/py_curses.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyatomic.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pybuffer.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pycapsule.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyconfig-android-aarch64.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyconfig-android-x86_64.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyconfig-ios-arm64.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyconfig-ios-x86_64.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyconfig.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pydtrace.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyerrors.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyexpat.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyframe.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyhash.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pylifecycle.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pymacconfig.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pymacro.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pymath.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pymem.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyport.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pystate.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pystats.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pystrcmp.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pystrtod.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pythonrun.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pythread.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pytypedefs.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/rangeobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/setobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/sliceobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/structmember.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/structseq.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/sysmodule.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/traceback.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/tupleobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/typeslots.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/unicodeobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/warnings.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/weakrefobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Info.plist create mode 100755 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Python create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/Python.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/abstract.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/bltinmodule.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/boolobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/bytearrayobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/bytesobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/ceval.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/codecs.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/compile.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/complexobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/abstract.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/bytearrayobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/bytesobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/cellobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/ceval.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/classobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/code.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/compile.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/complexobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/context.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/critical_section.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/descrobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/dictobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/fileobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/fileutils.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/floatobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/frameobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/funcobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/genobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/import.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/initconfig.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/listobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/lock.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/longintrepr.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/longobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/memoryobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/methodobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/modsupport.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/monitoring.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/object.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/objimpl.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/odictobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/picklebufobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pthread_stubs.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyatomic.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyatomic_gcc.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyatomic_msc.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyatomic_std.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyctype.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pydebug.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyerrors.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyfpe.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyframe.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyhash.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pylifecycle.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pymem.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pystate.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pystats.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pythonrun.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pythread.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pytime.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/setobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/sysmodule.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/traceback.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/tracemalloc.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/tupleobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/unicodeobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/warnings.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/weakrefobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/critical_section.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/datetime.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/descrobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/dictobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/dynamic_annotations.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/enumobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/errcode.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/exports.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/fileobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/fileutils.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/floatobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/frameobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/genericaliasobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/import.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/mimalloc/mimalloc.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/mimalloc/mimalloc/atomic.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/mimalloc/mimalloc/internal.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/mimalloc/mimalloc/prim.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/mimalloc/mimalloc/track.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/mimalloc/mimalloc/types.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_abstract.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_asdl.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_ast.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_ast_state.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_atexit.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_backoff.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_bitutils.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_blocks_output_buffer.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_brc.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_bytes_methods.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_bytesobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_call.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_capsule.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_cell.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_ceval.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_ceval_state.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_code.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_codecs.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_compile.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_complexobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_condvar.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_context.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_critical_section.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_crossinterp.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_descrobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_dict.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_dict_state.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_dtoa.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_emscripten_signal.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_emscripten_trampoline.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_exceptions.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_faulthandler.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_fileutils.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_fileutils_windows.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_floatobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_flowgraph.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_format.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_frame.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_freelist.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_function.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_gc.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_genobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_getopt.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_gil.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_global_objects.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_global_objects_fini_generated.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_global_strings.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_hamt.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_hashtable.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_identifier.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_import.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_importdl.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_initconfig.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_instruction_sequence.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_instruments.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_interp.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_intrinsics.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_jit.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_list.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_llist.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_lock.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_long.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_memoryobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_mimalloc.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_modsupport.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_moduleobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_namespace.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_object.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_object_alloc.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_object_stack.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_object_state.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_obmalloc.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_obmalloc_init.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_opcode_metadata.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_opcode_utils.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_optimizer.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_parking_lot.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_parser.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pathconfig.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pyarena.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pyatomic_ft_wrappers.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pybuffer.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pyerrors.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pyhash.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pylifecycle.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pymath.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pymem.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pymem_init.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pystate.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pystats.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pythonrun.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pythread.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_qsbr.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_range.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_runtime.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_runtime_init.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_runtime_init_generated.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_semaphore.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_setobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_signal.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_sliceobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_stackref.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_strhex.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_structseq.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_symtable.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_sysmodule.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_time.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_token.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_traceback.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_tracemalloc.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_tstate.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_tuple.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_typeobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_typevarobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_ucnhash.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_unicodeobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_unicodeobject_generated.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_unionobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_uop_ids.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_uop_metadata.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_warnings.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_weakref.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/intrcheck.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/iterobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/listobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/lock.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/longobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/marshal.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/memoryobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/methodobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/modsupport.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/moduleobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/monitoring.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/object.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/objimpl.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/opcode.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/opcode_ids.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/osdefs.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/osmodule.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/patchlevel.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/py_curses.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyatomic.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pybuffer.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pycapsule.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyconfig-android-aarch64.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyconfig-android-x86_64.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyconfig-ios-arm64.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyconfig-ios-x86_64.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyconfig.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pydtrace.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyerrors.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyexpat.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyframe.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyhash.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pylifecycle.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pymacconfig.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pymacro.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pymath.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pymem.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyport.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pystate.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pystats.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pystrcmp.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pystrtod.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pythonrun.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pythread.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pytypedefs.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/rangeobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/setobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/sliceobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/structmember.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/structseq.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/sysmodule.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/traceback.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/tupleobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/typeslots.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/unicodeobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/warnings.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/weakrefobject.h create mode 100644 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Info.plist create mode 100755 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Python create mode 120000 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/iphoneos create mode 120000 python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/iphonesimulator diff --git a/iosApp/iosApp.xcodeproj/project.pbxproj b/iosApp/iosApp.xcodeproj/project.pbxproj index d4a4f80a4..5c038673f 100644 --- a/iosApp/iosApp.xcodeproj/project.pbxproj +++ b/iosApp/iosApp.xcodeproj/project.pbxproj @@ -11,8 +11,25 @@ 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */; }; 2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2152FB032600AC8F00CF470E /* iOSApp.swift */; }; 7555FF83242A565900829871 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7555FF82242A565900829871 /* ContentView.swift */; }; + 8B3F1A512CC49F1D00B85330 /* Python.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8B3F1A502CC49F1D00B85330 /* Python.xcframework */; }; + 8B3F1A5B2CC4A49700B85330 /* dylib-Info-template.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8B3F1A5A2CC4A49700B85330 /* dylib-Info-template.plist */; }; + 8B3F1A5C2CC574B200B85330 /* Python.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 8B3F1A502CC49F1D00B85330 /* Python.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; /* End PBXBuildFile section */ +/* Begin PBXCopyFilesBuildPhase section */ + 8B3F1A4F2CC498EB00B85330 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 8B3F1A5C2CC574B200B85330 /* Python.xcframework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFileReference section */ 058557BA273AAA24004C7B11 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; @@ -20,6 +37,8 @@ 7555FF7B242A565900829871 /* PythonDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PythonDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; 7555FF82242A565900829871 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; 7555FF8C242A565B00829871 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 8B3F1A502CC49F1D00B85330 /* Python.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = Python.xcframework; path = "../sample/build/xcode-frameworks/Python.xcframework"; sourceTree = ""; }; + 8B3F1A5A2CC4A49700B85330 /* dylib-Info-template.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "dylib-Info-template.plist"; sourceTree = ""; }; AB3632DC29227652001CCB65 /* Config.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = ""; }; /* End PBXFileReference section */ @@ -28,6 +47,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 8B3F1A512CC49F1D00B85330 /* Python.xcframework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -45,6 +65,7 @@ 42799AB246E5F90AF97AA0EF /* Frameworks */ = { isa = PBXGroup; children = ( + 8B3F1A502CC49F1D00B85330 /* Python.xcframework */, ); name = Frameworks; sourceTree = ""; @@ -75,6 +96,7 @@ 7555FF8C242A565B00829871 /* Info.plist */, 2152FB032600AC8F00CF470E /* iOSApp.swift */, 058557D7273AAEEB004C7B11 /* Preview Content */, + 8B3F1A5A2CC4A49700B85330 /* dylib-Info-template.plist */, ); path = iosApp; sourceTree = ""; @@ -98,6 +120,9 @@ 7555FF77242A565900829871 /* Sources */, B92378962B6B1156000C7307 /* Frameworks */, 7555FF79242A565900829871 /* Resources */, + 8B3F1A532CC49F9C00B85330 /* Install Target Specific Python Standard Library */, + 8B3F1A552CC4A00F00B85330 /* Prepare Python Binary Modules */, + 8B3F1A4F2CC498EB00B85330 /* Embed Frameworks */, ); buildRules = ( ); @@ -153,12 +178,49 @@ files = ( 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */, 058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */, + 8B3F1A5B2CC4A49700B85330 /* dylib-Info-template.plist in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 8B3F1A532CC49F9C00B85330 /* Install Target Specific Python Standard Library */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Install Target Specific Python Standard Library"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "set -e\n\nmkdir -p \"$CODESIGNING_FOLDER_PATH/python/lib\"\nif [ \"$EFFECTIVE_PLATFORM_NAME\" = \"-iphonesimulator\" ]; then\n echo \"Installing Python modules for iOS Simulator\"\n rsync -au --delete \"$PROJECT_DIR/../sample/build/xcode-frameworks/Python.xcframework/ios-arm64_x86_64-simulator/lib/\" \"$CODESIGNING_FOLDER_PATH/python/lib/\" \nelse\n echo \"Installing Python modules for iOS Device\"\n rsync -au --delete \"$PROJECT_DIR/../sample/build/xcode-frameworks/Python.xcframework/ios-arm64/lib/\" \"$CODESIGNING_FOLDER_PATH/python/lib/\" \nfi\n"; + }; + 8B3F1A552CC4A00F00B85330 /* Prepare Python Binary Modules */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Prepare Python Binary Modules"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "set -e\n\ninstall_dylib () {\n INSTALL_BASE=$1\n FULL_EXT=$2\n\n # The name of the extension file\n EXT=$(basename \"$FULL_EXT\")\n # The location of the extension file, relative to the bundle\n RELATIVE_EXT=${FULL_EXT#$CODESIGNING_FOLDER_PATH/} \n # The path to the extension file, relative to the install base\n PYTHON_EXT=${RELATIVE_EXT/$INSTALL_BASE/}\n # The full dotted name of the extension module, constructed from the file path.\n FULL_MODULE_NAME=$(echo $PYTHON_EXT | cut -d \".\" -f 1 | tr \"/\" \".\"); \n # A bundle identifier; not actually used, but required by Xcode framework packaging\n FRAMEWORK_BUNDLE_ID=$(echo $PRODUCT_BUNDLE_IDENTIFIER.$FULL_MODULE_NAME | tr \"_\" \"-\")\n # The name of the framework folder.\n FRAMEWORK_FOLDER=\"Frameworks/$FULL_MODULE_NAME.framework\"\n\n # If the framework folder doesn't exist, create it.\n if [ ! -d \"$CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER\" ]; then\n echo \"Creating framework for $RELATIVE_EXT\" \n mkdir -p \"$CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER\"\n cp \"$CODESIGNING_FOLDER_PATH/dylib-Info-template.plist\" \"$CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER/Info.plist\"\n plutil -replace CFBundleExecutable -string \"$FULL_MODULE_NAME\" \"$CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER/Info.plist\"\n plutil -replace CFBundleIdentifier -string \"$FRAMEWORK_BUNDLE_ID\" \"$CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER/Info.plist\"\n fi\n \n echo \"Installing binary for $FRAMEWORK_FOLDER/$FULL_MODULE_NAME\" \n mv \"$FULL_EXT\" \"$CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER/$FULL_MODULE_NAME\"\n # Create a placeholder .fwork file where the .so was\n echo \"$FRAMEWORK_FOLDER/$FULL_MODULE_NAME\" > ${FULL_EXT%.so}.fwork\n # Create a back reference to the .so file location in the framework\n echo \"${RELATIVE_EXT%.so}.fwork\" > \"$CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER/$FULL_MODULE_NAME.origin\" \n}\n\nPYTHON_VER=$(ls -1 \"$CODESIGNING_FOLDER_PATH/python/lib\")\necho \"Install Python $PYTHON_VER standard library extension modules...\"\nfind \"$CODESIGNING_FOLDER_PATH/python/lib/$PYTHON_VER/lib-dynload\" -name \"*.so\" | while read FULL_EXT; do\n install_dylib python/lib/$PYTHON_VER/lib-dynload/ \"$FULL_EXT\"\ndone\n\n# Clean up dylib template \nrm -f \"$CODESIGNING_FOLDER_PATH/dylib-Info-template.plist\"\necho \"Signing frameworks as $EXPANDED_CODE_SIGN_IDENTITY_NAME ($EXPANDED_CODE_SIGN_IDENTITY)...\"\nfind \"$CODESIGNING_FOLDER_PATH/Frameworks\" -name \"*.framework\" -exec /usr/bin/codesign --force --sign \"$EXPANDED_CODE_SIGN_IDENTITY\" ${OTHER_CODE_SIGN_FLAGS:-} -o runtime --timestamp=none --preserve-metadata=identifier,entitlements,flags --generate-entitlement-der \"{}\" \\; \n"; + }; F36B1CEB2AD83DDC00CB74D5 /* Compile Kotlin Framework */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -175,7 +237,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "if [ \"YES\" = \"$OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED\" ]; then\n echo \"Skipping Gradle build task invocation due to OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED environment variable set to \\\"YES\\\"\"\n exit 0\nfi\ncd \"$SRCROOT/..\"\n./gradlew :sample:embedAndSignAppleFrameworkForXcode\n"; + shellScript = "if [ \"YES\" = \"$OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED\" ]; then\n echo \"Skipping Gradle build task invocation due to OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED environment variable set to \\\"YES\\\"\"\n exit 0\nfi\ncd \"$SRCROOT/..\"\n./gradlew :python-multiplatform:embedAndSignAppleFrameworkForXcode\n./gradlew :sample:embedAndSignAppleFrameworkForXcode\n\n"; }; /* End PBXShellScriptBuildPhase section */ @@ -321,7 +383,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; - DEVELOPMENT_TEAM = "${TEAM_ID}"; + DEVELOPMENT_TEAM = ZP73KJVT6Q; ENABLE_PREVIEWS = YES; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -348,7 +410,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; - DEVELOPMENT_TEAM = "${TEAM_ID}"; + DEVELOPMENT_TEAM = ZP73KJVT6Q; ENABLE_PREVIEWS = YES; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", diff --git a/iosApp/iosApp.xcodeproj/xcshareddata/xcschemes/iosApp.xcscheme b/iosApp/iosApp.xcodeproj/xcshareddata/xcschemes/iosApp.xcscheme new file mode 100644 index 000000000..946f638dd --- /dev/null +++ b/iosApp/iosApp.xcodeproj/xcshareddata/xcschemes/iosApp.xcscheme @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/iosApp/iosApp/ContentView.swift b/iosApp/iosApp/ContentView.swift index df2f10933..0032ae493 100644 --- a/iosApp/iosApp/ContentView.swift +++ b/iosApp/iosApp/ContentView.swift @@ -1,6 +1,8 @@ import UIKit import SwiftUI import Demo +import PythonMultiplatform + struct ComposeView: UIViewControllerRepresentable { func makeUIViewController(context: Context) -> UIViewController { diff --git a/iosApp/iosApp/dylib-Info-template.plist b/iosApp/iosApp/dylib-Info-template.plist new file mode 100644 index 000000000..f652e272f --- /dev/null +++ b/iosApp/iosApp/dylib-Info-template.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + + CFBundleIdentifier + + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSupportedPlatforms + + iPhoneOS + + MinimumOSVersion + 12.0 + CFBundleVersion + 1 + + diff --git a/python-multiplatform/build.gradle.kts b/python-multiplatform/build.gradle.kts index e3bbe7f6f..8cc139879 100644 --- a/python-multiplatform/build.gradle.kts +++ b/python-multiplatform/build.gradle.kts @@ -161,13 +161,9 @@ kotlin { compilations.getByName("main").cinterops.create("python") { headers("$includePath/Python.h") packageName("python.native.ffi") + includeDirs(includePath) if (konanTarget.family == Family.IOS) { - compilerOpts.addAll(listOf( - "-F$projectDir/$targetLibPath", "-I$projectDir/$includePath", - "-framework", "Python" - )) - } else { - includeDirs(includePath) + compilerOpts("-framework", "Python", "-F$projectDir/$targetLibPath/$targetABI", "-fno-common", "-fvisibility=hidden") } } @@ -189,13 +185,12 @@ kotlin { } } } else if (konanTarget.family == Family.IOS) { - all { - linkerOpts.addAll(listOf( - "-F$projectDir/$targetLibPath", "-framework", "Python", "-Objc" - )) - } framework { baseName = "PythonMultiplatform" + + linkerOpts.addAll(listOf( + "-framework", "Python", "-F$projectDir/$targetLibPath/$targetABI", "-Objc" + )) } } } diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/Info.plist b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/Info.plist new file mode 100644 index 000000000..e12eb39ee --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/Info.plist @@ -0,0 +1,44 @@ + + + + + AvailableLibraries + + + BinaryPath + Python.framework/Python + LibraryIdentifier + ios-arm64_x86_64-simulator + LibraryPath + Python.framework + SupportedArchitectures + + arm64 + x86_64 + + SupportedPlatform + ios + SupportedPlatformVariant + simulator + + + BinaryPath + Python.framework/Python + LibraryIdentifier + ios-arm64 + LibraryPath + Python.framework + SupportedArchitectures + + arm64 + + SupportedPlatform + ios + + + CFBundlePackageType + XFWK + XCFrameworkFormatVersion + 1.0 + + diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/Python.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/Python.h new file mode 100644 index 000000000..fb2d32d71 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/Python.h @@ -0,0 +1,139 @@ +// Entry point of the Python C API. +// C extensions should only #include , and not include directly +// the other Python header files included by . + +#ifndef Py_PYTHON_H +#define Py_PYTHON_H + +// Since this is a "meta-include" file, "#ifdef __cplusplus / extern "C" {" +// is not needed. + + +// Include Python header files +#include "patchlevel.h" +#include "pyconfig.h" +#include "pymacconfig.h" + + +// Include standard header files +#include // assert() +#include // uintptr_t +#include // INT_MAX +#include // HUGE_VAL +#include // va_list +#include // wchar_t +#ifdef HAVE_SYS_TYPES_H +# include // ssize_t +#endif + +// , , and headers are no longer used +// by Python, but kept for the backward compatibility of existing third party C +// extensions. They are not included by limited C API version 3.11 and newer. +// +// The and headers are not included by limited C API +// version 3.13 and newer. +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# include // errno +# include // FILE* +# include // getenv() +# include // memcpy() +#endif +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030d0000 +# include // tolower() +# ifndef MS_WINDOWS +# include // close() +# endif +#endif + +// gh-111506: The free-threaded build is not compatible with the limited API +// or the stable ABI. +#if defined(Py_LIMITED_API) && defined(Py_GIL_DISABLED) +# error "The limited API is not currently supported in the free-threaded build" +#endif + +#if defined(Py_GIL_DISABLED) && defined(_MSC_VER) +# include // __readgsqword() +#endif + +#if defined(Py_GIL_DISABLED) && defined(__MINGW32__) +# include // __readgsqword() +#endif + +// Include Python header files +#include "pyport.h" +#include "pymacro.h" +#include "pymath.h" +#include "pymem.h" +#include "pytypedefs.h" +#include "pybuffer.h" +#include "pystats.h" +#include "pyatomic.h" +#include "lock.h" +#include "object.h" +#include "objimpl.h" +#include "typeslots.h" +#include "pyhash.h" +#include "cpython/pydebug.h" +#include "bytearrayobject.h" +#include "bytesobject.h" +#include "unicodeobject.h" +#include "pyerrors.h" +#include "longobject.h" +#include "cpython/longintrepr.h" +#include "boolobject.h" +#include "floatobject.h" +#include "complexobject.h" +#include "rangeobject.h" +#include "memoryobject.h" +#include "tupleobject.h" +#include "listobject.h" +#include "dictobject.h" +#include "cpython/odictobject.h" +#include "enumobject.h" +#include "setobject.h" +#include "methodobject.h" +#include "moduleobject.h" +#include "monitoring.h" +#include "cpython/funcobject.h" +#include "cpython/classobject.h" +#include "fileobject.h" +#include "pycapsule.h" +#include "cpython/code.h" +#include "pyframe.h" +#include "traceback.h" +#include "sliceobject.h" +#include "cpython/cellobject.h" +#include "iterobject.h" +#include "cpython/initconfig.h" +#include "pystate.h" +#include "cpython/genobject.h" +#include "descrobject.h" +#include "genericaliasobject.h" +#include "warnings.h" +#include "weakrefobject.h" +#include "structseq.h" +#include "cpython/picklebufobject.h" +#include "cpython/pytime.h" +#include "codecs.h" +#include "pythread.h" +#include "cpython/context.h" +#include "modsupport.h" +#include "compile.h" +#include "pythonrun.h" +#include "pylifecycle.h" +#include "ceval.h" +#include "sysmodule.h" +#include "osmodule.h" +#include "intrcheck.h" +#include "import.h" +#include "abstract.h" +#include "bltinmodule.h" +#include "critical_section.h" +#include "cpython/pyctype.h" +#include "pystrtod.h" +#include "pystrcmp.h" +#include "fileutils.h" +#include "cpython/pyfpe.h" +#include "cpython/tracemalloc.h" + +#endif /* !Py_PYTHON_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/abstract.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/abstract.h new file mode 100644 index 000000000..bd12a5496 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/abstract.h @@ -0,0 +1,911 @@ +/* Abstract Object Interface (many thanks to Jim Fulton) */ + +#ifndef Py_ABSTRACTOBJECT_H +#define Py_ABSTRACTOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +/* === Object Protocol ================================================== */ + +/* Implemented elsewhere: + + int PyObject_Print(PyObject *o, FILE *fp, int flags); + + Print an object 'o' on file 'fp'. Returns -1 on error. The flags argument + is used to enable certain printing options. The only option currently + supported is Py_PRINT_RAW. By default (flags=0), PyObject_Print() formats + the object by calling PyObject_Repr(). If flags equals to Py_PRINT_RAW, it + formats the object by calling PyObject_Str(). */ + + +/* Implemented elsewhere: + + int PyObject_HasAttrString(PyObject *o, const char *attr_name); + + Returns 1 if object 'o' has the attribute attr_name, and 0 otherwise. + + This is equivalent to the Python expression: hasattr(o,attr_name). + + This function always succeeds. */ + + +/* Implemented elsewhere: + + PyObject* PyObject_GetAttrString(PyObject *o, const char *attr_name); + + Retrieve an attributed named attr_name form object o. + Returns the attribute value on success, or NULL on failure. + + This is the equivalent of the Python expression: o.attr_name. */ + + +/* Implemented elsewhere: + + int PyObject_HasAttr(PyObject *o, PyObject *attr_name); + + Returns 1 if o has the attribute attr_name, and 0 otherwise. + + This is equivalent to the Python expression: hasattr(o,attr_name). + + This function always succeeds. */ + + +/* Implemented elsewhere: + + int PyObject_HasAttrStringWithError(PyObject *o, const char *attr_name); + + Returns 1 if object 'o' has the attribute attr_name, and 0 otherwise. + This is equivalent to the Python expression: hasattr(o,attr_name). + Returns -1 on failure. */ + + +/* Implemented elsewhere: + + int PyObject_HasAttrWithError(PyObject *o, PyObject *attr_name); + + Returns 1 if o has the attribute attr_name, and 0 otherwise. + This is equivalent to the Python expression: hasattr(o,attr_name). + Returns -1 on failure. */ + + +/* Implemented elsewhere: + + PyObject* PyObject_GetAttr(PyObject *o, PyObject *attr_name); + + Retrieve an attributed named 'attr_name' form object 'o'. + Returns the attribute value on success, or NULL on failure. + + This is the equivalent of the Python expression: o.attr_name. */ + + +/* Implemented elsewhere: + + int PyObject_GetOptionalAttr(PyObject *obj, PyObject *attr_name, PyObject **result); + + Variant of PyObject_GetAttr() which doesn't raise AttributeError + if the attribute is not found. + + If the attribute is found, return 1 and set *result to a new strong + reference to the attribute. + If the attribute is not found, return 0 and set *result to NULL; + the AttributeError is silenced. + If an error other than AttributeError is raised, return -1 and + set *result to NULL. +*/ + + +/* Implemented elsewhere: + + int PyObject_GetOptionalAttrString(PyObject *obj, const char *attr_name, PyObject **result); + + Variant of PyObject_GetAttrString() which doesn't raise AttributeError + if the attribute is not found. + + If the attribute is found, return 1 and set *result to a new strong + reference to the attribute. + If the attribute is not found, return 0 and set *result to NULL; + the AttributeError is silenced. + If an error other than AttributeError is raised, return -1 and + set *result to NULL. +*/ + + +/* Implemented elsewhere: + + int PyObject_SetAttrString(PyObject *o, const char *attr_name, PyObject *v); + + Set the value of the attribute named attr_name, for object 'o', + to the value 'v'. Raise an exception and return -1 on failure; return 0 on + success. + + This is the equivalent of the Python statement o.attr_name=v. */ + + +/* Implemented elsewhere: + + int PyObject_SetAttr(PyObject *o, PyObject *attr_name, PyObject *v); + + Set the value of the attribute named attr_name, for object 'o', to the value + 'v'. an exception and return -1 on failure; return 0 on success. + + This is the equivalent of the Python statement o.attr_name=v. */ + +/* Implemented elsewhere: + + int PyObject_DelAttrString(PyObject *o, const char *attr_name); + + Delete attribute named attr_name, for object o. Returns + -1 on failure. + + This is the equivalent of the Python statement: del o.attr_name. */ + + +/* Implemented elsewhere: + + int PyObject_DelAttr(PyObject *o, PyObject *attr_name); + + Delete attribute named attr_name, for object o. Returns -1 + on failure. This is the equivalent of the Python + statement: del o.attr_name. */ + + +/* Implemented elsewhere: + + PyObject *PyObject_Repr(PyObject *o); + + Compute the string representation of object 'o'. Returns the + string representation on success, NULL on failure. + + This is the equivalent of the Python expression: repr(o). + + Called by the repr() built-in function. */ + + +/* Implemented elsewhere: + + PyObject *PyObject_Str(PyObject *o); + + Compute the string representation of object, o. Returns the + string representation on success, NULL on failure. + + This is the equivalent of the Python expression: str(o). + + Called by the str() and print() built-in functions. */ + + +/* Declared elsewhere + + PyAPI_FUNC(int) PyCallable_Check(PyObject *o); + + Determine if the object, o, is callable. Return 1 if the object is callable + and 0 otherwise. + + This function always succeeds. */ + + +#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 + needed. If no named arguments are needed, 'kwargs' can be NULL. + + This is the equivalent of the Python expression: + callable(*args, **kwargs). */ +PyAPI_FUNC(PyObject *) PyObject_Call(PyObject *callable, + PyObject *args, PyObject *kwargs); + + +/* Call a callable Python object 'callable', with arguments given by the + tuple 'args'. If no arguments are needed, then 'args' can be NULL. + + Returns the result of the call on success, or NULL on failure. + + This is the equivalent of the Python expression: + callable(*args). */ +PyAPI_FUNC(PyObject *) PyObject_CallObject(PyObject *callable, + PyObject *args); + +/* Call a callable Python object, callable, with a variable number of C + arguments. The C arguments are described using a mkvalue-style format + string. + + The format may be NULL, indicating that no arguments are provided. + + Returns the result of the call on success, or NULL on failure. + + This is the equivalent of the Python expression: + callable(arg1, arg2, ...). */ +PyAPI_FUNC(PyObject *) PyObject_CallFunction(PyObject *callable, + const char *format, ...); + +/* Call the method named 'name' of object 'obj' with a variable number of + C arguments. The C arguments are described by a mkvalue format string. + + The format can be NULL, indicating that no arguments are provided. + + Returns the result of the call on success, or NULL on failure. + + This is the equivalent of the Python expression: + obj.name(arg1, arg2, ...). */ +PyAPI_FUNC(PyObject *) PyObject_CallMethod(PyObject *obj, + const char *name, + const char *format, ...); + +/* Call a callable Python object 'callable' with a variable number of C + arguments. The C arguments are provided as PyObject* values, terminated + by a NULL. + + Returns the result of the call on success, or NULL on failure. + + This is the equivalent of the Python expression: + callable(arg1, arg2, ...). */ +PyAPI_FUNC(PyObject *) PyObject_CallFunctionObjArgs(PyObject *callable, + ...); + +/* Call the method named 'name' of object 'obj' with a variable number of + C arguments. The C arguments are provided as PyObject* values, terminated + by NULL. + + Returns the result of the call on success, or NULL on failure. + + This is the equivalent of the Python expression: obj.name(*args). */ + +PyAPI_FUNC(PyObject *) PyObject_CallMethodObjArgs( + PyObject *obj, + PyObject *name, + ...); + +/* Given a vectorcall nargsf argument, return the actual number of arguments. + * (For use outside the limited API, this is re-defined as a static inline + * function in cpython/abstract.h) + */ +PyAPI_FUNC(Py_ssize_t) PyVectorcall_NARGS(size_t nargsf); + +/* 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); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030C0000 +#define PY_VECTORCALL_ARGUMENTS_OFFSET \ + (_Py_STATIC_CAST(size_t, 1) << (8 * sizeof(size_t) - 1)) + +/* Perform a PEP 590-style vector call on 'callable' */ +PyAPI_FUNC(PyObject *) PyObject_Vectorcall( + PyObject *callable, + PyObject *const *args, + size_t nargsf, + PyObject *kwnames); + +/* Call the method 'name' on args[0] with arguments in args[1..nargsf-1]. */ +PyAPI_FUNC(PyObject *) PyObject_VectorcallMethod( + PyObject *name, PyObject *const *args, + size_t nargsf, PyObject *kwnames); +#endif + +/* Implemented elsewhere: + + Py_hash_t PyObject_Hash(PyObject *o); + + Compute and return the hash, hash_value, of an object, o. On + failure, return -1. + + This is the equivalent of the Python expression: hash(o). */ + + +/* Implemented elsewhere: + + int PyObject_IsTrue(PyObject *o); + + Returns 1 if the object, o, is considered to be true, 0 if o is + considered to be false and -1 on failure. + + This is equivalent to the Python expression: not not o. */ + + +/* Implemented elsewhere: + + int PyObject_Not(PyObject *o); + + Returns 0 if the object, o, is considered to be true, 1 if o is + considered to be false and -1 on failure. + + This is equivalent to the Python expression: not o. */ + + +/* Get the type of an object. + + On success, returns a type object corresponding to the object type of object + 'o'. On failure, returns NULL. + + This is equivalent to the Python expression: type(o) */ +PyAPI_FUNC(PyObject *) PyObject_Type(PyObject *o); + + +/* Return the size of object 'o'. If the object 'o' provides both sequence and + mapping protocols, the sequence size is returned. + + On error, -1 is returned. + + This is the equivalent to the Python expression: len(o) */ +PyAPI_FUNC(Py_ssize_t) PyObject_Size(PyObject *o); + + +/* For DLL compatibility */ +#undef PyObject_Length +PyAPI_FUNC(Py_ssize_t) PyObject_Length(PyObject *o); +#define PyObject_Length PyObject_Size + +/* Return element of 'o' corresponding to the object 'key'. Return NULL + on failure. + + This is the equivalent of the Python expression: o[key] */ +PyAPI_FUNC(PyObject *) PyObject_GetItem(PyObject *o, PyObject *key); + + +/* Map the object 'key' to the value 'v' into 'o'. + + Raise an exception and return -1 on failure; return 0 on success. + + This is the equivalent of the Python statement: o[key]=v. */ +PyAPI_FUNC(int) PyObject_SetItem(PyObject *o, PyObject *key, PyObject *v); + +/* Remove the mapping for the string 'key' from the object 'o'. + Returns -1 on failure. + + This is equivalent to the Python statement: del o[key]. */ +PyAPI_FUNC(int) PyObject_DelItemString(PyObject *o, const char *key); + +/* Delete the mapping for the object 'key' from the object 'o'. + Returns -1 on failure. + + This is the equivalent of the Python statement: del o[key]. */ +PyAPI_FUNC(int) PyObject_DelItem(PyObject *o, PyObject *key); + + +/* Takes an arbitrary object and returns the result of calling + obj.__format__(format_spec). */ +PyAPI_FUNC(PyObject *) PyObject_Format(PyObject *obj, + PyObject *format_spec); + + +/* ==== Iterators ================================================ */ + +/* Takes an object and returns an iterator for it. + This is typically a new iterator but if the argument is an iterator, this + returns itself. */ +PyAPI_FUNC(PyObject *) PyObject_GetIter(PyObject *); + +/* Takes an AsyncIterable object and returns an AsyncIterator for it. + This is typically a new iterator but if the argument is an AsyncIterator, + this returns itself. */ +PyAPI_FUNC(PyObject *) PyObject_GetAIter(PyObject *); + +/* Returns non-zero if the object 'obj' provides iterator protocols, and 0 otherwise. + + This function always succeeds. */ +PyAPI_FUNC(int) PyIter_Check(PyObject *); + +/* Returns non-zero if the object 'obj' provides AsyncIterator protocols, and 0 otherwise. + + This function always succeeds. */ +PyAPI_FUNC(int) PyAIter_Check(PyObject *); + +/* Takes an iterator object and calls its tp_iternext slot, + returning the next value. + + If the iterator is exhausted, this returns NULL without setting an + exception. + + NULL with an exception means an error occurred. */ +PyAPI_FUNC(PyObject *) PyIter_Next(PyObject *); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030A0000 + +/* Takes generator, coroutine or iterator object and sends the value into it. + Returns: + - PYGEN_RETURN (0) if generator has returned. + 'result' parameter is filled with return value + - PYGEN_ERROR (-1) if exception was raised. + 'result' parameter is NULL + - PYGEN_NEXT (1) if generator has yielded. + 'result' parameter is filled with yielded value. */ +PyAPI_FUNC(PySendResult) PyIter_Send(PyObject *, PyObject *, PyObject **); +#endif + + +/* === Number Protocol ================================================== */ + +/* Returns 1 if the object 'o' provides numeric protocols, and 0 otherwise. + + This function always succeeds. */ +PyAPI_FUNC(int) PyNumber_Check(PyObject *o); + +/* Returns the result of adding o1 and o2, or NULL on failure. + + This is the equivalent of the Python expression: o1 + o2. */ +PyAPI_FUNC(PyObject *) PyNumber_Add(PyObject *o1, PyObject *o2); + +/* Returns the result of subtracting o2 from o1, or NULL on failure. + + This is the equivalent of the Python expression: o1 - o2. */ +PyAPI_FUNC(PyObject *) PyNumber_Subtract(PyObject *o1, PyObject *o2); + +/* Returns the result of multiplying o1 and o2, or NULL on failure. + + This is the equivalent of the Python expression: o1 * o2. */ +PyAPI_FUNC(PyObject *) PyNumber_Multiply(PyObject *o1, PyObject *o2); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 +/* This is the equivalent of the Python expression: o1 @ o2. */ +PyAPI_FUNC(PyObject *) PyNumber_MatrixMultiply(PyObject *o1, PyObject *o2); +#endif + +/* Returns the result of dividing o1 by o2 giving an integral result, + or NULL on failure. + + This is the equivalent of the Python expression: o1 // o2. */ +PyAPI_FUNC(PyObject *) PyNumber_FloorDivide(PyObject *o1, PyObject *o2); + +/* Returns the result of dividing o1 by o2 giving a float result, or NULL on + failure. + + This is the equivalent of the Python expression: o1 / o2. */ +PyAPI_FUNC(PyObject *) PyNumber_TrueDivide(PyObject *o1, PyObject *o2); + +/* Returns the remainder of dividing o1 by o2, or NULL on failure. + + This is the equivalent of the Python expression: o1 % o2. */ +PyAPI_FUNC(PyObject *) PyNumber_Remainder(PyObject *o1, PyObject *o2); + +/* See the built-in function divmod. + + Returns NULL on failure. + + This is the equivalent of the Python expression: divmod(o1, o2). */ +PyAPI_FUNC(PyObject *) PyNumber_Divmod(PyObject *o1, PyObject *o2); + +/* See the built-in function pow. Returns NULL on failure. + + This is the equivalent of the Python expression: pow(o1, o2, o3), + where o3 is optional. */ +PyAPI_FUNC(PyObject *) PyNumber_Power(PyObject *o1, PyObject *o2, + PyObject *o3); + +/* Returns the negation of o on success, or NULL on failure. + + This is the equivalent of the Python expression: -o. */ +PyAPI_FUNC(PyObject *) PyNumber_Negative(PyObject *o); + +/* Returns the positive of o on success, or NULL on failure. + + This is the equivalent of the Python expression: +o. */ +PyAPI_FUNC(PyObject *) PyNumber_Positive(PyObject *o); + +/* Returns the absolute value of 'o', or NULL on failure. + + This is the equivalent of the Python expression: abs(o). */ +PyAPI_FUNC(PyObject *) PyNumber_Absolute(PyObject *o); + +/* Returns the bitwise negation of 'o' on success, or NULL on failure. + + This is the equivalent of the Python expression: ~o. */ +PyAPI_FUNC(PyObject *) PyNumber_Invert(PyObject *o); + +/* Returns the result of left shifting o1 by o2 on success, or NULL on failure. + + This is the equivalent of the Python expression: o1 << o2. */ +PyAPI_FUNC(PyObject *) PyNumber_Lshift(PyObject *o1, PyObject *o2); + +/* Returns the result of right shifting o1 by o2 on success, or NULL on + failure. + + This is the equivalent of the Python expression: o1 >> o2. */ +PyAPI_FUNC(PyObject *) PyNumber_Rshift(PyObject *o1, PyObject *o2); + +/* Returns the result of bitwise and of o1 and o2 on success, or NULL on + failure. + + This is the equivalent of the Python expression: o1 & o2. */ +PyAPI_FUNC(PyObject *) PyNumber_And(PyObject *o1, PyObject *o2); + +/* Returns the bitwise exclusive or of o1 by o2 on success, or NULL on failure. + + This is the equivalent of the Python expression: o1 ^ o2. */ +PyAPI_FUNC(PyObject *) PyNumber_Xor(PyObject *o1, PyObject *o2); + +/* Returns the result of bitwise or on o1 and o2 on success, or NULL on + failure. + + 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 the object 'o' converted to a Python int, or NULL with an exception + raised on failure. */ +PyAPI_FUNC(PyObject *) PyNumber_Index(PyObject *o); + +/* Returns the object 'o' converted to Py_ssize_t by going through + PyNumber_Index() first. + + If an overflow error occurs while converting the int to Py_ssize_t, then the + second argument 'exc' is the error-type to return. If it is NULL, then the + overflow error is cleared and the value is clipped. */ +PyAPI_FUNC(Py_ssize_t) PyNumber_AsSsize_t(PyObject *o, PyObject *exc); + +/* Returns the object 'o' converted to an integer object on success, or NULL + on failure. + + This is the equivalent of the Python expression: int(o). */ +PyAPI_FUNC(PyObject *) PyNumber_Long(PyObject *o); + +/* Returns the object 'o' converted to a float object on success, or NULL + on failure. + + This is the equivalent of the Python expression: float(o). */ +PyAPI_FUNC(PyObject *) PyNumber_Float(PyObject *o); + + +/* --- In-place variants of (some of) the above number protocol functions -- */ + +/* Returns the result of adding o2 to o1, possibly in-place, or NULL + on failure. + + This is the equivalent of the Python expression: o1 += o2. */ +PyAPI_FUNC(PyObject *) PyNumber_InPlaceAdd(PyObject *o1, PyObject *o2); + +/* Returns the result of subtracting o2 from o1, possibly in-place or + NULL on failure. + + This is the equivalent of the Python expression: o1 -= o2. */ +PyAPI_FUNC(PyObject *) PyNumber_InPlaceSubtract(PyObject *o1, PyObject *o2); + +/* Returns the result of multiplying o1 by o2, possibly in-place, or NULL on + failure. + + This is the equivalent of the Python expression: o1 *= o2. */ +PyAPI_FUNC(PyObject *) PyNumber_InPlaceMultiply(PyObject *o1, PyObject *o2); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 +/* This is the equivalent of the Python expression: o1 @= o2. */ +PyAPI_FUNC(PyObject *) PyNumber_InPlaceMatrixMultiply(PyObject *o1, PyObject *o2); +#endif + +/* Returns the result of dividing o1 by o2 giving an integral result, possibly + in-place, or NULL on failure. + + This is the equivalent of the Python expression: o1 /= o2. */ +PyAPI_FUNC(PyObject *) PyNumber_InPlaceFloorDivide(PyObject *o1, + PyObject *o2); + +/* Returns the result of dividing o1 by o2 giving a float result, possibly + in-place, or null on failure. + + This is the equivalent of the Python expression: o1 /= o2. */ +PyAPI_FUNC(PyObject *) PyNumber_InPlaceTrueDivide(PyObject *o1, + PyObject *o2); + +/* Returns the remainder of dividing o1 by o2, possibly in-place, or NULL on + failure. + + This is the equivalent of the Python expression: o1 %= o2. */ +PyAPI_FUNC(PyObject *) PyNumber_InPlaceRemainder(PyObject *o1, PyObject *o2); + +/* Returns the result of raising o1 to the power of o2, possibly in-place, + or NULL on failure. + + This is the equivalent of the Python expression: o1 **= o2, + or o1 = pow(o1, o2, o3) if o3 is present. */ +PyAPI_FUNC(PyObject *) PyNumber_InPlacePower(PyObject *o1, PyObject *o2, + PyObject *o3); + +/* Returns the result of left shifting o1 by o2, possibly in-place, or NULL + on failure. + + This is the equivalent of the Python expression: o1 <<= o2. */ +PyAPI_FUNC(PyObject *) PyNumber_InPlaceLshift(PyObject *o1, PyObject *o2); + +/* Returns the result of right shifting o1 by o2, possibly in-place or NULL + on failure. + + This is the equivalent of the Python expression: o1 >>= o2. */ +PyAPI_FUNC(PyObject *) PyNumber_InPlaceRshift(PyObject *o1, PyObject *o2); + +/* Returns the result of bitwise and of o1 and o2, possibly in-place, or NULL + on failure. + + This is the equivalent of the Python expression: o1 &= o2. */ +PyAPI_FUNC(PyObject *) PyNumber_InPlaceAnd(PyObject *o1, PyObject *o2); + +/* Returns the bitwise exclusive or of o1 by o2, possibly in-place, or NULL + on failure. + + This is the equivalent of the Python expression: o1 ^= o2. */ +PyAPI_FUNC(PyObject *) PyNumber_InPlaceXor(PyObject *o1, PyObject *o2); + +/* Returns the result of bitwise or of o1 and o2, possibly in-place, + or NULL on failure. + + This is the equivalent of the Python expression: o1 |= o2. */ +PyAPI_FUNC(PyObject *) PyNumber_InPlaceOr(PyObject *o1, PyObject *o2); + +/* Returns the integer n converted to a string with a base, with a base + marker of 0b, 0o or 0x prefixed if applicable. + + If n is not an int object, it is converted with PyNumber_Index first. */ +PyAPI_FUNC(PyObject *) PyNumber_ToBase(PyObject *n, int base); + + +/* === Sequence protocol ================================================ */ + +/* Return 1 if the object provides sequence protocol, and zero + otherwise. + + This function always succeeds. */ +PyAPI_FUNC(int) PySequence_Check(PyObject *o); + +/* Return the size of sequence object o, or -1 on failure. */ +PyAPI_FUNC(Py_ssize_t) PySequence_Size(PyObject *o); + +/* For DLL compatibility */ +#undef PySequence_Length +PyAPI_FUNC(Py_ssize_t) PySequence_Length(PyObject *o); +#define PySequence_Length PySequence_Size + + +/* Return the concatenation of o1 and o2 on success, and NULL on failure. + + This is the equivalent of the Python expression: o1 + o2. */ +PyAPI_FUNC(PyObject *) PySequence_Concat(PyObject *o1, PyObject *o2); + +/* Return the result of repeating sequence object 'o' 'count' times, + or NULL on failure. + + This is the equivalent of the Python expression: o * count. */ +PyAPI_FUNC(PyObject *) PySequence_Repeat(PyObject *o, Py_ssize_t count); + +/* Return the ith element of o, or NULL on failure. + + This is the equivalent of the Python expression: o[i]. */ +PyAPI_FUNC(PyObject *) PySequence_GetItem(PyObject *o, Py_ssize_t i); + +/* Return the slice of sequence object o between i1 and i2, or NULL on failure. + + This is the equivalent of the Python expression: o[i1:i2]. */ +PyAPI_FUNC(PyObject *) PySequence_GetSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2); + +/* Assign object 'v' to the ith element of the sequence 'o'. Raise an exception + and return -1 on failure; return 0 on success. + + This is the equivalent of the Python statement o[i] = v. */ +PyAPI_FUNC(int) PySequence_SetItem(PyObject *o, Py_ssize_t i, PyObject *v); + +/* Delete the 'i'-th element of the sequence 'v'. Returns -1 on failure. + + This is the equivalent of the Python statement: del o[i]. */ +PyAPI_FUNC(int) PySequence_DelItem(PyObject *o, Py_ssize_t i); + +/* Assign the sequence object 'v' to the slice in sequence object 'o', + from 'i1' to 'i2'. Returns -1 on failure. + + This is the equivalent of the Python statement: o[i1:i2] = v. */ +PyAPI_FUNC(int) PySequence_SetSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2, + PyObject *v); + +/* Delete the slice in sequence object 'o' from 'i1' to 'i2'. + Returns -1 on failure. + + This is the equivalent of the Python statement: del o[i1:i2]. */ +PyAPI_FUNC(int) PySequence_DelSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2); + +/* Returns the sequence 'o' as a tuple on success, and NULL on failure. + + This is equivalent to the Python expression: tuple(o). */ +PyAPI_FUNC(PyObject *) PySequence_Tuple(PyObject *o); + +/* Returns the sequence 'o' as a list on success, and NULL on failure. + This is equivalent to the Python expression: list(o) */ +PyAPI_FUNC(PyObject *) PySequence_List(PyObject *o); + +/* Return the sequence 'o' as a list, unless it's already a tuple or list. + + Use PySequence_Fast_GET_ITEM to access the members of this list, and + PySequence_Fast_GET_SIZE to get its length. + + Returns NULL on failure. If the object does not support iteration, raises a + TypeError exception with 'm' as the message text. */ +PyAPI_FUNC(PyObject *) PySequence_Fast(PyObject *o, const char* m); + +/* Return the size of the sequence 'o', assuming that 'o' was returned by + PySequence_Fast and is not NULL. */ +#define PySequence_Fast_GET_SIZE(o) \ + (PyList_Check(o) ? PyList_GET_SIZE(o) : PyTuple_GET_SIZE(o)) + +/* Return the 'i'-th element of the sequence 'o', assuming that o was returned + by PySequence_Fast, and that i is within bounds. */ +#define PySequence_Fast_GET_ITEM(o, i)\ + (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 */ +#define PySequence_Fast_ITEMS(sf) \ + (PyList_Check(sf) ? ((PyListObject *)(sf))->ob_item \ + : ((PyTupleObject *)(sf))->ob_item) + +/* Return the number of occurrences on value on 'o', that is, return + the number of keys for which o[key] == value. + + On failure, return -1. This is equivalent to the Python expression: + o.count(value). */ +PyAPI_FUNC(Py_ssize_t) PySequence_Count(PyObject *o, PyObject *value); + +/* Return 1 if 'ob' is in the sequence 'seq'; 0 if 'ob' is not in the sequence + 'seq'; -1 on error. + + Use __contains__ if possible, else _PySequence_IterSearch(). */ +PyAPI_FUNC(int) PySequence_Contains(PyObject *seq, PyObject *ob); + +/* For DLL-level backwards compatibility */ +#undef PySequence_In +/* Determine if the sequence 'o' contains 'value'. If an item in 'o' is equal + to 'value', return 1, otherwise return 0. On error, return -1. + + This is equivalent to the Python expression: value in o. */ +PyAPI_FUNC(int) PySequence_In(PyObject *o, PyObject *value); + +/* For source-level backwards compatibility */ +#define PySequence_In PySequence_Contains + + +/* Return the first index for which o[i] == value. + On error, return -1. + + This is equivalent to the Python expression: o.index(value). */ +PyAPI_FUNC(Py_ssize_t) PySequence_Index(PyObject *o, PyObject *value); + + +/* --- In-place versions of some of the above Sequence functions --- */ + +/* Append sequence 'o2' to sequence 'o1', in-place when possible. Return the + resulting object, which could be 'o1', or NULL on failure. + + This is the equivalent of the Python expression: o1 += o2. */ +PyAPI_FUNC(PyObject *) PySequence_InPlaceConcat(PyObject *o1, PyObject *o2); + +/* Repeat sequence 'o' by 'count', in-place when possible. Return the resulting + object, which could be 'o', or NULL on failure. + + This is the equivalent of the Python expression: o1 *= count. */ +PyAPI_FUNC(PyObject *) PySequence_InPlaceRepeat(PyObject *o, Py_ssize_t count); + + +/* === Mapping protocol ================================================= */ + +/* Return 1 if the object provides mapping protocol, and 0 otherwise. + + This function always succeeds. */ +PyAPI_FUNC(int) PyMapping_Check(PyObject *o); + +/* Returns the number of keys in mapping object 'o' on success, and -1 on + failure. This is equivalent to the Python expression: len(o). */ +PyAPI_FUNC(Py_ssize_t) PyMapping_Size(PyObject *o); + +/* For DLL compatibility */ +#undef PyMapping_Length +PyAPI_FUNC(Py_ssize_t) PyMapping_Length(PyObject *o); +#define PyMapping_Length PyMapping_Size + + +/* Implemented as a macro: + + int PyMapping_DelItemString(PyObject *o, const char *key); + + Remove the mapping for the string 'key' from the mapping 'o'. Returns -1 on + failure. + + This is equivalent to the Python statement: del o[key]. */ +#define PyMapping_DelItemString(O, K) PyObject_DelItemString((O), (K)) + +/* Implemented as a macro: + + int PyMapping_DelItem(PyObject *o, PyObject *key); + + Remove the mapping for the object 'key' from the mapping object 'o'. + Returns -1 on failure. + + This is equivalent to the Python statement: del o[key]. */ +#define PyMapping_DelItem(O, K) PyObject_DelItem((O), (K)) + +/* On success, return 1 if the mapping object 'o' has the key 'key', + and 0 otherwise. + + This is equivalent to the Python expression: key in o. + + This function always succeeds. */ +PyAPI_FUNC(int) PyMapping_HasKeyString(PyObject *o, const char *key); + +/* Return 1 if the mapping object has the key 'key', and 0 otherwise. + + This is equivalent to the Python expression: key in o. + + This function always succeeds. */ +PyAPI_FUNC(int) PyMapping_HasKey(PyObject *o, PyObject *key); + +/* Return 1 if the mapping object has the key 'key', and 0 otherwise. + This is equivalent to the Python expression: key in o. + On failure, return -1. */ + +PyAPI_FUNC(int) PyMapping_HasKeyWithError(PyObject *o, PyObject *key); + +/* Return 1 if the mapping object has the key 'key', and 0 otherwise. + This is equivalent to the Python expression: key in o. + On failure, return -1. */ + +PyAPI_FUNC(int) PyMapping_HasKeyStringWithError(PyObject *o, const char *key); + +/* On success, return a list or tuple of the keys in mapping object 'o'. + On failure, return NULL. */ +PyAPI_FUNC(PyObject *) PyMapping_Keys(PyObject *o); + +/* On success, return a list or tuple of the values in mapping object 'o'. + On failure, return NULL. */ +PyAPI_FUNC(PyObject *) PyMapping_Values(PyObject *o); + +/* On success, return a list or tuple of the items in mapping object 'o', + where each item is a tuple containing a key-value pair. On failure, return + NULL. */ +PyAPI_FUNC(PyObject *) PyMapping_Items(PyObject *o); + +/* Return element of 'o' corresponding to the string 'key' or NULL on failure. + + This is the equivalent of the Python expression: o[key]. */ +PyAPI_FUNC(PyObject *) PyMapping_GetItemString(PyObject *o, + const char *key); + +/* Variants of PyObject_GetItem() and PyMapping_GetItemString() which don't + raise KeyError if the key is not found. + + If the key is found, return 1 and set *result to a new strong + reference to the corresponding value. + If the key is not found, return 0 and set *result to NULL; + the KeyError is silenced. + If an error other than KeyError is raised, return -1 and + set *result to NULL. +*/ +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030d0000 +PyAPI_FUNC(int) PyMapping_GetOptionalItem(PyObject *, PyObject *, PyObject **); +PyAPI_FUNC(int) PyMapping_GetOptionalItemString(PyObject *, const char *, PyObject **); +#endif + +/* Map the string 'key' to the value 'v' in the mapping 'o'. + Returns -1 on failure. + + This is the equivalent of the Python statement: o[key]=v. */ +PyAPI_FUNC(int) PyMapping_SetItemString(PyObject *o, const char *key, + PyObject *value); + +/* isinstance(object, typeorclass) */ +PyAPI_FUNC(int) PyObject_IsInstance(PyObject *object, PyObject *typeorclass); + +/* issubclass(object, 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 + +#ifdef __cplusplus +} +#endif +#endif /* Py_ABSTRACTOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/bltinmodule.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/bltinmodule.h new file mode 100644 index 000000000..868c9e644 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/bltinmodule.h @@ -0,0 +1,14 @@ +#ifndef Py_BLTINMODULE_H +#define Py_BLTINMODULE_H +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_DATA(PyTypeObject) PyFilter_Type; +PyAPI_DATA(PyTypeObject) PyMap_Type; +PyAPI_DATA(PyTypeObject) PyZip_Type; + +#ifdef __cplusplus +} +#endif +#endif /* !Py_BLTINMODULE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/boolobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/boolobject.h new file mode 100644 index 000000000..3037e61bb --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/boolobject.h @@ -0,0 +1,47 @@ +/* Boolean object interface */ + +#ifndef Py_BOOLOBJECT_H +#define Py_BOOLOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + + +// PyBool_Type is declared by object.h + +#define PyBool_Check(x) Py_IS_TYPE((x), &PyBool_Type) + +/* Py_False and Py_True are the only two bools in existence. */ + +/* Don't use these directly */ +PyAPI_DATA(PyLongObject) _Py_FalseStruct; +PyAPI_DATA(PyLongObject) _Py_TrueStruct; + +/* Use these macros */ +#if defined(Py_LIMITED_API) && Py_LIMITED_API+0 >= 0x030D0000 +# define Py_False Py_GetConstantBorrowed(Py_CONSTANT_FALSE) +# define Py_True Py_GetConstantBorrowed(Py_CONSTANT_TRUE) +#else +# define Py_False _PyObject_CAST(&_Py_FalseStruct) +# define Py_True _PyObject_CAST(&_Py_TrueStruct) +#endif + +// Test if an object is the True singleton, the same as "x is True" in Python. +PyAPI_FUNC(int) Py_IsTrue(PyObject *x); +#define Py_IsTrue(x) Py_Is((x), Py_True) + +// Test if an object is the False singleton, the same as "x is False" in Python. +PyAPI_FUNC(int) Py_IsFalse(PyObject *x); +#define Py_IsFalse(x) Py_Is((x), Py_False) + +/* Macros for returning Py_True or Py_False, respectively */ +#define Py_RETURN_TRUE return Py_True +#define Py_RETURN_FALSE return Py_False + +/* Function to return a bool from a C long */ +PyAPI_FUNC(PyObject *) PyBool_FromLong(long); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_BOOLOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/bytearrayobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/bytearrayobject.h new file mode 100644 index 000000000..3d53fdba6 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/bytearrayobject.h @@ -0,0 +1,44 @@ +/* ByteArray object interface */ + +#ifndef Py_BYTEARRAYOBJECT_H +#define Py_BYTEARRAYOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +/* Type PyByteArrayObject represents a mutable array of bytes. + * The Python API is that of a sequence; + * the bytes are mapped to ints in [0, 256). + * Bytes are not characters; they may be used to encode characters. + * The only way to go between bytes and str/unicode is via encoding + * and decoding. + * For the convenience of C programmers, the bytes type is considered + * to contain a char pointer, not an unsigned char pointer. + */ + +/* Type object */ +PyAPI_DATA(PyTypeObject) PyByteArray_Type; +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) + +/* Direct API functions */ +PyAPI_FUNC(PyObject *) PyByteArray_FromObject(PyObject *); +PyAPI_FUNC(PyObject *) PyByteArray_Concat(PyObject *, PyObject *); +PyAPI_FUNC(PyObject *) PyByteArray_FromStringAndSize(const char *, Py_ssize_t); +PyAPI_FUNC(Py_ssize_t) PyByteArray_Size(PyObject *); +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 +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_BYTEARRAYOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/bytesobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/bytesobject.h new file mode 100644 index 000000000..c5a24195b --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/bytesobject.h @@ -0,0 +1,66 @@ +// Bytes object interface + +#ifndef Py_BYTESOBJECT_H +#define Py_BYTESOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +/* +Type PyBytesObject represents a byte string. An extra zero byte is +reserved at the end to ensure it is zero-terminated, but a size is +present so strings with null bytes in them can be represented. This +is an immutable object type. + +There are functions to create new bytes objects, to test +an object for bytes-ness, and to get the +byte string value. The latter function returns a null pointer +if the object is not of the proper type. +There is a variant that takes an explicit size as well as a +variant that assumes a zero-terminated string. Note that none of the +functions should be applied to NULL pointer. +*/ + +PyAPI_DATA(PyTypeObject) PyBytes_Type; +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) + +PyAPI_FUNC(PyObject *) PyBytes_FromStringAndSize(const char *, Py_ssize_t); +PyAPI_FUNC(PyObject *) PyBytes_FromString(const char *); +PyAPI_FUNC(PyObject *) PyBytes_FromObject(PyObject *); +PyAPI_FUNC(PyObject *) PyBytes_FromFormatV(const char*, va_list) + Py_GCC_ATTRIBUTE((format(printf, 1, 0))); +PyAPI_FUNC(PyObject *) PyBytes_FromFormat(const char*, ...) + Py_GCC_ATTRIBUTE((format(printf, 1, 2))); +PyAPI_FUNC(Py_ssize_t) PyBytes_Size(PyObject *); +PyAPI_FUNC(char *) PyBytes_AsString(PyObject *); +PyAPI_FUNC(PyObject *) PyBytes_Repr(PyObject *, int); +PyAPI_FUNC(void) PyBytes_Concat(PyObject **, PyObject *); +PyAPI_FUNC(void) PyBytes_ConcatAndDel(PyObject **, PyObject *); +PyAPI_FUNC(PyObject *) PyBytes_DecodeEscape(const char *, Py_ssize_t, + const char *, Py_ssize_t, + const char *); + +/* Provides access to the internal data buffer and size of a bytes object. + Passing NULL as len parameter will force the string buffer to be + 0-terminated (passing a string with embedded NUL characters will + cause an exception). */ +PyAPI_FUNC(int) PyBytes_AsStringAndSize( + PyObject *obj, /* bytes object */ + char **s, /* pointer to buffer variable */ + Py_ssize_t *len /* pointer to length variable or NULL */ + ); + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_BYTESOBJECT_H +# include "cpython/bytesobject.h" +# undef Py_CPYTHON_BYTESOBJECT_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_BYTESOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/ceval.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/ceval.h new file mode 100644 index 000000000..1ec746c37 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/ceval.h @@ -0,0 +1,145 @@ +/* Interface to random parts in ceval.c */ + +#ifndef Py_CEVAL_H +#define Py_CEVAL_H +#ifdef __cplusplus +extern "C" { +#endif + + +PyAPI_FUNC(PyObject *) PyEval_EvalCode(PyObject *, PyObject *, PyObject *); + +PyAPI_FUNC(PyObject *) PyEval_EvalCodeEx(PyObject *co, + PyObject *globals, + PyObject *locals, + PyObject *const *args, int argc, + PyObject *const *kwds, int kwdc, + PyObject *const *defs, int defc, + PyObject *kwdefs, PyObject *closure); + +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(PyObject *) PyEval_GetFrameBuiltins(void); +PyAPI_FUNC(PyObject *) PyEval_GetFrameGlobals(void); +PyAPI_FUNC(PyObject *) PyEval_GetFrameLocals(void); + +PyAPI_FUNC(int) Py_AddPendingCall(int (*func)(void *), void *arg); +PyAPI_FUNC(int) Py_MakePendingCalls(void); + +/* Protection against deeply nested recursive calls + + In Python 3.0, this protection has two levels: + * normal anti-recursion protection is triggered when the recursion level + exceeds the current recursion limit. It raises a RecursionError, and sets + the "overflowed" flag in the thread state structure. This flag + temporarily *disables* the normal protection; this allows cleanup code + to potentially outgrow the recursion limit while processing the + RecursionError. + * "last chance" anti-recursion protection is triggered when the recursion + level exceeds "current recursion limit + 50". By construction, this + protection can only be triggered when the "overflowed" flag is set. It + means the cleanup code has itself gone into an infinite loop, or the + RecursionError has been mistakingly ignored. When this protection is + triggered, the interpreter aborts with a Fatal Error. + + In addition, the "overflowed" flag is automatically reset when the + recursion level drops below "current recursion limit - 50". This heuristic + is meant to ensure that the normal anti-recursion protection doesn't get + disabled too long. + + Please note: this scheme has its own limitations. See: + http://mail.python.org/pipermail/python-dev/2008-August/082106.html + for some observations. +*/ +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(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); + +/* Interface for threads. + + A module that plans to do a blocking system call (or something else + that lasts a long time and doesn't touch Python data) can allow other + threads to run as follows: + + ...preparations here... + Py_BEGIN_ALLOW_THREADS + ...blocking system call here... + Py_END_ALLOW_THREADS + ...interpret result here... + + The Py_BEGIN_ALLOW_THREADS/Py_END_ALLOW_THREADS pair expands to a + {}-surrounded block. + To leave the block in the middle (e.g., with return), you must insert + a line containing Py_BLOCK_THREADS before the return, e.g. + + if (...premature_exit...) { + Py_BLOCK_THREADS + PyErr_SetFromErrno(PyExc_OSError); + return NULL; + } + + An alternative is: + + Py_BLOCK_THREADS + if (...premature_exit...) { + PyErr_SetFromErrno(PyExc_OSError); + return NULL; + } + Py_UNBLOCK_THREADS + + For convenience, that the value of 'errno' is restored across + Py_END_ALLOW_THREADS and Py_BLOCK_THREADS. + + WARNING: NEVER NEST CALLS TO Py_BEGIN_ALLOW_THREADS AND + Py_END_ALLOW_THREADS!!! + + Note that not yet all candidates have been converted to use this + mechanism! +*/ + +PyAPI_FUNC(PyThreadState *) PyEval_SaveThread(void); +PyAPI_FUNC(void) PyEval_RestoreThread(PyThreadState *); + +Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void); + +PyAPI_FUNC(void) PyEval_AcquireThread(PyThreadState *tstate); +PyAPI_FUNC(void) PyEval_ReleaseThread(PyThreadState *tstate); + +#define Py_BEGIN_ALLOW_THREADS { \ + PyThreadState *_save; \ + _save = PyEval_SaveThread(); +#define Py_BLOCK_THREADS PyEval_RestoreThread(_save); +#define Py_UNBLOCK_THREADS _save = PyEval_SaveThread(); +#define Py_END_ALLOW_THREADS PyEval_RestoreThread(_save); \ + } + +/* Masks and values used by FORMAT_VALUE opcode. */ +#define FVC_MASK 0x3 +#define FVC_NONE 0x0 +#define FVC_STR 0x1 +#define FVC_REPR 0x2 +#define FVC_ASCII 0x3 +#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 + +#ifdef __cplusplus +} +#endif +#endif /* !Py_CEVAL_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/codecs.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/codecs.h new file mode 100644 index 000000000..512a3c723 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/codecs.h @@ -0,0 +1,176 @@ +#ifndef Py_CODECREGISTRY_H +#define Py_CODECREGISTRY_H +#ifdef __cplusplus +extern "C" { +#endif + +/* ------------------------------------------------------------------------ + + Python Codec Registry and support functions + + +Written by Marc-Andre Lemburg (mal@lemburg.com). + +Copyright (c) Corporation for National Research Initiatives. + + ------------------------------------------------------------------------ */ + +/* 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. + + The search_function's refcount is incremented by this function. */ + +PyAPI_FUNC(int) PyCodec_Register( + PyObject *search_function + ); + +/* Unregister a codec search function and clear the registry's cache. + If the search function is not registered, do nothing. + Return 0 on success. Raise an exception and return -1 on error. */ + +PyAPI_FUNC(int) PyCodec_Unregister( + PyObject *search_function + ); + +/* Codec registry encoding check API. + + Returns 1/0 depending on whether there is a registered codec for + the given encoding. + +*/ + +PyAPI_FUNC(int) PyCodec_KnownEncoding( + const char *encoding + ); + +/* Generic codec based encoding API. + + object 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 in case no encoder can be found. + + */ + +PyAPI_FUNC(PyObject *) PyCodec_Encode( + PyObject *object, + const char *encoding, + const char *errors + ); + +/* Generic codec based decoding API. + + object 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 in case no encoder can be found. + + */ + +PyAPI_FUNC(PyObject *) PyCodec_Decode( + PyObject *object, + const char *encoding, + const char *errors + ); + +// --- Codec Lookup APIs -------------------------------------------------- + +/* Codec registry lookup API. + + Looks up the given encoding and returns a CodecInfo object with + function attributes which implement the different aspects of + processing the encoding. + + The encoding string is looked up converted to all lower-case + characters. This makes encodings looked up through this mechanism + effectively case-insensitive. + + If no codec is found, a KeyError is set and NULL returned. + + As side effect, this tries to load the encodings package, if not + yet done. This is part of the lazy load strategy for the encodings + package. + */ + +/* Get an encoder function for the given encoding. */ + +PyAPI_FUNC(PyObject *) PyCodec_Encoder(const char *encoding); + +/* Get a decoder function for the given encoding. */ + +PyAPI_FUNC(PyObject *) PyCodec_Decoder(const char *encoding); + +/* Get an IncrementalEncoder object for the given encoding. */ + +PyAPI_FUNC(PyObject *) PyCodec_IncrementalEncoder( + const char *encoding, + const char *errors); + +/* Get an IncrementalDecoder object function for the given encoding. */ + +PyAPI_FUNC(PyObject *) PyCodec_IncrementalDecoder( + const char *encoding, + const char *errors); + +/* Get a StreamReader factory function for the given encoding. */ + +PyAPI_FUNC(PyObject *) PyCodec_StreamReader( + const char *encoding, + PyObject *stream, + const char *errors); + +/* Get a StreamWriter factory function for the given encoding. */ + +PyAPI_FUNC(PyObject *) PyCodec_StreamWriter( + const char *encoding, + PyObject *stream, + const char *errors); + +/* Unicode encoding error handling callback registry API */ + +/* Register the error handling callback function error under the given + name. This function will be called by the codec when it encounters + unencodable characters/undecodable bytes and doesn't know the + callback name, when name is specified as the error parameter + in the call to the encode/decode function. + Return 0 on success, -1 on error */ +PyAPI_FUNC(int) PyCodec_RegisterError(const char *name, PyObject *error); + +/* Lookup the error handling callback function registered under the given + name. As a special case NULL can be passed, in which case + the error handling callback for "strict" will be returned. */ +PyAPI_FUNC(PyObject *) PyCodec_LookupError(const char *name); + +/* raise exc as an exception */ +PyAPI_FUNC(PyObject *) PyCodec_StrictErrors(PyObject *exc); + +/* ignore the unicode error, skipping the faulty input */ +PyAPI_FUNC(PyObject *) PyCodec_IgnoreErrors(PyObject *exc); + +/* replace the unicode encode error with ? or U+FFFD */ +PyAPI_FUNC(PyObject *) PyCodec_ReplaceErrors(PyObject *exc); + +/* replace the unicode encode error with XML character references */ +PyAPI_FUNC(PyObject *) PyCodec_XMLCharRefReplaceErrors(PyObject *exc); + +/* replace the unicode encode error with backslash escapes (\x, \u and \U) */ +PyAPI_FUNC(PyObject *) PyCodec_BackslashReplaceErrors(PyObject *exc); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 +/* replace the unicode encode error with backslash escapes (\N, \x, \u and \U) */ +PyAPI_FUNC(PyObject *) PyCodec_NameReplaceErrors(PyObject *exc); +#endif + +#ifndef Py_LIMITED_API +PyAPI_DATA(const char *) Py_hexdigits; +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_CODECREGISTRY_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/compile.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/compile.h new file mode 100644 index 000000000..52d0bc76c --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/compile.h @@ -0,0 +1,22 @@ +#ifndef Py_COMPILE_H +#define Py_COMPILE_H +#ifdef __cplusplus +extern "C" { +#endif + +/* 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 + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_COMPILE_H +# include "cpython/compile.h" +# undef Py_CPYTHON_COMPILE_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_COMPILE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/complexobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/complexobject.h new file mode 100644 index 000000000..ebe49a832 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/complexobject.h @@ -0,0 +1,30 @@ +/* Complex number structure */ + +#ifndef Py_COMPLEXOBJECT_H +#define Py_COMPLEXOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +/* Complex object interface */ + +PyAPI_DATA(PyTypeObject) PyComplex_Type; + +#define PyComplex_Check(op) PyObject_TypeCheck((op), &PyComplex_Type) +#define PyComplex_CheckExact(op) Py_IS_TYPE((op), &PyComplex_Type) + +PyAPI_FUNC(PyObject *) PyComplex_FromDoubles(double real, double imag); + +PyAPI_FUNC(double) PyComplex_RealAsDouble(PyObject *op); +PyAPI_FUNC(double) PyComplex_ImagAsDouble(PyObject *op); + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_COMPLEXOBJECT_H +# include "cpython/complexobject.h" +# undef Py_CPYTHON_COMPLEXOBJECT_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_COMPLEXOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/abstract.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/abstract.h new file mode 100644 index 000000000..4e7b7a467 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/abstract.h @@ -0,0 +1,87 @@ +#ifndef Py_CPYTHON_ABSTRACTOBJECT_H +# error "this header file must not be included directly" +#endif + +/* === Object Protocol ================================================== */ + +/* 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, ...); + +/* 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); + + +/* === Vectorcall protocol (PEP 590) ============================= */ + +// PyVectorcall_NARGS() is exported as a function for the stable ABI. +// Here (when we are not using the stable ABI), the name is overridden to +// call a static inline function for best performance. +static inline Py_ssize_t +_PyVectorcall_NARGS(size_t n) +{ + return n & ~PY_VECTORCALL_ARGUMENTS_OFFSET; +} +#define PyVectorcall_NARGS(n) _PyVectorcall_NARGS(n) + +PyAPI_FUNC(vectorcallfunc) PyVectorcall_Function(PyObject *callable); + +// Backwards compatibility aliases (PEP 590) 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); + +PyAPI_FUNC(PyObject *) PyObject_CallOneArg(PyObject *func, PyObject *arg); + +static inline PyObject * +PyObject_CallMethodNoArgs(PyObject *self, PyObject *name) +{ + size_t nargsf = 1 | PY_VECTORCALL_ARGUMENTS_OFFSET; + return PyObject_VectorcallMethod(name, &self, nargsf, _Py_NULL); +} + +static inline PyObject * +PyObject_CallMethodOneArg(PyObject *self, PyObject *name, PyObject *arg) +{ + PyObject *args[2] = {self, arg}; + size_t nargsf = 2 | PY_VECTORCALL_ARGUMENTS_OFFSET; + assert(arg != NULL); + return PyObject_VectorcallMethod(name, args, nargsf, _Py_NULL); +} + +/* 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); + +/* === 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)) ) diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/bytearrayobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/bytearrayobject.h new file mode 100644 index 000000000..9ba176eb2 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/bytearrayobject.h @@ -0,0 +1,34 @@ +#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; + +PyAPI_DATA(char) _PyByteArray_empty_string[]; + +/* Macros and static inline functions, trading safety for speed */ +#define _PyByteArray_CAST(op) \ + (assert(PyByteArray_Check(op)), _Py_CAST(PyByteArrayObject*, op)) + +static inline char* PyByteArray_AS_STRING(PyObject *op) +{ + PyByteArrayObject *self = _PyByteArray_CAST(op); + if (Py_SIZE(self)) { + return self->ob_start; + } + return _PyByteArray_empty_string; +} +#define PyByteArray_AS_STRING(self) PyByteArray_AS_STRING(_PyObject_CAST(self)) + +static inline Py_ssize_t PyByteArray_GET_SIZE(PyObject *op) { + PyByteArrayObject *self = _PyByteArray_CAST(op); + return Py_SIZE(self); +} +#define PyByteArray_GET_SIZE(self) PyByteArray_GET_SIZE(_PyObject_CAST(self)) diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/bytesobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/bytesobject.h new file mode 100644 index 000000000..41537210b --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/bytesobject.h @@ -0,0 +1,37 @@ +#ifndef Py_CPYTHON_BYTESOBJECT_H +# error "this header file must not be included directly" +#endif + +typedef struct { + PyObject_VAR_HEAD + Py_DEPRECATED(3.11) 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 byte string or -1 if not computed yet. + */ +} PyBytesObject; + +PyAPI_FUNC(int) _PyBytes_Resize(PyObject **, Py_ssize_t); + +/* Macros and static inline functions, trading safety for speed */ +#define _PyBytes_CAST(op) \ + (assert(PyBytes_Check(op)), _Py_CAST(PyBytesObject*, op)) + +static inline char* PyBytes_AS_STRING(PyObject *op) +{ + return _PyBytes_CAST(op)->ob_sval; +} +#define PyBytes_AS_STRING(op) PyBytes_AS_STRING(_PyObject_CAST(op)) + +static inline Py_ssize_t PyBytes_GET_SIZE(PyObject *op) { + PyBytesObject *self = _PyBytes_CAST(op); + return Py_SIZE(self); +} +#define PyBytes_GET_SIZE(self) PyBytes_GET_SIZE(_PyObject_CAST(self)) + +/* _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); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/cellobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/cellobject.h new file mode 100644 index 000000000..47a6a4914 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/cellobject.h @@ -0,0 +1,44 @@ +/* Cell object interface */ + +#ifndef Py_LIMITED_API +#ifndef Py_CELLOBJECT_H +#define Py_CELLOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + PyObject_HEAD + /* Content of the cell or NULL when empty */ + PyObject *ob_ref; +} PyCellObject; + +PyAPI_DATA(PyTypeObject) PyCell_Type; + +#define PyCell_Check(op) Py_IS_TYPE((op), &PyCell_Type) + +PyAPI_FUNC(PyObject *) PyCell_New(PyObject *); +PyAPI_FUNC(PyObject *) PyCell_Get(PyObject *); +PyAPI_FUNC(int) PyCell_Set(PyObject *, PyObject *); + +static inline PyObject* PyCell_GET(PyObject *op) { + PyCellObject *cell; + assert(PyCell_Check(op)); + cell = _Py_CAST(PyCellObject*, op); + return cell->ob_ref; +} +#define PyCell_GET(op) PyCell_GET(_PyObject_CAST(op)) + +static inline void PyCell_SET(PyObject *op, PyObject *value) { + PyCellObject *cell; + assert(PyCell_Check(op)); + cell = _Py_CAST(PyCellObject*, op); + cell->ob_ref = value; +} +#define PyCell_SET(op, value) PyCell_SET(_PyObject_CAST(op), (value)) + +#ifdef __cplusplus +} +#endif +#endif /* !Py_TUPLEOBJECT_H */ +#endif /* Py_LIMITED_API */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/ceval.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/ceval.h new file mode 100644 index 000000000..78f740566 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/ceval.h @@ -0,0 +1,25 @@ +#ifndef Py_CPYTHON_CEVAL_H +# error "this header file must not be included directly" +#endif + +PyAPI_FUNC(void) PyEval_SetProfile(Py_tracefunc, PyObject *); +PyAPI_FUNC(void) PyEval_SetProfileAllThreads(Py_tracefunc, PyObject *); +PyAPI_FUNC(void) PyEval_SetTrace(Py_tracefunc, PyObject *); +PyAPI_FUNC(void) PyEval_SetTraceAllThreads(Py_tracefunc, PyObject *); + +/* 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, struct _PyInterpreterFrame *f, int exc); + +PyAPI_FUNC(Py_ssize_t) PyUnstable_Eval_RequestCodeExtraIndex(freefunc); +// Old name -- remove when this API changes: +_Py_DEPRECATED_EXTERNALLY(3.12) static inline Py_ssize_t +_PyEval_RequestCodeExtraIndex(freefunc f) { + return PyUnstable_Eval_RequestCodeExtraIndex(f); +} + +PyAPI_FUNC(int) _PyEval_SliceIndex(PyObject *, Py_ssize_t *); +PyAPI_FUNC(int) _PyEval_SliceIndexNotNone(PyObject *, Py_ssize_t *); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/classobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/classobject.h new file mode 100644 index 000000000..d7c9ddd13 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/classobject.h @@ -0,0 +1,71 @@ +/* Former class object interface -- now only bound methods are here */ + +/* Revealing some structures (not for general use) */ + +#ifndef Py_LIMITED_API +#ifndef Py_CLASSOBJECT_H +#define Py_CLASSOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + PyObject_HEAD + 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; +} PyMethodObject; + +PyAPI_DATA(PyTypeObject) PyMethod_Type; + +#define PyMethod_Check(op) Py_IS_TYPE((op), &PyMethod_Type) + +PyAPI_FUNC(PyObject *) PyMethod_New(PyObject *, PyObject *); + +PyAPI_FUNC(PyObject *) PyMethod_Function(PyObject *); +PyAPI_FUNC(PyObject *) PyMethod_Self(PyObject *); + +#define _PyMethod_CAST(meth) \ + (assert(PyMethod_Check(meth)), _Py_CAST(PyMethodObject*, meth)) + +/* Static inline functions for direct access to these values. + Type checks are *not* done, so use with care. */ +static inline PyObject* PyMethod_GET_FUNCTION(PyObject *meth) { + return _PyMethod_CAST(meth)->im_func; +} +#define PyMethod_GET_FUNCTION(meth) PyMethod_GET_FUNCTION(_PyObject_CAST(meth)) + +static inline PyObject* PyMethod_GET_SELF(PyObject *meth) { + return _PyMethod_CAST(meth)->im_self; +} +#define PyMethod_GET_SELF(meth) PyMethod_GET_SELF(_PyObject_CAST(meth)) + +typedef struct { + PyObject_HEAD + PyObject *func; +} PyInstanceMethodObject; + +PyAPI_DATA(PyTypeObject) PyInstanceMethod_Type; + +#define PyInstanceMethod_Check(op) Py_IS_TYPE((op), &PyInstanceMethod_Type) + +PyAPI_FUNC(PyObject *) PyInstanceMethod_New(PyObject *); +PyAPI_FUNC(PyObject *) PyInstanceMethod_Function(PyObject *); + +#define _PyInstanceMethod_CAST(meth) \ + (assert(PyInstanceMethod_Check(meth)), \ + _Py_CAST(PyInstanceMethodObject*, meth)) + +/* Static inline function for direct access to these values. + Type checks are *not* done, so use with care. */ +static inline PyObject* PyInstanceMethod_GET_FUNCTION(PyObject *meth) { + return _PyInstanceMethod_CAST(meth)->func; +} +#define PyInstanceMethod_GET_FUNCTION(meth) PyInstanceMethod_GET_FUNCTION(_PyObject_CAST(meth)) + +#ifdef __cplusplus +} +#endif +#endif // !Py_CLASSOBJECT_H +#endif // !Py_LIMITED_API diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/code.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/code.h new file mode 100644 index 000000000..58d93fcfc --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/code.h @@ -0,0 +1,357 @@ +/* Definitions for bytecode */ + +#ifndef Py_LIMITED_API +#ifndef Py_CODE_H +#define Py_CODE_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Count of all local monitoring events */ +#define _PY_MONITORING_LOCAL_EVENTS 10 +/* Count of all "real" monitoring events (not derived from other events) */ +#define _PY_MONITORING_UNGROUPED_EVENTS 15 +/* Count of all monitoring events */ +#define _PY_MONITORING_EVENTS 17 + +/* Tables of which tools are active for each monitored event. */ +typedef struct _Py_LocalMonitors { + uint8_t tools[_PY_MONITORING_LOCAL_EVENTS]; +} _Py_LocalMonitors; + +typedef struct _Py_GlobalMonitors { + uint8_t tools[_PY_MONITORING_UNGROUPED_EVENTS]; +} _Py_GlobalMonitors; + + +typedef struct { + PyObject *_co_code; + PyObject *_co_varnames; + PyObject *_co_cellvars; + PyObject *_co_freevars; +} _PyCoCached; + +/* Ancillary data structure used for instrumentation. + Line instrumentation creates an array of + these. One entry per code unit.*/ +typedef struct { + uint8_t original_opcode; + int8_t line_delta; +} _PyCoLineInstrumentationData; + + +typedef struct { + int size; + int capacity; + struct _PyExecutorObject *executors[1]; +} _PyExecutorArray; + +/* Main data structure used for instrumentation. + * This is allocated when needed for instrumentation + */ +typedef struct { + /* Monitoring specific to this code object */ + _Py_LocalMonitors local_monitors; + /* Monitoring that is active on this code object */ + _Py_LocalMonitors active_monitors; + /* The tools that are to be notified for events for the matching code unit */ + uint8_t *tools; + /* Information to support line events */ + _PyCoLineInstrumentationData *lines; + /* The tools that are to be notified for line events for the matching code unit */ + uint8_t *line_tools; + /* Information to support instruction events */ + /* The underlying instructions, which can themselves be instrumented */ + uint8_t *per_instruction_opcodes; + /* The tools that are to be notified for instruction events for the matching code unit */ + uint8_t *per_instruction_tools; +} _PyCoMonitoringData; + +// To avoid repeating ourselves in deepfreeze.py, all PyCodeObject members are +// defined in this macro: +#define _PyCode_DEF(SIZE) { \ + PyObject_VAR_HEAD \ + \ + /* Note only the following fields are used in hash and/or comparisons \ + * \ + * - co_name \ + * - co_argcount \ + * - co_posonlyargcount \ + * - co_kwonlyargcount \ + * - co_nlocals \ + * - co_stacksize \ + * - co_flags \ + * - co_firstlineno \ + * - co_consts \ + * - co_names \ + * - co_localsplusnames \ + * 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. \ + */ \ + \ + /* These fields are set with provided values on new code objects. */ \ + \ + /* The hottest fields (in the eval loop) are grouped here at the top. */ \ + PyObject *co_consts; /* list (constants used) */ \ + PyObject *co_names; /* list of strings (names used) */ \ + PyObject *co_exceptiontable; /* Byte string encoding exception handling \ + table */ \ + int co_flags; /* CO_..., see below */ \ + \ + /* The rest are not so impactful on performance. */ \ + int co_argcount; /* #arguments, except *args */ \ + int co_posonlyargcount; /* #positional only arguments */ \ + int co_kwonlyargcount; /* #keyword only arguments */ \ + int co_stacksize; /* #entries needed for evaluation stack */ \ + int co_firstlineno; /* first source line number */ \ + \ + /* redundant values (derived from co_localsplusnames and \ + co_localspluskinds) */ \ + int co_nlocalsplus; /* number of local + cell + free variables */ \ + int co_framesize; /* Size of frame in words */ \ + int co_nlocals; /* number of local variables */ \ + int co_ncellvars; /* total number of cell variables */ \ + int co_nfreevars; /* number of free variables */ \ + uint32_t co_version; /* version number */ \ + \ + PyObject *co_localsplusnames; /* tuple mapping offsets to names */ \ + PyObject *co_localspluskinds; /* Bytes mapping to local kinds (one byte \ + per variable) */ \ + PyObject *co_filename; /* unicode (where it was loaded from) */ \ + PyObject *co_name; /* unicode (name, for reference) */ \ + PyObject *co_qualname; /* unicode (qualname, for reference) */ \ + PyObject *co_linetable; /* bytes object that holds location info */ \ + PyObject *co_weakreflist; /* to support weakrefs to code objects */ \ + _PyExecutorArray *co_executors; /* executors from optimizer */ \ + _PyCoCached *_co_cached; /* cached co_* attributes */ \ + uintptr_t _co_instrumentation_version; /* current instrumentation version */ \ + _PyCoMonitoringData *_co_monitoring; /* Monitoring data */ \ + int _co_firsttraceable; /* index of first traceable instruction */ \ + /* 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; \ + char co_code_adaptive[(SIZE)]; \ +} + +/* Bytecode object */ +struct PyCodeObject _PyCode_DEF(1); + +/* 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_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 + +#define CO_NO_MONITORING_EVENTS 0x2000000 + +/* 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 21 /* Max static block nesting within a function */ + +PyAPI_DATA(PyTypeObject) PyCode_Type; + +#define PyCode_Check(op) Py_IS_TYPE((op), &PyCode_Type) + +static inline Py_ssize_t PyCode_GetNumFree(PyCodeObject *op) { + assert(PyCode_Check(op)); + return op->co_nfreevars; +} + +static inline int PyUnstable_Code_GetFirstFree(PyCodeObject *op) { + assert(PyCode_Check(op)); + return op->co_nlocalsplus - op->co_nfreevars; +} + +Py_DEPRECATED(3.13) static inline int PyCode_GetFirstFree(PyCodeObject *op) { + return PyUnstable_Code_GetFirstFree(op); +} + +/* Unstable public interface */ +PyAPI_FUNC(PyCodeObject *) PyUnstable_Code_New( + int, int, int, int, int, PyObject *, PyObject *, + PyObject *, PyObject *, PyObject *, PyObject *, + PyObject *, PyObject *, PyObject *, int, PyObject *, + PyObject *); + +PyAPI_FUNC(PyCodeObject *) PyUnstable_Code_NewWithPosOnlyArgs( + int, int, int, int, int, int, PyObject *, PyObject *, + PyObject *, PyObject *, PyObject *, PyObject *, + PyObject *, PyObject *, PyObject *, int, PyObject *, + PyObject *); + /* same as struct above */ +// Old names -- remove when this API changes: +_Py_DEPRECATED_EXTERNALLY(3.12) static inline PyCodeObject * +PyCode_New( + int a, int b, int c, int d, int e, PyObject *f, PyObject *g, + PyObject *h, PyObject *i, PyObject *j, PyObject *k, + PyObject *l, PyObject *m, PyObject *n, int o, PyObject *p, + PyObject *q) +{ + return PyUnstable_Code_New( + a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q); +} +_Py_DEPRECATED_EXTERNALLY(3.12) static inline PyCodeObject * +PyCode_NewWithPosOnlyArgs( + int a, int poac, int b, int c, int d, int e, PyObject *f, PyObject *g, + PyObject *h, PyObject *i, PyObject *j, PyObject *k, + PyObject *l, PyObject *m, PyObject *n, int o, PyObject *p, + PyObject *q) +{ + return PyUnstable_Code_NewWithPosOnlyArgs( + a, poac, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q); +} + +/* 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); + +PyAPI_FUNC(int) PyCode_Addr2Location(PyCodeObject *, int, int *, int *, int *, int *); + +#define PY_FOREACH_CODE_EVENT(V) \ + V(CREATE) \ + V(DESTROY) + +typedef enum { + #define PY_DEF_EVENT(op) PY_CODE_EVENT_##op, + PY_FOREACH_CODE_EVENT(PY_DEF_EVENT) + #undef PY_DEF_EVENT +} PyCodeEvent; + + +/* + * A callback that is invoked for different events in a code object's lifecycle. + * + * The callback is invoked with a borrowed reference to co, after it is + * created and before it is destroyed. + * + * If the callback sets an exception, it must return -1. Otherwise + * it should return 0. + */ +typedef int (*PyCode_WatchCallback)( + PyCodeEvent event, + PyCodeObject* co); + +/* + * Register a per-interpreter callback that will be invoked for code object + * lifecycle events. + * + * Returns a handle that may be passed to PyCode_ClearWatcher on success, + * or -1 and sets an error if no more handles are available. + */ +PyAPI_FUNC(int) PyCode_AddWatcher(PyCode_WatchCallback callback); + +/* + * Clear the watcher associated with the watcher_id handle. + * + * Returns 0 on success or -1 if no watcher exists for the provided id. + */ +PyAPI_FUNC(int) PyCode_ClearWatcher(int watcher_id); + +/* for internal use only */ +struct _opaque { + int computed_line; + const uint8_t *lo_next; + const uint8_t *limit; +}; + +typedef struct _line_offsets { + int ar_start; + int ar_end; + int ar_line; + struct _opaque opaque; +} PyCodeAddressRange; + +/* 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(int lasti, PyCodeAddressRange *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) PyUnstable_Code_GetExtra( + PyObject *code, Py_ssize_t index, void **extra); +PyAPI_FUNC(int) PyUnstable_Code_SetExtra( + PyObject *code, Py_ssize_t index, void *extra); +// Old names -- remove when this API changes: +_Py_DEPRECATED_EXTERNALLY(3.12) static inline int +_PyCode_GetExtra(PyObject *code, Py_ssize_t index, void **extra) +{ + return PyUnstable_Code_GetExtra(code, index, extra); +} +_Py_DEPRECATED_EXTERNALLY(3.12) static inline int +_PyCode_SetExtra(PyObject *code, Py_ssize_t index, void *extra) +{ + return PyUnstable_Code_SetExtra(code, index, extra); +} + +/* Equivalent to getattr(code, 'co_code') in Python. + Returns a strong reference to a bytes object. */ +PyAPI_FUNC(PyObject *) PyCode_GetCode(PyCodeObject *code); +/* Equivalent to getattr(code, 'co_varnames') in Python. */ +PyAPI_FUNC(PyObject *) PyCode_GetVarnames(PyCodeObject *code); +/* Equivalent to getattr(code, 'co_cellvars') in Python. */ +PyAPI_FUNC(PyObject *) PyCode_GetCellvars(PyCodeObject *code); +/* Equivalent to getattr(code, 'co_freevars') in Python. */ +PyAPI_FUNC(PyObject *) PyCode_GetFreevars(PyCodeObject *code); + +typedef enum _PyCodeLocationInfoKind { + /* short forms are 0 to 9 */ + PY_CODE_LOCATION_INFO_SHORT0 = 0, + /* one lineforms are 10 to 12 */ + PY_CODE_LOCATION_INFO_ONE_LINE0 = 10, + PY_CODE_LOCATION_INFO_ONE_LINE1 = 11, + PY_CODE_LOCATION_INFO_ONE_LINE2 = 12, + + PY_CODE_LOCATION_INFO_NO_COLUMNS = 13, + PY_CODE_LOCATION_INFO_LONG = 14, + PY_CODE_LOCATION_INFO_NONE = 15 +} _PyCodeLocationInfoKind; + +#ifdef __cplusplus +} +#endif +#endif // !Py_CODE_H +#endif // !Py_LIMITED_API diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/compile.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/compile.h new file mode 100644 index 000000000..cfdb7080d --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/compile.h @@ -0,0 +1,50 @@ +#ifndef Py_CPYTHON_COMPILE_H +# error "this header file must not be included directly" +#endif + +/* Public interface */ +#define PyCF_MASK (CO_FUTURE_DIVISION | CO_FUTURE_ABSOLUTE_IMPORT | \ + CO_FUTURE_WITH_STATEMENT | CO_FUTURE_PRINT_FUNCTION | \ + 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. */ +#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_ALLOW_INCOMPLETE_INPUT 0x4000 +#define PyCF_OPTIMIZED_AST (0x8000 | PyCF_ONLY_AST) +#define PyCF_COMPILE_MASK (PyCF_ONLY_AST | PyCF_ALLOW_TOP_LEVEL_AWAIT | \ + PyCF_TYPE_COMMENTS | PyCF_DONT_IMPLY_DEDENT | \ + PyCF_ALLOW_INCOMPLETE_INPUT | PyCF_OPTIMIZED_AST) + +typedef struct { + int cf_flags; /* bitmask of CO_xxx flags relevant to future */ + int cf_feature_version; /* minor Python version (PyCF_ONLY_AST) */ +} PyCompilerFlags; + +#define _PyCompilerFlags_INIT \ + (PyCompilerFlags){.cf_flags = 0, .cf_feature_version = PY_MINOR_VERSION} + +/* Future feature support */ + +#define FUTURE_NESTED_SCOPES "nested_scopes" +#define FUTURE_GENERATORS "generators" +#define FUTURE_DIVISION "division" +#define FUTURE_ABSOLUTE_IMPORT "absolute_import" +#define FUTURE_WITH_STATEMENT "with_statement" +#define FUTURE_PRINT_FUNCTION "print_function" +#define FUTURE_UNICODE_LITERALS "unicode_literals" +#define FUTURE_BARRY_AS_BDFL "barry_as_FLUFL" +#define FUTURE_GENERATOR_STOP "generator_stop" +#define FUTURE_ANNOTATIONS "annotations" + +#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); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/complexobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/complexobject.h new file mode 100644 index 000000000..fbdc6a91f --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/complexobject.h @@ -0,0 +1,33 @@ +#ifndef Py_CPYTHON_COMPLEXOBJECT_H +# error "this header file must not be included directly" +#endif + +typedef struct { + double real; + double imag; +} Py_complex; + +// Operations on complex numbers. +PyAPI_FUNC(Py_complex) _Py_c_sum(Py_complex, Py_complex); +PyAPI_FUNC(Py_complex) _Py_c_diff(Py_complex, Py_complex); +PyAPI_FUNC(Py_complex) _Py_c_neg(Py_complex); +PyAPI_FUNC(Py_complex) _Py_c_prod(Py_complex, Py_complex); +PyAPI_FUNC(Py_complex) _Py_c_quot(Py_complex, Py_complex); +PyAPI_FUNC(Py_complex) _Py_c_pow(Py_complex, Py_complex); +PyAPI_FUNC(double) _Py_c_abs(Py_complex); + + +/* Complex object interface */ + +/* +PyComplexObject represents a complex number with double-precision +real and imaginary parts. +*/ +typedef struct { + PyObject_HEAD + Py_complex cval; +} PyComplexObject; + +PyAPI_FUNC(PyObject *) PyComplex_FromCComplex(Py_complex); + +PyAPI_FUNC(Py_complex) PyComplex_AsCComplex(PyObject *op); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/context.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/context.h new file mode 100644 index 000000000..a3249fc29 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/context.h @@ -0,0 +1,74 @@ +#ifndef Py_LIMITED_API +#ifndef Py_CONTEXT_H +#define Py_CONTEXT_H +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_DATA(PyTypeObject) PyContext_Type; +typedef struct _pycontextobject PyContext; + +PyAPI_DATA(PyTypeObject) PyContextVar_Type; +typedef struct _pycontextvarobject PyContextVar; + +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) + + +PyAPI_FUNC(PyObject *) PyContext_New(void); +PyAPI_FUNC(PyObject *) PyContext_Copy(PyObject *); +PyAPI_FUNC(PyObject *) PyContext_CopyCurrent(void); + +PyAPI_FUNC(int) PyContext_Enter(PyObject *); +PyAPI_FUNC(int) PyContext_Exit(PyObject *); + + +/* Create a new context variable. + + default_value can be NULL. +*/ +PyAPI_FUNC(PyObject *) PyContextVar_New( + const char *name, PyObject *default_value); + + +/* Get a value for the variable. + + Returns -1 if an error occurred during lookup. + + Returns 0 if value either was or was not found. + + If value was found, *value will point to it. + If not, it will point to: + + - default_value, if not NULL; + - the default value of "var", if not NULL; + - NULL. + + '*value' will be a new ref, if not NULL. +*/ +PyAPI_FUNC(int) PyContextVar_Get( + PyObject *var, PyObject *default_value, PyObject **value); + + +/* Set a new value for the variable. + Returns NULL if an error occurs. +*/ +PyAPI_FUNC(PyObject *) PyContextVar_Set(PyObject *var, PyObject *value); + + +/* Reset a variable to its previous value. + Returns 0 on success, -1 on error. +*/ +PyAPI_FUNC(int) PyContextVar_Reset(PyObject *var, PyObject *token); + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_CONTEXT_H */ +#endif /* !Py_LIMITED_API */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/critical_section.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/critical_section.h new file mode 100644 index 000000000..35db3fb6a --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/critical_section.h @@ -0,0 +1,134 @@ +#ifndef Py_CPYTHON_CRITICAL_SECTION_H +# error "this header file must not be included directly" +#endif + +// Python critical sections +// +// Conceptually, critical sections are a deadlock avoidance layer on top of +// per-object locks. These helpers, in combination with those locks, replace +// our usage of the global interpreter lock to provide thread-safety for +// otherwise thread-unsafe objects, such as dict. +// +// NOTE: These APIs are no-ops in non-free-threaded builds. +// +// Straightforward per-object locking could introduce deadlocks that were not +// present when running with the GIL. Threads may hold locks for multiple +// objects simultaneously because Python operations can nest. If threads were +// to acquire the same locks in different orders, they would deadlock. +// +// One way to avoid deadlocks is to allow threads to hold only the lock (or +// locks) for a single operation at a time (typically a single lock, but some +// operations involve two locks). When a thread begins a nested operation it +// could suspend the locks for any outer operation: before beginning the nested +// operation, the locks for the outer operation are released and when the +// nested operation completes, the locks for the outer operation are +// reacquired. +// +// To improve performance, this API uses a variation of the above scheme. +// Instead of immediately suspending locks any time a nested operation begins, +// locks are only suspended if the thread would block. This reduces the number +// of lock acquisitions and releases for nested operations, while still +// avoiding deadlocks. +// +// Additionally, the locks for any active operation are suspended around +// other potentially blocking operations, such as I/O. This is because the +// interaction between locks and blocking operations can lead to deadlocks in +// the same way as the interaction between multiple locks. +// +// Each thread's critical sections and their corresponding locks are tracked in +// a stack in `PyThreadState.critical_section`. When a thread calls +// `_PyThreadState_Detach()`, such as before a blocking I/O operation or when +// waiting to acquire a lock, the thread suspends all of its active critical +// sections, temporarily releasing the associated locks. When the thread calls +// `_PyThreadState_Attach()`, it resumes the top-most (i.e., most recent) +// critical section by reacquiring the associated lock or locks. See +// `_PyCriticalSection_Resume()`. +// +// NOTE: Only the top-most critical section is guaranteed to be active. +// Operations that need to lock two objects at once must use +// `Py_BEGIN_CRITICAL_SECTION2()`. You *CANNOT* use nested critical sections +// to lock more than one object at once, because the inner critical section +// may suspend the outer critical sections. This API does not provide a way +// to lock more than two objects at once (though it could be added later +// if actually needed). +// +// NOTE: Critical sections implicitly behave like reentrant locks because +// attempting to acquire the same lock will suspend any outer (earlier) +// critical sections. However, they are less efficient for this use case than +// purposefully designed reentrant locks. +// +// Example usage: +// Py_BEGIN_CRITICAL_SECTION(op); +// ... +// Py_END_CRITICAL_SECTION(); +// +// To lock two objects at once: +// Py_BEGIN_CRITICAL_SECTION2(op1, op2); +// ... +// Py_END_CRITICAL_SECTION2(); + +typedef struct PyCriticalSection PyCriticalSection; +typedef struct PyCriticalSection2 PyCriticalSection2; + +PyAPI_FUNC(void) +PyCriticalSection_Begin(PyCriticalSection *c, PyObject *op); + +PyAPI_FUNC(void) +PyCriticalSection_End(PyCriticalSection *c); + +PyAPI_FUNC(void) +PyCriticalSection2_Begin(PyCriticalSection2 *c, PyObject *a, PyObject *b); + +PyAPI_FUNC(void) +PyCriticalSection2_End(PyCriticalSection2 *c); + +#ifndef Py_GIL_DISABLED +# define Py_BEGIN_CRITICAL_SECTION(op) \ + { +# define Py_END_CRITICAL_SECTION() \ + } +# define Py_BEGIN_CRITICAL_SECTION2(a, b) \ + { +# define Py_END_CRITICAL_SECTION2() \ + } +#else /* !Py_GIL_DISABLED */ + +// NOTE: the contents of this struct are private and may change betweeen +// Python releases without a deprecation period. +struct PyCriticalSection { + // Tagged pointer to an outer active critical section (or 0). + uintptr_t _cs_prev; + + // Mutex used to protect critical section + PyMutex *_cs_mutex; +}; + +// A critical section protected by two mutexes. Use +// Py_BEGIN_CRITICAL_SECTION2 and Py_END_CRITICAL_SECTION2. +// NOTE: the contents of this struct are private and may change betweeen +// Python releases without a deprecation period. +struct PyCriticalSection2 { + PyCriticalSection _cs_base; + + PyMutex *_cs_mutex2; +}; + +# define Py_BEGIN_CRITICAL_SECTION(op) \ + { \ + PyCriticalSection _py_cs; \ + PyCriticalSection_Begin(&_py_cs, _PyObject_CAST(op)) + +# define Py_END_CRITICAL_SECTION() \ + PyCriticalSection_End(&_py_cs); \ + } + +# define Py_BEGIN_CRITICAL_SECTION2(a, b) \ + { \ + PyCriticalSection2 _py_cs2; \ + PyCriticalSection2_Begin(&_py_cs2, _PyObject_CAST(a), _PyObject_CAST(b)) + +# define Py_END_CRITICAL_SECTION2() \ + PyCriticalSection2_End(&_py_cs2); \ + } + +#endif diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/descrobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/descrobject.h new file mode 100644 index 000000000..bbad8b59c --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/descrobject.h @@ -0,0 +1,62 @@ +#ifndef Py_CPYTHON_DESCROBJECT_H +# error "this header file must not be included directly" +#endif + +typedef PyObject *(*wrapperfunc)(PyObject *self, PyObject *args, + void *wrapped); + +typedef PyObject *(*wrapperfunc_kwds)(PyObject *self, PyObject *args, + void *wrapped, PyObject *kwds); + +struct wrapperbase { + const char *name; + int offset; + void *function; + wrapperfunc wrapper; + const char *doc; + int flags; + PyObject *name_strobj; +}; + +/* Flags for above struct */ +#define PyWrapperFlag_KEYWORDS 1 /* wrapper function takes keyword args */ + +/* Various kinds of descriptor objects */ + +typedef struct { + PyObject_HEAD + PyTypeObject *d_type; + PyObject *d_name; + PyObject *d_qualname; +} PyDescrObject; + +#define PyDescr_COMMON PyDescrObject d_common + +#define PyDescr_TYPE(x) (((PyDescrObject *)(x))->d_type) +#define PyDescr_NAME(x) (((PyDescrObject *)(x))->d_name) + +typedef struct { + PyDescr_COMMON; + PyMethodDef *d_method; + vectorcallfunc vectorcall; +} PyMethodDescrObject; + +typedef struct { + PyDescr_COMMON; + PyMemberDef *d_member; +} PyMemberDescrObject; + +typedef struct { + PyDescr_COMMON; + PyGetSetDef *d_getset; +} PyGetSetDescrObject; + +typedef struct { + PyDescr_COMMON; + struct wrapperbase *d_base; + void *d_wrapped; /* This can be any function pointer */ +} PyWrapperDescrObject; + +PyAPI_FUNC(PyObject *) PyDescr_NewWrapper(PyTypeObject *, + struct wrapperbase *, void *); +PyAPI_FUNC(int) PyDescr_IsData(PyObject *); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/dictobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/dictobject.h new file mode 100644 index 000000000..3fd23b931 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/dictobject.h @@ -0,0 +1,102 @@ +#ifndef Py_CPYTHON_DICTOBJECT_H +# error "this header file must not be included directly" +#endif + +typedef struct _dictkeysobject PyDictKeysObject; +typedef struct _dictvalues PyDictValues; + +/* 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 */ +#ifdef Py_BUILD_CORE + /* Bits 0-7 are for dict watchers. + * Bits 8-11 are for the watched mutation counter (used by tier2 optimization) + * The remaining bits (12-63) are the actual version tag. */ + uint64_t ma_version_tag; +#else + Py_DEPRECATED(3.12) uint64_t ma_version_tag; +#endif + + 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 */ + PyDictValues *ma_values; +} PyDictObject; + +PyAPI_FUNC(PyObject *) _PyDict_GetItem_KnownHash(PyObject *mp, PyObject *key, + Py_hash_t hash); +PyAPI_FUNC(PyObject *) _PyDict_GetItemStringWithError(PyObject *, const char *); +PyAPI_FUNC(PyObject *) PyDict_SetDefault( + PyObject *mp, PyObject *key, PyObject *defaultobj); + +// Inserts `key` with a value `default_value`, if `key` is not already present +// in the dictionary. If `result` is not NULL, then the value associated +// with `key` is returned in `*result` (either the existing value, or the now +// inserted `default_value`). +// Returns: +// -1 on error +// 0 if `key` was not present and `default_value` was inserted +// 1 if `key` was present and `default_value` was not inserted +PyAPI_FUNC(int) PyDict_SetDefaultRef(PyObject *mp, PyObject *key, PyObject *default_value, PyObject **result); + +/* Get the number of items of a dictionary. */ +static inline Py_ssize_t PyDict_GET_SIZE(PyObject *op) { + PyDictObject *mp; + assert(PyDict_Check(op)); + mp = _Py_CAST(PyDictObject*, op); +#ifdef Py_GIL_DISABLED + return _Py_atomic_load_ssize_relaxed(&mp->ma_used); +#else + return mp->ma_used; +#endif +} +#define PyDict_GET_SIZE(op) PyDict_GET_SIZE(_PyObject_CAST(op)) + +PyAPI_FUNC(int) PyDict_ContainsString(PyObject *mp, const char *key); + +PyAPI_FUNC(PyObject *) _PyDict_NewPresized(Py_ssize_t minused); + +PyAPI_FUNC(int) PyDict_Pop(PyObject *dict, PyObject *key, PyObject **result); +PyAPI_FUNC(int) PyDict_PopString(PyObject *dict, const char *key, PyObject **result); +PyAPI_FUNC(PyObject *) _PyDict_Pop(PyObject *dict, PyObject *key, PyObject *default_value); + +/* Dictionary watchers */ + +#define PY_FOREACH_DICT_EVENT(V) \ + V(ADDED) \ + V(MODIFIED) \ + V(DELETED) \ + V(CLONED) \ + V(CLEARED) \ + V(DEALLOCATED) + +typedef enum { + #define PY_DEF_EVENT(EVENT) PyDict_EVENT_##EVENT, + PY_FOREACH_DICT_EVENT(PY_DEF_EVENT) + #undef PY_DEF_EVENT +} PyDict_WatchEvent; + +// Callback to be invoked when a watched dict is cleared, dealloced, or modified. +// In clear/dealloc case, key and new_value will be NULL. Otherwise, new_value will be the +// new value for key, NULL if key is being deleted. +typedef int(*PyDict_WatchCallback)(PyDict_WatchEvent event, PyObject* dict, PyObject* key, PyObject* new_value); + +// Register/unregister a dict-watcher callback +PyAPI_FUNC(int) PyDict_AddWatcher(PyDict_WatchCallback callback); +PyAPI_FUNC(int) PyDict_ClearWatcher(int watcher_id); + +// Mark given dictionary as "watched" (callback will be called if it is modified) +PyAPI_FUNC(int) PyDict_Watch(int watcher_id, PyObject* dict); +PyAPI_FUNC(int) PyDict_Unwatch(int watcher_id, PyObject* dict); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/fileobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/fileobject.h new file mode 100644 index 000000000..e2d89c522 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/fileobject.h @@ -0,0 +1,16 @@ +#ifndef Py_CPYTHON_FILEOBJECT_H +# error "this header file must not be included directly" +#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); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/fileutils.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/fileutils.h new file mode 100644 index 000000000..b386ad107 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/fileutils.h @@ -0,0 +1,8 @@ +#ifndef Py_CPYTHON_FILEUTILS_H +# error "this header file must not be included directly" +#endif + +// Used by _testcapi which must not use the internal C API +PyAPI_FUNC(FILE*) _Py_fopen_obj( + PyObject *path, + const char *mode); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/floatobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/floatobject.h new file mode 100644 index 000000000..127093098 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/floatobject.h @@ -0,0 +1,27 @@ +#ifndef Py_CPYTHON_FLOATOBJECT_H +# error "this header file must not be included directly" +#endif + +typedef struct { + PyObject_HEAD + double ob_fval; +} PyFloatObject; + +#define _PyFloat_CAST(op) \ + (assert(PyFloat_Check(op)), _Py_CAST(PyFloatObject*, op)) + +// Static inline version of PyFloat_AsDouble() trading safety for speed. +// It doesn't check if op is a double object. +static inline double PyFloat_AS_DOUBLE(PyObject *op) { + return _PyFloat_CAST(op)->ob_fval; +} +#define PyFloat_AS_DOUBLE(op) PyFloat_AS_DOUBLE(_PyObject_CAST(op)) + + +PyAPI_FUNC(int) PyFloat_Pack2(double x, char *p, int le); +PyAPI_FUNC(int) PyFloat_Pack4(double x, char *p, int le); +PyAPI_FUNC(int) PyFloat_Pack8(double x, char *p, int le); + +PyAPI_FUNC(double) PyFloat_Unpack2(const char *p, int le); +PyAPI_FUNC(double) PyFloat_Unpack4(const char *p, int le); +PyAPI_FUNC(double) PyFloat_Unpack8(const char *p, int le); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/frameobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/frameobject.h new file mode 100644 index 000000000..dbbfbb510 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/frameobject.h @@ -0,0 +1,35 @@ +/* Frame object interface */ + +#ifndef Py_CPYTHON_FRAMEOBJECT_H +# error "this header file must not be included directly" +#endif + +/* Standard object interface */ + +PyAPI_FUNC(PyFrameObject *) PyFrame_New(PyThreadState *, PyCodeObject *, + PyObject *, PyObject *); + +/* The rest of the interface is specific for frame objects */ + +/* Conversions between "fast locals" and locals in dictionary */ + +PyAPI_FUNC(void) PyFrame_LocalsToFast(PyFrameObject *, int); + +/* -- Caveat emptor -- + * The concept of entry frames is an implementation detail of the CPython + * interpreter. This API is considered unstable and is provided for the + * convenience of debuggers, profilers and state-inspecting tools. Notice that + * this API can be changed in future minor versions if the underlying frame + * mechanism change or the concept of an 'entry frame' or its semantics becomes + * obsolete or outdated. */ + +PyAPI_FUNC(int) _PyFrame_IsEntryFrame(PyFrameObject *frame); + +PyAPI_FUNC(int) PyFrame_FastToLocalsWithError(PyFrameObject *f); +PyAPI_FUNC(void) PyFrame_FastToLocals(PyFrameObject *); + + +typedef struct { + PyObject_HEAD + PyFrameObject* frame; +} PyFrameLocalsProxyObject; diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/funcobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/funcobject.h new file mode 100644 index 000000000..5433ba48e --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/funcobject.h @@ -0,0 +1,184 @@ +/* Function object interface */ + +#ifndef Py_LIMITED_API +#ifndef Py_FUNCOBJECT_H +#define Py_FUNCOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + + +#define _Py_COMMON_FIELDS(PREFIX) \ + PyObject *PREFIX ## globals; \ + PyObject *PREFIX ## builtins; \ + PyObject *PREFIX ## name; \ + PyObject *PREFIX ## qualname; \ + PyObject *PREFIX ## code; /* A code object, the __code__ attribute */ \ + PyObject *PREFIX ## defaults; /* NULL or a tuple */ \ + PyObject *PREFIX ## kwdefaults; /* NULL or a dict */ \ + PyObject *PREFIX ## closure; /* NULL or a tuple of cell objects */ + +typedef struct { + _Py_COMMON_FIELDS(fc_) +} PyFrameConstructor; + +/* Function objects and code objects should not be confused with each other: + * + * Function objects are created by the execution of the 'def' statement. + * They reference a code object in their __code__ attribute, which is a + * purely syntactic object, i.e. nothing more than a compiled version of some + * source code lines. There is one code object per source code "fragment", + * but each code object can be referenced by zero or many function objects + * depending only on how many times the 'def' statement in the source was + * executed so far. + */ + +typedef struct { + PyObject_HEAD + _Py_COMMON_FIELDS(func_) + PyObject *func_doc; /* The __doc__ attribute, can be anything */ + PyObject *func_dict; /* The __dict__ attribute, a dict or NULL */ + PyObject *func_weakreflist; /* List of weak references */ + PyObject *func_module; /* The __module__ attribute, can be anything */ + PyObject *func_annotations; /* Annotations, a dict or NULL */ + PyObject *func_typeparams; /* Tuple of active type variables or NULL */ + vectorcallfunc vectorcall; + /* Version number for use by specializer. + * Can set to non-zero when we want to specialize. + * Will be set to zero if any of these change: + * defaults + * kwdefaults (only if the object changes, not the contents of the dict) + * code + * annotations + * vectorcall function pointer */ + uint32_t func_version; + + /* Invariant: + * func_closure contains the bindings for func_code->co_freevars, so + * PyTuple_Size(func_closure) == PyCode_GetNumFree(func_code) + * (func_closure may be NULL if PyCode_GetNumFree(func_code) == 0). + */ +} PyFunctionObject; + +#undef _Py_COMMON_FIELDS + +PyAPI_DATA(PyTypeObject) 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 *); +PyAPI_FUNC(PyObject *) PyFunction_GetCode(PyObject *); +PyAPI_FUNC(PyObject *) PyFunction_GetGlobals(PyObject *); +PyAPI_FUNC(PyObject *) PyFunction_GetModule(PyObject *); +PyAPI_FUNC(PyObject *) PyFunction_GetDefaults(PyObject *); +PyAPI_FUNC(int) PyFunction_SetDefaults(PyObject *, PyObject *); +PyAPI_FUNC(void) PyFunction_SetVectorcall(PyFunctionObject *, vectorcallfunc); +PyAPI_FUNC(PyObject *) PyFunction_GetKwDefaults(PyObject *); +PyAPI_FUNC(int) PyFunction_SetKwDefaults(PyObject *, PyObject *); +PyAPI_FUNC(PyObject *) PyFunction_GetClosure(PyObject *); +PyAPI_FUNC(int) PyFunction_SetClosure(PyObject *, PyObject *); +PyAPI_FUNC(PyObject *) PyFunction_GetAnnotations(PyObject *); +PyAPI_FUNC(int) PyFunction_SetAnnotations(PyObject *, PyObject *); + +#define _PyFunction_CAST(func) \ + (assert(PyFunction_Check(func)), _Py_CAST(PyFunctionObject*, func)) + +/* Static inline functions for direct access to these values. + Type checks are *not* done, so use with care. */ +static inline PyObject* PyFunction_GET_CODE(PyObject *func) { + return _PyFunction_CAST(func)->func_code; +} +#define PyFunction_GET_CODE(func) PyFunction_GET_CODE(_PyObject_CAST(func)) + +static inline PyObject* PyFunction_GET_GLOBALS(PyObject *func) { + return _PyFunction_CAST(func)->func_globals; +} +#define PyFunction_GET_GLOBALS(func) PyFunction_GET_GLOBALS(_PyObject_CAST(func)) + +static inline PyObject* PyFunction_GET_MODULE(PyObject *func) { + return _PyFunction_CAST(func)->func_module; +} +#define PyFunction_GET_MODULE(func) PyFunction_GET_MODULE(_PyObject_CAST(func)) + +static inline PyObject* PyFunction_GET_DEFAULTS(PyObject *func) { + return _PyFunction_CAST(func)->func_defaults; +} +#define PyFunction_GET_DEFAULTS(func) PyFunction_GET_DEFAULTS(_PyObject_CAST(func)) + +static inline PyObject* PyFunction_GET_KW_DEFAULTS(PyObject *func) { + return _PyFunction_CAST(func)->func_kwdefaults; +} +#define PyFunction_GET_KW_DEFAULTS(func) PyFunction_GET_KW_DEFAULTS(_PyObject_CAST(func)) + +static inline PyObject* PyFunction_GET_CLOSURE(PyObject *func) { + return _PyFunction_CAST(func)->func_closure; +} +#define PyFunction_GET_CLOSURE(func) PyFunction_GET_CLOSURE(_PyObject_CAST(func)) + +static inline PyObject* PyFunction_GET_ANNOTATIONS(PyObject *func) { + return _PyFunction_CAST(func)->func_annotations; +} +#define PyFunction_GET_ANNOTATIONS(func) PyFunction_GET_ANNOTATIONS(_PyObject_CAST(func)) + +/* The classmethod and staticmethod types lives here, too */ +PyAPI_DATA(PyTypeObject) PyClassMethod_Type; +PyAPI_DATA(PyTypeObject) PyStaticMethod_Type; + +PyAPI_FUNC(PyObject *) PyClassMethod_New(PyObject *); +PyAPI_FUNC(PyObject *) PyStaticMethod_New(PyObject *); + +#define PY_FOREACH_FUNC_EVENT(V) \ + V(CREATE) \ + V(DESTROY) \ + V(MODIFY_CODE) \ + V(MODIFY_DEFAULTS) \ + V(MODIFY_KWDEFAULTS) + +typedef enum { + #define PY_DEF_EVENT(EVENT) PyFunction_EVENT_##EVENT, + PY_FOREACH_FUNC_EVENT(PY_DEF_EVENT) + #undef PY_DEF_EVENT +} PyFunction_WatchEvent; + +/* + * A callback that is invoked for different events in a function's lifecycle. + * + * The callback is invoked with a borrowed reference to func, after it is + * created and before it is modified or destroyed. The callback should not + * modify func. + * + * When a function's code object, defaults, or kwdefaults are modified the + * callback will be invoked with the respective event and new_value will + * contain a borrowed reference to the new value that is about to be stored in + * the function. Otherwise the third argument is NULL. + * + * If the callback returns with an exception set, it must return -1. Otherwise + * it should return 0. + */ +typedef int (*PyFunction_WatchCallback)( + PyFunction_WatchEvent event, + PyFunctionObject *func, + PyObject *new_value); + +/* + * Register a per-interpreter callback that will be invoked for function lifecycle + * events. + * + * Returns a handle that may be passed to PyFunction_ClearWatcher on success, + * or -1 and sets an error if no more handles are available. + */ +PyAPI_FUNC(int) PyFunction_AddWatcher(PyFunction_WatchCallback callback); + +/* + * Clear the watcher associated with the watcher_id handle. + * + * Returns 0 on success or -1 if no watcher exists for the supplied id. + */ +PyAPI_FUNC(int) PyFunction_ClearWatcher(int watcher_id); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_FUNCOBJECT_H */ +#endif /* Py_LIMITED_API */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/genobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/genobject.h new file mode 100644 index 000000000..49e46c277 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/genobject.h @@ -0,0 +1,83 @@ +/* Generator object interface */ + +#ifndef Py_LIMITED_API +#ifndef Py_GENOBJECT_H +#define Py_GENOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +/* --- Generators --------------------------------------------------------- */ + +/* _PyGenObject_HEAD defines the initial segment of generator + and coroutine objects. */ +#define _PyGenObject_HEAD(prefix) \ + PyObject_HEAD \ + /* List of weak reference. */ \ + PyObject *prefix##_weakreflist; \ + /* Name of the generator. */ \ + PyObject *prefix##_name; \ + /* Qualified name of the generator. */ \ + PyObject *prefix##_qualname; \ + _PyErr_StackItem prefix##_exc_state; \ + PyObject *prefix##_origin_or_finalizer; \ + char prefix##_hooks_inited; \ + char prefix##_closed; \ + char prefix##_running_async; \ + /* The frame */ \ + int8_t prefix##_frame_state; \ + PyObject *prefix##_iframe[1]; \ + +typedef struct { + /* The gi_ prefix is intended to remind of generator-iterator. */ + _PyGenObject_HEAD(gi) +} PyGenObject; + +PyAPI_DATA(PyTypeObject) PyGen_Type; + +#define PyGen_Check(op) PyObject_TypeCheck((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 *, + PyObject *name, PyObject *qualname); +PyAPI_FUNC(PyCodeObject *) PyGen_GetCode(PyGenObject *gen); + + +/* --- PyCoroObject ------------------------------------------------------- */ + +typedef struct { + _PyGenObject_HEAD(cr) +} PyCoroObject; + +PyAPI_DATA(PyTypeObject) PyCoro_Type; + +#define PyCoro_CheckExact(op) Py_IS_TYPE((op), &PyCoro_Type) +PyAPI_FUNC(PyObject *) PyCoro_New(PyFrameObject *, + PyObject *name, PyObject *qualname); + + +/* --- Asynchronous Generators -------------------------------------------- */ + +typedef struct { + _PyGenObject_HEAD(ag) +} PyAsyncGenObject; + +PyAPI_DATA(PyTypeObject) PyAsyncGen_Type; +PyAPI_DATA(PyTypeObject) _PyAsyncGenASend_Type; + +PyAPI_FUNC(PyObject *) PyAsyncGen_New(PyFrameObject *, + PyObject *name, PyObject *qualname); + +#define PyAsyncGen_CheckExact(op) Py_IS_TYPE((op), &PyAsyncGen_Type) + +#define PyAsyncGenASend_CheckExact(op) Py_IS_TYPE((op), &_PyAsyncGenASend_Type) + + +#undef _PyGenObject_HEAD + +#ifdef __cplusplus +} +#endif +#endif /* !Py_GENOBJECT_H */ +#endif /* Py_LIMITED_API */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/import.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/import.h new file mode 100644 index 000000000..7daf0b84f --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/import.h @@ -0,0 +1,25 @@ +#ifndef Py_CPYTHON_IMPORT_H +# error "this header file must not be included directly" +#endif + +PyMODINIT_FUNC PyInit__imp(void); + +struct _inittab { + const char *name; /* ASCII encoded string */ + PyObject* (*initfunc)(void); +}; +// This is not used after Py_Initialize() is called. +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; + int is_package; +}; + +/* Embedding apps may change this pointer to point to their favorite + collection of frozen modules: */ + +PyAPI_DATA(const struct _frozen *) PyImport_FrozenModules; diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/initconfig.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/initconfig.h new file mode 100644 index 000000000..5da5ef9e5 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/initconfig.h @@ -0,0 +1,274 @@ +#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 PyPreConfig { + 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 ---------------------------------------------- */ + +/* This structure is best documented in the Doc/c-api/init_config.rst file. */ +typedef struct PyConfig { + int _config_init; /* _PyConfigInitEnum value */ + + int isolated; + int use_environment; + int dev_mode; + int install_signal_handlers; + int use_hash_seed; + unsigned long hash_seed; + int faulthandler; + int tracemalloc; + int perf_profiling; + int import_time; + int code_debug_ranges; + int show_ref_count; + int dump_refs; + wchar_t *dump_refs_file; + int malloc_stats; + wchar_t *filesystem_encoding; + wchar_t *filesystem_errors; + wchar_t *pycache_prefix; + int parse_argv; + PyWideStringList orig_argv; + PyWideStringList argv; + PyWideStringList xoptions; + PyWideStringList warnoptions; + int site_import; + int bytes_warning; + int warn_default_encoding; + int inspect; + int interactive; + int optimization_level; + int parser_debug; + int write_bytecode; + int verbose; + int quiet; + int user_site_directory; + int configure_c_stdio; + int buffered_stdio; + wchar_t *stdio_encoding; + wchar_t *stdio_errors; +#ifdef MS_WINDOWS + int legacy_windows_stdio; +#endif + wchar_t *check_hash_pycs_mode; + int use_frozen_modules; + int safe_path; + int int_max_str_digits; + + int cpu_count; +#ifdef Py_GIL_DISABLED + int enable_gil; +#endif + + /* --- Path configuration inputs ------------ */ + int pathconfig_warnings; + wchar_t *program_name; + wchar_t *pythonpath_env; + wchar_t *home; + wchar_t *platlibdir; + + /* --- Path configuration outputs ----------- */ + int module_search_paths_set; + PyWideStringList module_search_paths; + wchar_t *stdlib_dir; + wchar_t *executable; + wchar_t *base_executable; + wchar_t *prefix; + wchar_t *base_prefix; + wchar_t *exec_prefix; + wchar_t *base_exec_prefix; + + /* --- Parameter only used by Py_Main() ---------- */ + int skip_source_first_line; + wchar_t *run_command; + wchar_t *run_module; + wchar_t *run_filename; + + /* --- Set by Py_Main() -------------------------- */ + wchar_t *sys_path_0; + + /* --- Private fields ---------------------------- */ + + // Install importlib? If equals 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, we believe we're running from a source tree. + int _is_python_build; + +#ifdef Py_STATS + // If non-zero, turns on statistics gathering. + int _pystats; +#endif + +#ifdef Py_DEBUG + // If not empty, import a non-__main__ module before site.py is executed. + // PYTHON_PRESITE=package.module or -X presite=package.module + wchar_t *run_presite; +#endif +} 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/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/listobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/listobject.h new file mode 100644 index 000000000..49f5e8d6d --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/listobject.h @@ -0,0 +1,53 @@ +#ifndef Py_CPYTHON_LISTOBJECT_H +# error "this header file must not be included directly" +#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; + +/* Cast argument to PyListObject* type. */ +#define _PyList_CAST(op) \ + (assert(PyList_Check(op)), _Py_CAST(PyListObject*, (op))) + +// Macros and static inline functions, trading safety for speed + +static inline Py_ssize_t PyList_GET_SIZE(PyObject *op) { + PyListObject *list = _PyList_CAST(op); +#ifdef Py_GIL_DISABLED + return _Py_atomic_load_ssize_relaxed(&(_PyVarObject_CAST(list)->ob_size)); +#else + return Py_SIZE(list); +#endif +} +#define PyList_GET_SIZE(op) PyList_GET_SIZE(_PyObject_CAST(op)) + +#define PyList_GET_ITEM(op, index) (_PyList_CAST(op)->ob_item[(index)]) + +static inline void +PyList_SET_ITEM(PyObject *op, Py_ssize_t index, PyObject *value) { + PyListObject *list = _PyList_CAST(op); + assert(0 <= index); + assert(index < list->allocated); + list->ob_item[index] = value; +} +#define PyList_SET_ITEM(op, index, value) \ + PyList_SET_ITEM(_PyObject_CAST(op), (index), _PyObject_CAST(value)) + +PyAPI_FUNC(int) PyList_Extend(PyObject *self, PyObject *iterable); +PyAPI_FUNC(int) PyList_Clear(PyObject *self); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/lock.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/lock.h new file mode 100644 index 000000000..8ee03e82f --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/lock.h @@ -0,0 +1,63 @@ +#ifndef Py_CPYTHON_LOCK_H +# error "this header file must not be included directly" +#endif + +#define _Py_UNLOCKED 0 +#define _Py_LOCKED 1 + +// A mutex that occupies one byte. The lock can be zero initialized to +// represent the unlocked state. +// +// Typical initialization: +// PyMutex m = (PyMutex){0}; +// +// Or initialize as global variables: +// static PyMutex m; +// +// Typical usage: +// PyMutex_Lock(&m); +// ... +// PyMutex_Unlock(&m); +// +// The contents of the PyMutex are not part of the public API, but are +// described to aid in understanding the implementation and debugging. Only +// the two least significant bits are used. The remaining bits are always zero: +// 0b00: unlocked +// 0b01: locked +// 0b10: unlocked and has parked threads +// 0b11: locked and has parked threads +typedef struct PyMutex { + uint8_t _bits; // (private) +} PyMutex; + +// exported function for locking the mutex +PyAPI_FUNC(void) PyMutex_Lock(PyMutex *m); + +// exported function for unlocking the mutex +PyAPI_FUNC(void) PyMutex_Unlock(PyMutex *m); + +// Locks the mutex. +// +// If the mutex is currently locked, the calling thread will be parked until +// the mutex is unlocked. If the current thread holds the GIL, then the GIL +// will be released while the thread is parked. +static inline void +_PyMutex_Lock(PyMutex *m) +{ + uint8_t expected = _Py_UNLOCKED; + if (!_Py_atomic_compare_exchange_uint8(&m->_bits, &expected, _Py_LOCKED)) { + PyMutex_Lock(m); + } +} +#define PyMutex_Lock _PyMutex_Lock + +// Unlocks the mutex. +static inline void +_PyMutex_Unlock(PyMutex *m) +{ + uint8_t expected = _Py_LOCKED; + if (!_Py_atomic_compare_exchange_uint8(&m->_bits, &expected, _Py_UNLOCKED)) { + PyMutex_Unlock(m); + } +} +#define PyMutex_Unlock _PyMutex_Unlock diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/longintrepr.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/longintrepr.h new file mode 100644 index 000000000..3246908ba --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/longintrepr.h @@ -0,0 +1,146 @@ +#ifndef Py_LIMITED_API +#ifndef Py_LONGINTREPR_H +#define Py_LONGINTREPR_H +#ifdef __cplusplus +extern "C" { +#endif + + +/* This is published for the benefit of "friends" marshal.c and _decimal.c. */ + +/* Parameters of the integer representation. There are two different + sets of parameters: one set for 30-bit digits, stored in an unsigned 32-bit + integer type, and one set for 15-bit digits with each digit stored in an + unsigned short. The value of PYLONG_BITS_IN_DIGIT, defined either at + configure time or in pyport.h, is used to decide which digit size to use. + + Type 'digit' should be able to hold 2*PyLong_BASE-1, and type 'twodigits' + should be an unsigned integer type able to hold all integers up to + PyLong_BASE*PyLong_BASE-1. x_sub assumes that 'digit' is an unsigned type, + and that overflow is handled by taking the result modulo 2**N for some N > + PyLong_SHIFT. The majority of the code doesn't care about the precise + value of PyLong_SHIFT, but there are some notable exceptions: + + - PyLong_{As,From}ByteArray require that PyLong_SHIFT be at least 8 + + - long_hash() requires that PyLong_SHIFT is *strictly* less than the number + of bits in an unsigned long, as do the PyLong <-> long (or unsigned long) + conversion functions + + - the Python int <-> size_t/Py_ssize_t conversion functions expect that + PyLong_SHIFT is strictly less than the number of bits in a size_t + + - the marshal code currently expects that PyLong_SHIFT is a multiple of 15 + + - NSMALLNEGINTS and NSMALLPOSINTS should be small enough to fit in a single + digit; with the current values this forces PyLong_SHIFT >= 9 + + The values 15 and 30 should fit all of the above requirements, on any + platform. +*/ + +#if PYLONG_BITS_IN_DIGIT == 30 +typedef uint32_t digit; +typedef int32_t sdigit; /* signed variant of digit */ +typedef uint64_t twodigits; +typedef int64_t stwodigits; /* signed variant of twodigits */ +#define PyLong_SHIFT 30 +#define _PyLong_DECIMAL_SHIFT 9 /* max(e such that 10**e fits in a digit) */ +#define _PyLong_DECIMAL_BASE ((digit)1000000000) /* 10 ** DECIMAL_SHIFT */ +#elif PYLONG_BITS_IN_DIGIT == 15 +typedef unsigned short digit; +typedef short sdigit; /* signed variant of digit */ +typedef unsigned long twodigits; +typedef long stwodigits; /* signed variant of twodigits */ +#define PyLong_SHIFT 15 +#define _PyLong_DECIMAL_SHIFT 4 /* max(e such that 10**e fits in a digit) */ +#define _PyLong_DECIMAL_BASE ((digit)10000) /* 10 ** DECIMAL_SHIFT */ +#else +#error "PYLONG_BITS_IN_DIGIT should be 15 or 30" +#endif +#define PyLong_BASE ((digit)1 << PyLong_SHIFT) +#define PyLong_MASK ((digit)(PyLong_BASE - 1)) + +/* Long integer representation. + + Long integers are made up of a number of 30- or 15-bit digits, depending on + the platform. The number of digits (ndigits) is stored in the high bits of + the lv_tag field (lvtag >> _PyLong_NON_SIZE_BITS). + + The absolute value of a number is equal to + SUM(for i=0 through ndigits-1) ob_digit[i] * 2**(PyLong_SHIFT*i) + + The sign of the value is stored in the lower 2 bits of lv_tag. + + - 0: Positive + - 1: Zero + - 2: Negative + + The third lowest bit of lv_tag is reserved for an immortality flag, but is + not currently used. + + In a normalized number, ob_digit[ndigits-1] (the most significant + digit) is never zero. Also, in all cases, for all valid i, + 0 <= ob_digit[i] <= PyLong_MASK. + + The allocation function takes care of allocating extra memory + so that ob_digit[0] ... ob_digit[ndigits-1] are actually available. + We always allocate memory for at least one digit, so accessing ob_digit[0] + is always safe. However, in the case ndigits == 0, the contents of + ob_digit[0] may be undefined. +*/ + +typedef struct _PyLongValue { + uintptr_t lv_tag; /* Number of digits, sign and flags */ + digit ob_digit[1]; +} _PyLongValue; + +struct _longobject { + PyObject_HEAD + _PyLongValue long_value; +}; + +PyAPI_FUNC(PyLongObject*) _PyLong_New(Py_ssize_t); + +// Return a copy of src. +PyAPI_FUNC(PyObject*) _PyLong_Copy(PyLongObject *src); + +PyAPI_FUNC(PyLongObject*) _PyLong_FromDigits( + int negative, + Py_ssize_t digit_count, + digit *digits); + + +/* Inline some internals for speed. These should be in pycore_long.h + * if user code didn't need them inlined. */ + +#define _PyLong_SIGN_MASK 3 +#define _PyLong_NON_SIZE_BITS 3 + + +static inline int +_PyLong_IsCompact(const PyLongObject* op) { + assert(PyType_HasFeature((op)->ob_base.ob_type, Py_TPFLAGS_LONG_SUBCLASS)); + return op->long_value.lv_tag < (2 << _PyLong_NON_SIZE_BITS); +} + +#define PyUnstable_Long_IsCompact _PyLong_IsCompact + +static inline Py_ssize_t +_PyLong_CompactValue(const PyLongObject *op) +{ + Py_ssize_t sign; + assert(PyType_HasFeature((op)->ob_base.ob_type, Py_TPFLAGS_LONG_SUBCLASS)); + assert(PyUnstable_Long_IsCompact(op)); + sign = 1 - (op->long_value.lv_tag & _PyLong_SIGN_MASK); + return sign * (Py_ssize_t)op->long_value.ob_digit[0]; +} + +#define PyUnstable_Long_CompactValue _PyLong_CompactValue + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_LONGINTREPR_H */ +#endif /* Py_LIMITED_API */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/longobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/longobject.h new file mode 100644 index 000000000..0d49242ff --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/longobject.h @@ -0,0 +1,116 @@ +#ifndef Py_CPYTHON_LONGOBJECT_H +# error "this header file must not be included directly" +#endif + +PyAPI_FUNC(PyObject*) PyLong_FromUnicodeObject(PyObject *u, int base); + +#define Py_ASNATIVEBYTES_DEFAULTS -1 +#define Py_ASNATIVEBYTES_BIG_ENDIAN 0 +#define Py_ASNATIVEBYTES_LITTLE_ENDIAN 1 +#define Py_ASNATIVEBYTES_NATIVE_ENDIAN 3 +#define Py_ASNATIVEBYTES_UNSIGNED_BUFFER 4 +#define Py_ASNATIVEBYTES_REJECT_NEGATIVE 8 +#define Py_ASNATIVEBYTES_ALLOW_INDEX 16 + +/* PyLong_AsNativeBytes: Copy the integer value to a native variable. + buffer points to the first byte of the variable. + n_bytes is the number of bytes available in the buffer. Pass 0 to request + the required size for the value. + flags is a bitfield of the following flags: + * 1 - little endian + * 2 - native endian + * 4 - unsigned destination (e.g. don't reject copying 255 into one byte) + * 8 - raise an exception for negative inputs + * 16 - call __index__ on non-int types + If flags is -1 (all bits set), native endian is used, value truncation + behaves most like C (allows negative inputs and allow MSB set), and non-int + objects will raise a TypeError. + Big endian mode will write the most significant byte into the address + directly referenced by buffer; little endian will write the least significant + byte into that address. + + If an exception is raised, returns a negative value. + Otherwise, returns the number of bytes that are required to store the value. + To check that the full value is represented, ensure that the return value is + equal or less than n_bytes. + All n_bytes are guaranteed to be written (unless an exception occurs), and + so ignoring a positive return value is the equivalent of a downcast in C. + In cases where the full value could not be represented, the returned value + may be larger than necessary - this function is not an accurate way to + calculate the bit length of an integer object. + */ +PyAPI_FUNC(Py_ssize_t) PyLong_AsNativeBytes(PyObject* v, void* buffer, + Py_ssize_t n_bytes, int flags); + +/* PyLong_FromNativeBytes: Create an int value from a native integer + n_bytes is the number of bytes to read from the buffer. Passing 0 will + always produce the zero int. + PyLong_FromUnsignedNativeBytes always produces a non-negative int. + flags is the same as for PyLong_AsNativeBytes, but only supports selecting + the endianness or forcing an unsigned buffer. + + Returns the int object, or NULL with an exception set. */ +PyAPI_FUNC(PyObject*) PyLong_FromNativeBytes(const void* buffer, size_t n_bytes, + int flags); +PyAPI_FUNC(PyObject*) PyLong_FromUnsignedNativeBytes(const void* buffer, + size_t n_bytes, int flags); + +PyAPI_FUNC(int) PyUnstable_Long_IsCompact(const PyLongObject* op); +PyAPI_FUNC(Py_ssize_t) PyUnstable_Long_CompactValue(const PyLongObject* op); + +// _PyLong_Sign. Return 0 if v is 0, -1 if v < 0, +1 if v > 0. +// v must not be NULL, and must be a normalized long. +// There are no error cases. +PyAPI_FUNC(int) _PyLong_Sign(PyObject *v); + +/* _PyLong_NumBits. Return the number of bits needed to represent the + absolute value of a long. For example, this returns 1 for 1 and -1, 2 + for 2 and -2, and 2 for 3 and -3. It returns 0 for 0. + v must not be NULL, and must be a normalized long. + (size_t)-1 is returned and OverflowError set if the true result doesn't + fit in a size_t. +*/ +PyAPI_FUNC(size_t) _PyLong_NumBits(PyObject *v); + +/* _PyLong_FromByteArray: View the n unsigned bytes as a binary integer in + base 256, and return a Python int with the same numeric value. + If n is 0, the integer is 0. Else: + If little_endian is 1/true, bytes[n-1] is the MSB and bytes[0] the LSB; + else (little_endian is 0/false) bytes[0] is the MSB and bytes[n-1] the + LSB. + If is_signed is 0/false, view the bytes as a non-negative integer. + If is_signed is 1/true, view the bytes as a 2's-complement integer, + non-negative if bit 0x80 of the MSB is clear, negative if set. + Error returns: + + Return NULL with the appropriate exception set if there's not + enough memory to create the Python int. +*/ +PyAPI_FUNC(PyObject *) _PyLong_FromByteArray( + const unsigned char* bytes, size_t n, + int little_endian, int is_signed); + +/* _PyLong_AsByteArray: Convert the least-significant 8*n bits of long + v to a base-256 integer, stored in array bytes. Normally return 0, + return -1 on error. + If little_endian is 1/true, store the MSB at bytes[n-1] and the LSB at + bytes[0]; else (little_endian is 0/false) store the MSB at bytes[0] and + the LSB at bytes[n-1]. + If is_signed is 0/false, it's an error if v < 0; else (v >= 0) n bytes + are filled and there's nothing special about bit 0x80 of the MSB. + If is_signed is 1/true, bytes is filled with the 2's-complement + representation of v's value. Bit 0x80 of the MSB is the sign bit. + Error returns (-1): + + is_signed is 0 and v < 0. TypeError is set in this case, and bytes + isn't altered. + + n isn't big enough to hold the full mathematical value of v. For + example, if is_signed is 0 and there are more digits in the v than + fit in n; or if is_signed is 1, v < 0, and n is just 1 bit shy of + being large enough to hold a sign bit. OverflowError is set in this + case, but bytes holds the least-significant n bytes of the true value. +*/ +PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v, + unsigned char* bytes, size_t n, + int little_endian, int is_signed, int with_exceptions); + +/* For use by the gcd function in mathmodule.c */ +PyAPI_FUNC(PyObject *) _PyLong_GCD(PyObject *, PyObject *); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/memoryobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/memoryobject.h new file mode 100644 index 000000000..961161b70 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/memoryobject.h @@ -0,0 +1,50 @@ +#ifndef Py_CPYTHON_MEMORYOBJECT_H +# error "this header file must not be included directly" +#endif + +/* The structs are declared here so that macros can work, but they shouldn't + be considered public. Don't access their fields directly, use the macros + and functions instead! */ +#define _Py_MANAGED_BUFFER_RELEASED 0x001 /* access to exporter blocked */ +#define _Py_MANAGED_BUFFER_FREE_FORMAT 0x002 /* free format */ + +typedef struct { + PyObject_HEAD + int flags; /* state flags */ + Py_ssize_t exports; /* number of direct memoryview exports */ + Py_buffer master; /* snapshot buffer obtained from the original exporter */ +} _PyManagedBufferObject; + + +/* memoryview state flags */ +#define _Py_MEMORYVIEW_RELEASED 0x001 /* access to master buffer blocked */ +#define _Py_MEMORYVIEW_C 0x002 /* C-contiguous layout */ +#define _Py_MEMORYVIEW_FORTRAN 0x004 /* Fortran contiguous layout */ +#define _Py_MEMORYVIEW_SCALAR 0x008 /* scalar: ndim = 0 */ +#define _Py_MEMORYVIEW_PIL 0x010 /* PIL-style layout */ +#define _Py_MEMORYVIEW_RESTRICTED 0x020 /* Disallow new references to the memoryview's buffer */ + +typedef struct { + PyObject_VAR_HEAD + _PyManagedBufferObject *mbuf; /* managed buffer */ + Py_hash_t hash; /* hash value for read-only views */ + int flags; /* state flags */ + Py_ssize_t exports; /* number of buffer re-exports */ + Py_buffer view; /* private copy of the exporter's view */ + PyObject *weakreflist; + Py_ssize_t ob_array[1]; /* shape, strides, suboffsets */ +} PyMemoryViewObject; + +#define _PyMemoryView_CAST(op) _Py_CAST(PyMemoryViewObject*, op) + +/* Get a pointer to the memoryview's private copy of the exporter's buffer. */ +static inline Py_buffer* PyMemoryView_GET_BUFFER(PyObject *op) { + return (&_PyMemoryView_CAST(op)->view); +} +#define PyMemoryView_GET_BUFFER(op) PyMemoryView_GET_BUFFER(_PyObject_CAST(op)) + +/* Get a pointer to the exporting object (this may be NULL!). */ +static inline PyObject* PyMemoryView_GET_BASE(PyObject *op) { + return _PyMemoryView_CAST(op)->view.obj; +} +#define PyMemoryView_GET_BASE(op) PyMemoryView_GET_BASE(_PyObject_CAST(op)) diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/methodobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/methodobject.h new file mode 100644 index 000000000..d541e1549 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/methodobject.h @@ -0,0 +1,66 @@ +#ifndef Py_CPYTHON_METHODOBJECT_H +# error "this header file must not be included directly" +#endif + +// PyCFunctionObject structure + +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; + +#define _PyCFunctionObject_CAST(func) \ + (assert(PyCFunction_Check(func)), \ + _Py_CAST(PyCFunctionObject*, (func))) + + +// PyCMethodObject structure + +typedef struct { + PyCFunctionObject func; + PyTypeObject *mm_class; /* Class that defines this method */ +} PyCMethodObject; + +#define _PyCMethodObject_CAST(func) \ + (assert(PyCMethod_Check(func)), \ + _Py_CAST(PyCMethodObject*, (func))) + +PyAPI_DATA(PyTypeObject) PyCMethod_Type; + +#define PyCMethod_CheckExact(op) Py_IS_TYPE((op), &PyCMethod_Type) +#define PyCMethod_Check(op) PyObject_TypeCheck((op), &PyCMethod_Type) + + +/* Static inline functions for direct access to these values. + Type checks are *not* done, so use with care. */ +static inline PyCFunction PyCFunction_GET_FUNCTION(PyObject *func) { + return _PyCFunctionObject_CAST(func)->m_ml->ml_meth; +} +#define PyCFunction_GET_FUNCTION(func) PyCFunction_GET_FUNCTION(_PyObject_CAST(func)) + +static inline PyObject* PyCFunction_GET_SELF(PyObject *func_obj) { + PyCFunctionObject *func = _PyCFunctionObject_CAST(func_obj); + if (func->m_ml->ml_flags & METH_STATIC) { + return _Py_NULL; + } + return func->m_self; +} +#define PyCFunction_GET_SELF(func) PyCFunction_GET_SELF(_PyObject_CAST(func)) + +static inline int PyCFunction_GET_FLAGS(PyObject *func) { + return _PyCFunctionObject_CAST(func)->m_ml->ml_flags; +} +#define PyCFunction_GET_FLAGS(func) PyCFunction_GET_FLAGS(_PyObject_CAST(func)) + +static inline PyTypeObject* PyCFunction_GET_CLASS(PyObject *func_obj) { + PyCFunctionObject *func = _PyCFunctionObject_CAST(func_obj); + if (func->m_ml->ml_flags & METH_METHOD) { + return _PyCMethodObject_CAST(func)->mm_class; + } + return _Py_NULL; +} +#define PyCFunction_GET_CLASS(func) PyCFunction_GET_CLASS(_PyObject_CAST(func)) diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/modsupport.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/modsupport.h new file mode 100644 index 000000000..d3b88f58c --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/modsupport.h @@ -0,0 +1,26 @@ +#ifndef Py_CPYTHON_MODSUPPORT_H +# error "this header file must not be included directly" +#endif + +// A data structure that can be used to run initialization code once in a +// thread-safe manner. The C++11 equivalent is std::call_once. +typedef struct { + uint8_t v; +} _PyOnceFlag; + +typedef struct _PyArg_Parser { + const char *format; + const char * const *keywords; + const char *fname; + const char *custom_msg; + _PyOnceFlag once; /* atomic one-time initialization flag */ + int is_kwtuple_owned; /* does this parser own the kwtuple object? */ + int pos; /* number of positional-only arguments */ + int min; /* minimal number of arguments */ + int max; /* maximal number of positional arguments */ + PyObject *kwtuple; /* tuple of keyword parameter names */ + struct _PyArg_Parser *next; +} _PyArg_Parser; + +PyAPI_FUNC(int) _PyArg_ParseTupleAndKeywordsFast(PyObject *, PyObject *, + struct _PyArg_Parser *, ...); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/monitoring.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/monitoring.h new file mode 100644 index 000000000..797ba5124 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/monitoring.h @@ -0,0 +1,250 @@ +#ifndef Py_CPYTHON_MONITORING_H +# error "this header file must not be included directly" +#endif + +/* Local events. + * These require bytecode instrumentation */ + +#define PY_MONITORING_EVENT_PY_START 0 +#define PY_MONITORING_EVENT_PY_RESUME 1 +#define PY_MONITORING_EVENT_PY_RETURN 2 +#define PY_MONITORING_EVENT_PY_YIELD 3 +#define PY_MONITORING_EVENT_CALL 4 +#define PY_MONITORING_EVENT_LINE 5 +#define PY_MONITORING_EVENT_INSTRUCTION 6 +#define PY_MONITORING_EVENT_JUMP 7 +#define PY_MONITORING_EVENT_BRANCH 8 +#define PY_MONITORING_EVENT_STOP_ITERATION 9 + +#define PY_MONITORING_IS_INSTRUMENTED_EVENT(ev) \ + ((ev) < _PY_MONITORING_LOCAL_EVENTS) + +/* Other events, mainly exceptions */ + +#define PY_MONITORING_EVENT_RAISE 10 +#define PY_MONITORING_EVENT_EXCEPTION_HANDLED 11 +#define PY_MONITORING_EVENT_PY_UNWIND 12 +#define PY_MONITORING_EVENT_PY_THROW 13 +#define PY_MONITORING_EVENT_RERAISE 14 + + +/* Ancillary events */ + +#define PY_MONITORING_EVENT_C_RETURN 15 +#define PY_MONITORING_EVENT_C_RAISE 16 + + +typedef struct _PyMonitoringState { + uint8_t active; + uint8_t opaque; +} PyMonitoringState; + + +PyAPI_FUNC(int) +PyMonitoring_EnterScope(PyMonitoringState *state_array, uint64_t *version, + const uint8_t *event_types, Py_ssize_t length); + +PyAPI_FUNC(int) +PyMonitoring_ExitScope(void); + + +PyAPI_FUNC(int) +_PyMonitoring_FirePyStartEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset); + +PyAPI_FUNC(int) +_PyMonitoring_FirePyResumeEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset); + +PyAPI_FUNC(int) +_PyMonitoring_FirePyReturnEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + PyObject *retval); + +PyAPI_FUNC(int) +_PyMonitoring_FirePyYieldEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + PyObject *retval); + +PyAPI_FUNC(int) +_PyMonitoring_FireCallEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + PyObject* callable, PyObject *arg0); + +PyAPI_FUNC(int) +_PyMonitoring_FireLineEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + int lineno); + +PyAPI_FUNC(int) +_PyMonitoring_FireJumpEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + PyObject *target_offset); + +PyAPI_FUNC(int) +_PyMonitoring_FireBranchEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + PyObject *target_offset); + +PyAPI_FUNC(int) +_PyMonitoring_FireCReturnEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + PyObject *retval); + +PyAPI_FUNC(int) +_PyMonitoring_FirePyThrowEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset); + +PyAPI_FUNC(int) +_PyMonitoring_FireRaiseEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset); + +PyAPI_FUNC(int) +_PyMonitoring_FireReraiseEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset); + +PyAPI_FUNC(int) +_PyMonitoring_FireExceptionHandledEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset); + +PyAPI_FUNC(int) +_PyMonitoring_FireCRaiseEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset); + +PyAPI_FUNC(int) +_PyMonitoring_FirePyUnwindEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset); + +PyAPI_FUNC(int) +_PyMonitoring_FireStopIterationEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, PyObject *value); + + +#define _PYMONITORING_IF_ACTIVE(STATE, X) \ + if ((STATE)->active) { \ + return (X); \ + } \ + else { \ + return 0; \ + } + +static inline int +PyMonitoring_FirePyStartEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset) +{ + _PYMONITORING_IF_ACTIVE( + state, + _PyMonitoring_FirePyStartEvent(state, codelike, offset)); +} + +static inline int +PyMonitoring_FirePyResumeEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset) +{ + _PYMONITORING_IF_ACTIVE( + state, + _PyMonitoring_FirePyResumeEvent(state, codelike, offset)); +} + +static inline int +PyMonitoring_FirePyReturnEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + PyObject *retval) +{ + _PYMONITORING_IF_ACTIVE( + state, + _PyMonitoring_FirePyReturnEvent(state, codelike, offset, retval)); +} + +static inline int +PyMonitoring_FirePyYieldEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + PyObject *retval) +{ + _PYMONITORING_IF_ACTIVE( + state, + _PyMonitoring_FirePyYieldEvent(state, codelike, offset, retval)); +} + +static inline int +PyMonitoring_FireCallEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + PyObject* callable, PyObject *arg0) +{ + _PYMONITORING_IF_ACTIVE( + state, + _PyMonitoring_FireCallEvent(state, codelike, offset, callable, arg0)); +} + +static inline int +PyMonitoring_FireLineEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + int lineno) +{ + _PYMONITORING_IF_ACTIVE( + state, + _PyMonitoring_FireLineEvent(state, codelike, offset, lineno)); +} + +static inline int +PyMonitoring_FireJumpEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + PyObject *target_offset) +{ + _PYMONITORING_IF_ACTIVE( + state, + _PyMonitoring_FireJumpEvent(state, codelike, offset, target_offset)); +} + +static inline int +PyMonitoring_FireBranchEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + PyObject *target_offset) +{ + _PYMONITORING_IF_ACTIVE( + state, + _PyMonitoring_FireBranchEvent(state, codelike, offset, target_offset)); +} + +static inline int +PyMonitoring_FireCReturnEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + PyObject *retval) +{ + _PYMONITORING_IF_ACTIVE( + state, + _PyMonitoring_FireCReturnEvent(state, codelike, offset, retval)); +} + +static inline int +PyMonitoring_FirePyThrowEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset) +{ + _PYMONITORING_IF_ACTIVE( + state, + _PyMonitoring_FirePyThrowEvent(state, codelike, offset)); +} + +static inline int +PyMonitoring_FireRaiseEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset) +{ + _PYMONITORING_IF_ACTIVE( + state, + _PyMonitoring_FireRaiseEvent(state, codelike, offset)); +} + +static inline int +PyMonitoring_FireReraiseEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset) +{ + _PYMONITORING_IF_ACTIVE( + state, + _PyMonitoring_FireReraiseEvent(state, codelike, offset)); +} + +static inline int +PyMonitoring_FireExceptionHandledEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset) +{ + _PYMONITORING_IF_ACTIVE( + state, + _PyMonitoring_FireExceptionHandledEvent(state, codelike, offset)); +} + +static inline int +PyMonitoring_FireCRaiseEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset) +{ + _PYMONITORING_IF_ACTIVE( + state, + _PyMonitoring_FireCRaiseEvent(state, codelike, offset)); +} + +static inline int +PyMonitoring_FirePyUnwindEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset) +{ + _PYMONITORING_IF_ACTIVE( + state, + _PyMonitoring_FirePyUnwindEvent(state, codelike, offset)); +} + +static inline int +PyMonitoring_FireStopIterationEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, PyObject *value) +{ + _PYMONITORING_IF_ACTIVE( + state, + _PyMonitoring_FireStopIterationEvent(state, codelike, offset, value)); +} + +#undef _PYMONITORING_IF_ACTIVE diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/object.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/object.h new file mode 100644 index 000000000..6cb2c40fe --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/object.h @@ -0,0 +1,525 @@ +#ifndef Py_CPYTHON_OBJECT_H +# error "this header file must not be included directly" +#endif + +PyAPI_FUNC(void) _Py_NewReference(PyObject *op); +PyAPI_FUNC(void) _Py_NewReferenceNoTotal(PyObject *op); +PyAPI_FUNC(void) _Py_ResurrectReference(PyObject *op); + +#ifdef Py_REF_DEBUG +/* These are useful as debugging aids when chasing down refleaks. */ +PyAPI_FUNC(Py_ssize_t) _Py_GetGlobalRefTotal(void); +# define _Py_GetRefTotal() _Py_GetGlobalRefTotal() +PyAPI_FUNC(Py_ssize_t) _Py_GetLegacyRefTotal(void); +PyAPI_FUNC(Py_ssize_t) _PyInterpreterState_GetRefTotal(PyInterpreterState *); +#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 { + const char* string; + // Index in PyInterpreterState.unicode.ids.array. It is process-wide + // unique and must be initialized to -1. + Py_ssize_t index; + // Hidden PyMutex struct for non free-threaded build. + struct { + uint8_t v; + } mutex; +} _Py_Identifier; + +#ifndef Py_BUILD_CORE +// For now we are keeping _Py_IDENTIFIER for continued use +// in non-builtin extensions (and naughty PyPI modules). + +#define _Py_static_string_init(value) { .string = (value), .index = -1 } +#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) + +#endif /* !Py_BUILD_CORE */ + + +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 PySendResult (*sendfunc)(PyObject *iter, PyObject *value, PyObject **result); + +typedef struct { + unaryfunc am_await; + unaryfunc am_aiter; + unaryfunc am_anext; + sendfunc am_send; +} 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; + +// If this structure is modified, Doc/includes/typestruct.h should be updated +// as well. +struct _typeobject { + PyObject_VAR_HEAD + const char *tp_name; /* For printing, in format "." */ + 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 */ + PyMethodDef *tp_methods; + PyMemberDef *tp_members; + PyGetSetDef *tp_getset; + // Strong reference on a heap type, borrowed reference on a static type + PyTypeObject *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; /* no longer used */ + void *tp_subclasses; /* for static builtin types this is an index */ + PyObject *tp_weaklist; /* not used for static builtin types */ + destructor tp_del; + + /* Type attribute cache version tag. Added in version 2.6 */ + unsigned int tp_version_tag; + + destructor tp_finalize; + vectorcallfunc tp_vectorcall; + + /* bitset of which type-watchers care about this type */ + unsigned char tp_watched; + uint16_t tp_versions_used; +}; + +/* This struct is used by the specializer + * It should be treated as an opaque blob + * by code other than the specializer and interpreter. */ +struct _specialization_cache { + // In order to avoid bloating the bytecode with lots of inline caches, the + // members of this structure have a somewhat unique contract. They are set + // by the specialization machinery, and are invalidated by PyType_Modified. + // The rules for using them are as follows: + // - If getitem is non-NULL, then it is the same Python function that + // PyType_Lookup(cls, "__getitem__") would return. + // - If getitem is NULL, then getitem_version is meaningless. + // - If getitem->func_version == getitem_version, then getitem can be called + // with two positional arguments and no keyword arguments, and has neither + // *args nor **kwargs (as required by BINARY_SUBSCR_GETITEM): + PyObject *getitem; + uint32_t getitem_version; + PyObject *init; +}; + +/* 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; + char *_ht_tpname; // Storage for "tp_name"; see PyType_FromModuleAndSpec + struct _specialization_cache _spec_cache; // For use by the specializer. + /* here are optional user slots, followed by the members. */ +} PyHeapTypeObject; + +PyAPI_FUNC(const char *) _PyType_Name(PyTypeObject *); +PyAPI_FUNC(PyObject *) _PyType_Lookup(PyTypeObject *, PyObject *); +PyAPI_FUNC(PyObject *) _PyType_LookupRef(PyTypeObject *, PyObject *); +PyAPI_FUNC(PyObject *) PyType_GetDict(PyTypeObject *); + +PyAPI_FUNC(int) PyObject_Print(PyObject *, FILE *, int); +PyAPI_FUNC(void) _Py_BreakPoint(void); +PyAPI_FUNC(void) _PyObject_Dump(PyObject *); + +PyAPI_FUNC(PyObject*) _PyObject_GetAttrId(PyObject *, _Py_Identifier *); + +PyAPI_FUNC(PyObject **) _PyObject_GetDictPtr(PyObject *); +PyAPI_FUNC(void) PyObject_CallFinalizer(PyObject *); +PyAPI_FUNC(int) PyObject_CallFinalizerFromDealloc(PyObject *); + +PyAPI_FUNC(void) PyUnstable_Object_ClearWeakRefsNoCallbacks(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 `dst` and set `dst` to `src`. + * + * As in case of Py_CLEAR "the obvious" code can be deadly: + * + * Py_DECREF(dst); + * dst = src; + * + * The safe way is: + * + * Py_SETREF(dst, src); + * + * That arranges to set `dst` to `src` _before_ decref'ing, so that any code + * triggered as a side-effect of `dst` getting torn down no longer believes + * `dst` points to a valid object. + * + * Temporary variables are used to only evalutate macro arguments once and so + * avoid the duplication of side effects. _Py_TYPEOF() or memcpy() is used to + * avoid a miscompilation caused by type punning. See Py_CLEAR() comment for + * implementation details about type punning. + * + * The memcpy() implementation does not emit a compiler warning if 'src' has + * not the same type than 'src': any pointer type is accepted for 'src'. + */ +#ifdef _Py_TYPEOF +#define Py_SETREF(dst, src) \ + do { \ + _Py_TYPEOF(dst)* _tmp_dst_ptr = &(dst); \ + _Py_TYPEOF(dst) _tmp_old_dst = (*_tmp_dst_ptr); \ + *_tmp_dst_ptr = (src); \ + Py_DECREF(_tmp_old_dst); \ + } while (0) +#else +#define Py_SETREF(dst, src) \ + do { \ + PyObject **_tmp_dst_ptr = _Py_CAST(PyObject**, &(dst)); \ + PyObject *_tmp_old_dst = (*_tmp_dst_ptr); \ + PyObject *_tmp_src = _PyObject_CAST(src); \ + memcpy(_tmp_dst_ptr, &_tmp_src, sizeof(PyObject*)); \ + Py_DECREF(_tmp_old_dst); \ + } while (0) +#endif + +/* Py_XSETREF() is a variant of Py_SETREF() that uses Py_XDECREF() instead of + * Py_DECREF(). + */ +#ifdef _Py_TYPEOF +#define Py_XSETREF(dst, src) \ + do { \ + _Py_TYPEOF(dst)* _tmp_dst_ptr = &(dst); \ + _Py_TYPEOF(dst) _tmp_old_dst = (*_tmp_dst_ptr); \ + *_tmp_dst_ptr = (src); \ + Py_XDECREF(_tmp_old_dst); \ + } while (0) +#else +#define Py_XSETREF(dst, src) \ + do { \ + PyObject **_tmp_dst_ptr = _Py_CAST(PyObject**, &(dst)); \ + PyObject *_tmp_old_dst = (*_tmp_dst_ptr); \ + PyObject *_tmp_src = _PyObject_CAST(src); \ + memcpy(_tmp_dst_ptr, &_tmp_src, sizeof(PyObject*)); \ + Py_XDECREF(_tmp_old_dst); \ + } while (0) +#endif + + +/* 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); + + +/* 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)/(Py_TRASHCAN_HEADROOM-1) pieces, +with the call stack never exceeding a depth of Py_TRASHCAN_HEADROOM. + +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(). +*/ + +/* Python 3.9 private API, invoked by the macros below. */ +PyAPI_FUNC(int) _PyTrash_begin(PyThreadState *tstate, PyObject *op); +PyAPI_FUNC(void) _PyTrash_end(PyThreadState *tstate); + +PyAPI_FUNC(void) _PyTrash_thread_deposit_object(PyThreadState *tstate, PyObject *op); +PyAPI_FUNC(void) _PyTrash_thread_destroy_chain(PyThreadState *tstate); + + +/* Python 3.10 private API, invoked by the Py_TRASHCAN_BEGIN(). */ + +/* To avoid raising recursion errors during dealloc trigger trashcan before we reach + * recursion limit. To avoid trashing, we don't attempt to empty the trashcan until + * we have headroom above the trigger limit */ +#define Py_TRASHCAN_HEADROOM 50 + +#define Py_TRASHCAN_BEGIN(op, dealloc) \ +do { \ + PyThreadState *tstate = PyThreadState_Get(); \ + if (tstate->c_recursion_remaining <= Py_TRASHCAN_HEADROOM && Py_TYPE(op)->tp_dealloc == (destructor)dealloc) { \ + _PyTrash_thread_deposit_object(tstate, (PyObject *)op); \ + break; \ + } \ + tstate->c_recursion_remaining--; + /* The body of the deallocator is here. */ +#define Py_TRASHCAN_END \ + tstate->c_recursion_remaining++; \ + if (tstate->delete_later && tstate->c_recursion_remaining > (Py_TRASHCAN_HEADROOM*2)) { \ + _PyTrash_thread_destroy_chain(tstate); \ + } \ +} while (0); + + +PyAPI_FUNC(void *) PyObject_GetItemData(PyObject *obj); + +PyAPI_FUNC(int) PyObject_VisitManagedDict(PyObject *obj, visitproc visit, void *arg); +PyAPI_FUNC(int) _PyObject_SetManagedDict(PyObject *obj, PyObject *new_dict); +PyAPI_FUNC(void) PyObject_ClearManagedDict(PyObject *obj); + +#define TYPE_MAX_WATCHERS 8 + +typedef int(*PyType_WatchCallback)(PyTypeObject *); +PyAPI_FUNC(int) PyType_AddWatcher(PyType_WatchCallback callback); +PyAPI_FUNC(int) PyType_ClearWatcher(int watcher_id); +PyAPI_FUNC(int) PyType_Watch(int watcher_id, PyObject *type); +PyAPI_FUNC(int) PyType_Unwatch(int watcher_id, PyObject *type); + +/* Attempt to assign a version tag to the given type. + * + * Returns 1 if the type already had a valid version tag or a new one was + * assigned, or 0 if a new tag could not be assigned. + */ +PyAPI_FUNC(int) PyUnstable_Type_AssignVersionTag(PyTypeObject *type); + + +typedef enum { + PyRefTracer_CREATE = 0, + PyRefTracer_DESTROY = 1, +} PyRefTracerEvent; + +typedef int (*PyRefTracer)(PyObject *, PyRefTracerEvent event, void *); +PyAPI_FUNC(int) PyRefTracer_SetTracer(PyRefTracer tracer, void *data); +PyAPI_FUNC(PyRefTracer) PyRefTracer_GetTracer(void**); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/objimpl.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/objimpl.h new file mode 100644 index 000000000..e0c2ce286 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/objimpl.h @@ -0,0 +1,104 @@ +#ifndef Py_CPYTHON_OBJIMPL_H +# error "this header file must not be included directly" +#endif + +static inline size_t _PyObject_SIZE(PyTypeObject *type) { + return _Py_STATIC_CAST(size_t, type->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 + +static inline size_t _PyObject_VAR_SIZE(PyTypeObject *type, Py_ssize_t nitems) { + size_t size = _Py_STATIC_CAST(size_t, type->tp_basicsize); + size += _Py_STATIC_CAST(size_t, nitems) * _Py_STATIC_CAST(size_t, type->tp_itemsize); + return _Py_SIZE_ROUND_UP(size, 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. */ + + +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); + + +/* Test if an object implements the garbage collector protocol */ +PyAPI_FUNC(int) PyObject_IS_GC(PyObject *obj); + + +// Test if a type supports weak references +PyAPI_FUNC(int) PyType_SUPPORTS_WEAKREFS(PyTypeObject *type); + +PyAPI_FUNC(PyObject **) PyObject_GET_WEAKREFS_LISTPTR(PyObject *op); + +PyAPI_FUNC(PyObject *) PyUnstable_Object_GC_NewWithExtraData(PyTypeObject *, + size_t); + + +/* Visit all live GC-capable objects, similar to gc.get_objects(None). The + * supplied callback is called on every such object with the void* arg set + * to the supplied arg. Returning 0 from the callback ends iteration, returning + * 1 allows iteration to continue. Returning any other value may result in + * undefined behaviour. + * + * If new objects are (de)allocated by the callback it is undefined if they + * will be visited. + + * Garbage collection is disabled during operation. Explicitly running a + * collection in the callback may lead to undefined behaviour e.g. visiting the + * same objects multiple times or not at all. + */ +typedef int (*gcvisitobjects_t)(PyObject*, void*); +PyAPI_FUNC(void) PyUnstable_GC_VisitObjects(gcvisitobjects_t callback, void* arg); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/odictobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/odictobject.h new file mode 100644 index 000000000..3822d5548 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/odictobject.h @@ -0,0 +1,43 @@ +#ifndef Py_ODICTOBJECT_H +#define Py_ODICTOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + + +/* OrderedDict */ +/* This API is optional and mostly redundant. */ + +#ifndef Py_LIMITED_API + +typedef struct _odictobject PyODictObject; + +PyAPI_DATA(PyTypeObject) PyODict_Type; +PyAPI_DATA(PyTypeObject) PyODictIter_Type; +PyAPI_DATA(PyTypeObject) PyODictKeys_Type; +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_SIZE(op) PyDict_GET_SIZE((op)) + +PyAPI_FUNC(PyObject *) PyODict_New(void); +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_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)) +#define PyODict_GetItemString(od, key) \ + PyDict_GetItemString(_PyObject_CAST(od), (key)) + +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_ODICTOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/picklebufobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/picklebufobject.h new file mode 100644 index 000000000..f3cbaeef9 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/picklebufobject.h @@ -0,0 +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 */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pthread_stubs.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pthread_stubs.h new file mode 100644 index 000000000..e542eaa5b --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pthread_stubs.h @@ -0,0 +1,105 @@ +#ifndef Py_CPYTHON_PTRHEAD_STUBS_H +#define Py_CPYTHON_PTRHEAD_STUBS_H + +#if !defined(HAVE_PTHREAD_STUBS) +# error "this header file requires stubbed pthreads." +#endif + +#ifndef _POSIX_THREADS +# define _POSIX_THREADS 1 +#endif + +/* Minimal pthread stubs for CPython. + * + * The stubs implement the minimum pthread API for CPython. + * - pthread_create() fails. + * - pthread_exit() calls exit(0). + * - pthread_key_*() functions implement minimal TSS without destructor. + * - all other functions do nothing and return 0. + */ + +#ifdef __wasi__ +// WASI's bits/alltypes.h provides type definitions when __NEED_ is set. +// The header file can be included multiple times. +// +// may also define these macros. +# ifndef __NEED_pthread_cond_t +# define __NEED_pthread_cond_t 1 +# endif +# ifndef __NEED_pthread_condattr_t +# define __NEED_pthread_condattr_t 1 +# endif +# ifndef __NEED_pthread_mutex_t +# define __NEED_pthread_mutex_t 1 +# endif +# ifndef __NEED_pthread_mutexattr_t +# define __NEED_pthread_mutexattr_t 1 +# endif +# ifndef __NEED_pthread_key_t +# define __NEED_pthread_key_t 1 +# endif +# ifndef __NEED_pthread_t +# define __NEED_pthread_t 1 +# endif +# ifndef __NEED_pthread_attr_t +# define __NEED_pthread_attr_t 1 +# endif +# include +#else +typedef struct { void *__x; } pthread_cond_t; +typedef struct { unsigned __attr; } pthread_condattr_t; +typedef struct { void *__x; } pthread_mutex_t; +typedef struct { unsigned __attr; } pthread_mutexattr_t; +typedef unsigned pthread_key_t; +typedef unsigned pthread_t; +typedef struct { unsigned __attr; } pthread_attr_t; +#endif + +// mutex +PyAPI_FUNC(int) pthread_mutex_init(pthread_mutex_t *restrict mutex, + const pthread_mutexattr_t *restrict attr); +PyAPI_FUNC(int) pthread_mutex_destroy(pthread_mutex_t *mutex); +PyAPI_FUNC(int) pthread_mutex_trylock(pthread_mutex_t *mutex); +PyAPI_FUNC(int) pthread_mutex_lock(pthread_mutex_t *mutex); +PyAPI_FUNC(int) pthread_mutex_unlock(pthread_mutex_t *mutex); + +// condition +PyAPI_FUNC(int) pthread_cond_init(pthread_cond_t *restrict cond, + const pthread_condattr_t *restrict attr); +PyAPI_FUNC(int) pthread_cond_destroy(pthread_cond_t *cond); +PyAPI_FUNC(int) pthread_cond_wait(pthread_cond_t *restrict cond, + pthread_mutex_t *restrict mutex); +PyAPI_FUNC(int) pthread_cond_timedwait(pthread_cond_t *restrict cond, + pthread_mutex_t *restrict mutex, + const struct timespec *restrict abstime); +PyAPI_FUNC(int) pthread_cond_signal(pthread_cond_t *cond); +PyAPI_FUNC(int) pthread_condattr_init(pthread_condattr_t *attr); +PyAPI_FUNC(int) pthread_condattr_setclock( + pthread_condattr_t *attr, clockid_t clock_id); + +// pthread +PyAPI_FUNC(int) pthread_create(pthread_t *restrict thread, + const pthread_attr_t *restrict attr, + void *(*start_routine)(void *), + void *restrict arg); +PyAPI_FUNC(int) pthread_detach(pthread_t thread); +PyAPI_FUNC(int) pthread_join(pthread_t thread, void** value_ptr); +PyAPI_FUNC(pthread_t) pthread_self(void); +PyAPI_FUNC(int) pthread_exit(void *retval) __attribute__ ((__noreturn__)); +PyAPI_FUNC(int) pthread_attr_init(pthread_attr_t *attr); +PyAPI_FUNC(int) pthread_attr_setstacksize(pthread_attr_t *attr, size_t stacksize); +PyAPI_FUNC(int) pthread_attr_destroy(pthread_attr_t *attr); + + +// pthread_key +#ifndef PTHREAD_KEYS_MAX +# define PTHREAD_KEYS_MAX 128 +#endif + +PyAPI_FUNC(int) pthread_key_create(pthread_key_t *key, + void (*destr_function)(void *)); +PyAPI_FUNC(int) pthread_key_delete(pthread_key_t key); +PyAPI_FUNC(void *) pthread_getspecific(pthread_key_t key); +PyAPI_FUNC(int) pthread_setspecific(pthread_key_t key, const void *value); + +#endif // Py_CPYTHON_PTRHEAD_STUBS_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyatomic.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyatomic.h new file mode 100644 index 000000000..4ecef4f56 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyatomic.h @@ -0,0 +1,569 @@ +// This header provides cross-platform low-level atomic operations +// similar to C11 atomics. +// +// Operations are sequentially consistent unless they have a suffix indicating +// otherwise. If in doubt, prefer the sequentially consistent operations. +// +// The "_relaxed" suffix for load and store operations indicates the "relaxed" +// memory order. They don't provide synchronization, but (roughly speaking) +// guarantee somewhat sane behavior for races instead of undefined behavior. +// In practice, they correspond to "normal" hardware load and store +// instructions, so they are almost as inexpensive as plain loads and stores +// in C. +// +// Note that atomic read-modify-write operations like _Py_atomic_add_* return +// the previous value of the atomic variable, not the new value. +// +// See https://en.cppreference.com/w/c/atomic for more information on C11 +// atomics. +// See https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2055r0.pdf +// "A Relaxed Guide to memory_order_relaxed" for discussion of and common usage +// or relaxed atomics. +// +// Functions with pseudo Python code: +// +// def _Py_atomic_load(obj): +// return obj # sequential consistency +// +// def _Py_atomic_load_relaxed(obj): +// return obj # relaxed consistency +// +// def _Py_atomic_store(obj, value): +// obj = value # sequential consistency +// +// def _Py_atomic_store_relaxed(obj, value): +// obj = value # relaxed consistency +// +// def _Py_atomic_exchange(obj, value): +// # sequential consistency +// old_obj = obj +// obj = value +// return old_obj +// +// def _Py_atomic_compare_exchange(obj, expected, desired): +// # sequential consistency +// if obj == expected: +// obj = desired +// return True +// else: +// expected = obj +// return False +// +// def _Py_atomic_add(obj, value): +// # sequential consistency +// old_obj = obj +// obj += value +// return old_obj +// +// def _Py_atomic_and(obj, value): +// # sequential consistency +// old_obj = obj +// obj &= value +// return old_obj +// +// def _Py_atomic_or(obj, value): +// # sequential consistency +// old_obj = obj +// obj |= value +// return old_obj +// +// Other functions: +// +// def _Py_atomic_load_ptr_acquire(obj): +// return obj # acquire +// +// def _Py_atomic_store_ptr_release(obj): +// return obj # release +// +// def _Py_atomic_fence_seq_cst(): +// # sequential consistency +// ... +// +// def _Py_atomic_fence_release(): +// # release +// ... + +#ifndef Py_CPYTHON_ATOMIC_H +# error "this header file must not be included directly" +#endif + +// --- _Py_atomic_add -------------------------------------------------------- +// Atomically adds `value` to `obj` and returns the previous value + +static inline int +_Py_atomic_add_int(int *obj, int value); + +static inline int8_t +_Py_atomic_add_int8(int8_t *obj, int8_t value); + +static inline int16_t +_Py_atomic_add_int16(int16_t *obj, int16_t value); + +static inline int32_t +_Py_atomic_add_int32(int32_t *obj, int32_t value); + +static inline int64_t +_Py_atomic_add_int64(int64_t *obj, int64_t value); + +static inline intptr_t +_Py_atomic_add_intptr(intptr_t *obj, intptr_t value); + +static inline unsigned int +_Py_atomic_add_uint(unsigned int *obj, unsigned int value); + +static inline uint8_t +_Py_atomic_add_uint8(uint8_t *obj, uint8_t value); + +static inline uint16_t +_Py_atomic_add_uint16(uint16_t *obj, uint16_t value); + +static inline uint32_t +_Py_atomic_add_uint32(uint32_t *obj, uint32_t value); + +static inline uint64_t +_Py_atomic_add_uint64(uint64_t *obj, uint64_t value); + +static inline uintptr_t +_Py_atomic_add_uintptr(uintptr_t *obj, uintptr_t value); + +static inline Py_ssize_t +_Py_atomic_add_ssize(Py_ssize_t *obj, Py_ssize_t value); + + +// --- _Py_atomic_compare_exchange ------------------------------------------- +// Performs an atomic compare-and-exchange. +// +// - If `*obj` and `*expected` are equal, store `desired` into `*obj` +// and return 1 (success). +// - Otherwise, store the `*obj` current value into `*expected` +// and return 0 (failure). +// +// These correspond to the C11 atomic_compare_exchange_strong() function. + +static inline int +_Py_atomic_compare_exchange_int(int *obj, int *expected, int desired); + +static inline int +_Py_atomic_compare_exchange_int8(int8_t *obj, int8_t *expected, int8_t desired); + +static inline int +_Py_atomic_compare_exchange_int16(int16_t *obj, int16_t *expected, int16_t desired); + +static inline int +_Py_atomic_compare_exchange_int32(int32_t *obj, int32_t *expected, int32_t desired); + +static inline int +_Py_atomic_compare_exchange_int64(int64_t *obj, int64_t *expected, int64_t desired); + +static inline int +_Py_atomic_compare_exchange_intptr(intptr_t *obj, intptr_t *expected, intptr_t desired); + +static inline int +_Py_atomic_compare_exchange_uint(unsigned int *obj, unsigned int *expected, unsigned int desired); + +static inline int +_Py_atomic_compare_exchange_uint8(uint8_t *obj, uint8_t *expected, uint8_t desired); + +static inline int +_Py_atomic_compare_exchange_uint16(uint16_t *obj, uint16_t *expected, uint16_t desired); + +static inline int +_Py_atomic_compare_exchange_uint32(uint32_t *obj, uint32_t *expected, uint32_t desired); + +static inline int +_Py_atomic_compare_exchange_uint64(uint64_t *obj, uint64_t *expected, uint64_t desired); + +static inline int +_Py_atomic_compare_exchange_uintptr(uintptr_t *obj, uintptr_t *expected, uintptr_t desired); + +static inline int +_Py_atomic_compare_exchange_ssize(Py_ssize_t *obj, Py_ssize_t *expected, Py_ssize_t desired); + +// NOTE: `obj` and `expected` are logically `void**` types, but we use `void*` +// so that we can pass types like `PyObject**` without a cast. +static inline int +_Py_atomic_compare_exchange_ptr(void *obj, void *expected, void *value); + + +// --- _Py_atomic_exchange --------------------------------------------------- +// Atomically replaces `*obj` with `value` and returns the previous value of `*obj`. + +static inline int +_Py_atomic_exchange_int(int *obj, int value); + +static inline int8_t +_Py_atomic_exchange_int8(int8_t *obj, int8_t value); + +static inline int16_t +_Py_atomic_exchange_int16(int16_t *obj, int16_t value); + +static inline int32_t +_Py_atomic_exchange_int32(int32_t *obj, int32_t value); + +static inline int64_t +_Py_atomic_exchange_int64(int64_t *obj, int64_t value); + +static inline intptr_t +_Py_atomic_exchange_intptr(intptr_t *obj, intptr_t value); + +static inline unsigned int +_Py_atomic_exchange_uint(unsigned int *obj, unsigned int value); + +static inline uint8_t +_Py_atomic_exchange_uint8(uint8_t *obj, uint8_t value); + +static inline uint16_t +_Py_atomic_exchange_uint16(uint16_t *obj, uint16_t value); + +static inline uint32_t +_Py_atomic_exchange_uint32(uint32_t *obj, uint32_t value); + +static inline uint64_t +_Py_atomic_exchange_uint64(uint64_t *obj, uint64_t value); + +static inline uintptr_t +_Py_atomic_exchange_uintptr(uintptr_t *obj, uintptr_t value); + +static inline Py_ssize_t +_Py_atomic_exchange_ssize(Py_ssize_t *obj, Py_ssize_t value); + +static inline void * +_Py_atomic_exchange_ptr(void *obj, void *value); + + +// --- _Py_atomic_and -------------------------------------------------------- +// Performs `*obj &= value` atomically and returns the previous value of `*obj`. + +static inline uint8_t +_Py_atomic_and_uint8(uint8_t *obj, uint8_t value); + +static inline uint16_t +_Py_atomic_and_uint16(uint16_t *obj, uint16_t value); + +static inline uint32_t +_Py_atomic_and_uint32(uint32_t *obj, uint32_t value); + +static inline uint64_t +_Py_atomic_and_uint64(uint64_t *obj, uint64_t value); + +static inline uintptr_t +_Py_atomic_and_uintptr(uintptr_t *obj, uintptr_t value); + + +// --- _Py_atomic_or --------------------------------------------------------- +// Performs `*obj |= value` atomically and returns the previous value of `*obj`. + +static inline uint8_t +_Py_atomic_or_uint8(uint8_t *obj, uint8_t value); + +static inline uint16_t +_Py_atomic_or_uint16(uint16_t *obj, uint16_t value); + +static inline uint32_t +_Py_atomic_or_uint32(uint32_t *obj, uint32_t value); + +static inline uint64_t +_Py_atomic_or_uint64(uint64_t *obj, uint64_t value); + +static inline uintptr_t +_Py_atomic_or_uintptr(uintptr_t *obj, uintptr_t value); + + +// --- _Py_atomic_load ------------------------------------------------------- +// Atomically loads `*obj` (sequential consistency) + +static inline int +_Py_atomic_load_int(const int *obj); + +static inline int8_t +_Py_atomic_load_int8(const int8_t *obj); + +static inline int16_t +_Py_atomic_load_int16(const int16_t *obj); + +static inline int32_t +_Py_atomic_load_int32(const int32_t *obj); + +static inline int64_t +_Py_atomic_load_int64(const int64_t *obj); + +static inline intptr_t +_Py_atomic_load_intptr(const intptr_t *obj); + +static inline uint8_t +_Py_atomic_load_uint8(const uint8_t *obj); + +static inline uint16_t +_Py_atomic_load_uint16(const uint16_t *obj); + +static inline uint32_t +_Py_atomic_load_uint32(const uint32_t *obj); + +static inline uint64_t +_Py_atomic_load_uint64(const uint64_t *obj); + +static inline uintptr_t +_Py_atomic_load_uintptr(const uintptr_t *obj); + +static inline unsigned int +_Py_atomic_load_uint(const unsigned int *obj); + +static inline Py_ssize_t +_Py_atomic_load_ssize(const Py_ssize_t *obj); + +static inline void * +_Py_atomic_load_ptr(const void *obj); + + +// --- _Py_atomic_load_relaxed ----------------------------------------------- +// Loads `*obj` (relaxed consistency, i.e., no ordering) + +static inline int +_Py_atomic_load_int_relaxed(const int *obj); + +static inline int8_t +_Py_atomic_load_int8_relaxed(const int8_t *obj); + +static inline int16_t +_Py_atomic_load_int16_relaxed(const int16_t *obj); + +static inline int32_t +_Py_atomic_load_int32_relaxed(const int32_t *obj); + +static inline int64_t +_Py_atomic_load_int64_relaxed(const int64_t *obj); + +static inline intptr_t +_Py_atomic_load_intptr_relaxed(const intptr_t *obj); + +static inline uint8_t +_Py_atomic_load_uint8_relaxed(const uint8_t *obj); + +static inline uint16_t +_Py_atomic_load_uint16_relaxed(const uint16_t *obj); + +static inline uint32_t +_Py_atomic_load_uint32_relaxed(const uint32_t *obj); + +static inline uint64_t +_Py_atomic_load_uint64_relaxed(const uint64_t *obj); + +static inline uintptr_t +_Py_atomic_load_uintptr_relaxed(const uintptr_t *obj); + +static inline unsigned int +_Py_atomic_load_uint_relaxed(const unsigned int *obj); + +static inline Py_ssize_t +_Py_atomic_load_ssize_relaxed(const Py_ssize_t *obj); + +static inline void * +_Py_atomic_load_ptr_relaxed(const void *obj); + +static inline unsigned long long +_Py_atomic_load_ullong_relaxed(const unsigned long long *obj); + +// --- _Py_atomic_store ------------------------------------------------------ +// Atomically performs `*obj = value` (sequential consistency) + +static inline void +_Py_atomic_store_int(int *obj, int value); + +static inline void +_Py_atomic_store_int8(int8_t *obj, int8_t value); + +static inline void +_Py_atomic_store_int16(int16_t *obj, int16_t value); + +static inline void +_Py_atomic_store_int32(int32_t *obj, int32_t value); + +static inline void +_Py_atomic_store_int64(int64_t *obj, int64_t value); + +static inline void +_Py_atomic_store_intptr(intptr_t *obj, intptr_t value); + +static inline void +_Py_atomic_store_uint8(uint8_t *obj, uint8_t value); + +static inline void +_Py_atomic_store_uint16(uint16_t *obj, uint16_t value); + +static inline void +_Py_atomic_store_uint32(uint32_t *obj, uint32_t value); + +static inline void +_Py_atomic_store_uint64(uint64_t *obj, uint64_t value); + +static inline void +_Py_atomic_store_uintptr(uintptr_t *obj, uintptr_t value); + +static inline void +_Py_atomic_store_uint(unsigned int *obj, unsigned int value); + +static inline void +_Py_atomic_store_ptr(void *obj, void *value); + +static inline void +_Py_atomic_store_ssize(Py_ssize_t* obj, Py_ssize_t value); + + +// --- _Py_atomic_store_relaxed ---------------------------------------------- +// Stores `*obj = value` (relaxed consistency, i.e., no ordering) + +static inline void +_Py_atomic_store_int_relaxed(int *obj, int value); + +static inline void +_Py_atomic_store_int8_relaxed(int8_t *obj, int8_t value); + +static inline void +_Py_atomic_store_int16_relaxed(int16_t *obj, int16_t value); + +static inline void +_Py_atomic_store_int32_relaxed(int32_t *obj, int32_t value); + +static inline void +_Py_atomic_store_int64_relaxed(int64_t *obj, int64_t value); + +static inline void +_Py_atomic_store_intptr_relaxed(intptr_t *obj, intptr_t value); + +static inline void +_Py_atomic_store_uint8_relaxed(uint8_t* obj, uint8_t value); + +static inline void +_Py_atomic_store_uint16_relaxed(uint16_t *obj, uint16_t value); + +static inline void +_Py_atomic_store_uint32_relaxed(uint32_t *obj, uint32_t value); + +static inline void +_Py_atomic_store_uint64_relaxed(uint64_t *obj, uint64_t value); + +static inline void +_Py_atomic_store_uintptr_relaxed(uintptr_t *obj, uintptr_t value); + +static inline void +_Py_atomic_store_uint_relaxed(unsigned int *obj, unsigned int value); + +static inline void +_Py_atomic_store_ptr_relaxed(void *obj, void *value); + +static inline void +_Py_atomic_store_ssize_relaxed(Py_ssize_t *obj, Py_ssize_t value); + +static inline void +_Py_atomic_store_ullong_relaxed(unsigned long long *obj, + unsigned long long value); + + +// --- _Py_atomic_load_ptr_acquire / _Py_atomic_store_ptr_release ------------ + +// Loads `*obj` (acquire operation) +static inline void * +_Py_atomic_load_ptr_acquire(const void *obj); + +static inline uintptr_t +_Py_atomic_load_uintptr_acquire(const uintptr_t *obj); + +// Stores `*obj = value` (release operation) +static inline void +_Py_atomic_store_ptr_release(void *obj, void *value); + +static inline void +_Py_atomic_store_uintptr_release(uintptr_t *obj, uintptr_t value); + +static inline void +_Py_atomic_store_ssize_release(Py_ssize_t *obj, Py_ssize_t value); + +static inline void +_Py_atomic_store_int_release(int *obj, int value); + +static inline int +_Py_atomic_load_int_acquire(const int *obj); + +static inline void +_Py_atomic_store_uint32_release(uint32_t *obj, uint32_t value); + +static inline void +_Py_atomic_store_uint64_release(uint64_t *obj, uint64_t value); + +static inline uint64_t +_Py_atomic_load_uint64_acquire(const uint64_t *obj); + +static inline uint32_t +_Py_atomic_load_uint32_acquire(const uint32_t *obj); + +static inline Py_ssize_t +_Py_atomic_load_ssize_acquire(const Py_ssize_t *obj); + + + + +// --- _Py_atomic_fence ------------------------------------------------------ + +// Sequential consistency fence. C11 fences have complex semantics. When +// possible, use the atomic operations on variables defined above, which +// generally do not require explicit use of a fence. +// See https://en.cppreference.com/w/cpp/atomic/atomic_thread_fence +static inline void _Py_atomic_fence_seq_cst(void); + +// Acquire fence +static inline void _Py_atomic_fence_acquire(void); + +// Release fence +static inline void _Py_atomic_fence_release(void); + + +#ifndef _Py_USE_GCC_BUILTIN_ATOMICS +# if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)) +# define _Py_USE_GCC_BUILTIN_ATOMICS 1 +# elif defined(__clang__) +# if __has_builtin(__atomic_load) +# define _Py_USE_GCC_BUILTIN_ATOMICS 1 +# endif +# endif +#endif + +#if _Py_USE_GCC_BUILTIN_ATOMICS +# define Py_ATOMIC_GCC_H +# include "cpython/pyatomic_gcc.h" +# undef Py_ATOMIC_GCC_H +#elif __STDC_VERSION__ >= 201112L && !defined(__STDC_NO_ATOMICS__) +# define Py_ATOMIC_STD_H +# include "cpython/pyatomic_std.h" +# undef Py_ATOMIC_STD_H +#elif defined(_MSC_VER) +# define Py_ATOMIC_MSC_H +# include "cpython/pyatomic_msc.h" +# undef Py_ATOMIC_MSC_H +#else +# error "no available pyatomic implementation for this platform/compiler" +#endif + + +// --- aliases --------------------------------------------------------------- + +#if SIZEOF_LONG == 8 +# define _Py_atomic_load_ulong(p) \ + _Py_atomic_load_uint64((uint64_t *)p) +# define _Py_atomic_load_ulong_relaxed(p) \ + _Py_atomic_load_uint64_relaxed((uint64_t *)p) +# define _Py_atomic_store_ulong(p, v) \ + _Py_atomic_store_uint64((uint64_t *)p, v) +# define _Py_atomic_store_ulong_relaxed(p, v) \ + _Py_atomic_store_uint64_relaxed((uint64_t *)p, v) +#elif SIZEOF_LONG == 4 +# define _Py_atomic_load_ulong(p) \ + _Py_atomic_load_uint32((uint32_t *)p) +# define _Py_atomic_load_ulong_relaxed(p) \ + _Py_atomic_load_uint32_relaxed((uint32_t *)p) +# define _Py_atomic_store_ulong(p, v) \ + _Py_atomic_store_uint32((uint32_t *)p, v) +# define _Py_atomic_store_ulong_relaxed(p, v) \ + _Py_atomic_store_uint32_relaxed((uint32_t *)p, v) +#else +# error "long must be 4 or 8 bytes in size" +#endif // SIZEOF_LONG diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyatomic_gcc.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyatomic_gcc.h new file mode 100644 index 000000000..ef09954d5 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyatomic_gcc.h @@ -0,0 +1,551 @@ +// This is the implementation of Python atomic operations using GCC's built-in +// functions that match the C+11 memory model. This implementation is preferred +// for GCC compatible compilers, such as Clang. These functions are available +// in GCC 4.8+ without needing to compile with --std=c11 or --std=gnu11. + +#ifndef Py_ATOMIC_GCC_H +# error "this header file must not be included directly" +#endif + + +// --- _Py_atomic_add -------------------------------------------------------- + +static inline int +_Py_atomic_add_int(int *obj, int value) +{ return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } + +static inline int8_t +_Py_atomic_add_int8(int8_t *obj, int8_t value) +{ return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } + +static inline int16_t +_Py_atomic_add_int16(int16_t *obj, int16_t value) +{ return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } + +static inline int32_t +_Py_atomic_add_int32(int32_t *obj, int32_t value) +{ return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } + +static inline int64_t +_Py_atomic_add_int64(int64_t *obj, int64_t value) +{ return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } + +static inline intptr_t +_Py_atomic_add_intptr(intptr_t *obj, intptr_t value) +{ return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } + +static inline unsigned int +_Py_atomic_add_uint(unsigned int *obj, unsigned int value) +{ return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } + +static inline uint8_t +_Py_atomic_add_uint8(uint8_t *obj, uint8_t value) +{ return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } + +static inline uint16_t +_Py_atomic_add_uint16(uint16_t *obj, uint16_t value) +{ return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } + +static inline uint32_t +_Py_atomic_add_uint32(uint32_t *obj, uint32_t value) +{ return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } + +static inline uint64_t +_Py_atomic_add_uint64(uint64_t *obj, uint64_t value) +{ return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } + +static inline uintptr_t +_Py_atomic_add_uintptr(uintptr_t *obj, uintptr_t value) +{ return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } + +static inline Py_ssize_t +_Py_atomic_add_ssize(Py_ssize_t *obj, Py_ssize_t value) +{ return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } + + +// --- _Py_atomic_compare_exchange ------------------------------------------- + +static inline int +_Py_atomic_compare_exchange_int(int *obj, int *expected, int desired) +{ return __atomic_compare_exchange_n(obj, expected, desired, 0, + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } + +static inline int +_Py_atomic_compare_exchange_int8(int8_t *obj, int8_t *expected, int8_t desired) +{ return __atomic_compare_exchange_n(obj, expected, desired, 0, + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } + +static inline int +_Py_atomic_compare_exchange_int16(int16_t *obj, int16_t *expected, int16_t desired) +{ return __atomic_compare_exchange_n(obj, expected, desired, 0, + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } + +static inline int +_Py_atomic_compare_exchange_int32(int32_t *obj, int32_t *expected, int32_t desired) +{ return __atomic_compare_exchange_n(obj, expected, desired, 0, + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } + +static inline int +_Py_atomic_compare_exchange_int64(int64_t *obj, int64_t *expected, int64_t desired) +{ return __atomic_compare_exchange_n(obj, expected, desired, 0, + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } + +static inline int +_Py_atomic_compare_exchange_intptr(intptr_t *obj, intptr_t *expected, intptr_t desired) +{ return __atomic_compare_exchange_n(obj, expected, desired, 0, + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } + +static inline int +_Py_atomic_compare_exchange_uint(unsigned int *obj, unsigned int *expected, unsigned int desired) +{ return __atomic_compare_exchange_n(obj, expected, desired, 0, + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } + +static inline int +_Py_atomic_compare_exchange_uint8(uint8_t *obj, uint8_t *expected, uint8_t desired) +{ return __atomic_compare_exchange_n(obj, expected, desired, 0, + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } + +static inline int +_Py_atomic_compare_exchange_uint16(uint16_t *obj, uint16_t *expected, uint16_t desired) +{ return __atomic_compare_exchange_n(obj, expected, desired, 0, + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } + +static inline int +_Py_atomic_compare_exchange_uint32(uint32_t *obj, uint32_t *expected, uint32_t desired) +{ return __atomic_compare_exchange_n(obj, expected, desired, 0, + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } + +static inline int +_Py_atomic_compare_exchange_uint64(uint64_t *obj, uint64_t *expected, uint64_t desired) +{ return __atomic_compare_exchange_n(obj, expected, desired, 0, + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } + +static inline int +_Py_atomic_compare_exchange_uintptr(uintptr_t *obj, uintptr_t *expected, uintptr_t desired) +{ return __atomic_compare_exchange_n(obj, expected, desired, 0, + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } + +static inline int +_Py_atomic_compare_exchange_ssize(Py_ssize_t *obj, Py_ssize_t *expected, Py_ssize_t desired) +{ return __atomic_compare_exchange_n(obj, expected, desired, 0, + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } + +static inline int +_Py_atomic_compare_exchange_ptr(void *obj, void *expected, void *desired) +{ return __atomic_compare_exchange_n((void **)obj, (void **)expected, desired, 0, + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } + + +// --- _Py_atomic_exchange --------------------------------------------------- + +static inline int +_Py_atomic_exchange_int(int *obj, int value) +{ return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline int8_t +_Py_atomic_exchange_int8(int8_t *obj, int8_t value) +{ return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline int16_t +_Py_atomic_exchange_int16(int16_t *obj, int16_t value) +{ return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline int32_t +_Py_atomic_exchange_int32(int32_t *obj, int32_t value) +{ return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline int64_t +_Py_atomic_exchange_int64(int64_t *obj, int64_t value) +{ return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline intptr_t +_Py_atomic_exchange_intptr(intptr_t *obj, intptr_t value) +{ return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline unsigned int +_Py_atomic_exchange_uint(unsigned int *obj, unsigned int value) +{ return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline uint8_t +_Py_atomic_exchange_uint8(uint8_t *obj, uint8_t value) +{ return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline uint16_t +_Py_atomic_exchange_uint16(uint16_t *obj, uint16_t value) +{ return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline uint32_t +_Py_atomic_exchange_uint32(uint32_t *obj, uint32_t value) +{ return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline uint64_t +_Py_atomic_exchange_uint64(uint64_t *obj, uint64_t value) +{ return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline uintptr_t +_Py_atomic_exchange_uintptr(uintptr_t *obj, uintptr_t value) +{ return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline Py_ssize_t +_Py_atomic_exchange_ssize(Py_ssize_t *obj, Py_ssize_t value) +{ return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline void * +_Py_atomic_exchange_ptr(void *obj, void *value) +{ return __atomic_exchange_n((void **)obj, value, __ATOMIC_SEQ_CST); } + + +// --- _Py_atomic_and -------------------------------------------------------- + +static inline uint8_t +_Py_atomic_and_uint8(uint8_t *obj, uint8_t value) +{ return __atomic_fetch_and(obj, value, __ATOMIC_SEQ_CST); } + +static inline uint16_t +_Py_atomic_and_uint16(uint16_t *obj, uint16_t value) +{ return __atomic_fetch_and(obj, value, __ATOMIC_SEQ_CST); } + +static inline uint32_t +_Py_atomic_and_uint32(uint32_t *obj, uint32_t value) +{ return __atomic_fetch_and(obj, value, __ATOMIC_SEQ_CST); } + +static inline uint64_t +_Py_atomic_and_uint64(uint64_t *obj, uint64_t value) +{ return __atomic_fetch_and(obj, value, __ATOMIC_SEQ_CST); } + +static inline uintptr_t +_Py_atomic_and_uintptr(uintptr_t *obj, uintptr_t value) +{ return __atomic_fetch_and(obj, value, __ATOMIC_SEQ_CST); } + + +// --- _Py_atomic_or --------------------------------------------------------- + +static inline uint8_t +_Py_atomic_or_uint8(uint8_t *obj, uint8_t value) +{ return __atomic_fetch_or(obj, value, __ATOMIC_SEQ_CST); } + +static inline uint16_t +_Py_atomic_or_uint16(uint16_t *obj, uint16_t value) +{ return __atomic_fetch_or(obj, value, __ATOMIC_SEQ_CST); } + +static inline uint32_t +_Py_atomic_or_uint32(uint32_t *obj, uint32_t value) +{ return __atomic_fetch_or(obj, value, __ATOMIC_SEQ_CST); } + +static inline uint64_t +_Py_atomic_or_uint64(uint64_t *obj, uint64_t value) +{ return __atomic_fetch_or(obj, value, __ATOMIC_SEQ_CST); } + +static inline uintptr_t +_Py_atomic_or_uintptr(uintptr_t *obj, uintptr_t value) +{ return __atomic_fetch_or(obj, value, __ATOMIC_SEQ_CST); } + + +// --- _Py_atomic_load ------------------------------------------------------- + +static inline int +_Py_atomic_load_int(const int *obj) +{ return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } + +static inline int8_t +_Py_atomic_load_int8(const int8_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } + +static inline int16_t +_Py_atomic_load_int16(const int16_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } + +static inline int32_t +_Py_atomic_load_int32(const int32_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } + +static inline int64_t +_Py_atomic_load_int64(const int64_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } + +static inline intptr_t +_Py_atomic_load_intptr(const intptr_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } + +static inline uint8_t +_Py_atomic_load_uint8(const uint8_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } + +static inline uint16_t +_Py_atomic_load_uint16(const uint16_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } + +static inline uint32_t +_Py_atomic_load_uint32(const uint32_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } + +static inline uint64_t +_Py_atomic_load_uint64(const uint64_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } + +static inline uintptr_t +_Py_atomic_load_uintptr(const uintptr_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } + +static inline unsigned int +_Py_atomic_load_uint(const unsigned int *obj) +{ return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } + +static inline Py_ssize_t +_Py_atomic_load_ssize(const Py_ssize_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } + +static inline void * +_Py_atomic_load_ptr(const void *obj) +{ return (void *)__atomic_load_n((void * const *)obj, __ATOMIC_SEQ_CST); } + + +// --- _Py_atomic_load_relaxed ----------------------------------------------- + +static inline int +_Py_atomic_load_int_relaxed(const int *obj) +{ return __atomic_load_n(obj, __ATOMIC_RELAXED); } + +static inline int8_t +_Py_atomic_load_int8_relaxed(const int8_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_RELAXED); } + +static inline int16_t +_Py_atomic_load_int16_relaxed(const int16_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_RELAXED); } + +static inline int32_t +_Py_atomic_load_int32_relaxed(const int32_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_RELAXED); } + +static inline int64_t +_Py_atomic_load_int64_relaxed(const int64_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_RELAXED); } + +static inline intptr_t +_Py_atomic_load_intptr_relaxed(const intptr_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_RELAXED); } + +static inline uint8_t +_Py_atomic_load_uint8_relaxed(const uint8_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_RELAXED); } + +static inline uint16_t +_Py_atomic_load_uint16_relaxed(const uint16_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_RELAXED); } + +static inline uint32_t +_Py_atomic_load_uint32_relaxed(const uint32_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_RELAXED); } + +static inline uint64_t +_Py_atomic_load_uint64_relaxed(const uint64_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_RELAXED); } + +static inline uintptr_t +_Py_atomic_load_uintptr_relaxed(const uintptr_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_RELAXED); } + +static inline unsigned int +_Py_atomic_load_uint_relaxed(const unsigned int *obj) +{ return __atomic_load_n(obj, __ATOMIC_RELAXED); } + +static inline Py_ssize_t +_Py_atomic_load_ssize_relaxed(const Py_ssize_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_RELAXED); } + +static inline void * +_Py_atomic_load_ptr_relaxed(const void *obj) +{ return (void *)__atomic_load_n((void * const *)obj, __ATOMIC_RELAXED); } + +static inline unsigned long long +_Py_atomic_load_ullong_relaxed(const unsigned long long *obj) +{ return __atomic_load_n(obj, __ATOMIC_RELAXED); } + + +// --- _Py_atomic_store ------------------------------------------------------ + +static inline void +_Py_atomic_store_int(int *obj, int value) +{ __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline void +_Py_atomic_store_int8(int8_t *obj, int8_t value) +{ __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline void +_Py_atomic_store_int16(int16_t *obj, int16_t value) +{ __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline void +_Py_atomic_store_int32(int32_t *obj, int32_t value) +{ __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline void +_Py_atomic_store_int64(int64_t *obj, int64_t value) +{ __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline void +_Py_atomic_store_intptr(intptr_t *obj, intptr_t value) +{ __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline void +_Py_atomic_store_uint8(uint8_t *obj, uint8_t value) +{ __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline void +_Py_atomic_store_uint16(uint16_t *obj, uint16_t value) +{ __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline void +_Py_atomic_store_uint32(uint32_t *obj, uint32_t value) +{ __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline void +_Py_atomic_store_uint64(uint64_t *obj, uint64_t value) +{ __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline void +_Py_atomic_store_uintptr(uintptr_t *obj, uintptr_t value) +{ __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline void +_Py_atomic_store_uint(unsigned int *obj, unsigned int value) +{ __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline void +_Py_atomic_store_ptr(void *obj, void *value) +{ __atomic_store_n((void **)obj, value, __ATOMIC_SEQ_CST); } + +static inline void +_Py_atomic_store_ssize(Py_ssize_t *obj, Py_ssize_t value) +{ __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } + + +// --- _Py_atomic_store_relaxed ---------------------------------------------- + +static inline void +_Py_atomic_store_int_relaxed(int *obj, int value) +{ __atomic_store_n(obj, value, __ATOMIC_RELAXED); } + +static inline void +_Py_atomic_store_int8_relaxed(int8_t *obj, int8_t value) +{ __atomic_store_n(obj, value, __ATOMIC_RELAXED); } + +static inline void +_Py_atomic_store_int16_relaxed(int16_t *obj, int16_t value) +{ __atomic_store_n(obj, value, __ATOMIC_RELAXED); } + +static inline void +_Py_atomic_store_int32_relaxed(int32_t *obj, int32_t value) +{ __atomic_store_n(obj, value, __ATOMIC_RELAXED); } + +static inline void +_Py_atomic_store_int64_relaxed(int64_t *obj, int64_t value) +{ __atomic_store_n(obj, value, __ATOMIC_RELAXED); } + +static inline void +_Py_atomic_store_intptr_relaxed(intptr_t *obj, intptr_t value) +{ __atomic_store_n(obj, value, __ATOMIC_RELAXED); } + +static inline void +_Py_atomic_store_uint8_relaxed(uint8_t *obj, uint8_t value) +{ __atomic_store_n(obj, value, __ATOMIC_RELAXED); } + +static inline void +_Py_atomic_store_uint16_relaxed(uint16_t *obj, uint16_t value) +{ __atomic_store_n(obj, value, __ATOMIC_RELAXED); } + +static inline void +_Py_atomic_store_uint32_relaxed(uint32_t *obj, uint32_t value) +{ __atomic_store_n(obj, value, __ATOMIC_RELAXED); } + +static inline void +_Py_atomic_store_uint64_relaxed(uint64_t *obj, uint64_t value) +{ __atomic_store_n(obj, value, __ATOMIC_RELAXED); } + +static inline void +_Py_atomic_store_uintptr_relaxed(uintptr_t *obj, uintptr_t value) +{ __atomic_store_n(obj, value, __ATOMIC_RELAXED); } + +static inline void +_Py_atomic_store_uint_relaxed(unsigned int *obj, unsigned int value) +{ __atomic_store_n(obj, value, __ATOMIC_RELAXED); } + +static inline void +_Py_atomic_store_ptr_relaxed(void *obj, void *value) +{ __atomic_store_n((void **)obj, value, __ATOMIC_RELAXED); } + +static inline void +_Py_atomic_store_ssize_relaxed(Py_ssize_t *obj, Py_ssize_t value) +{ __atomic_store_n(obj, value, __ATOMIC_RELAXED); } + +static inline void +_Py_atomic_store_ullong_relaxed(unsigned long long *obj, + unsigned long long value) +{ __atomic_store_n(obj, value, __ATOMIC_RELAXED); } + + +// --- _Py_atomic_load_ptr_acquire / _Py_atomic_store_ptr_release ------------ + +static inline void * +_Py_atomic_load_ptr_acquire(const void *obj) +{ return (void *)__atomic_load_n((void * const *)obj, __ATOMIC_ACQUIRE); } + +static inline uintptr_t +_Py_atomic_load_uintptr_acquire(const uintptr_t *obj) +{ return (uintptr_t)__atomic_load_n(obj, __ATOMIC_ACQUIRE); } + +static inline void +_Py_atomic_store_ptr_release(void *obj, void *value) +{ __atomic_store_n((void **)obj, value, __ATOMIC_RELEASE); } + +static inline void +_Py_atomic_store_uintptr_release(uintptr_t *obj, uintptr_t value) +{ __atomic_store_n(obj, value, __ATOMIC_RELEASE); } + +static inline void +_Py_atomic_store_int_release(int *obj, int value) +{ __atomic_store_n(obj, value, __ATOMIC_RELEASE); } + +static inline void +_Py_atomic_store_ssize_release(Py_ssize_t *obj, Py_ssize_t value) +{ __atomic_store_n(obj, value, __ATOMIC_RELEASE); } + +static inline int +_Py_atomic_load_int_acquire(const int *obj) +{ return __atomic_load_n(obj, __ATOMIC_ACQUIRE); } + +static inline void +_Py_atomic_store_uint32_release(uint32_t *obj, uint32_t value) +{ __atomic_store_n(obj, value, __ATOMIC_RELEASE); } + +static inline void +_Py_atomic_store_uint64_release(uint64_t *obj, uint64_t value) +{ __atomic_store_n(obj, value, __ATOMIC_RELEASE); } + +static inline uint64_t +_Py_atomic_load_uint64_acquire(const uint64_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_ACQUIRE); } + +static inline uint32_t +_Py_atomic_load_uint32_acquire(const uint32_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_ACQUIRE); } + +static inline Py_ssize_t +_Py_atomic_load_ssize_acquire(const Py_ssize_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_ACQUIRE); } + +// --- _Py_atomic_fence ------------------------------------------------------ + +static inline void +_Py_atomic_fence_seq_cst(void) +{ __atomic_thread_fence(__ATOMIC_SEQ_CST); } + + static inline void +_Py_atomic_fence_acquire(void) +{ __atomic_thread_fence(__ATOMIC_ACQUIRE); } + + static inline void +_Py_atomic_fence_release(void) +{ __atomic_thread_fence(__ATOMIC_RELEASE); } diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyatomic_msc.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyatomic_msc.h new file mode 100644 index 000000000..84da21bdc --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyatomic_msc.h @@ -0,0 +1,1095 @@ +// This is the implementation of Python atomic operations for MSVC if the +// compiler does not support C11 or C++11 atomics. +// +// MSVC intrinsics are defined on char, short, long, __int64, and pointer +// types. Note that long and int are both 32-bits even on 64-bit Windows, +// so operations on int are cast to long. +// +// The volatile keyword has additional memory ordering semantics on MSVC. On +// x86 and x86-64, volatile accesses have acquire-release semantics. On ARM64, +// volatile accesses behave like C11's memory_order_relaxed. + +#ifndef Py_ATOMIC_MSC_H +# error "this header file must not be included directly" +#endif + +#include + +#define _Py_atomic_ASSERT_ARG_TYPE(TYPE) \ + Py_BUILD_ASSERT(sizeof(*obj) == sizeof(TYPE)) + + +// --- _Py_atomic_add -------------------------------------------------------- + +static inline int8_t +_Py_atomic_add_int8(int8_t *obj, int8_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(char); + return (int8_t)_InterlockedExchangeAdd8((volatile char *)obj, (char)value); +} + +static inline int16_t +_Py_atomic_add_int16(int16_t *obj, int16_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(short); + return (int16_t)_InterlockedExchangeAdd16((volatile short *)obj, (short)value); +} + +static inline int32_t +_Py_atomic_add_int32(int32_t *obj, int32_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(long); + return (int32_t)_InterlockedExchangeAdd((volatile long *)obj, (long)value); +} + +static inline int64_t +_Py_atomic_add_int64(int64_t *obj, int64_t value) +{ +#if defined(_M_X64) || defined(_M_ARM64) + _Py_atomic_ASSERT_ARG_TYPE(__int64); + return (int64_t)_InterlockedExchangeAdd64((volatile __int64 *)obj, (__int64)value); +#else + int64_t old_value = _Py_atomic_load_int64_relaxed(obj); + for (;;) { + int64_t new_value = old_value + value; + if (_Py_atomic_compare_exchange_int64(obj, &old_value, new_value)) { + return old_value; + } + } +#endif +} + + +static inline uint8_t +_Py_atomic_add_uint8(uint8_t *obj, uint8_t value) +{ + return (uint8_t)_Py_atomic_add_int8((int8_t *)obj, (int8_t)value); +} + +static inline uint16_t +_Py_atomic_add_uint16(uint16_t *obj, uint16_t value) +{ + return (uint16_t)_Py_atomic_add_int16((int16_t *)obj, (int16_t)value); +} + +static inline uint32_t +_Py_atomic_add_uint32(uint32_t *obj, uint32_t value) +{ + return (uint32_t)_Py_atomic_add_int32((int32_t *)obj, (int32_t)value); +} + +static inline int +_Py_atomic_add_int(int *obj, int value) +{ + _Py_atomic_ASSERT_ARG_TYPE(int32_t); + return (int)_Py_atomic_add_int32((int32_t *)obj, (int32_t)value); +} + +static inline unsigned int +_Py_atomic_add_uint(unsigned int *obj, unsigned int value) +{ + _Py_atomic_ASSERT_ARG_TYPE(int32_t); + return (unsigned int)_Py_atomic_add_int32((int32_t *)obj, (int32_t)value); +} + +static inline uint64_t +_Py_atomic_add_uint64(uint64_t *obj, uint64_t value) +{ + return (uint64_t)_Py_atomic_add_int64((int64_t *)obj, (int64_t)value); +} + +static inline intptr_t +_Py_atomic_add_intptr(intptr_t *obj, intptr_t value) +{ +#if SIZEOF_VOID_P == 8 + _Py_atomic_ASSERT_ARG_TYPE(int64_t); + return (intptr_t)_Py_atomic_add_int64((int64_t *)obj, (int64_t)value); +#else + _Py_atomic_ASSERT_ARG_TYPE(int32_t); + return (intptr_t)_Py_atomic_add_int32((int32_t *)obj, (int32_t)value); +#endif +} + +static inline uintptr_t +_Py_atomic_add_uintptr(uintptr_t *obj, uintptr_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(intptr_t); + return (uintptr_t)_Py_atomic_add_intptr((intptr_t *)obj, (intptr_t)value); +} + +static inline Py_ssize_t +_Py_atomic_add_ssize(Py_ssize_t *obj, Py_ssize_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(intptr_t); + return (Py_ssize_t)_Py_atomic_add_intptr((intptr_t *)obj, (intptr_t)value); +} + + +// --- _Py_atomic_compare_exchange ------------------------------------------- + +static inline int +_Py_atomic_compare_exchange_int8(int8_t *obj, int8_t *expected, int8_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(char); + int8_t initial = (int8_t)_InterlockedCompareExchange8( + (volatile char *)obj, + (char)value, + (char)*expected); + if (initial == *expected) { + return 1; + } + *expected = initial; + return 0; +} + +static inline int +_Py_atomic_compare_exchange_int16(int16_t *obj, int16_t *expected, int16_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(short); + int16_t initial = (int16_t)_InterlockedCompareExchange16( + (volatile short *)obj, + (short)value, + (short)*expected); + if (initial == *expected) { + return 1; + } + *expected = initial; + return 0; +} + +static inline int +_Py_atomic_compare_exchange_int32(int32_t *obj, int32_t *expected, int32_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(long); + int32_t initial = (int32_t)_InterlockedCompareExchange( + (volatile long *)obj, + (long)value, + (long)*expected); + if (initial == *expected) { + return 1; + } + *expected = initial; + return 0; +} + +static inline int +_Py_atomic_compare_exchange_int64(int64_t *obj, int64_t *expected, int64_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(__int64); + int64_t initial = (int64_t)_InterlockedCompareExchange64( + (volatile __int64 *)obj, + (__int64)value, + (__int64)*expected); + if (initial == *expected) { + return 1; + } + *expected = initial; + return 0; +} + +static inline int +_Py_atomic_compare_exchange_ptr(void *obj, void *expected, void *value) +{ + void *initial = _InterlockedCompareExchangePointer( + (void**)obj, + value, + *(void**)expected); + if (initial == *(void**)expected) { + return 1; + } + *(void**)expected = initial; + return 0; +} + + +static inline int +_Py_atomic_compare_exchange_uint8(uint8_t *obj, uint8_t *expected, uint8_t value) +{ + return _Py_atomic_compare_exchange_int8((int8_t *)obj, + (int8_t *)expected, + (int8_t)value); +} + +static inline int +_Py_atomic_compare_exchange_uint16(uint16_t *obj, uint16_t *expected, uint16_t value) +{ + return _Py_atomic_compare_exchange_int16((int16_t *)obj, + (int16_t *)expected, + (int16_t)value); +} + +static inline int +_Py_atomic_compare_exchange_uint32(uint32_t *obj, uint32_t *expected, uint32_t value) +{ + return _Py_atomic_compare_exchange_int32((int32_t *)obj, + (int32_t *)expected, + (int32_t)value); +} + +static inline int +_Py_atomic_compare_exchange_int(int *obj, int *expected, int value) +{ + _Py_atomic_ASSERT_ARG_TYPE(int32_t); + return _Py_atomic_compare_exchange_int32((int32_t *)obj, + (int32_t *)expected, + (int32_t)value); +} + +static inline int +_Py_atomic_compare_exchange_uint(unsigned int *obj, unsigned int *expected, unsigned int value) +{ + _Py_atomic_ASSERT_ARG_TYPE(int32_t); + return _Py_atomic_compare_exchange_int32((int32_t *)obj, + (int32_t *)expected, + (int32_t)value); +} + +static inline int +_Py_atomic_compare_exchange_uint64(uint64_t *obj, uint64_t *expected, uint64_t value) +{ + return _Py_atomic_compare_exchange_int64((int64_t *)obj, + (int64_t *)expected, + (int64_t)value); +} + +static inline int +_Py_atomic_compare_exchange_intptr(intptr_t *obj, intptr_t *expected, intptr_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(void*); + return _Py_atomic_compare_exchange_ptr((void**)obj, + (void**)expected, + (void*)value); +} + +static inline int +_Py_atomic_compare_exchange_uintptr(uintptr_t *obj, uintptr_t *expected, uintptr_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(void*); + return _Py_atomic_compare_exchange_ptr((void**)obj, + (void**)expected, + (void*)value); +} + +static inline int +_Py_atomic_compare_exchange_ssize(Py_ssize_t *obj, Py_ssize_t *expected, Py_ssize_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(void*); + return _Py_atomic_compare_exchange_ptr((void**)obj, + (void**)expected, + (void*)value); +} + + +// --- _Py_atomic_exchange --------------------------------------------------- + +static inline int8_t +_Py_atomic_exchange_int8(int8_t *obj, int8_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(char); + return (int8_t)_InterlockedExchange8((volatile char *)obj, (char)value); +} + +static inline int16_t +_Py_atomic_exchange_int16(int16_t *obj, int16_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(short); + return (int16_t)_InterlockedExchange16((volatile short *)obj, (short)value); +} + +static inline int32_t +_Py_atomic_exchange_int32(int32_t *obj, int32_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(long); + return (int32_t)_InterlockedExchange((volatile long *)obj, (long)value); +} + +static inline int64_t +_Py_atomic_exchange_int64(int64_t *obj, int64_t value) +{ +#if defined(_M_X64) || defined(_M_ARM64) + _Py_atomic_ASSERT_ARG_TYPE(__int64); + return (int64_t)_InterlockedExchange64((volatile __int64 *)obj, (__int64)value); +#else + int64_t old_value = _Py_atomic_load_int64_relaxed(obj); + for (;;) { + if (_Py_atomic_compare_exchange_int64(obj, &old_value, value)) { + return old_value; + } + } +#endif +} + +static inline void* +_Py_atomic_exchange_ptr(void *obj, void *value) +{ + return (void*)_InterlockedExchangePointer((void * volatile *)obj, (void *)value); +} + + +static inline uint8_t +_Py_atomic_exchange_uint8(uint8_t *obj, uint8_t value) +{ + return (uint8_t)_Py_atomic_exchange_int8((int8_t *)obj, + (int8_t)value); +} + +static inline uint16_t +_Py_atomic_exchange_uint16(uint16_t *obj, uint16_t value) +{ + return (uint16_t)_Py_atomic_exchange_int16((int16_t *)obj, + (int16_t)value); +} + +static inline uint32_t +_Py_atomic_exchange_uint32(uint32_t *obj, uint32_t value) +{ + return (uint32_t)_Py_atomic_exchange_int32((int32_t *)obj, + (int32_t)value); +} + +static inline int +_Py_atomic_exchange_int(int *obj, int value) +{ + _Py_atomic_ASSERT_ARG_TYPE(int32_t); + return (int)_Py_atomic_exchange_int32((int32_t *)obj, + (int32_t)value); +} + +static inline unsigned int +_Py_atomic_exchange_uint(unsigned int *obj, unsigned int value) +{ + _Py_atomic_ASSERT_ARG_TYPE(int32_t); + return (unsigned int)_Py_atomic_exchange_int32((int32_t *)obj, + (int32_t)value); +} + +static inline uint64_t +_Py_atomic_exchange_uint64(uint64_t *obj, uint64_t value) +{ + return (uint64_t)_Py_atomic_exchange_int64((int64_t *)obj, + (int64_t)value); +} + +static inline intptr_t +_Py_atomic_exchange_intptr(intptr_t *obj, intptr_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(void*); + return (intptr_t)_Py_atomic_exchange_ptr((void**)obj, + (void*)value); +} + +static inline uintptr_t +_Py_atomic_exchange_uintptr(uintptr_t *obj, uintptr_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(void*); + return (uintptr_t)_Py_atomic_exchange_ptr((void**)obj, + (void*)value); +} + +static inline Py_ssize_t +_Py_atomic_exchange_ssize(Py_ssize_t *obj, Py_ssize_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(void*); + return (Py_ssize_t)_Py_atomic_exchange_ptr((void**)obj, + (void*)value); +} + + +// --- _Py_atomic_and -------------------------------------------------------- + +static inline uint8_t +_Py_atomic_and_uint8(uint8_t *obj, uint8_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(char); + return (uint8_t)_InterlockedAnd8((volatile char *)obj, (char)value); +} + +static inline uint16_t +_Py_atomic_and_uint16(uint16_t *obj, uint16_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(short); + return (uint16_t)_InterlockedAnd16((volatile short *)obj, (short)value); +} + +static inline uint32_t +_Py_atomic_and_uint32(uint32_t *obj, uint32_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(long); + return (uint32_t)_InterlockedAnd((volatile long *)obj, (long)value); +} + +static inline uint64_t +_Py_atomic_and_uint64(uint64_t *obj, uint64_t value) +{ +#if defined(_M_X64) || defined(_M_ARM64) + _Py_atomic_ASSERT_ARG_TYPE(__int64); + return (uint64_t)_InterlockedAnd64((volatile __int64 *)obj, (__int64)value); +#else + uint64_t old_value = _Py_atomic_load_uint64_relaxed(obj); + for (;;) { + uint64_t new_value = old_value & value; + if (_Py_atomic_compare_exchange_uint64(obj, &old_value, new_value)) { + return old_value; + } + } +#endif +} + +static inline uintptr_t +_Py_atomic_and_uintptr(uintptr_t *obj, uintptr_t value) +{ +#if SIZEOF_VOID_P == 8 + _Py_atomic_ASSERT_ARG_TYPE(uint64_t); + return (uintptr_t)_Py_atomic_and_uint64((uint64_t *)obj, + (uint64_t)value); +#else + _Py_atomic_ASSERT_ARG_TYPE(uint32_t); + return (uintptr_t)_Py_atomic_and_uint32((uint32_t *)obj, + (uint32_t)value); +#endif +} + + +// --- _Py_atomic_or --------------------------------------------------------- + +static inline uint8_t +_Py_atomic_or_uint8(uint8_t *obj, uint8_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(char); + return (uint8_t)_InterlockedOr8((volatile char *)obj, (char)value); +} + +static inline uint16_t +_Py_atomic_or_uint16(uint16_t *obj, uint16_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(short); + return (uint16_t)_InterlockedOr16((volatile short *)obj, (short)value); +} + +static inline uint32_t +_Py_atomic_or_uint32(uint32_t *obj, uint32_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(long); + return (uint32_t)_InterlockedOr((volatile long *)obj, (long)value); +} + +static inline uint64_t +_Py_atomic_or_uint64(uint64_t *obj, uint64_t value) +{ +#if defined(_M_X64) || defined(_M_ARM64) + _Py_atomic_ASSERT_ARG_TYPE(__int64); + return (uint64_t)_InterlockedOr64((volatile __int64 *)obj, (__int64)value); +#else + uint64_t old_value = _Py_atomic_load_uint64_relaxed(obj); + for (;;) { + uint64_t new_value = old_value | value; + if (_Py_atomic_compare_exchange_uint64(obj, &old_value, new_value)) { + return old_value; + } + } +#endif +} + + +static inline uintptr_t +_Py_atomic_or_uintptr(uintptr_t *obj, uintptr_t value) +{ +#if SIZEOF_VOID_P == 8 + _Py_atomic_ASSERT_ARG_TYPE(uint64_t); + return (uintptr_t)_Py_atomic_or_uint64((uint64_t *)obj, + (uint64_t)value); +#else + _Py_atomic_ASSERT_ARG_TYPE(uint32_t); + return (uintptr_t)_Py_atomic_or_uint32((uint32_t *)obj, + (uint32_t)value); +#endif +} + + +// --- _Py_atomic_load ------------------------------------------------------- + +static inline uint8_t +_Py_atomic_load_uint8(const uint8_t *obj) +{ +#if defined(_M_X64) || defined(_M_IX86) + return *(volatile uint8_t *)obj; +#elif defined(_M_ARM64) + return (uint8_t)__ldar8((unsigned __int8 volatile *)obj); +#else +# error "no implementation of _Py_atomic_load_uint8" +#endif +} + +static inline uint16_t +_Py_atomic_load_uint16(const uint16_t *obj) +{ +#if defined(_M_X64) || defined(_M_IX86) + return *(volatile uint16_t *)obj; +#elif defined(_M_ARM64) + return (uint16_t)__ldar16((unsigned __int16 volatile *)obj); +#else +# error "no implementation of _Py_atomic_load_uint16" +#endif +} + +static inline uint32_t +_Py_atomic_load_uint32(const uint32_t *obj) +{ +#if defined(_M_X64) || defined(_M_IX86) + return *(volatile uint32_t *)obj; +#elif defined(_M_ARM64) + return (uint32_t)__ldar32((unsigned __int32 volatile *)obj); +#else +# error "no implementation of _Py_atomic_load_uint32" +#endif +} + +static inline uint64_t +_Py_atomic_load_uint64(const uint64_t *obj) +{ +#if defined(_M_X64) || defined(_M_IX86) + return *(volatile uint64_t *)obj; +#elif defined(_M_ARM64) + return (uint64_t)__ldar64((unsigned __int64 volatile *)obj); +#else +# error "no implementation of _Py_atomic_load_uint64" +#endif +} + +static inline int8_t +_Py_atomic_load_int8(const int8_t *obj) +{ + return (int8_t)_Py_atomic_load_uint8((const uint8_t *)obj); +} + +static inline int16_t +_Py_atomic_load_int16(const int16_t *obj) +{ + return (int16_t)_Py_atomic_load_uint16((const uint16_t *)obj); +} + +static inline int32_t +_Py_atomic_load_int32(const int32_t *obj) +{ + return (int32_t)_Py_atomic_load_uint32((const uint32_t *)obj); +} + +static inline int +_Py_atomic_load_int(const int *obj) +{ + _Py_atomic_ASSERT_ARG_TYPE(uint32_t); + return (int)_Py_atomic_load_uint32((uint32_t *)obj); +} + +static inline unsigned int +_Py_atomic_load_uint(const unsigned int *obj) +{ + _Py_atomic_ASSERT_ARG_TYPE(uint32_t); + return (unsigned int)_Py_atomic_load_uint32((uint32_t *)obj); +} + +static inline int64_t +_Py_atomic_load_int64(const int64_t *obj) +{ + return (int64_t)_Py_atomic_load_uint64((const uint64_t *)obj); +} + +static inline void* +_Py_atomic_load_ptr(const void *obj) +{ +#if SIZEOF_VOID_P == 8 + return (void*)_Py_atomic_load_uint64((const uint64_t *)obj); +#else + return (void*)_Py_atomic_load_uint32((const uint32_t *)obj); +#endif +} + +static inline intptr_t +_Py_atomic_load_intptr(const intptr_t *obj) +{ + _Py_atomic_ASSERT_ARG_TYPE(void*); + return (intptr_t)_Py_atomic_load_ptr((void*)obj); +} + +static inline uintptr_t +_Py_atomic_load_uintptr(const uintptr_t *obj) +{ + _Py_atomic_ASSERT_ARG_TYPE(void*); + return (uintptr_t)_Py_atomic_load_ptr((void*)obj); +} + +static inline Py_ssize_t +_Py_atomic_load_ssize(const Py_ssize_t *obj) +{ + _Py_atomic_ASSERT_ARG_TYPE(void*); + return (Py_ssize_t)_Py_atomic_load_ptr((void*)obj); +} + + +// --- _Py_atomic_load_relaxed ----------------------------------------------- + +static inline int +_Py_atomic_load_int_relaxed(const int *obj) +{ + return *(volatile int *)obj; +} + +static inline int8_t +_Py_atomic_load_int8_relaxed(const int8_t *obj) +{ + return *(volatile int8_t *)obj; +} + +static inline int16_t +_Py_atomic_load_int16_relaxed(const int16_t *obj) +{ + return *(volatile int16_t *)obj; +} + +static inline int32_t +_Py_atomic_load_int32_relaxed(const int32_t *obj) +{ + return *(volatile int32_t *)obj; +} + +static inline int64_t +_Py_atomic_load_int64_relaxed(const int64_t *obj) +{ + return *(volatile int64_t *)obj; +} + +static inline intptr_t +_Py_atomic_load_intptr_relaxed(const intptr_t *obj) +{ + return *(volatile intptr_t *)obj; +} + +static inline uint8_t +_Py_atomic_load_uint8_relaxed(const uint8_t *obj) +{ + return *(volatile uint8_t *)obj; +} + +static inline uint16_t +_Py_atomic_load_uint16_relaxed(const uint16_t *obj) +{ + return *(volatile uint16_t *)obj; +} + +static inline uint32_t +_Py_atomic_load_uint32_relaxed(const uint32_t *obj) +{ + return *(volatile uint32_t *)obj; +} + +static inline uint64_t +_Py_atomic_load_uint64_relaxed(const uint64_t *obj) +{ + return *(volatile uint64_t *)obj; +} + +static inline uintptr_t +_Py_atomic_load_uintptr_relaxed(const uintptr_t *obj) +{ + return *(volatile uintptr_t *)obj; +} + +static inline unsigned int +_Py_atomic_load_uint_relaxed(const unsigned int *obj) +{ + return *(volatile unsigned int *)obj; +} + +static inline Py_ssize_t +_Py_atomic_load_ssize_relaxed(const Py_ssize_t *obj) +{ + return *(volatile Py_ssize_t *)obj; +} + +static inline void* +_Py_atomic_load_ptr_relaxed(const void *obj) +{ + return *(void * volatile *)obj; +} + +static inline unsigned long long +_Py_atomic_load_ullong_relaxed(const unsigned long long *obj) +{ + return *(volatile unsigned long long *)obj; +} + + +// --- _Py_atomic_store ------------------------------------------------------ + +static inline void +_Py_atomic_store_int(int *obj, int value) +{ + (void)_Py_atomic_exchange_int(obj, value); +} + +static inline void +_Py_atomic_store_int8(int8_t *obj, int8_t value) +{ + (void)_Py_atomic_exchange_int8(obj, value); +} + +static inline void +_Py_atomic_store_int16(int16_t *obj, int16_t value) +{ + (void)_Py_atomic_exchange_int16(obj, value); +} + +static inline void +_Py_atomic_store_int32(int32_t *obj, int32_t value) +{ + (void)_Py_atomic_exchange_int32(obj, value); +} + +static inline void +_Py_atomic_store_int64(int64_t *obj, int64_t value) +{ + (void)_Py_atomic_exchange_int64(obj, value); +} + +static inline void +_Py_atomic_store_intptr(intptr_t *obj, intptr_t value) +{ + (void)_Py_atomic_exchange_intptr(obj, value); +} + +static inline void +_Py_atomic_store_uint8(uint8_t *obj, uint8_t value) +{ + (void)_Py_atomic_exchange_uint8(obj, value); +} + +static inline void +_Py_atomic_store_uint16(uint16_t *obj, uint16_t value) +{ + (void)_Py_atomic_exchange_uint16(obj, value); +} + +static inline void +_Py_atomic_store_uint32(uint32_t *obj, uint32_t value) +{ + (void)_Py_atomic_exchange_uint32(obj, value); +} + +static inline void +_Py_atomic_store_uint64(uint64_t *obj, uint64_t value) +{ + (void)_Py_atomic_exchange_uint64(obj, value); +} + +static inline void +_Py_atomic_store_uintptr(uintptr_t *obj, uintptr_t value) +{ + (void)_Py_atomic_exchange_uintptr(obj, value); +} + +static inline void +_Py_atomic_store_uint(unsigned int *obj, unsigned int value) +{ + (void)_Py_atomic_exchange_uint(obj, value); +} + +static inline void +_Py_atomic_store_ptr(void *obj, void *value) +{ + (void)_Py_atomic_exchange_ptr(obj, value); +} + +static inline void +_Py_atomic_store_ssize(Py_ssize_t *obj, Py_ssize_t value) +{ + (void)_Py_atomic_exchange_ssize(obj, value); +} + + +// --- _Py_atomic_store_relaxed ---------------------------------------------- + +static inline void +_Py_atomic_store_int_relaxed(int *obj, int value) +{ + *(volatile int *)obj = value; +} + +static inline void +_Py_atomic_store_int8_relaxed(int8_t *obj, int8_t value) +{ + *(volatile int8_t *)obj = value; +} + +static inline void +_Py_atomic_store_int16_relaxed(int16_t *obj, int16_t value) +{ + *(volatile int16_t *)obj = value; +} + +static inline void +_Py_atomic_store_int32_relaxed(int32_t *obj, int32_t value) +{ + *(volatile int32_t *)obj = value; +} + +static inline void +_Py_atomic_store_int64_relaxed(int64_t *obj, int64_t value) +{ + *(volatile int64_t *)obj = value; +} + +static inline void +_Py_atomic_store_intptr_relaxed(intptr_t *obj, intptr_t value) +{ + *(volatile intptr_t *)obj = value; +} + +static inline void +_Py_atomic_store_uint8_relaxed(uint8_t *obj, uint8_t value) +{ + *(volatile uint8_t *)obj = value; +} + +static inline void +_Py_atomic_store_uint16_relaxed(uint16_t *obj, uint16_t value) +{ + *(volatile uint16_t *)obj = value; +} + +static inline void +_Py_atomic_store_uint32_relaxed(uint32_t *obj, uint32_t value) +{ + *(volatile uint32_t *)obj = value; +} + +static inline void +_Py_atomic_store_uint64_relaxed(uint64_t *obj, uint64_t value) +{ + *(volatile uint64_t *)obj = value; +} + +static inline void +_Py_atomic_store_uintptr_relaxed(uintptr_t *obj, uintptr_t value) +{ + *(volatile uintptr_t *)obj = value; +} + +static inline void +_Py_atomic_store_uint_relaxed(unsigned int *obj, unsigned int value) +{ + *(volatile unsigned int *)obj = value; +} + +static inline void +_Py_atomic_store_ptr_relaxed(void *obj, void* value) +{ + *(void * volatile *)obj = value; +} + +static inline void +_Py_atomic_store_ssize_relaxed(Py_ssize_t *obj, Py_ssize_t value) +{ + *(volatile Py_ssize_t *)obj = value; +} + +static inline void +_Py_atomic_store_ullong_relaxed(unsigned long long *obj, + unsigned long long value) +{ + *(volatile unsigned long long *)obj = value; +} + + +// --- _Py_atomic_load_ptr_acquire / _Py_atomic_store_ptr_release ------------ + +static inline void * +_Py_atomic_load_ptr_acquire(const void *obj) +{ +#if defined(_M_X64) || defined(_M_IX86) + return *(void * volatile *)obj; +#elif defined(_M_ARM64) + return (void *)__ldar64((unsigned __int64 volatile *)obj); +#else +# error "no implementation of _Py_atomic_load_ptr_acquire" +#endif +} + +static inline uintptr_t +_Py_atomic_load_uintptr_acquire(const uintptr_t *obj) +{ +#if defined(_M_X64) || defined(_M_IX86) + return *(uintptr_t volatile *)obj; +#elif defined(_M_ARM64) + return (uintptr_t)__ldar64((unsigned __int64 volatile *)obj); +#else +# error "no implementation of _Py_atomic_load_uintptr_acquire" +#endif +} + +static inline void +_Py_atomic_store_ptr_release(void *obj, void *value) +{ +#if defined(_M_X64) || defined(_M_IX86) + *(void * volatile *)obj = value; +#elif defined(_M_ARM64) + __stlr64((unsigned __int64 volatile *)obj, (uintptr_t)value); +#else +# error "no implementation of _Py_atomic_store_ptr_release" +#endif +} + +static inline void +_Py_atomic_store_uintptr_release(uintptr_t *obj, uintptr_t value) +{ +#if defined(_M_X64) || defined(_M_IX86) + *(uintptr_t volatile *)obj = value; +#elif defined(_M_ARM64) + _Py_atomic_ASSERT_ARG_TYPE(unsigned __int64); + __stlr64((unsigned __int64 volatile *)obj, (unsigned __int64)value); +#else +# error "no implementation of _Py_atomic_store_uintptr_release" +#endif +} + +static inline void +_Py_atomic_store_int_release(int *obj, int value) +{ +#if defined(_M_X64) || defined(_M_IX86) + *(int volatile *)obj = value; +#elif defined(_M_ARM64) + _Py_atomic_ASSERT_ARG_TYPE(unsigned __int32); + __stlr32((unsigned __int32 volatile *)obj, (unsigned __int32)value); +#else +# error "no implementation of _Py_atomic_store_int_release" +#endif +} + +static inline void +_Py_atomic_store_ssize_release(Py_ssize_t *obj, Py_ssize_t value) +{ +#if defined(_M_X64) || defined(_M_IX86) + *(Py_ssize_t volatile *)obj = value; +#elif defined(_M_ARM64) + __stlr64((unsigned __int64 volatile *)obj, (unsigned __int64)value); +#else +# error "no implementation of _Py_atomic_store_ssize_release" +#endif +} + +static inline int +_Py_atomic_load_int_acquire(const int *obj) +{ +#if defined(_M_X64) || defined(_M_IX86) + return *(int volatile *)obj; +#elif defined(_M_ARM64) + _Py_atomic_ASSERT_ARG_TYPE(unsigned __int32); + return (int)__ldar32((unsigned __int32 volatile *)obj); +#else +# error "no implementation of _Py_atomic_load_int_acquire" +#endif +} + +static inline void +_Py_atomic_store_uint32_release(uint32_t *obj, uint32_t value) +{ +#if defined(_M_X64) || defined(_M_IX86) + *(uint32_t volatile *)obj = value; +#elif defined(_M_ARM64) + _Py_atomic_ASSERT_ARG_TYPE(unsigned __int32); + __stlr32((unsigned __int32 volatile *)obj, (unsigned __int32)value); +#else +# error "no implementation of _Py_atomic_store_uint32_release" +#endif +} + +static inline void +_Py_atomic_store_uint64_release(uint64_t *obj, uint64_t value) +{ +#if defined(_M_X64) || defined(_M_IX86) + *(uint64_t volatile *)obj = value; +#elif defined(_M_ARM64) + _Py_atomic_ASSERT_ARG_TYPE(unsigned __int64); + __stlr64((unsigned __int64 volatile *)obj, (unsigned __int64)value); +#else +# error "no implementation of _Py_atomic_store_uint64_release" +#endif +} + +static inline uint64_t +_Py_atomic_load_uint64_acquire(const uint64_t *obj) +{ +#if defined(_M_X64) || defined(_M_IX86) + return *(uint64_t volatile *)obj; +#elif defined(_M_ARM64) + _Py_atomic_ASSERT_ARG_TYPE(__int64); + return (uint64_t)__ldar64((unsigned __int64 volatile *)obj); +#else +# error "no implementation of _Py_atomic_load_uint64_acquire" +#endif +} + +static inline uint32_t +_Py_atomic_load_uint32_acquire(const uint32_t *obj) +{ +#if defined(_M_X64) || defined(_M_IX86) + return *(uint32_t volatile *)obj; +#elif defined(_M_ARM64) + return (uint32_t)__ldar32((uint32_t volatile *)obj); +#else +# error "no implementation of _Py_atomic_load_uint32_acquire" +#endif +} + +static inline Py_ssize_t +_Py_atomic_load_ssize_acquire(const Py_ssize_t *obj) +{ +#if defined(_M_X64) || defined(_M_IX86) + return *(Py_ssize_t volatile *)obj; +#elif defined(_M_ARM64) + return (Py_ssize_t)__ldar64((unsigned __int64 volatile *)obj); +#else +# error "no implementation of _Py_atomic_load_ssize_acquire" +#endif +} + +// --- _Py_atomic_fence ------------------------------------------------------ + + static inline void +_Py_atomic_fence_seq_cst(void) +{ +#if defined(_M_ARM64) + __dmb(_ARM64_BARRIER_ISH); +#elif defined(_M_X64) + __faststorefence(); +#elif defined(_M_IX86) + _mm_mfence(); +#else +# error "no implementation of _Py_atomic_fence_seq_cst" +#endif +} + + static inline void +_Py_atomic_fence_acquire(void) +{ +#if defined(_M_ARM64) + __dmb(_ARM64_BARRIER_ISHLD); +#elif defined(_M_X64) || defined(_M_IX86) + _ReadBarrier(); +#else +# error "no implementation of _Py_atomic_fence_acquire" +#endif +} + + static inline void +_Py_atomic_fence_release(void) +{ +#if defined(_M_ARM64) + __dmb(_ARM64_BARRIER_ISH); +#elif defined(_M_X64) || defined(_M_IX86) + _ReadWriteBarrier(); +#else +# error "no implementation of _Py_atomic_fence_release" +#endif +} + +#undef _Py_atomic_ASSERT_ARG_TYPE diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyatomic_std.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyatomic_std.h new file mode 100644 index 000000000..7c71e94c6 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyatomic_std.h @@ -0,0 +1,976 @@ +// This is the implementation of Python atomic operations using C++11 or C11 +// atomics. Note that the pyatomic_gcc.h implementation is preferred for GCC +// compatible compilers, even if they support C++11 atomics. + +#ifndef Py_ATOMIC_STD_H +# error "this header file must not be included directly" +#endif + +#ifdef __cplusplus +extern "C++" { +# include +} +# define _Py_USING_STD using namespace std +# define _Atomic(tp) atomic +#else +# define _Py_USING_STD +# include +#endif + + +// --- _Py_atomic_add -------------------------------------------------------- + +static inline int +_Py_atomic_add_int(int *obj, int value) +{ + _Py_USING_STD; + return atomic_fetch_add((_Atomic(int)*)obj, value); +} + +static inline int8_t +_Py_atomic_add_int8(int8_t *obj, int8_t value) +{ + _Py_USING_STD; + return atomic_fetch_add((_Atomic(int8_t)*)obj, value); +} + +static inline int16_t +_Py_atomic_add_int16(int16_t *obj, int16_t value) +{ + _Py_USING_STD; + return atomic_fetch_add((_Atomic(int16_t)*)obj, value); +} + +static inline int32_t +_Py_atomic_add_int32(int32_t *obj, int32_t value) +{ + _Py_USING_STD; + return atomic_fetch_add((_Atomic(int32_t)*)obj, value); +} + +static inline int64_t +_Py_atomic_add_int64(int64_t *obj, int64_t value) +{ + _Py_USING_STD; + return atomic_fetch_add((_Atomic(int64_t)*)obj, value); +} + +static inline intptr_t +_Py_atomic_add_intptr(intptr_t *obj, intptr_t value) +{ + _Py_USING_STD; + return atomic_fetch_add((_Atomic(intptr_t)*)obj, value); +} + +static inline unsigned int +_Py_atomic_add_uint(unsigned int *obj, unsigned int value) +{ + _Py_USING_STD; + return atomic_fetch_add((_Atomic(unsigned int)*)obj, value); +} + +static inline uint8_t +_Py_atomic_add_uint8(uint8_t *obj, uint8_t value) +{ + _Py_USING_STD; + return atomic_fetch_add((_Atomic(uint8_t)*)obj, value); +} + +static inline uint16_t +_Py_atomic_add_uint16(uint16_t *obj, uint16_t value) +{ + _Py_USING_STD; + return atomic_fetch_add((_Atomic(uint16_t)*)obj, value); +} + +static inline uint32_t +_Py_atomic_add_uint32(uint32_t *obj, uint32_t value) +{ + _Py_USING_STD; + return atomic_fetch_add((_Atomic(uint32_t)*)obj, value); +} + +static inline uint64_t +_Py_atomic_add_uint64(uint64_t *obj, uint64_t value) +{ + _Py_USING_STD; + return atomic_fetch_add((_Atomic(uint64_t)*)obj, value); +} + +static inline uintptr_t +_Py_atomic_add_uintptr(uintptr_t *obj, uintptr_t value) +{ + _Py_USING_STD; + return atomic_fetch_add((_Atomic(uintptr_t)*)obj, value); +} + +static inline Py_ssize_t +_Py_atomic_add_ssize(Py_ssize_t *obj, Py_ssize_t value) +{ + _Py_USING_STD; + return atomic_fetch_add((_Atomic(Py_ssize_t)*)obj, value); +} + + +// --- _Py_atomic_compare_exchange ------------------------------------------- + +static inline int +_Py_atomic_compare_exchange_int(int *obj, int *expected, int desired) +{ + _Py_USING_STD; + return atomic_compare_exchange_strong((_Atomic(int)*)obj, + expected, desired); +} + +static inline int +_Py_atomic_compare_exchange_int8(int8_t *obj, int8_t *expected, int8_t desired) +{ + _Py_USING_STD; + return atomic_compare_exchange_strong((_Atomic(int8_t)*)obj, + expected, desired); +} + +static inline int +_Py_atomic_compare_exchange_int16(int16_t *obj, int16_t *expected, int16_t desired) +{ + _Py_USING_STD; + return atomic_compare_exchange_strong((_Atomic(int16_t)*)obj, + expected, desired); +} + +static inline int +_Py_atomic_compare_exchange_int32(int32_t *obj, int32_t *expected, int32_t desired) +{ + _Py_USING_STD; + return atomic_compare_exchange_strong((_Atomic(int32_t)*)obj, + expected, desired); +} + +static inline int +_Py_atomic_compare_exchange_int64(int64_t *obj, int64_t *expected, int64_t desired) +{ + _Py_USING_STD; + return atomic_compare_exchange_strong((_Atomic(int64_t)*)obj, + expected, desired); +} + +static inline int +_Py_atomic_compare_exchange_intptr(intptr_t *obj, intptr_t *expected, intptr_t desired) +{ + _Py_USING_STD; + return atomic_compare_exchange_strong((_Atomic(intptr_t)*)obj, + expected, desired); +} + +static inline int +_Py_atomic_compare_exchange_uint(unsigned int *obj, unsigned int *expected, unsigned int desired) +{ + _Py_USING_STD; + return atomic_compare_exchange_strong((_Atomic(unsigned int)*)obj, + expected, desired); +} + +static inline int +_Py_atomic_compare_exchange_uint8(uint8_t *obj, uint8_t *expected, uint8_t desired) +{ + _Py_USING_STD; + return atomic_compare_exchange_strong((_Atomic(uint8_t)*)obj, + expected, desired); +} + +static inline int +_Py_atomic_compare_exchange_uint16(uint16_t *obj, uint16_t *expected, uint16_t desired) +{ + _Py_USING_STD; + return atomic_compare_exchange_strong((_Atomic(uint16_t)*)obj, + expected, desired); +} + +static inline int +_Py_atomic_compare_exchange_uint32(uint32_t *obj, uint32_t *expected, uint32_t desired) +{ + _Py_USING_STD; + return atomic_compare_exchange_strong((_Atomic(uint32_t)*)obj, + expected, desired); +} + +static inline int +_Py_atomic_compare_exchange_uint64(uint64_t *obj, uint64_t *expected, uint64_t desired) +{ + _Py_USING_STD; + return atomic_compare_exchange_strong((_Atomic(uint64_t)*)obj, + expected, desired); +} + +static inline int +_Py_atomic_compare_exchange_uintptr(uintptr_t *obj, uintptr_t *expected, uintptr_t desired) +{ + _Py_USING_STD; + return atomic_compare_exchange_strong((_Atomic(uintptr_t)*)obj, + expected, desired); +} + +static inline int +_Py_atomic_compare_exchange_ssize(Py_ssize_t *obj, Py_ssize_t *expected, Py_ssize_t desired) +{ + _Py_USING_STD; + return atomic_compare_exchange_strong((_Atomic(Py_ssize_t)*)obj, + expected, desired); +} + +static inline int +_Py_atomic_compare_exchange_ptr(void *obj, void *expected, void *desired) +{ + _Py_USING_STD; + return atomic_compare_exchange_strong((_Atomic(void *)*)obj, + (void **)expected, desired); +} + + +// --- _Py_atomic_exchange --------------------------------------------------- + +static inline int +_Py_atomic_exchange_int(int *obj, int value) +{ + _Py_USING_STD; + return atomic_exchange((_Atomic(int)*)obj, value); +} + +static inline int8_t +_Py_atomic_exchange_int8(int8_t *obj, int8_t value) +{ + _Py_USING_STD; + return atomic_exchange((_Atomic(int8_t)*)obj, value); +} + +static inline int16_t +_Py_atomic_exchange_int16(int16_t *obj, int16_t value) +{ + _Py_USING_STD; + return atomic_exchange((_Atomic(int16_t)*)obj, value); +} + +static inline int32_t +_Py_atomic_exchange_int32(int32_t *obj, int32_t value) +{ + _Py_USING_STD; + return atomic_exchange((_Atomic(int32_t)*)obj, value); +} + +static inline int64_t +_Py_atomic_exchange_int64(int64_t *obj, int64_t value) +{ + _Py_USING_STD; + return atomic_exchange((_Atomic(int64_t)*)obj, value); +} + +static inline intptr_t +_Py_atomic_exchange_intptr(intptr_t *obj, intptr_t value) +{ + _Py_USING_STD; + return atomic_exchange((_Atomic(intptr_t)*)obj, value); +} + +static inline unsigned int +_Py_atomic_exchange_uint(unsigned int *obj, unsigned int value) +{ + _Py_USING_STD; + return atomic_exchange((_Atomic(unsigned int)*)obj, value); +} + +static inline uint8_t +_Py_atomic_exchange_uint8(uint8_t *obj, uint8_t value) +{ + _Py_USING_STD; + return atomic_exchange((_Atomic(uint8_t)*)obj, value); +} + +static inline uint16_t +_Py_atomic_exchange_uint16(uint16_t *obj, uint16_t value) +{ + _Py_USING_STD; + return atomic_exchange((_Atomic(uint16_t)*)obj, value); +} + +static inline uint32_t +_Py_atomic_exchange_uint32(uint32_t *obj, uint32_t value) +{ + _Py_USING_STD; + return atomic_exchange((_Atomic(uint32_t)*)obj, value); +} + +static inline uint64_t +_Py_atomic_exchange_uint64(uint64_t *obj, uint64_t value) +{ + _Py_USING_STD; + return atomic_exchange((_Atomic(uint64_t)*)obj, value); +} + +static inline uintptr_t +_Py_atomic_exchange_uintptr(uintptr_t *obj, uintptr_t value) +{ + _Py_USING_STD; + return atomic_exchange((_Atomic(uintptr_t)*)obj, value); +} + +static inline Py_ssize_t +_Py_atomic_exchange_ssize(Py_ssize_t *obj, Py_ssize_t value) +{ + _Py_USING_STD; + return atomic_exchange((_Atomic(Py_ssize_t)*)obj, value); +} + +static inline void* +_Py_atomic_exchange_ptr(void *obj, void *value) +{ + _Py_USING_STD; + return atomic_exchange((_Atomic(void *)*)obj, value); +} + + +// --- _Py_atomic_and -------------------------------------------------------- + +static inline uint8_t +_Py_atomic_and_uint8(uint8_t *obj, uint8_t value) +{ + _Py_USING_STD; + return atomic_fetch_and((_Atomic(uint8_t)*)obj, value); +} + +static inline uint16_t +_Py_atomic_and_uint16(uint16_t *obj, uint16_t value) +{ + _Py_USING_STD; + return atomic_fetch_and((_Atomic(uint16_t)*)obj, value); +} + +static inline uint32_t +_Py_atomic_and_uint32(uint32_t *obj, uint32_t value) +{ + _Py_USING_STD; + return atomic_fetch_and((_Atomic(uint32_t)*)obj, value); +} + +static inline uint64_t +_Py_atomic_and_uint64(uint64_t *obj, uint64_t value) +{ + _Py_USING_STD; + return atomic_fetch_and((_Atomic(uint64_t)*)obj, value); +} + +static inline uintptr_t +_Py_atomic_and_uintptr(uintptr_t *obj, uintptr_t value) +{ + _Py_USING_STD; + return atomic_fetch_and((_Atomic(uintptr_t)*)obj, value); +} + + +// --- _Py_atomic_or --------------------------------------------------------- + +static inline uint8_t +_Py_atomic_or_uint8(uint8_t *obj, uint8_t value) +{ + _Py_USING_STD; + return atomic_fetch_or((_Atomic(uint8_t)*)obj, value); +} + +static inline uint16_t +_Py_atomic_or_uint16(uint16_t *obj, uint16_t value) +{ + _Py_USING_STD; + return atomic_fetch_or((_Atomic(uint16_t)*)obj, value); +} + +static inline uint32_t +_Py_atomic_or_uint32(uint32_t *obj, uint32_t value) +{ + _Py_USING_STD; + return atomic_fetch_or((_Atomic(uint32_t)*)obj, value); +} + +static inline uint64_t +_Py_atomic_or_uint64(uint64_t *obj, uint64_t value) +{ + _Py_USING_STD; + return atomic_fetch_or((_Atomic(uint64_t)*)obj, value); +} + +static inline uintptr_t +_Py_atomic_or_uintptr(uintptr_t *obj, uintptr_t value) +{ + _Py_USING_STD; + return atomic_fetch_or((_Atomic(uintptr_t)*)obj, value); +} + + +// --- _Py_atomic_load ------------------------------------------------------- + +static inline int +_Py_atomic_load_int(const int *obj) +{ + _Py_USING_STD; + return atomic_load((const _Atomic(int)*)obj); +} + +static inline int8_t +_Py_atomic_load_int8(const int8_t *obj) +{ + _Py_USING_STD; + return atomic_load((const _Atomic(int8_t)*)obj); +} + +static inline int16_t +_Py_atomic_load_int16(const int16_t *obj) +{ + _Py_USING_STD; + return atomic_load((const _Atomic(int16_t)*)obj); +} + +static inline int32_t +_Py_atomic_load_int32(const int32_t *obj) +{ + _Py_USING_STD; + return atomic_load((const _Atomic(int32_t)*)obj); +} + +static inline int64_t +_Py_atomic_load_int64(const int64_t *obj) +{ + _Py_USING_STD; + return atomic_load((const _Atomic(int64_t)*)obj); +} + +static inline intptr_t +_Py_atomic_load_intptr(const intptr_t *obj) +{ + _Py_USING_STD; + return atomic_load((const _Atomic(intptr_t)*)obj); +} + +static inline uint8_t +_Py_atomic_load_uint8(const uint8_t *obj) +{ + _Py_USING_STD; + return atomic_load((const _Atomic(uint8_t)*)obj); +} + +static inline uint16_t +_Py_atomic_load_uint16(const uint16_t *obj) +{ + _Py_USING_STD; + return atomic_load((const _Atomic(uint32_t)*)obj); +} + +static inline uint32_t +_Py_atomic_load_uint32(const uint32_t *obj) +{ + _Py_USING_STD; + return atomic_load((const _Atomic(uint32_t)*)obj); +} + +static inline uint64_t +_Py_atomic_load_uint64(const uint64_t *obj) +{ + _Py_USING_STD; + return atomic_load((const _Atomic(uint64_t)*)obj); +} + +static inline uintptr_t +_Py_atomic_load_uintptr(const uintptr_t *obj) +{ + _Py_USING_STD; + return atomic_load((const _Atomic(uintptr_t)*)obj); +} + +static inline unsigned int +_Py_atomic_load_uint(const unsigned int *obj) +{ + _Py_USING_STD; + return atomic_load((const _Atomic(unsigned int)*)obj); +} + +static inline Py_ssize_t +_Py_atomic_load_ssize(const Py_ssize_t *obj) +{ + _Py_USING_STD; + return atomic_load((const _Atomic(Py_ssize_t)*)obj); +} + +static inline void* +_Py_atomic_load_ptr(const void *obj) +{ + _Py_USING_STD; + return atomic_load((const _Atomic(void*)*)obj); +} + + +// --- _Py_atomic_load_relaxed ----------------------------------------------- + +static inline int +_Py_atomic_load_int_relaxed(const int *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(int)*)obj, + memory_order_relaxed); +} + +static inline int8_t +_Py_atomic_load_int8_relaxed(const int8_t *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(int8_t)*)obj, + memory_order_relaxed); +} + +static inline int16_t +_Py_atomic_load_int16_relaxed(const int16_t *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(int16_t)*)obj, + memory_order_relaxed); +} + +static inline int32_t +_Py_atomic_load_int32_relaxed(const int32_t *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(int32_t)*)obj, + memory_order_relaxed); +} + +static inline int64_t +_Py_atomic_load_int64_relaxed(const int64_t *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(int64_t)*)obj, + memory_order_relaxed); +} + +static inline intptr_t +_Py_atomic_load_intptr_relaxed(const intptr_t *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(intptr_t)*)obj, + memory_order_relaxed); +} + +static inline uint8_t +_Py_atomic_load_uint8_relaxed(const uint8_t *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(uint8_t)*)obj, + memory_order_relaxed); +} + +static inline uint16_t +_Py_atomic_load_uint16_relaxed(const uint16_t *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(uint16_t)*)obj, + memory_order_relaxed); +} + +static inline uint32_t +_Py_atomic_load_uint32_relaxed(const uint32_t *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(uint32_t)*)obj, + memory_order_relaxed); +} + +static inline uint64_t +_Py_atomic_load_uint64_relaxed(const uint64_t *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(uint64_t)*)obj, + memory_order_relaxed); +} + +static inline uintptr_t +_Py_atomic_load_uintptr_relaxed(const uintptr_t *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(uintptr_t)*)obj, + memory_order_relaxed); +} + +static inline unsigned int +_Py_atomic_load_uint_relaxed(const unsigned int *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(unsigned int)*)obj, + memory_order_relaxed); +} + +static inline Py_ssize_t +_Py_atomic_load_ssize_relaxed(const Py_ssize_t *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(Py_ssize_t)*)obj, + memory_order_relaxed); +} + +static inline void* +_Py_atomic_load_ptr_relaxed(const void *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(void*)*)obj, + memory_order_relaxed); +} + +static inline unsigned long long +_Py_atomic_load_ullong_relaxed(const unsigned long long *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(unsigned long long)*)obj, + memory_order_relaxed); +} + + +// --- _Py_atomic_store ------------------------------------------------------ + +static inline void +_Py_atomic_store_int(int *obj, int value) +{ + _Py_USING_STD; + atomic_store((_Atomic(int)*)obj, value); +} + +static inline void +_Py_atomic_store_int8(int8_t *obj, int8_t value) +{ + _Py_USING_STD; + atomic_store((_Atomic(int8_t)*)obj, value); +} + +static inline void +_Py_atomic_store_int16(int16_t *obj, int16_t value) +{ + _Py_USING_STD; + atomic_store((_Atomic(int16_t)*)obj, value); +} + +static inline void +_Py_atomic_store_int32(int32_t *obj, int32_t value) +{ + _Py_USING_STD; + atomic_store((_Atomic(int32_t)*)obj, value); +} + +static inline void +_Py_atomic_store_int64(int64_t *obj, int64_t value) +{ + _Py_USING_STD; + atomic_store((_Atomic(int64_t)*)obj, value); +} + +static inline void +_Py_atomic_store_intptr(intptr_t *obj, intptr_t value) +{ + _Py_USING_STD; + atomic_store((_Atomic(intptr_t)*)obj, value); +} + +static inline void +_Py_atomic_store_uint8(uint8_t *obj, uint8_t value) +{ + _Py_USING_STD; + atomic_store((_Atomic(uint8_t)*)obj, value); +} + +static inline void +_Py_atomic_store_uint16(uint16_t *obj, uint16_t value) +{ + _Py_USING_STD; + atomic_store((_Atomic(uint16_t)*)obj, value); +} + +static inline void +_Py_atomic_store_uint32(uint32_t *obj, uint32_t value) +{ + _Py_USING_STD; + atomic_store((_Atomic(uint32_t)*)obj, value); +} + +static inline void +_Py_atomic_store_uint64(uint64_t *obj, uint64_t value) +{ + _Py_USING_STD; + atomic_store((_Atomic(uint64_t)*)obj, value); +} + +static inline void +_Py_atomic_store_uintptr(uintptr_t *obj, uintptr_t value) +{ + _Py_USING_STD; + atomic_store((_Atomic(uintptr_t)*)obj, value); +} + +static inline void +_Py_atomic_store_uint(unsigned int *obj, unsigned int value) +{ + _Py_USING_STD; + atomic_store((_Atomic(unsigned int)*)obj, value); +} + +static inline void +_Py_atomic_store_ptr(void *obj, void *value) +{ + _Py_USING_STD; + atomic_store((_Atomic(void*)*)obj, value); +} + +static inline void +_Py_atomic_store_ssize(Py_ssize_t *obj, Py_ssize_t value) +{ + _Py_USING_STD; + atomic_store((_Atomic(Py_ssize_t)*)obj, value); +} + + +// --- _Py_atomic_store_relaxed ---------------------------------------------- + +static inline void +_Py_atomic_store_int_relaxed(int *obj, int value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(int)*)obj, value, + memory_order_relaxed); +} + +static inline void +_Py_atomic_store_int8_relaxed(int8_t *obj, int8_t value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(int8_t)*)obj, value, + memory_order_relaxed); +} + +static inline void +_Py_atomic_store_int16_relaxed(int16_t *obj, int16_t value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(int16_t)*)obj, value, + memory_order_relaxed); +} + +static inline void +_Py_atomic_store_int32_relaxed(int32_t *obj, int32_t value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(int32_t)*)obj, value, + memory_order_relaxed); +} + +static inline void +_Py_atomic_store_int64_relaxed(int64_t *obj, int64_t value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(int64_t)*)obj, value, + memory_order_relaxed); +} + +static inline void +_Py_atomic_store_intptr_relaxed(intptr_t *obj, intptr_t value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(intptr_t)*)obj, value, + memory_order_relaxed); +} + +static inline void +_Py_atomic_store_uint8_relaxed(uint8_t *obj, uint8_t value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(uint8_t)*)obj, value, + memory_order_relaxed); +} + +static inline void +_Py_atomic_store_uint16_relaxed(uint16_t *obj, uint16_t value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(uint16_t)*)obj, value, + memory_order_relaxed); +} + +static inline void +_Py_atomic_store_uint32_relaxed(uint32_t *obj, uint32_t value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(uint32_t)*)obj, value, + memory_order_relaxed); +} + +static inline void +_Py_atomic_store_uint64_relaxed(uint64_t *obj, uint64_t value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(uint64_t)*)obj, value, + memory_order_relaxed); +} + +static inline void +_Py_atomic_store_uintptr_relaxed(uintptr_t *obj, uintptr_t value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(uintptr_t)*)obj, value, + memory_order_relaxed); +} + +static inline void +_Py_atomic_store_uint_relaxed(unsigned int *obj, unsigned int value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(unsigned int)*)obj, value, + memory_order_relaxed); +} + +static inline void +_Py_atomic_store_ptr_relaxed(void *obj, void *value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(void*)*)obj, value, + memory_order_relaxed); +} + +static inline void +_Py_atomic_store_ssize_relaxed(Py_ssize_t *obj, Py_ssize_t value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(Py_ssize_t)*)obj, value, + memory_order_relaxed); +} + +static inline void +_Py_atomic_store_ullong_relaxed(unsigned long long *obj, + unsigned long long value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(unsigned long long)*)obj, value, + memory_order_relaxed); +} + + +// --- _Py_atomic_load_ptr_acquire / _Py_atomic_store_ptr_release ------------ + +static inline void * +_Py_atomic_load_ptr_acquire(const void *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(void*)*)obj, + memory_order_acquire); +} + +static inline uintptr_t +_Py_atomic_load_uintptr_acquire(const uintptr_t *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(uintptr_t)*)obj, + memory_order_acquire); +} + +static inline void +_Py_atomic_store_ptr_release(void *obj, void *value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(void*)*)obj, value, + memory_order_release); +} + +static inline void +_Py_atomic_store_uintptr_release(uintptr_t *obj, uintptr_t value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(uintptr_t)*)obj, value, + memory_order_release); +} + +static inline void +_Py_atomic_store_int_release(int *obj, int value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(int)*)obj, value, + memory_order_release); +} + +static inline void +_Py_atomic_store_ssize_release(Py_ssize_t *obj, Py_ssize_t value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(Py_ssize_t)*)obj, value, + memory_order_release); +} + +static inline int +_Py_atomic_load_int_acquire(const int *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(int)*)obj, + memory_order_acquire); +} + +static inline void +_Py_atomic_store_uint32_release(uint32_t *obj, uint32_t value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(uint32_t)*)obj, value, + memory_order_release); +} + +static inline void +_Py_atomic_store_uint64_release(uint64_t *obj, uint64_t value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(uint64_t)*)obj, value, + memory_order_release); +} + +static inline uint64_t +_Py_atomic_load_uint64_acquire(const uint64_t *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(uint64_t)*)obj, + memory_order_acquire); +} + +static inline uint32_t +_Py_atomic_load_uint32_acquire(const uint32_t *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(uint32_t)*)obj, + memory_order_acquire); +} + +static inline Py_ssize_t +_Py_atomic_load_ssize_acquire(const Py_ssize_t *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(Py_ssize_t)*)obj, + memory_order_acquire); +} + + +// --- _Py_atomic_fence ------------------------------------------------------ + + static inline void +_Py_atomic_fence_seq_cst(void) +{ + _Py_USING_STD; + atomic_thread_fence(memory_order_seq_cst); +} + + static inline void +_Py_atomic_fence_acquire(void) +{ + _Py_USING_STD; + atomic_thread_fence(memory_order_acquire); +} + + static inline void +_Py_atomic_fence_release(void) +{ + _Py_USING_STD; + atomic_thread_fence(memory_order_release); +} diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyctype.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyctype.h new file mode 100644 index 000000000..729d93275 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyctype.h @@ -0,0 +1,39 @@ +#ifndef Py_LIMITED_API +#ifndef PYCTYPE_H +#define PYCTYPE_H +#ifdef __cplusplus +extern "C" { +#endif + +#define PY_CTF_LOWER 0x01 +#define PY_CTF_UPPER 0x02 +#define PY_CTF_ALPHA (PY_CTF_LOWER|PY_CTF_UPPER) +#define PY_CTF_DIGIT 0x04 +#define PY_CTF_ALNUM (PY_CTF_ALPHA|PY_CTF_DIGIT) +#define PY_CTF_SPACE 0x08 +#define PY_CTF_XDIGIT 0x10 + +PyAPI_DATA(const unsigned int) _Py_ctype_table[256]; + +/* Unlike their C counterparts, the following macros are not meant to + * handle an int with any of the values [EOF, 0-UCHAR_MAX]. The argument + * must be a signed/unsigned char. */ +#define Py_ISLOWER(c) (_Py_ctype_table[Py_CHARMASK(c)] & PY_CTF_LOWER) +#define Py_ISUPPER(c) (_Py_ctype_table[Py_CHARMASK(c)] & PY_CTF_UPPER) +#define Py_ISALPHA(c) (_Py_ctype_table[Py_CHARMASK(c)] & PY_CTF_ALPHA) +#define Py_ISDIGIT(c) (_Py_ctype_table[Py_CHARMASK(c)] & PY_CTF_DIGIT) +#define Py_ISXDIGIT(c) (_Py_ctype_table[Py_CHARMASK(c)] & PY_CTF_XDIGIT) +#define Py_ISALNUM(c) (_Py_ctype_table[Py_CHARMASK(c)] & PY_CTF_ALNUM) +#define Py_ISSPACE(c) (_Py_ctype_table[Py_CHARMASK(c)] & PY_CTF_SPACE) + +PyAPI_DATA(const unsigned char) _Py_ctype_tolower[256]; +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 +#endif /* !PYCTYPE_H */ +#endif /* !Py_LIMITED_API */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pydebug.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pydebug.h new file mode 100644 index 000000000..f6ebd99ed --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pydebug.h @@ -0,0 +1,38 @@ +#ifndef Py_LIMITED_API +#ifndef Py_PYDEBUG_H +#define Py_PYDEBUG_H +#ifdef __cplusplus +extern "C" { +#endif + +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_DebugFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_VerboseFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_QuietFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_InteractiveFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_InspectFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_OptimizeFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_NoSiteFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_BytesWarningFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_FrozenFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_IgnoreEnvironmentFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_DontWriteBytecodeFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_NoUserSiteDirectory; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_UnbufferedStdioFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_HashRandomizationFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_IsolatedFlag; + +#ifdef MS_WINDOWS +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_LegacyWindowsFSEncodingFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_LegacyWindowsStdioFlag; +#endif + +/* this is a wrapper around getenv() that pays attention to + Py_IgnoreEnvironmentFlag. It should be used for getting variables like + PYTHONPATH and PYTHONHOME from the environment */ +PyAPI_FUNC(char*) Py_GETENV(const char *name); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_PYDEBUG_H */ +#endif /* Py_LIMITED_API */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyerrors.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyerrors.h new file mode 100644 index 000000000..b36b4681f --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyerrors.h @@ -0,0 +1,131 @@ +#ifndef Py_CPYTHON_ERRORS_H +# error "this header file must not be included directly" +#endif + +/* Error objects */ + +/* PyException_HEAD defines the initial segment of every exception class. */ +#define PyException_HEAD PyObject_HEAD PyObject *dict;\ + PyObject *args; PyObject *notes; PyObject *traceback;\ + PyObject *context; PyObject *cause;\ + char suppress_context; + +typedef struct { + PyException_HEAD +} PyBaseExceptionObject; + +typedef struct { + PyException_HEAD + PyObject *msg; + PyObject *excs; +} PyBaseExceptionGroupObject; + +typedef struct { + PyException_HEAD + PyObject *msg; + PyObject *filename; + PyObject *lineno; + PyObject *offset; + PyObject *end_lineno; + PyObject *end_offset; + PyObject *text; + PyObject *print_file_and_line; +} PySyntaxErrorObject; + +typedef struct { + PyException_HEAD + PyObject *msg; + PyObject *name; + PyObject *path; + PyObject *name_from; +} 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; + +typedef struct { + PyException_HEAD + PyObject *name; +} PyNameErrorObject; + +typedef struct { + PyException_HEAD + PyObject *obj; + PyObject *name; +} PyAttributeErrorObject; + +/* Compatibility typedefs */ +typedef PyOSErrorObject PyEnvironmentErrorObject; +#ifdef MS_WINDOWS +typedef PyOSErrorObject PyWindowsErrorObject; +#endif + +/* Context manipulation (PEP 3134) */ + +PyAPI_FUNC(void) _PyErr_ChainExceptions1(PyObject *); + +/* In exceptions.c */ + +PyAPI_FUNC(PyObject*) PyUnstable_Exc_PrepReraiseStar( + PyObject *orig, + PyObject *excs); + +/* In signalmodule.c */ + +PyAPI_FUNC(int) PySignal_SetWakeupFd(int fd); + +/* Support for adding program text to SyntaxErrors */ + +PyAPI_FUNC(void) PyErr_SyntaxLocationObject( + PyObject *filename, + int lineno, + int col_offset); + +PyAPI_FUNC(void) PyErr_RangedSyntaxLocationObject( + PyObject *filename, + int lineno, + int col_offset, + int end_lineno, + int end_col_offset); + +PyAPI_FUNC(PyObject *) PyErr_ProgramTextObject( + PyObject *filename, + int lineno); + +PyAPI_FUNC(void) _Py_NO_RETURN _Py_FatalErrorFunc( + const char *func, + const char *message); + +PyAPI_FUNC(void) PyErr_FormatUnraisable(const char *, ...); + +PyAPI_DATA(PyObject *) PyExc_PythonFinalizationError; + +#define Py_FatalError(message) _Py_FatalErrorFunc(__func__, (message)) diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyfpe.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyfpe.h new file mode 100644 index 000000000..cc2def63a --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyfpe.h @@ -0,0 +1,15 @@ +#ifndef Py_PYFPE_H +#define Py_PYFPE_H +/* 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, + * to avoid breaking API users. + */ + +#define PyFPE_START_PROTECT(err_string, leave_stmt) +#define PyFPE_END_PROTECT(v) + +#endif /* !defined(Py_LIMITED_API) */ +#endif /* !Py_PYFPE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyframe.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyframe.h new file mode 100644 index 000000000..eeafbb17a --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyframe.h @@ -0,0 +1,45 @@ +#ifndef Py_CPYTHON_PYFRAME_H +# error "this header file must not be included directly" +#endif + +PyAPI_DATA(PyTypeObject) PyFrame_Type; +PyAPI_DATA(PyTypeObject) PyFrameLocalsProxy_Type; + +#define PyFrame_Check(op) Py_IS_TYPE((op), &PyFrame_Type) +#define PyFrameLocalsProxy_Check(op) Py_IS_TYPE((op), &PyFrameLocalsProxy_Type) + +PyAPI_FUNC(PyFrameObject *) PyFrame_GetBack(PyFrameObject *frame); +PyAPI_FUNC(PyObject *) PyFrame_GetLocals(PyFrameObject *frame); + +PyAPI_FUNC(PyObject *) PyFrame_GetGlobals(PyFrameObject *frame); +PyAPI_FUNC(PyObject *) PyFrame_GetBuiltins(PyFrameObject *frame); + +PyAPI_FUNC(PyObject *) PyFrame_GetGenerator(PyFrameObject *frame); +PyAPI_FUNC(int) PyFrame_GetLasti(PyFrameObject *frame); +PyAPI_FUNC(PyObject*) PyFrame_GetVar(PyFrameObject *frame, PyObject *name); +PyAPI_FUNC(PyObject*) PyFrame_GetVarString(PyFrameObject *frame, const char *name); + +/* The following functions are for use by debuggers and other tools + * implementing custom frame evaluators with PEP 523. */ + +struct _PyInterpreterFrame; + +/* Returns the code object of the frame (strong reference). + * Does not raise an exception. */ +PyAPI_FUNC(PyObject *) PyUnstable_InterpreterFrame_GetCode(struct _PyInterpreterFrame *frame); + +/* Returns a byte ofsset into the last executed instruction. + * Does not raise an exception. */ +PyAPI_FUNC(int) PyUnstable_InterpreterFrame_GetLasti(struct _PyInterpreterFrame *frame); + +/* Returns the currently executing line number, or -1 if there is no line number. + * Does not raise an exception. */ +PyAPI_FUNC(int) PyUnstable_InterpreterFrame_GetLine(struct _PyInterpreterFrame *frame); + +#define PyUnstable_EXECUTABLE_KIND_SKIP 0 +#define PyUnstable_EXECUTABLE_KIND_PY_FUNCTION 1 +#define PyUnstable_EXECUTABLE_KIND_BUILTIN_FUNCTION 3 +#define PyUnstable_EXECUTABLE_KIND_METHOD_DESCRIPTOR 4 +#define PyUnstable_EXECUTABLE_KINDS 5 + +PyAPI_DATA(const PyTypeObject *) const PyUnstable_ExecutableKinds[PyUnstable_EXECUTABLE_KINDS+1]; diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyhash.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyhash.h new file mode 100644 index 000000000..825c034a8 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pyhash.h @@ -0,0 +1,47 @@ +#ifndef Py_CPYTHON_HASH_H +# error "this header file must not be included directly" +#endif + +/* Prime multiplier used in string and various other hashes. */ +#define PyHASH_MULTIPLIER 1000003UL /* 0xf4243 */ + +/* Parameters used for the numeric hash implementation. See notes for + _Py_HashDouble in Python/pyhash.c. Numeric hashes are based on + reduction modulo the prime 2**_PyHASH_BITS - 1. */ + +#if SIZEOF_VOID_P >= 8 +# define PyHASH_BITS 61 +#else +# define PyHASH_BITS 31 +#endif + +#define PyHASH_MODULUS (((size_t)1 << _PyHASH_BITS) - 1) +#define PyHASH_INF 314159 +#define PyHASH_IMAG PyHASH_MULTIPLIER + +/* Aliases kept for backward compatibility with Python 3.12 */ +#define _PyHASH_MULTIPLIER PyHASH_MULTIPLIER +#define _PyHASH_BITS PyHASH_BITS +#define _PyHASH_MODULUS PyHASH_MODULUS +#define _PyHASH_INF PyHASH_INF +#define _PyHASH_IMAG PyHASH_IMAG + +/* Helpers for hash functions */ +PyAPI_FUNC(Py_hash_t) _Py_HashDouble(PyObject *, double); + +// Kept for backward compatibility +#define _Py_HashPointer Py_HashPointer + + +/* hash function definition */ +typedef struct { + Py_hash_t (*const hash)(const void *, Py_ssize_t); + const char *name; + const int hash_bits; + const int seed_bits; +} PyHash_FuncDef; + +PyAPI_FUNC(PyHash_FuncDef*) PyHash_GetFuncDef(void); + +PyAPI_FUNC(Py_hash_t) Py_HashPointer(const void *ptr); +PyAPI_FUNC(Py_hash_t) PyObject_GenericHash(PyObject *); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pylifecycle.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pylifecycle.h new file mode 100644 index 000000000..e46dfe59e --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pylifecycle.h @@ -0,0 +1,92 @@ +#ifndef Py_CPYTHON_PYLIFECYCLE_H +# error "this header file must not be included directly" +#endif + +/* Py_FrozenMain is kept out of the Limited API until documented and present + in all builds of Python */ +PyAPI_FUNC(int) Py_FrozenMain(int argc, char **argv); + +/* 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); + + +/* Initialization and finalization */ + +PyAPI_FUNC(PyStatus) Py_InitializeFromConfig( + const PyConfig *config); + +// Python 3.8 provisional API (PEP 587) +PyAPI_FUNC(PyStatus) _Py_InitializeMain(void); + +PyAPI_FUNC(int) Py_RunMain(void); + + +PyAPI_FUNC(void) _Py_NO_RETURN Py_ExitStatusException(PyStatus err); + +PyAPI_FUNC(int) Py_FdIsInteractive(FILE *, const char *); + +/* --- PyInterpreterConfig ------------------------------------ */ + +#define PyInterpreterConfig_DEFAULT_GIL (0) +#define PyInterpreterConfig_SHARED_GIL (1) +#define PyInterpreterConfig_OWN_GIL (2) + +typedef struct { + // XXX "allow_object_sharing"? "own_objects"? + int use_main_obmalloc; + int allow_fork; + int allow_exec; + int allow_threads; + int allow_daemon_threads; + int check_multi_interp_extensions; + int gil; +} PyInterpreterConfig; + +#define _PyInterpreterConfig_INIT \ + { \ + .use_main_obmalloc = 0, \ + .allow_fork = 0, \ + .allow_exec = 0, \ + .allow_threads = 1, \ + .allow_daemon_threads = 0, \ + .check_multi_interp_extensions = 1, \ + .gil = PyInterpreterConfig_OWN_GIL, \ + } + +// gh-117649: The free-threaded build does not currently support single-phase +// init extensions in subinterpreters. For now, we ensure that +// `check_multi_interp_extensions` is always `1`, even in the legacy config. +#ifdef Py_GIL_DISABLED +# define _PyInterpreterConfig_LEGACY_CHECK_MULTI_INTERP_EXTENSIONS 1 +#else +# define _PyInterpreterConfig_LEGACY_CHECK_MULTI_INTERP_EXTENSIONS 0 +#endif + +#define _PyInterpreterConfig_LEGACY_INIT \ + { \ + .use_main_obmalloc = 1, \ + .allow_fork = 1, \ + .allow_exec = 1, \ + .allow_threads = 1, \ + .allow_daemon_threads = 1, \ + .check_multi_interp_extensions = _PyInterpreterConfig_LEGACY_CHECK_MULTI_INTERP_EXTENSIONS, \ + .gil = PyInterpreterConfig_SHARED_GIL, \ + } + +PyAPI_FUNC(PyStatus) Py_NewInterpreterFromConfig( + PyThreadState **tstate_p, + const PyInterpreterConfig *config); + +typedef void (*atexit_datacallbackfunc)(void *); +PyAPI_FUNC(int) PyUnstable_AtExit( + PyInterpreterState *, atexit_datacallbackfunc, void *); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pymem.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pymem.h new file mode 100644 index 000000000..76b3221f7 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pymem.h @@ -0,0 +1,84 @@ +#ifndef Py_CPYTHON_PYMEM_H +# error "this header file must not be included directly" +#endif + +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 +#ifdef WITH_MIMALLOC + PYMEM_ALLOCATOR_MIMALLOC = 7, + PYMEM_ALLOCATOR_MIMALLOC_DEBUG = 8, +#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); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pystate.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pystate.h new file mode 100644 index 000000000..f005729ff --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pystate.h @@ -0,0 +1,277 @@ +#ifndef Py_CPYTHON_PYSTATE_H +# error "this header file must not be included directly" +#endif + + +/* private interpreter helpers */ + +PyAPI_FUNC(int) _PyInterpreterState_RequiresIDRef(PyInterpreterState *); +PyAPI_FUNC(void) _PyInterpreterState_RequireIDRef(PyInterpreterState *, int); + +PyAPI_FUNC(PyObject *) PyUnstable_InterpreterState_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 a single execution context where we might + * be currently handling an exception. It is a per-coroutine state + * (coroutine in the computer science sense, including the thread + * and generators). + * + * This is used as an entry on the exception stack, where each + * entry indicates if it is currently handling an exception. + * This ensures that the exception state is not impacted + * by "yields" from an except handler. The thread + * always has an entry (the bottom-most one). + */ + + /* The exception currently being handled in this context, if any. */ + PyObject *exc_value; + + struct _err_stackitem *previous_item; + +} _PyErr_StackItem; + +typedef struct _stack_chunk { + struct _stack_chunk *previous; + size_t size; + size_t top; + PyObject * data[1]; /* Variable sized */ +} _PyStackChunk; + +struct _ts { + /* See Python/ceval.c for comments explaining most fields */ + + PyThreadState *prev; + PyThreadState *next; + PyInterpreterState *interp; + + /* The global instrumentation version in high bits, plus flags indicating + when to break out of the interpreter loop in lower bits. See details in + pycore_ceval.h. */ + uintptr_t eval_breaker; + + struct { + /* Has been initialized to a safe state. + + In order to be effective, this must be set to 0 during or right + after allocation. */ + unsigned int initialized:1; + + /* Has been bound to an OS thread. */ + unsigned int bound:1; + /* Has been unbound from its OS thread. */ + unsigned int unbound:1; + /* Has been bound aa current for the GILState API. */ + unsigned int bound_gilstate:1; + /* Currently in use (maybe holds the GIL). */ + unsigned int active:1; + /* Currently holds the GIL. */ + unsigned int holds_gil:1; + + /* various stages of finalization */ + unsigned int finalizing:1; + unsigned int cleared:1; + unsigned int finalized:1; + + /* padding to align to 4 bytes */ + unsigned int :23; + } _status; +#ifdef Py_BUILD_CORE +# define _PyThreadState_WHENCE_NOTSET -1 +# define _PyThreadState_WHENCE_UNKNOWN 0 +# define _PyThreadState_WHENCE_INIT 1 +# define _PyThreadState_WHENCE_FINI 2 +# define _PyThreadState_WHENCE_THREADING 3 +# define _PyThreadState_WHENCE_GILSTATE 4 +# define _PyThreadState_WHENCE_EXEC 5 +#endif + int _whence; + + /* Thread state (_Py_THREAD_ATTACHED, _Py_THREAD_DETACHED, _Py_THREAD_SUSPENDED). + See Include/internal/pycore_pystate.h for more details. */ + int state; + + int py_recursion_remaining; + int py_recursion_limit; + + int c_recursion_remaining; + int recursion_headroom; /* Allow 50 more calls to handle any errors. */ + + /* '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 what_event; /* The event currently being monitored, if any. */ + + /* Pointer to currently executing frame. */ + struct _PyInterpreterFrame *current_frame; + + Py_tracefunc c_profilefunc; + Py_tracefunc c_tracefunc; + PyObject *c_profileobj; + PyObject *c_traceobj; + + /* The exception currently being raised */ + PyObject *current_exception; + + /* Pointer to the top of the exception stack for the exceptions + * we may be currently handling. (See _PyErr_StackItem above.) + * This is never NULL. */ + _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 */ + + /* Native thread id where this tstate was created. This will be 0 except on + * those platforms that have the notion of native thread id, for which the + * macro PY_HAVE_THREAD_NATIVE_ID is then defined. + */ + unsigned long native_thread_id; + + PyObject *delete_later; + + /* Tagged pointer to top-most critical section, or zero if there is no + * active critical section. Critical sections are only used in + * `--disable-gil` builds (i.e., when Py_GIL_DISABLED is defined to 1). In the + * default build, this field is always zero. + */ + uintptr_t critical_section; + + 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; + + _PyStackChunk *datastack_chunk; + PyObject **datastack_top; + PyObject **datastack_limit; + /* XXX signal handlers should also be here */ + + /* The following fields are here to avoid allocation during init. + The data is exposed through PyThreadState pointer fields. + These fields should not be accessed directly outside of init. + This is indicated by an underscore prefix on the field names. + + All other PyInterpreterState pointer fields are populated when + needed and default to NULL. + */ + // Note some fields do not have a leading underscore for backward + // compatibility. See https://bugs.python.org/issue45953#msg412046. + + /* The thread's exception stack entry. (Always the last entry.) */ + _PyErr_StackItem exc_state; + + PyObject *previous_executor; + + uint64_t dict_global_version; + + /* Used to store/retrieve `threading.local` keys/values for this thread */ + PyObject *threading_local_key; + + /* Used by `threading.local`s to be remove keys/values for dying threads. + The PyThreadObject must hold the only reference to this value. + */ + PyObject *threading_local_sentinel; +}; + +#ifdef Py_DEBUG + // A debug build is likely built with low optimization level which implies + // higher stack memory usage than a release build: use a lower limit. +# define Py_C_RECURSION_LIMIT 500 +#elif defined(__s390x__) +# define Py_C_RECURSION_LIMIT 800 +#elif defined(_WIN32) && defined(_M_ARM64) +# define Py_C_RECURSION_LIMIT 1000 +#elif defined(_WIN32) +# define Py_C_RECURSION_LIMIT 3000 +#elif defined(__ANDROID__) + // On an ARM64 emulator, API level 34 was OK with 10000, but API level 21 + // crashed in test_compiler_recursion_limit. +# define Py_C_RECURSION_LIMIT 3000 +#elif defined(_Py_ADDRESS_SANITIZER) +# define Py_C_RECURSION_LIMIT 4000 +#elif defined(__wasi__) + // Based on wasmtime 16. +# define Py_C_RECURSION_LIMIT 5000 +#else + // This value is duplicated in Lib/test/support/__init__.py +# define Py_C_RECURSION_LIMIT 10000 +#endif + + +/* other API */ + +/* Similar to PyThreadState_Get(), but don't issue a fatal error + * if it is NULL. */ +PyAPI_FUNC(PyThreadState *) PyThreadState_GetUnchecked(void); + +// Alias kept for backward compatibility +#define _PyThreadState_UncheckedGet PyThreadState_GetUnchecked + + +// Disable tracing and profiling. +PyAPI_FUNC(void) PyThreadState_EnterTracing(PyThreadState *tstate); + +// Reset tracing and profiling: enable them if a trace function or a profile +// function is set, otherwise disable them. +PyAPI_FUNC(void) PyThreadState_LeaveTracing(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); + +/* 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, struct _PyInterpreterFrame *, int); + +PyAPI_FUNC(_PyFrameEvalFunction) _PyInterpreterState_GetEvalFrameFunc( + PyInterpreterState *interp); +PyAPI_FUNC(void) _PyInterpreterState_SetEvalFrameFunc( + PyInterpreterState *interp, + _PyFrameEvalFunction eval_frame); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pystats.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pystats.h new file mode 100644 index 000000000..c4480758f --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pystats.h @@ -0,0 +1,169 @@ +// Statistics on Python performance. +// +// API: +// +// - _Py_INCREF_STAT_INC() and _Py_DECREF_STAT_INC() used by Py_INCREF() +// and Py_DECREF(). +// - _Py_stats variable +// +// Functions of the sys module: +// +// - sys._stats_on() +// - sys._stats_off() +// - sys._stats_clear() +// - sys._stats_dump() +// +// Python must be built with ./configure --enable-pystats to define the +// Py_STATS macro. +// +// Define _PY_INTERPRETER macro to increment interpreter_increfs and +// interpreter_decrefs. Otherwise, increment increfs and decrefs. + +#ifndef Py_CPYTHON_PYSTATS_H +# error "this header file must not be included directly" +#endif + +#define PYSTATS_MAX_UOP_ID 512 + +#define SPECIALIZATION_FAILURE_KINDS 36 + +/* Stats for determining who is calling PyEval_EvalFrame */ +#define EVAL_CALL_TOTAL 0 +#define EVAL_CALL_VECTOR 1 +#define EVAL_CALL_GENERATOR 2 +#define EVAL_CALL_LEGACY 3 +#define EVAL_CALL_FUNCTION_VECTORCALL 4 +#define EVAL_CALL_BUILD_CLASS 5 +#define EVAL_CALL_SLOT 6 +#define EVAL_CALL_FUNCTION_EX 7 +#define EVAL_CALL_API 8 +#define EVAL_CALL_METHOD 9 + +#define EVAL_CALL_KINDS 10 + +typedef struct _specialization_stats { + uint64_t success; + uint64_t failure; + uint64_t hit; + uint64_t deferred; + uint64_t miss; + uint64_t deopt; + uint64_t failure_kinds[SPECIALIZATION_FAILURE_KINDS]; +} SpecializationStats; + +typedef struct _opcode_stats { + SpecializationStats specialization; + uint64_t execution_count; + uint64_t pair_count[256]; +} OpcodeStats; + +typedef struct _call_stats { + uint64_t inlined_py_calls; + uint64_t pyeval_calls; + uint64_t frames_pushed; + uint64_t frame_objects_created; + uint64_t eval_calls[EVAL_CALL_KINDS]; +} CallStats; + +typedef struct _object_stats { + uint64_t increfs; + uint64_t decrefs; + uint64_t interpreter_increfs; + uint64_t interpreter_decrefs; + uint64_t allocations; + uint64_t allocations512; + uint64_t allocations4k; + uint64_t allocations_big; + uint64_t frees; + uint64_t to_freelist; + uint64_t from_freelist; + uint64_t inline_values; + uint64_t dict_materialized_on_request; + uint64_t dict_materialized_new_key; + uint64_t dict_materialized_too_big; + uint64_t dict_materialized_str_subclass; + uint64_t type_cache_hits; + uint64_t type_cache_misses; + uint64_t type_cache_dunder_hits; + uint64_t type_cache_dunder_misses; + uint64_t type_cache_collisions; + /* Temporary value used during GC */ + uint64_t object_visits; +} ObjectStats; + +typedef struct _gc_stats { + uint64_t collections; + uint64_t object_visits; + uint64_t objects_collected; +} GCStats; + +typedef struct _uop_stats { + uint64_t execution_count; + uint64_t miss; + uint64_t pair_count[PYSTATS_MAX_UOP_ID + 1]; +} UOpStats; + +#define _Py_UOP_HIST_SIZE 32 + +typedef struct _optimization_stats { + uint64_t attempts; + uint64_t traces_created; + uint64_t traces_executed; + uint64_t uops_executed; + uint64_t trace_stack_overflow; + uint64_t trace_stack_underflow; + uint64_t trace_too_long; + uint64_t trace_too_short; + uint64_t inner_loop; + uint64_t recursive_call; + uint64_t low_confidence; + uint64_t executors_invalidated; + UOpStats opcode[PYSTATS_MAX_UOP_ID + 1]; + uint64_t unsupported_opcode[256]; + uint64_t trace_length_hist[_Py_UOP_HIST_SIZE]; + uint64_t trace_run_length_hist[_Py_UOP_HIST_SIZE]; + uint64_t optimized_trace_length_hist[_Py_UOP_HIST_SIZE]; + uint64_t optimizer_attempts; + uint64_t optimizer_successes; + uint64_t optimizer_failure_reason_no_memory; + uint64_t remove_globals_builtins_changed; + uint64_t remove_globals_incorrect_keys; + uint64_t error_in_opcode[PYSTATS_MAX_UOP_ID + 1]; +} OptimizationStats; + +typedef struct _rare_event_stats { + /* Setting an object's class, obj.__class__ = ... */ + uint64_t set_class; + /* Setting the bases of a class, cls.__bases__ = ... */ + uint64_t set_bases; + /* Setting the PEP 523 frame eval function, _PyInterpreterState_SetFrameEvalFunc() */ + uint64_t set_eval_frame_func; + /* Modifying the builtins, __builtins__.__dict__[var] = ... */ + uint64_t builtin_dict; + /* Modifying a function, e.g. func.__defaults__ = ..., etc. */ + uint64_t func_modification; + /* Modifying a dict that is being watched */ + uint64_t watched_dict_modification; + uint64_t watched_globals_modification; +} RareEventStats; + +typedef struct _stats { + OpcodeStats opcode_stats[256]; + CallStats call_stats; + ObjectStats object_stats; + OptimizationStats optimization_stats; + RareEventStats rare_event_stats; + GCStats *gc_stats; +} PyStats; + + +// Export for shared extensions like 'math' +PyAPI_DATA(PyStats*) _Py_stats; + +#ifdef _PY_INTERPRETER +# define _Py_INCREF_STAT_INC() do { if (_Py_stats) _Py_stats->object_stats.interpreter_increfs++; } while (0) +# define _Py_DECREF_STAT_INC() do { if (_Py_stats) _Py_stats->object_stats.interpreter_decrefs++; } while (0) +#else +# define _Py_INCREF_STAT_INC() do { if (_Py_stats) _Py_stats->object_stats.increfs++; } while (0) +# define _Py_DECREF_STAT_INC() do { if (_Py_stats) _Py_stats->object_stats.decrefs++; } while (0) +#endif diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pythonrun.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pythonrun.h new file mode 100644 index 000000000..edc409522 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pythonrun.h @@ -0,0 +1,96 @@ +#ifndef Py_CPYTHON_PYTHONRUN_H +# error "this header file must not be included directly" +#endif + +PyAPI_FUNC(int) PyRun_SimpleStringFlags(const char *, PyCompilerFlags *); +PyAPI_FUNC(int) PyRun_AnyFileExFlags( + FILE *fp, + const char *filename, /* decoded from the filesystem encoding */ + int closeit, + PyCompilerFlags *flags); +PyAPI_FUNC(int) PyRun_SimpleFileExFlags( + FILE *fp, + const char *filename, /* decoded from the filesystem encoding */ + int closeit, + PyCompilerFlags *flags); +PyAPI_FUNC(int) PyRun_InteractiveOneFlags( + FILE *fp, + const char *filename, /* decoded from the filesystem encoding */ + PyCompilerFlags *flags); +PyAPI_FUNC(int) PyRun_InteractiveOneObject( + FILE *fp, + PyObject *filename, + PyCompilerFlags *flags); +PyAPI_FUNC(int) PyRun_InteractiveLoopFlags( + FILE *fp, + const char *filename, /* decoded from the filesystem encoding */ + PyCompilerFlags *flags); + + +PyAPI_FUNC(PyObject *) PyRun_StringFlags(const char *, int, PyObject *, + PyObject *, PyCompilerFlags *); + +PyAPI_FUNC(PyObject *) PyRun_FileExFlags( + FILE *fp, + const char *filename, /* decoded from the filesystem encoding */ + int start, + PyObject *globals, + PyObject *locals, + int closeit, + PyCompilerFlags *flags); + + +PyAPI_FUNC(PyObject *) Py_CompileStringExFlags( + const char *str, + const char *filename, /* decoded from the filesystem encoding */ + int start, + PyCompilerFlags *flags, + int optimize); +PyAPI_FUNC(PyObject *) Py_CompileStringObject( + const char *str, + PyObject *filename, int start, + PyCompilerFlags *flags, + int optimize); + +#define Py_CompileString(str, p, s) Py_CompileStringExFlags((str), (p), (s), NULL, -1) +#define Py_CompileStringFlags(str, p, s, f) Py_CompileStringExFlags((str), (p), (s), (f), -1) + +/* 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) +#define PyRun_AnyFileEx(fp, name, closeit) \ + PyRun_AnyFileExFlags((fp), (name), (closeit), NULL) +#define PyRun_AnyFileFlags(fp, name, flags) \ + PyRun_AnyFileExFlags((fp), (name), 0, (flags)) +#define PyRun_SimpleString(s) PyRun_SimpleStringFlags((s), NULL) +#define PyRun_SimpleFile(f, p) PyRun_SimpleFileExFlags((f), (p), 0, NULL) +#define PyRun_SimpleFileEx(f, p, c) PyRun_SimpleFileExFlags((f), (p), (c), NULL) +#define PyRun_InteractiveOne(f, p) PyRun_InteractiveOneFlags((f), (p), NULL) +#define PyRun_InteractiveLoop(f, p) PyRun_InteractiveLoopFlags((f), (p), NULL) +#define PyRun_File(fp, p, s, g, l) \ + PyRun_FileExFlags((fp), (p), (s), (g), (l), 0, NULL) +#define PyRun_FileEx(fp, p, s, g, l, c) \ + PyRun_FileExFlags((fp), (p), (s), (g), (l), (c), NULL) +#define PyRun_FileFlags(fp, p, s, g, l, flags) \ + PyRun_FileExFlags((fp), (p), (s), (g), (l), 0, (flags)) + +/* Stuff with no proper home (yet) */ +PyAPI_FUNC(char *) PyOS_Readline(FILE *, FILE *, const char *); +PyAPI_DATA(char) *(*PyOS_ReadlineFunctionPointer)(FILE *, FILE *, const char *); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pythread.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pythread.h new file mode 100644 index 000000000..03f710a9f --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pythread.h @@ -0,0 +1,43 @@ +#ifndef Py_CPYTHON_PYTHREAD_H +# error "this header file must not be included directly" +#endif + +// PY_TIMEOUT_MAX is the highest usable value (in microseconds) of PY_TIMEOUT_T +// type, and depends on the system threading API. +// +// NOTE: this isn't the same value as `_thread.TIMEOUT_MAX`. The _thread module +// exposes a higher-level API, with timeouts expressed in seconds and +// floating-point numbers allowed. +PyAPI_DATA(const long long) PY_TIMEOUT_MAX; + +#define PYTHREAD_INVALID_THREAD_ID ((unsigned long)-1) + +#ifdef HAVE_PTHREAD_H + /* Darwin needs pthread.h to know type name the pthread_key_t. */ +# include +# define NATIVE_TSS_KEY_T pthread_key_t +#elif defined(NT_THREADS) + /* In Windows, native TSS key type is DWORD, + but hardcode the unsigned long to avoid errors for include directive. + */ +# define NATIVE_TSS_KEY_T unsigned long +#elif defined(HAVE_PTHREAD_STUBS) +# include "cpython/pthread_stubs.h" +# define NATIVE_TSS_KEY_T pthread_key_t +#else +# error "Require native threads. See https://bugs.python.org/issue31370" +#endif + +/* When Py_LIMITED_API is not defined, the type layout of Py_tss_t is + exposed to allow static allocation in the API clients. Even in this case, + you must handle TSS keys through API functions due to compatibility. +*/ +struct _Py_tss_t { + int _is_initialized; + NATIVE_TSS_KEY_T _key; +}; + +#undef NATIVE_TSS_KEY_T + +/* When static allocation, you must initialize with Py_tss_NEEDS_INIT. */ +#define Py_tss_NEEDS_INIT {0} diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pytime.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pytime.h new file mode 100644 index 000000000..5c68110ae --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/pytime.h @@ -0,0 +1,27 @@ +// PyTime_t C API: see Doc/c-api/time.rst for the documentation. + +#ifndef Py_LIMITED_API +#ifndef Py_PYTIME_H +#define Py_PYTIME_H +#ifdef __cplusplus +extern "C" { +#endif + +typedef int64_t PyTime_t; +#define PyTime_MIN INT64_MIN +#define PyTime_MAX INT64_MAX + +PyAPI_FUNC(double) PyTime_AsSecondsDouble(PyTime_t t); +PyAPI_FUNC(int) PyTime_Monotonic(PyTime_t *result); +PyAPI_FUNC(int) PyTime_PerfCounter(PyTime_t *result); +PyAPI_FUNC(int) PyTime_Time(PyTime_t *result); + +PyAPI_FUNC(int) PyTime_MonotonicRaw(PyTime_t *result); +PyAPI_FUNC(int) PyTime_PerfCounterRaw(PyTime_t *result); +PyAPI_FUNC(int) PyTime_TimeRaw(PyTime_t *result); + +#ifdef __cplusplus +} +#endif +#endif /* Py_PYTIME_H */ +#endif /* Py_LIMITED_API */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/setobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/setobject.h new file mode 100644 index 000000000..89565cb29 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/setobject.h @@ -0,0 +1,71 @@ +#ifndef Py_CPYTHON_SETOBJECT_H +# error "this header file must not be included directly" +#endif + +/* There are three kinds of entries in the table: + +1. Unused: key == NULL and hash == 0 +2. Dummy: key == dummy and hash == -1 +3. Active: key != NULL and key != dummy and hash != -1 + +The hash field of Unused slots is always zero. + +The hash field of Dummy slots are set to -1 +meaning that dummy entries can be detected by +either entry->key==dummy or by entry->hash==-1. +*/ + +#define PySet_MINSIZE 8 + +typedef struct { + PyObject *key; + Py_hash_t hash; /* Cached hash code of the key */ +} setentry; + +/* The SetObject data structure is shared by set and frozenset objects. + +Invariant for sets: + - hash is -1 + +Invariants for frozensets: + - data is immutable. + - hash is the hash of the frozenset or -1 if not computed yet. + +*/ + +typedef struct { + PyObject_HEAD + + Py_ssize_t fill; /* Number active and dummy entries*/ + Py_ssize_t used; /* Number active entries */ + + /* The table contains mask + 1 slots, and that's a power of 2. + * We store the mask instead of the size because the mask is more + * frequently needed. + */ + Py_ssize_t mask; + + /* The table points to a fixed-size smalltable for small tables + * or to additional malloc'ed memory for bigger tables. + * The table pointer is never NULL which saves us from repeated + * runtime null-tests. + */ + setentry *table; + Py_hash_t hash; /* Only used by frozenset objects */ + Py_ssize_t finger; /* Search finger for pop() */ + + setentry smalltable[PySet_MINSIZE]; + PyObject *weakreflist; /* List of weak references */ +} PySetObject; + +#define _PySet_CAST(so) \ + (assert(PyAnySet_Check(so)), _Py_CAST(PySetObject*, so)) + +static inline Py_ssize_t PySet_GET_SIZE(PyObject *so) { +#ifdef Py_GIL_DISABLED + return _Py_atomic_load_ssize_relaxed(&(_PySet_CAST(so)->used)); +#else + return _PySet_CAST(so)->used; +#endif +} +#define PySet_GET_SIZE(so) PySet_GET_SIZE(_PyObject_CAST(so)) diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/sysmodule.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/sysmodule.h new file mode 100644 index 000000000..a3ac07f53 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/sysmodule.h @@ -0,0 +1,22 @@ +#ifndef Py_CPYTHON_SYSMODULE_H +# error "this header file must not be included directly" +#endif + +typedef int(*Py_AuditHookFunction)(const char *, PyObject *, void *); + +PyAPI_FUNC(int) PySys_AddAuditHook(Py_AuditHookFunction, void*); + +typedef struct { + FILE* perf_map; + PyThread_type_lock map_lock; +} PerfMapState; + +PyAPI_FUNC(int) PyUnstable_PerfMapState_Init(void); +PyAPI_FUNC(int) PyUnstable_WritePerfMapEntry( + const void *code_addr, + unsigned int code_size, + const char *entry_name); +PyAPI_FUNC(void) PyUnstable_PerfMapState_Fini(void); +PyAPI_FUNC(int) PyUnstable_CopyPerfMapFile(const char* parent_filename); +PyAPI_FUNC(int) PyUnstable_PerfTrampoline_CompileCode(PyCodeObject *); +PyAPI_FUNC(int) PyUnstable_PerfTrampoline_SetPersistAfterFork(int enable); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/traceback.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/traceback.h new file mode 100644 index 000000000..81c51944f --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/traceback.h @@ -0,0 +1,13 @@ +#ifndef Py_CPYTHON_TRACEBACK_H +# error "this header file must not be included directly" +#endif + +typedef struct _traceback PyTracebackObject; + +struct _traceback { + PyObject_HEAD + PyTracebackObject *tb_next; + PyFrameObject *tb_frame; + int tb_lasti; + int tb_lineno; +}; diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/tracemalloc.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/tracemalloc.h new file mode 100644 index 000000000..61a16ea9a --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/tracemalloc.h @@ -0,0 +1,26 @@ +#ifndef Py_LIMITED_API +#ifndef Py_TRACEMALLOC_H +#define Py_TRACEMALLOC_H + +/* 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); + +#endif // !Py_TRACEMALLOC_H +#endif // !Py_LIMITED_API diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/tupleobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/tupleobject.h new file mode 100644 index 000000000..e530c8bed --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/tupleobject.h @@ -0,0 +1,38 @@ +#ifndef Py_CPYTHON_TUPLEOBJECT_H +# error "this header file must not be included directly" +#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); + +/* Cast argument to PyTupleObject* type. */ +#define _PyTuple_CAST(op) \ + (assert(PyTuple_Check(op)), _Py_CAST(PyTupleObject*, (op))) + +// Macros and static inline functions, trading safety for speed + +static inline Py_ssize_t PyTuple_GET_SIZE(PyObject *op) { + PyTupleObject *tuple = _PyTuple_CAST(op); + return Py_SIZE(tuple); +} +#define PyTuple_GET_SIZE(op) PyTuple_GET_SIZE(_PyObject_CAST(op)) + +#define PyTuple_GET_ITEM(op, index) (_PyTuple_CAST(op)->ob_item[(index)]) + +/* Function *only* to be used to fill in brand new tuples */ +static inline void +PyTuple_SET_ITEM(PyObject *op, Py_ssize_t index, PyObject *value) { + PyTupleObject *tuple = _PyTuple_CAST(op); + assert(0 <= index); + assert(index < Py_SIZE(tuple)); + tuple->ob_item[index] = value; +} +#define PyTuple_SET_ITEM(op, index, value) \ + PyTuple_SET_ITEM(_PyObject_CAST(op), (index), _PyObject_CAST(value)) diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/unicodeobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/unicodeobject.h new file mode 100644 index 000000000..d9b54bce8 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/unicodeobject.h @@ -0,0 +1,703 @@ +#ifndef Py_CPYTHON_UNICODEOBJECT_H +# error "this header file must not be included directly" +#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. */ +Py_DEPRECATED(3.13) typedef wchar_t PY_UNICODE_TYPE; +Py_DEPRECATED(3.13) typedef wchar_t Py_UNICODE; + + +/* --- Internal Unicode Operations ---------------------------------------- */ + +// Static inline functions to work with surrogates +static inline int Py_UNICODE_IS_SURROGATE(Py_UCS4 ch) { + return (0xD800 <= ch && ch <= 0xDFFF); +} +static inline int Py_UNICODE_IS_HIGH_SURROGATE(Py_UCS4 ch) { + return (0xD800 <= ch && ch <= 0xDBFF); +} +static inline int Py_UNICODE_IS_LOW_SURROGATE(Py_UCS4 ch) { + return (0xDC00 <= ch && ch <= 0xDFFF); +} + +// Join two surrogate characters and return a single Py_UCS4 value. +static inline Py_UCS4 Py_UNICODE_JOIN_SURROGATES(Py_UCS4 high, Py_UCS4 low) { + assert(Py_UNICODE_IS_HIGH_SURROGATE(high)); + assert(Py_UNICODE_IS_LOW_SURROGATE(low)); + return 0x10000 + (((high & 0x03FF) << 10) | (low & 0x03FF)); +} + +// High surrogate = top 10 bits added to 0xD800. +// The character must be in the range [U+10000; U+10ffff]. +static inline Py_UCS4 Py_UNICODE_HIGH_SURROGATE(Py_UCS4 ch) { + assert(0x10000 <= ch && ch <= 0x10ffff); + return (0xD800 - (0x10000 >> 10) + (ch >> 10)); +} + +// Low surrogate = bottom 10 bits added to 0xDC00. +// The character must be in the range [U+10000; U+10ffff]. +static inline Py_UCS4 Py_UNICODE_LOW_SURROGATE(Py_UCS4 ch) { + assert(0x10000 <= ch && ch <= 0x10ffff); + return (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 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 + * (length is the length of the utf8) + * (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 + * ascii = 0 + * utf8 is not shared with data + * utf8_length = 0 if utf8 is NULL + * (data starts just after the structure) + + - legacy string: + + * structure = PyUnicodeObject structure + * test: !PyUnicode_IS_COMPACT(op) + * kind = PyUnicode_1BYTE_KIND, PyUnicode_2BYTE_KIND or + PyUnicode_4BYTE_KIND + * compact = 0 + * 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 + + 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 subclasses of Unicode. + + 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 { + /* If interned is non-zero, the two references from the + dictionary to this object are *not* counted in ob_refcnt. + The possible values here are: + 0: Not Interned + 1: Interned + 2: Interned and Immortal + 3: Interned, Immortal, and Static + This categorization allows the runtime to determine the right + cleanup mechanism at runtime shutdown. */ + unsigned int interned:2; + /* Character size: + + - 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 object is statically allocated. */ + unsigned int statically_allocated:1; + /* Padding to ensure that PyUnicode_DATA() is always aligned to + 4 bytes (see issue #19537 on m68k). */ + unsigned int :24; + } state; +} 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) */ +} PyCompactUnicodeObject; + +/* Object format for Unicode subclasses. */ +typedef struct { + PyCompactUnicodeObject _base; + union { + void *any; + Py_UCS1 *latin1; + Py_UCS2 *ucs2; + Py_UCS4 *ucs4; + } data; /* Canonical, smallest-form Unicode buffer */ +} PyUnicodeObject; + + +#define _PyASCIIObject_CAST(op) \ + (assert(PyUnicode_Check(op)), \ + _Py_CAST(PyASCIIObject*, (op))) +#define _PyCompactUnicodeObject_CAST(op) \ + (assert(PyUnicode_Check(op)), \ + _Py_CAST(PyCompactUnicodeObject*, (op))) +#define _PyUnicodeObject_CAST(op) \ + (assert(PyUnicode_Check(op)), \ + _Py_CAST(PyUnicodeObject*, (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 +#define SSTATE_INTERNED_IMMORTAL_STATIC 3 + +/* Use only if you know it's a string */ +static inline unsigned int PyUnicode_CHECK_INTERNED(PyObject *op) { + return _PyASCIIObject_CAST(op)->state.interned; +} +#define PyUnicode_CHECK_INTERNED(op) PyUnicode_CHECK_INTERNED(_PyObject_CAST(op)) + +/* For backward compatibility */ +static inline unsigned int PyUnicode_IS_READY(PyObject* Py_UNUSED(op)) { + return 1; +} +#define PyUnicode_IS_READY(op) PyUnicode_IS_READY(_PyObject_CAST(op)) + +/* 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. */ +static inline unsigned int PyUnicode_IS_ASCII(PyObject *op) { + return _PyASCIIObject_CAST(op)->state.ascii; +} +#define PyUnicode_IS_ASCII(op) PyUnicode_IS_ASCII(_PyObject_CAST(op)) + +/* Return true if the string is compact or 0 if not. + No type checks or Ready calls are performed. */ +static inline unsigned int PyUnicode_IS_COMPACT(PyObject *op) { + return _PyASCIIObject_CAST(op)->state.compact; +} +#define PyUnicode_IS_COMPACT(op) PyUnicode_IS_COMPACT(_PyObject_CAST(op)) + +/* 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. */ +static inline int PyUnicode_IS_COMPACT_ASCII(PyObject *op) { + return (_PyASCIIObject_CAST(op)->state.ascii && PyUnicode_IS_COMPACT(op)); +} +#define PyUnicode_IS_COMPACT_ASCII(op) PyUnicode_IS_COMPACT_ASCII(_PyObject_CAST(op)) + +enum PyUnicode_Kind { +/* Return values of the PyUnicode_KIND() function: */ + PyUnicode_1BYTE_KIND = 1, + PyUnicode_2BYTE_KIND = 2, + PyUnicode_4BYTE_KIND = 4 +}; + +// PyUnicode_KIND(): Return one of the PyUnicode_*_KIND values defined above. +// +// gh-89653: Converting this macro to a static inline function would introduce +// new compiler warnings on "kind < PyUnicode_KIND(str)" (compare signed and +// unsigned numbers) where kind type is an int or on +// "unsigned int kind = PyUnicode_KIND(str)" (cast signed to unsigned). +#define PyUnicode_KIND(op) _Py_RVALUE(_PyASCIIObject_CAST(op)->state.kind) + +/* Return a void pointer to the raw unicode buffer. */ +static inline void* _PyUnicode_COMPACT_DATA(PyObject *op) { + if (PyUnicode_IS_ASCII(op)) { + return _Py_STATIC_CAST(void*, (_PyASCIIObject_CAST(op) + 1)); + } + return _Py_STATIC_CAST(void*, (_PyCompactUnicodeObject_CAST(op) + 1)); +} + +static inline void* _PyUnicode_NONCOMPACT_DATA(PyObject *op) { + void *data; + assert(!PyUnicode_IS_COMPACT(op)); + data = _PyUnicodeObject_CAST(op)->data.any; + assert(data != NULL); + return data; +} + +static inline void* PyUnicode_DATA(PyObject *op) { + if (PyUnicode_IS_COMPACT(op)) { + return _PyUnicode_COMPACT_DATA(op); + } + return _PyUnicode_NONCOMPACT_DATA(op); +} +#define PyUnicode_DATA(op) PyUnicode_DATA(_PyObject_CAST(op)) + +/* 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_STATIC_CAST(Py_UCS1*, PyUnicode_DATA(op)) +#define PyUnicode_2BYTE_DATA(op) _Py_STATIC_CAST(Py_UCS2*, PyUnicode_DATA(op)) +#define PyUnicode_4BYTE_DATA(op) _Py_STATIC_CAST(Py_UCS4*, PyUnicode_DATA(op)) + +/* Returns the length of the unicode string. */ +static inline Py_ssize_t PyUnicode_GET_LENGTH(PyObject *op) { + return _PyASCIIObject_CAST(op)->length; +} +#define PyUnicode_GET_LENGTH(op) PyUnicode_GET_LENGTH(_PyObject_CAST(op)) + +/* Write into the canonical representation, this function 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 function 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. */ +static inline void PyUnicode_WRITE(int kind, void *data, + Py_ssize_t index, Py_UCS4 value) +{ + assert(index >= 0); + if (kind == PyUnicode_1BYTE_KIND) { + assert(value <= 0xffU); + _Py_STATIC_CAST(Py_UCS1*, data)[index] = _Py_STATIC_CAST(Py_UCS1, value); + } + else if (kind == PyUnicode_2BYTE_KIND) { + assert(value <= 0xffffU); + _Py_STATIC_CAST(Py_UCS2*, data)[index] = _Py_STATIC_CAST(Py_UCS2, value); + } + else { + assert(kind == PyUnicode_4BYTE_KIND); + assert(value <= 0x10ffffU); + _Py_STATIC_CAST(Py_UCS4*, data)[index] = value; + } +} +#define PyUnicode_WRITE(kind, data, index, value) \ + PyUnicode_WRITE(_Py_STATIC_CAST(int, kind), _Py_CAST(void*, data), \ + (index), _Py_STATIC_CAST(Py_UCS4, value)) + +/* Read a code point from the string's canonical representation. No checks + or ready calls are performed. */ +static inline Py_UCS4 PyUnicode_READ(int kind, + const void *data, Py_ssize_t index) +{ + assert(index >= 0); + if (kind == PyUnicode_1BYTE_KIND) { + return _Py_STATIC_CAST(const Py_UCS1*, data)[index]; + } + if (kind == PyUnicode_2BYTE_KIND) { + return _Py_STATIC_CAST(const Py_UCS2*, data)[index]; + } + assert(kind == PyUnicode_4BYTE_KIND); + return _Py_STATIC_CAST(const Py_UCS4*, data)[index]; +} +#define PyUnicode_READ(kind, data, index) \ + PyUnicode_READ(_Py_STATIC_CAST(int, kind), \ + _Py_STATIC_CAST(const void*, 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. */ +static inline Py_UCS4 PyUnicode_READ_CHAR(PyObject *unicode, Py_ssize_t index) +{ + int kind; + + assert(index >= 0); + // Tolerate reading the NUL character at str[len(str)] + assert(index <= PyUnicode_GET_LENGTH(unicode)); + + kind = PyUnicode_KIND(unicode); + if (kind == PyUnicode_1BYTE_KIND) { + return PyUnicode_1BYTE_DATA(unicode)[index]; + } + if (kind == PyUnicode_2BYTE_KIND) { + return PyUnicode_2BYTE_DATA(unicode)[index]; + } + assert(kind == PyUnicode_4BYTE_KIND); + return PyUnicode_4BYTE_DATA(unicode)[index]; +} +#define PyUnicode_READ_CHAR(unicode, index) \ + PyUnicode_READ_CHAR(_PyObject_CAST(unicode), (index)) + +/* 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. */ +static inline Py_UCS4 PyUnicode_MAX_CHAR_VALUE(PyObject *op) +{ + int kind; + + if (PyUnicode_IS_ASCII(op)) { + return 0x7fU; + } + + kind = PyUnicode_KIND(op); + if (kind == PyUnicode_1BYTE_KIND) { + return 0xffU; + } + if (kind == PyUnicode_2BYTE_KIND) { + return 0xffffU; + } + assert(kind == PyUnicode_4BYTE_KIND); + return 0x10ffffU; +} +#define PyUnicode_MAX_CHAR_VALUE(op) \ + PyUnicode_MAX_CHAR_VALUE(_PyObject_CAST(op)) + + +/* === Public API ========================================================= */ + +/* 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 */ + ); + +/* For backward compatibility */ +static inline int PyUnicode_READY(PyObject* Py_UNUSED(op)) +{ + return 0; +} +#define PyUnicode_READY(op) PyUnicode_READY(_PyObject_CAST(op)) + +/* 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 + ); + +/* 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 + ); + +/* 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); + + +/* --- _PyUnicodeWriter API ----------------------------------------------- */ + +typedef struct { + PyObject *buffer; + void *data; + int 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) \ + ((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, + int 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); + + +/* --- Manage the default encoding ---------------------------------------- */ + +/* 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); + +// Alias kept for backward compatibility +#define _PyUnicode_AsString PyUnicode_AsUTF8 + + +/* === Characters Type APIs =============================================== */ + +/* 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_IsWhitespace( + const Py_UCS4 ch /* Unicode character */ + ); + +PyAPI_FUNC(int) _PyUnicode_IsLinebreak( + const Py_UCS4 ch /* Unicode character */ + ); + +PyAPI_FUNC(Py_UCS4) _PyUnicode_ToLowercase( + Py_UCS4 ch /* Unicode character */ + ); + +PyAPI_FUNC(Py_UCS4) _PyUnicode_ToUppercase( + Py_UCS4 ch /* Unicode character */ + ); + +PyAPI_FUNC(Py_UCS4) _PyUnicode_ToTitlecase( + 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 */ + ); + +// Helper array used by Py_UNICODE_ISSPACE(). +PyAPI_DATA(const unsigned char) _Py_ascii_whitespace[]; + +// 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. +static inline int Py_UNICODE_ISSPACE(Py_UCS4 ch) { + if (ch < 128) { + return _Py_ascii_whitespace[ch]; + } + return _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) + +static inline int Py_UNICODE_ISALNUM(Py_UCS4 ch) { + return (Py_UNICODE_ISALPHA(ch) + || Py_UNICODE_ISDECIMAL(ch) + || Py_UNICODE_ISDIGIT(ch) + || Py_UNICODE_ISNUMERIC(ch)); +} + + +/* === Misc functions ===================================================== */ + +// Return an interned Unicode object for an Identifier; may fail if there is no +// memory. +PyAPI_FUNC(PyObject*) _PyUnicode_FromId(_Py_Identifier*); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/warnings.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/warnings.h new file mode 100644 index 000000000..4e3eb88e8 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/warnings.h @@ -0,0 +1,20 @@ +#ifndef Py_CPYTHON_WARNINGS_H +# error "this header file must not be included directly" +#endif + +PyAPI_FUNC(int) PyErr_WarnExplicitObject( + PyObject *category, + PyObject *message, + PyObject *filename, + int lineno, + PyObject *module, + PyObject *registry); + +PyAPI_FUNC(int) PyErr_WarnExplicitFormat( + PyObject *category, + const char *filename, int lineno, + const char *module, PyObject *registry, + const char *format, ...); + +// DEPRECATED: Use PyErr_WarnEx() instead. +#define PyErr_Warn(category, msg) PyErr_WarnEx((category), (msg), 1) diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/weakrefobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/weakrefobject.h new file mode 100644 index 000000000..28acf7265 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/cpython/weakrefobject.h @@ -0,0 +1,63 @@ +#ifndef Py_CPYTHON_WEAKREFOBJECT_H +# error "this header file must not be included directly" +#endif + +/* PyWeakReference is the base struct for the Python ReferenceType, ProxyType, + * and CallableProxyType. + */ +struct _PyWeakReference { + PyObject_HEAD + + /* The object to which this is a weak reference, or Py_None if none. + * Note that this is a stealth reference: wr_object's refcount is + * not incremented to reflect this pointer. + */ + PyObject *wr_object; + + /* A callable to invoke when wr_object dies, or NULL if none. */ + PyObject *wr_callback; + + /* A cache for wr_object's hash code. As usual for hashes, this is -1 + * if the hash code isn't known yet. + */ + Py_hash_t hash; + + /* If wr_object is weakly referenced, wr_object has a doubly-linked NULL- + * terminated list of weak references to it. These are the list pointers. + * If wr_object goes away, wr_object is set to Py_None, and these pointers + * have no meaning then. + */ + PyWeakReference *wr_prev; + PyWeakReference *wr_next; + vectorcallfunc vectorcall; + +#ifdef Py_GIL_DISABLED + /* Pointer to the lock used when clearing in free-threaded builds. + * Normally this can be derived from wr_object, but in some cases we need + * to lock after wr_object has been set to Py_None. + */ + PyMutex *weakrefs_lock; +#endif +}; + +PyAPI_FUNC(void) _PyWeakref_ClearRef(PyWeakReference *self); + +Py_DEPRECATED(3.13) static inline PyObject* PyWeakref_GET_OBJECT(PyObject *ref_obj) +{ + PyWeakReference *ref; + PyObject *obj; + assert(PyWeakref_Check(ref_obj)); + ref = _Py_CAST(PyWeakReference*, ref_obj); + obj = ref->wr_object; + // Explanation for the Py_REFCNT() check: when a weakref's target is part + // of a long chain of deallocations which triggers the trashcan mechanism, + // clearing the weakrefs can be delayed long after the target's refcount + // has dropped to zero. In the meantime, code accessing the weakref will + // be able to "see" the target object even though it is supposed to be + // unreachable. See issue gh-60806. + if (Py_REFCNT(obj) > 0) { + return obj; + } + return Py_None; +} +#define PyWeakref_GET_OBJECT(ref) PyWeakref_GET_OBJECT(_PyObject_CAST(ref)) diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/critical_section.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/critical_section.h new file mode 100644 index 000000000..3b37615a8 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/critical_section.h @@ -0,0 +1,16 @@ +#ifndef Py_CRITICAL_SECTION_H +#define Py_CRITICAL_SECTION_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_CRITICAL_SECTION_H +# include "cpython/critical_section.h" +# undef Py_CPYTHON_CRITICAL_SECTION_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_CRITICAL_SECTION_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/datetime.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/datetime.h new file mode 100644 index 000000000..b78cc0e8e --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/datetime.h @@ -0,0 +1,267 @@ +/* datetime.h + */ +#ifndef Py_LIMITED_API +#ifndef DATETIME_H +#define DATETIME_H +#ifdef __cplusplus +extern "C" { +#endif + +/* Fields are packed into successive bytes, each viewed as unsigned and + * big-endian, unless otherwise noted: + * + * byte offset + * 0 year 2 bytes, 1-9999 + * 2 month 1 byte, 1-12 + * 3 day 1 byte, 1-31 + * 4 hour 1 byte, 0-23 + * 5 minute 1 byte, 0-59 + * 6 second 1 byte, 0-59 + * 7 usecond 3 bytes, 0-999999 + * 10 + */ + +/* # of bytes for year, month, and day. */ +#define _PyDateTime_DATE_DATASIZE 4 + +/* # of bytes for hour, minute, second, and usecond. */ +#define _PyDateTime_TIME_DATASIZE 6 + +/* # of bytes for year, month, day, hour, minute, second, and usecond. */ +#define _PyDateTime_DATETIME_DATASIZE 10 + + +typedef struct +{ + PyObject_HEAD + Py_hash_t hashcode; /* -1 when unknown */ + int days; /* -MAX_DELTA_DAYS <= days <= MAX_DELTA_DAYS */ + int seconds; /* 0 <= seconds < 24*3600 is invariant */ + int microseconds; /* 0 <= microseconds < 1000000 is invariant */ +} PyDateTime_Delta; + +typedef struct +{ + PyObject_HEAD /* a pure abstract base class */ +} PyDateTime_TZInfo; + + +/* The datetime and time types have hashcodes, and an optional tzinfo member, + * present if and only if hastzinfo is true. + */ +#define _PyTZINFO_HEAD \ + PyObject_HEAD \ + Py_hash_t hashcode; \ + char hastzinfo; /* boolean flag */ + +/* No _PyDateTime_BaseTZInfo is allocated; it's just to have something + * convenient to cast to, when getting at the hastzinfo member of objects + * starting with _PyTZINFO_HEAD. + */ +typedef struct +{ + _PyTZINFO_HEAD +} _PyDateTime_BaseTZInfo; + +/* All time objects are of PyDateTime_TimeType, but that can be allocated + * in two ways, with or without a tzinfo member. Without is the same as + * tzinfo == None, but consumes less memory. _PyDateTime_BaseTime is an + * internal struct used to allocate the right amount of space for the + * "without" case. + */ +#define _PyDateTime_TIMEHEAD \ + _PyTZINFO_HEAD \ + unsigned char data[_PyDateTime_TIME_DATASIZE]; + +typedef struct +{ + _PyDateTime_TIMEHEAD +} _PyDateTime_BaseTime; /* hastzinfo false */ + +typedef struct +{ + _PyDateTime_TIMEHEAD + unsigned char fold; + PyObject *tzinfo; +} PyDateTime_Time; /* hastzinfo true */ + + +/* All datetime objects are of PyDateTime_DateTimeType, but that can be + * allocated in two ways too, just like for time objects above. In addition, + * the plain date type is a base class for datetime, so it must also have + * a hastzinfo member (although it's unused there). + */ +typedef struct +{ + _PyTZINFO_HEAD + unsigned char data[_PyDateTime_DATE_DATASIZE]; +} PyDateTime_Date; + +#define _PyDateTime_DATETIMEHEAD \ + _PyTZINFO_HEAD \ + unsigned char data[_PyDateTime_DATETIME_DATASIZE]; + +typedef struct +{ + _PyDateTime_DATETIMEHEAD +} _PyDateTime_BaseDateTime; /* hastzinfo false */ + +typedef struct +{ + _PyDateTime_DATETIMEHEAD + unsigned char fold; + PyObject *tzinfo; +} PyDateTime_DateTime; /* hastzinfo true */ + + +/* Apply for date and datetime instances. */ + +// o is a pointer to a time or a datetime object. +#define _PyDateTime_HAS_TZINFO(o) (((_PyDateTime_BaseTZInfo *)(o))->hastzinfo) + +#define PyDateTime_GET_YEAR(o) ((((PyDateTime_Date*)(o))->data[0] << 8) | \ + ((PyDateTime_Date*)(o))->data[1]) +#define PyDateTime_GET_MONTH(o) (((PyDateTime_Date*)(o))->data[2]) +#define PyDateTime_GET_DAY(o) (((PyDateTime_Date*)(o))->data[3]) + +#define PyDateTime_DATE_GET_HOUR(o) (((PyDateTime_DateTime*)(o))->data[4]) +#define PyDateTime_DATE_GET_MINUTE(o) (((PyDateTime_DateTime*)(o))->data[5]) +#define PyDateTime_DATE_GET_SECOND(o) (((PyDateTime_DateTime*)(o))->data[6]) +#define PyDateTime_DATE_GET_MICROSECOND(o) \ + ((((PyDateTime_DateTime*)(o))->data[7] << 16) | \ + (((PyDateTime_DateTime*)(o))->data[8] << 8) | \ + ((PyDateTime_DateTime*)(o))->data[9]) +#define PyDateTime_DATE_GET_FOLD(o) (((PyDateTime_DateTime*)(o))->fold) +#define PyDateTime_DATE_GET_TZINFO(o) (_PyDateTime_HAS_TZINFO((o)) ? \ + ((PyDateTime_DateTime *)(o))->tzinfo : Py_None) + +/* Apply for time instances. */ +#define PyDateTime_TIME_GET_HOUR(o) (((PyDateTime_Time*)(o))->data[0]) +#define PyDateTime_TIME_GET_MINUTE(o) (((PyDateTime_Time*)(o))->data[1]) +#define PyDateTime_TIME_GET_SECOND(o) (((PyDateTime_Time*)(o))->data[2]) +#define PyDateTime_TIME_GET_MICROSECOND(o) \ + ((((PyDateTime_Time*)(o))->data[3] << 16) | \ + (((PyDateTime_Time*)(o))->data[4] << 8) | \ + ((PyDateTime_Time*)(o))->data[5]) +#define PyDateTime_TIME_GET_FOLD(o) (((PyDateTime_Time*)(o))->fold) +#define PyDateTime_TIME_GET_TZINFO(o) (_PyDateTime_HAS_TZINFO(o) ? \ + ((PyDateTime_Time *)(o))->tzinfo : Py_None) + +/* Apply for time delta instances */ +#define PyDateTime_DELTA_GET_DAYS(o) (((PyDateTime_Delta*)(o))->days) +#define PyDateTime_DELTA_GET_SECONDS(o) (((PyDateTime_Delta*)(o))->seconds) +#define PyDateTime_DELTA_GET_MICROSECONDS(o) \ + (((PyDateTime_Delta*)(o))->microseconds) + + +/* Define structure for C API. */ +typedef struct { + /* type objects */ + PyTypeObject *DateType; + PyTypeObject *DateTimeType; + PyTypeObject *TimeType; + PyTypeObject *DeltaType; + PyTypeObject *TZInfoType; + + /* singletons */ + PyObject *TimeZone_UTC; + + /* constructors */ + PyObject *(*Date_FromDate)(int, int, int, PyTypeObject*); + PyObject *(*DateTime_FromDateAndTime)(int, int, int, int, int, int, int, + PyObject*, PyTypeObject*); + PyObject *(*Time_FromTime)(int, int, int, int, PyObject*, PyTypeObject*); + PyObject *(*Delta_FromDelta)(int, int, int, int, PyTypeObject*); + PyObject *(*TimeZone_FromTimeZone)(PyObject *offset, PyObject *name); + + /* constructors for the DB API */ + PyObject *(*DateTime_FromTimestamp)(PyObject*, PyObject*, PyObject*); + PyObject *(*Date_FromTimestamp)(PyObject*, PyObject*); + + /* PEP 495 constructors */ + PyObject *(*DateTime_FromDateAndTimeAndFold)(int, int, int, int, int, int, int, + PyObject*, int, PyTypeObject*); + PyObject *(*Time_FromTimeAndFold)(int, int, int, int, PyObject*, int, PyTypeObject*); + +} PyDateTime_CAPI; + +#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 +/* Define global variable for the C API and a macro for setting it. */ +static PyDateTime_CAPI *PyDateTimeAPI = NULL; + +#define PyDateTime_IMPORT \ + PyDateTimeAPI = (PyDateTime_CAPI *)PyCapsule_Import(PyDateTime_CAPSULE_NAME, 0) + +/* Macro for access to the UTC singleton */ +#define PyDateTime_TimeZone_UTC PyDateTimeAPI->TimeZone_UTC + +/* 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 PyDateTime_Check(op) PyObject_TypeCheck((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 PyDelta_Check(op) PyObject_TypeCheck((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) + + +/* Macros for accessing constructors in a simplified fashion. */ +#define PyDate_FromDate(year, month, day) \ + PyDateTimeAPI->Date_FromDate((year), (month), (day), PyDateTimeAPI->DateType) + +#define PyDateTime_FromDateAndTime(year, month, day, hour, min, sec, usec) \ + PyDateTimeAPI->DateTime_FromDateAndTime((year), (month), (day), (hour), \ + (min), (sec), (usec), Py_None, PyDateTimeAPI->DateTimeType) + +#define PyDateTime_FromDateAndTimeAndFold(year, month, day, hour, min, sec, usec, fold) \ + PyDateTimeAPI->DateTime_FromDateAndTimeAndFold((year), (month), (day), (hour), \ + (min), (sec), (usec), Py_None, (fold), PyDateTimeAPI->DateTimeType) + +#define PyTime_FromTime(hour, minute, second, usecond) \ + PyDateTimeAPI->Time_FromTime((hour), (minute), (second), (usecond), \ + Py_None, PyDateTimeAPI->TimeType) + +#define PyTime_FromTimeAndFold(hour, minute, second, usecond, fold) \ + PyDateTimeAPI->Time_FromTimeAndFold((hour), (minute), (second), (usecond), \ + Py_None, (fold), PyDateTimeAPI->TimeType) + +#define PyDelta_FromDSU(days, seconds, useconds) \ + PyDateTimeAPI->Delta_FromDelta((days), (seconds), (useconds), 1, \ + PyDateTimeAPI->DeltaType) + +#define PyTimeZone_FromOffset(offset) \ + PyDateTimeAPI->TimeZone_FromTimeZone((offset), NULL) + +#define PyTimeZone_FromOffsetAndName(offset, name) \ + PyDateTimeAPI->TimeZone_FromTimeZone((offset), (name)) + +/* Macros supporting the DB API. */ +#define PyDateTime_FromTimestamp(args) \ + PyDateTimeAPI->DateTime_FromTimestamp( \ + (PyObject*) (PyDateTimeAPI->DateTimeType), (args), NULL) + +#define PyDate_FromTimestamp(args) \ + PyDateTimeAPI->Date_FromTimestamp( \ + (PyObject*) (PyDateTimeAPI->DateType), (args)) + +#endif /* !defined(_PY_DATETIME_IMPL) */ + +#ifdef __cplusplus +} +#endif +#endif +#endif /* !Py_LIMITED_API */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/descrobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/descrobject.h new file mode 100644 index 000000000..fd66d17b4 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/descrobject.h @@ -0,0 +1,100 @@ +/* Descriptors */ +#ifndef Py_DESCROBJECT_H +#define Py_DESCROBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +typedef PyObject *(*getter)(PyObject *, void *); +typedef int (*setter)(PyObject *, PyObject *, void *); + +struct PyGetSetDef { + const char *name; + getter get; + setter set; + const char *doc; + void *closure; +}; + +PyAPI_DATA(PyTypeObject) PyClassMethodDescr_Type; +PyAPI_DATA(PyTypeObject) PyGetSetDescr_Type; +PyAPI_DATA(PyTypeObject) PyMemberDescr_Type; +PyAPI_DATA(PyTypeObject) PyMethodDescr_Type; +PyAPI_DATA(PyTypeObject) PyWrapperDescr_Type; +PyAPI_DATA(PyTypeObject) PyDictProxy_Type; +PyAPI_DATA(PyTypeObject) PyProperty_Type; + +PyAPI_FUNC(PyObject *) PyDescr_NewMethod(PyTypeObject *, PyMethodDef *); +PyAPI_FUNC(PyObject *) PyDescr_NewClassMethod(PyTypeObject *, PyMethodDef *); +PyAPI_FUNC(PyObject *) PyDescr_NewMember(PyTypeObject *, PyMemberDef *); +PyAPI_FUNC(PyObject *) PyDescr_NewGetSet(PyTypeObject *, PyGetSetDef *); + +PyAPI_FUNC(PyObject *) PyDictProxy_New(PyObject *); +PyAPI_FUNC(PyObject *) PyWrapper_New(PyObject *, PyObject *); + + +/* An array of PyMemberDef structures defines the name, type and offset + of selected members of a C structure. These can be read by + PyMember_GetOne() and set by PyMember_SetOne() (except if their READONLY + flag is set). The array must be terminated with an entry whose name + pointer is NULL. */ +struct PyMemberDef { + const char *name; + int type; + Py_ssize_t offset; + int flags; + const char *doc; +}; + +// These constants used to be in structmember.h, not prefixed by Py_. +// (structmember.h now has aliases to the new names.) + +/* Types */ +#define Py_T_SHORT 0 +#define Py_T_INT 1 +#define Py_T_LONG 2 +#define Py_T_FLOAT 3 +#define Py_T_DOUBLE 4 +#define Py_T_STRING 5 +#define _Py_T_OBJECT 6 // Deprecated, use Py_T_OBJECT_EX instead +/* the ordering here is weird for binary compatibility */ +#define Py_T_CHAR 7 /* 1-character string */ +#define Py_T_BYTE 8 /* 8-bit signed int */ +/* unsigned variants: */ +#define Py_T_UBYTE 9 +#define Py_T_USHORT 10 +#define Py_T_UINT 11 +#define Py_T_ULONG 12 + +/* Added by Jack: strings contained in the structure */ +#define Py_T_STRING_INPLACE 13 + +/* Added by Lillo: bools contained in the structure (assumed char) */ +#define Py_T_BOOL 14 + +#define Py_T_OBJECT_EX 16 +#define Py_T_LONGLONG 17 +#define Py_T_ULONGLONG 18 + +#define Py_T_PYSSIZET 19 /* Py_ssize_t */ +#define _Py_T_NONE 20 // Deprecated. Value is always None. + +/* Flags */ +#define Py_READONLY 1 +#define Py_AUDIT_READ 2 // Added in 3.10, harmless no-op before that +#define _Py_WRITE_RESTRICTED 4 // Deprecated, no-op. Do not reuse the value. +#define Py_RELATIVE_OFFSET 8 + +PyAPI_FUNC(PyObject *) PyMember_GetOne(const char *, PyMemberDef *); +PyAPI_FUNC(int) PyMember_SetOne(char *, PyMemberDef *, PyObject *); + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_DESCROBJECT_H +# include "cpython/descrobject.h" +# undef Py_CPYTHON_DESCROBJECT_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_DESCROBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/dictobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/dictobject.h new file mode 100644 index 000000000..1bbeec1ab --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/dictobject.h @@ -0,0 +1,108 @@ +#ifndef Py_DICTOBJECT_H +#define Py_DICTOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +/* Dictionary object type -- mapping from hashable object to object */ + +/* The distribution includes a separate file, Objects/dictnotes.txt, + describing explorations into dictionary design and optimization. + It covers typical dictionary use patterns, the parameters for + tuning dictionaries, and several ideas for possible optimizations. +*/ + +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) + +PyAPI_FUNC(PyObject *) PyDict_New(void); +PyAPI_FUNC(PyObject *) PyDict_GetItem(PyObject *mp, PyObject *key); +PyAPI_FUNC(PyObject *) PyDict_GetItemWithError(PyObject *mp, PyObject *key); +PyAPI_FUNC(int) PyDict_SetItem(PyObject *mp, PyObject *key, PyObject *item); +PyAPI_FUNC(int) PyDict_DelItem(PyObject *mp, PyObject *key); +PyAPI_FUNC(void) PyDict_Clear(PyObject *mp); +PyAPI_FUNC(int) PyDict_Next( + PyObject *mp, Py_ssize_t *pos, PyObject **key, PyObject **value); +PyAPI_FUNC(PyObject *) PyDict_Keys(PyObject *mp); +PyAPI_FUNC(PyObject *) PyDict_Values(PyObject *mp); +PyAPI_FUNC(PyObject *) PyDict_Items(PyObject *mp); +PyAPI_FUNC(Py_ssize_t) PyDict_Size(PyObject *mp); +PyAPI_FUNC(PyObject *) PyDict_Copy(PyObject *mp); +PyAPI_FUNC(int) PyDict_Contains(PyObject *mp, PyObject *key); + +/* PyDict_Update(mp, other) is equivalent to PyDict_Merge(mp, other, 1). */ +PyAPI_FUNC(int) PyDict_Update(PyObject *mp, PyObject *other); + +/* PyDict_Merge updates/merges from a mapping object (an object that + supports PyMapping_Keys() and PyObject_GetItem()). If override is true, + the last occurrence of a key wins, else the first. The Python + dict.update(other) is equivalent to PyDict_Merge(dict, other, 1). +*/ +PyAPI_FUNC(int) PyDict_Merge(PyObject *mp, + 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 + of a key wins, else the first. The Python dict constructor dict(seq2) + is equivalent to dict={}; PyDict_MergeFromSeq(dict, seq2, 1). +*/ +PyAPI_FUNC(int) PyDict_MergeFromSeq2(PyObject *d, + 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); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030D0000 +// Return the object from dictionary *op* which has a key *key*. +// - If the key is present, set *result to a new strong reference to the value +// and return 1. +// - If the key is missing, set *result to NULL and return 0 . +// - On error, raise an exception and return -1. +PyAPI_FUNC(int) PyDict_GetItemRef(PyObject *mp, PyObject *key, PyObject **result); +PyAPI_FUNC(int) PyDict_GetItemStringRef(PyObject *mp, const char *key, PyObject **result); +#endif + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030A0000 +PyAPI_FUNC(PyObject *) PyObject_GenericGetDict(PyObject *, void *); +#endif + +/* 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 +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_DICTOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/dynamic_annotations.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/dynamic_annotations.h new file mode 100644 index 000000000..4d4def9bf --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/dynamic_annotations.h @@ -0,0 +1,499 @@ +/* Copyright (c) 2008-2009, Google Inc. + * All rights reserved. + * + * 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. + * * Neither the name of Google Inc. 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. + * + * --- + * Author: Kostya Serebryany + * Copied to CPython by Jeffrey Yasskin, with all macros renamed to + * start with _Py_ to avoid colliding with users embedding Python, and + * with deprecated macros removed. + */ + +/* This file defines dynamic annotations for use with dynamic analysis + tool such as valgrind, PIN, etc. + + Dynamic annotation is a source code annotation that affects + the generated code (that is, the annotation is not a comment). + Each such annotation is attached to a particular + instruction and/or to a particular object (address) in the program. + + The annotations that should be used by users are macros in all upper-case + (e.g., _Py_ANNOTATE_NEW_MEMORY). + + Actual implementation of these macros may differ depending on the + dynamic analysis tool being used. + + See https://code.google.com/p/data-race-test/ for more information. + + This file supports the following dynamic analysis tools: + - None (DYNAMIC_ANNOTATIONS_ENABLED is not defined or zero). + Macros are defined empty. + - ThreadSanitizer, Helgrind, DRD (DYNAMIC_ANNOTATIONS_ENABLED is 1). + Macros are defined as calls to non-inlinable empty functions + that are intercepted by Valgrind. */ + +#ifndef __DYNAMIC_ANNOTATIONS_H__ +#define __DYNAMIC_ANNOTATIONS_H__ + +#ifndef DYNAMIC_ANNOTATIONS_ENABLED +# define DYNAMIC_ANNOTATIONS_ENABLED 0 +#endif + +#if DYNAMIC_ANNOTATIONS_ENABLED != 0 + + /* ------------------------------------------------------------- + Annotations useful when implementing condition variables such as CondVar, + using conditional critical sections (Await/LockWhen) and when constructing + user-defined synchronization mechanisms. + + The annotations _Py_ANNOTATE_HAPPENS_BEFORE() and + _Py_ANNOTATE_HAPPENS_AFTER() can be used to define happens-before arcs in + user-defined synchronization mechanisms: the race detector will infer an + arc from the former to the latter when they share the same argument + pointer. + + Example 1 (reference counting): + + void Unref() { + _Py_ANNOTATE_HAPPENS_BEFORE(&refcount_); + if (AtomicDecrementByOne(&refcount_) == 0) { + _Py_ANNOTATE_HAPPENS_AFTER(&refcount_); + delete this; + } + } + + Example 2 (message queue): + + void MyQueue::Put(Type *e) { + MutexLock lock(&mu_); + _Py_ANNOTATE_HAPPENS_BEFORE(e); + PutElementIntoMyQueue(e); + } + + Type *MyQueue::Get() { + MutexLock lock(&mu_); + Type *e = GetElementFromMyQueue(); + _Py_ANNOTATE_HAPPENS_AFTER(e); + return e; + } + + Note: when possible, please use the existing reference counting and message + queue implementations instead of inventing new ones. */ + + /* Report that wait on the condition variable at address "cv" has succeeded + and the lock at address "lock" is held. */ +#define _Py_ANNOTATE_CONDVAR_LOCK_WAIT(cv, lock) \ + AnnotateCondVarWait(__FILE__, __LINE__, cv, lock) + + /* Report that wait on the condition variable at "cv" has succeeded. Variant + w/o lock. */ +#define _Py_ANNOTATE_CONDVAR_WAIT(cv) \ + AnnotateCondVarWait(__FILE__, __LINE__, cv, NULL) + + /* Report that we are about to signal on the condition variable at address + "cv". */ +#define _Py_ANNOTATE_CONDVAR_SIGNAL(cv) \ + AnnotateCondVarSignal(__FILE__, __LINE__, cv) + + /* Report that we are about to signal_all on the condition variable at "cv". */ +#define _Py_ANNOTATE_CONDVAR_SIGNAL_ALL(cv) \ + AnnotateCondVarSignalAll(__FILE__, __LINE__, cv) + + /* Annotations for user-defined synchronization mechanisms. */ +#define _Py_ANNOTATE_HAPPENS_BEFORE(obj) _Py_ANNOTATE_CONDVAR_SIGNAL(obj) +#define _Py_ANNOTATE_HAPPENS_AFTER(obj) _Py_ANNOTATE_CONDVAR_WAIT(obj) + + /* Report that the bytes in the range [pointer, pointer+size) are about + to be published safely. The race checker will create a happens-before + arc from the call _Py_ANNOTATE_PUBLISH_MEMORY_RANGE(pointer, size) to + subsequent accesses to this memory. + Note: this annotation may not work properly if the race detector uses + sampling, i.e. does not observe all memory accesses. + */ +#define _Py_ANNOTATE_PUBLISH_MEMORY_RANGE(pointer, size) \ + AnnotatePublishMemoryRange(__FILE__, __LINE__, pointer, size) + + /* Instruct the tool to create a happens-before arc between mu->Unlock() and + mu->Lock(). This annotation may slow down the race detector and hide real + races. Normally it is used only when it would be difficult to annotate each + of the mutex's critical sections individually using the annotations above. + This annotation makes sense only for hybrid race detectors. For pure + happens-before detectors this is a no-op. For more details see + https://code.google.com/p/data-race-test/wiki/PureHappensBeforeVsHybrid . */ +#define _Py_ANNOTATE_PURE_HAPPENS_BEFORE_MUTEX(mu) \ + AnnotateMutexIsUsedAsCondVar(__FILE__, __LINE__, mu) + + /* ------------------------------------------------------------- + Annotations useful when defining memory allocators, or when memory that + was protected in one way starts to be protected in another. */ + + /* Report that a new memory at "address" of size "size" has been allocated. + This might be used when the memory has been retrieved from a free list and + is about to be reused, or when the locking discipline for a variable + changes. */ +#define _Py_ANNOTATE_NEW_MEMORY(address, size) \ + AnnotateNewMemory(__FILE__, __LINE__, address, size) + + /* ------------------------------------------------------------- + Annotations useful when defining FIFO queues that transfer data between + threads. */ + + /* Report that the producer-consumer queue (such as ProducerConsumerQueue) at + address "pcq" has been created. The _Py_ANNOTATE_PCQ_* annotations should + be used only for FIFO queues. For non-FIFO queues use + _Py_ANNOTATE_HAPPENS_BEFORE (for put) and _Py_ANNOTATE_HAPPENS_AFTER (for + get). */ +#define _Py_ANNOTATE_PCQ_CREATE(pcq) \ + AnnotatePCQCreate(__FILE__, __LINE__, pcq) + + /* Report that the queue at address "pcq" is about to be destroyed. */ +#define _Py_ANNOTATE_PCQ_DESTROY(pcq) \ + AnnotatePCQDestroy(__FILE__, __LINE__, pcq) + + /* Report that we are about to put an element into a FIFO queue at address + "pcq". */ +#define _Py_ANNOTATE_PCQ_PUT(pcq) \ + AnnotatePCQPut(__FILE__, __LINE__, pcq) + + /* Report that we've just got an element from a FIFO queue at address "pcq". */ +#define _Py_ANNOTATE_PCQ_GET(pcq) \ + AnnotatePCQGet(__FILE__, __LINE__, pcq) + + /* ------------------------------------------------------------- + Annotations that suppress errors. It is usually better to express the + program's synchronization using the other annotations, but these can + be used when all else fails. */ + + /* Report that we may have a benign race at "pointer", with size + "sizeof(*(pointer))". "pointer" must be a non-void* pointer. Insert at the + point where "pointer" has been allocated, preferably close to the point + where the race happens. See also _Py_ANNOTATE_BENIGN_RACE_STATIC. */ +#define _Py_ANNOTATE_BENIGN_RACE(pointer, description) \ + AnnotateBenignRaceSized(__FILE__, __LINE__, pointer, \ + sizeof(*(pointer)), description) + + /* Same as _Py_ANNOTATE_BENIGN_RACE(address, description), but applies to + the memory range [address, address+size). */ +#define _Py_ANNOTATE_BENIGN_RACE_SIZED(address, size, description) \ + AnnotateBenignRaceSized(__FILE__, __LINE__, address, size, description) + + /* Request the analysis tool to ignore all reads in the current thread + until _Py_ANNOTATE_IGNORE_READS_END is called. + Useful to ignore intentional racey reads, while still checking + other reads and all writes. + See also _Py_ANNOTATE_UNPROTECTED_READ. */ +#define _Py_ANNOTATE_IGNORE_READS_BEGIN() \ + AnnotateIgnoreReadsBegin(__FILE__, __LINE__) + + /* Stop ignoring reads. */ +#define _Py_ANNOTATE_IGNORE_READS_END() \ + AnnotateIgnoreReadsEnd(__FILE__, __LINE__) + + /* Similar to _Py_ANNOTATE_IGNORE_READS_BEGIN, but ignore writes. */ +#define _Py_ANNOTATE_IGNORE_WRITES_BEGIN() \ + AnnotateIgnoreWritesBegin(__FILE__, __LINE__) + + /* Stop ignoring writes. */ +#define _Py_ANNOTATE_IGNORE_WRITES_END() \ + AnnotateIgnoreWritesEnd(__FILE__, __LINE__) + + /* Start ignoring all memory accesses (reads and writes). */ +#define _Py_ANNOTATE_IGNORE_READS_AND_WRITES_BEGIN() \ + do {\ + _Py_ANNOTATE_IGNORE_READS_BEGIN();\ + _Py_ANNOTATE_IGNORE_WRITES_BEGIN();\ + }while(0)\ + + /* Stop ignoring all memory accesses. */ +#define _Py_ANNOTATE_IGNORE_READS_AND_WRITES_END() \ + do {\ + _Py_ANNOTATE_IGNORE_WRITES_END();\ + _Py_ANNOTATE_IGNORE_READS_END();\ + }while(0)\ + + /* Similar to _Py_ANNOTATE_IGNORE_READS_BEGIN, but ignore synchronization events: + RWLOCK* and CONDVAR*. */ +#define _Py_ANNOTATE_IGNORE_SYNC_BEGIN() \ + AnnotateIgnoreSyncBegin(__FILE__, __LINE__) + + /* Stop ignoring sync events. */ +#define _Py_ANNOTATE_IGNORE_SYNC_END() \ + AnnotateIgnoreSyncEnd(__FILE__, __LINE__) + + + /* Enable (enable!=0) or disable (enable==0) race detection for all threads. + This annotation could be useful if you want to skip expensive race analysis + during some period of program execution, e.g. during initialization. */ +#define _Py_ANNOTATE_ENABLE_RACE_DETECTION(enable) \ + AnnotateEnableRaceDetection(__FILE__, __LINE__, enable) + + /* ------------------------------------------------------------- + Annotations useful for debugging. */ + + /* Request to trace every access to "address". */ +#define _Py_ANNOTATE_TRACE_MEMORY(address) \ + AnnotateTraceMemory(__FILE__, __LINE__, address) + + /* Report the current thread name to a race detector. */ +#define _Py_ANNOTATE_THREAD_NAME(name) \ + AnnotateThreadName(__FILE__, __LINE__, name) + + /* ------------------------------------------------------------- + Annotations useful when implementing locks. They are not + normally needed by modules that merely use locks. + The "lock" argument is a pointer to the lock object. */ + + /* Report that a lock has been created at address "lock". */ +#define _Py_ANNOTATE_RWLOCK_CREATE(lock) \ + AnnotateRWLockCreate(__FILE__, __LINE__, lock) + + /* Report that the lock at address "lock" is about to be destroyed. */ +#define _Py_ANNOTATE_RWLOCK_DESTROY(lock) \ + AnnotateRWLockDestroy(__FILE__, __LINE__, lock) + + /* Report that the lock at address "lock" has been acquired. + is_w=1 for writer lock, is_w=0 for reader lock. */ +#define _Py_ANNOTATE_RWLOCK_ACQUIRED(lock, is_w) \ + AnnotateRWLockAcquired(__FILE__, __LINE__, lock, is_w) + + /* Report that the lock at address "lock" is about to be released. */ +#define _Py_ANNOTATE_RWLOCK_RELEASED(lock, is_w) \ + AnnotateRWLockReleased(__FILE__, __LINE__, lock, is_w) + + /* ------------------------------------------------------------- + Annotations useful when implementing barriers. They are not + normally needed by modules that merely use barriers. + The "barrier" argument is a pointer to the barrier object. */ + + /* Report that the "barrier" has been initialized with initial "count". + If 'reinitialization_allowed' is true, initialization is allowed to happen + multiple times w/o calling barrier_destroy() */ +#define _Py_ANNOTATE_BARRIER_INIT(barrier, count, reinitialization_allowed) \ + AnnotateBarrierInit(__FILE__, __LINE__, barrier, count, \ + reinitialization_allowed) + + /* Report that we are about to enter barrier_wait("barrier"). */ +#define _Py_ANNOTATE_BARRIER_WAIT_BEFORE(barrier) \ + AnnotateBarrierWaitBefore(__FILE__, __LINE__, barrier) + + /* Report that we just exited barrier_wait("barrier"). */ +#define _Py_ANNOTATE_BARRIER_WAIT_AFTER(barrier) \ + AnnotateBarrierWaitAfter(__FILE__, __LINE__, barrier) + + /* Report that the "barrier" has been destroyed. */ +#define _Py_ANNOTATE_BARRIER_DESTROY(barrier) \ + AnnotateBarrierDestroy(__FILE__, __LINE__, barrier) + + /* ------------------------------------------------------------- + Annotations useful for testing race detectors. */ + + /* Report that we expect a race on the variable at "address". + Use only in unit tests for a race detector. */ +#define _Py_ANNOTATE_EXPECT_RACE(address, description) \ + AnnotateExpectRace(__FILE__, __LINE__, address, description) + + /* A no-op. Insert where you like to test the interceptors. */ +#define _Py_ANNOTATE_NO_OP(arg) \ + AnnotateNoOp(__FILE__, __LINE__, arg) + + /* Force the race detector to flush its state. The actual effect depends on + * the implementation of the detector. */ +#define _Py_ANNOTATE_FLUSH_STATE() \ + AnnotateFlushState(__FILE__, __LINE__) + + +#else /* DYNAMIC_ANNOTATIONS_ENABLED == 0 */ + +#define _Py_ANNOTATE_RWLOCK_CREATE(lock) /* empty */ +#define _Py_ANNOTATE_RWLOCK_DESTROY(lock) /* empty */ +#define _Py_ANNOTATE_RWLOCK_ACQUIRED(lock, is_w) /* empty */ +#define _Py_ANNOTATE_RWLOCK_RELEASED(lock, is_w) /* empty */ +#define _Py_ANNOTATE_BARRIER_INIT(barrier, count, reinitialization_allowed) /* */ +#define _Py_ANNOTATE_BARRIER_WAIT_BEFORE(barrier) /* empty */ +#define _Py_ANNOTATE_BARRIER_WAIT_AFTER(barrier) /* empty */ +#define _Py_ANNOTATE_BARRIER_DESTROY(barrier) /* empty */ +#define _Py_ANNOTATE_CONDVAR_LOCK_WAIT(cv, lock) /* empty */ +#define _Py_ANNOTATE_CONDVAR_WAIT(cv) /* empty */ +#define _Py_ANNOTATE_CONDVAR_SIGNAL(cv) /* empty */ +#define _Py_ANNOTATE_CONDVAR_SIGNAL_ALL(cv) /* empty */ +#define _Py_ANNOTATE_HAPPENS_BEFORE(obj) /* empty */ +#define _Py_ANNOTATE_HAPPENS_AFTER(obj) /* empty */ +#define _Py_ANNOTATE_PUBLISH_MEMORY_RANGE(address, size) /* empty */ +#define _Py_ANNOTATE_UNPUBLISH_MEMORY_RANGE(address, size) /* empty */ +#define _Py_ANNOTATE_SWAP_MEMORY_RANGE(address, size) /* empty */ +#define _Py_ANNOTATE_PCQ_CREATE(pcq) /* empty */ +#define _Py_ANNOTATE_PCQ_DESTROY(pcq) /* empty */ +#define _Py_ANNOTATE_PCQ_PUT(pcq) /* empty */ +#define _Py_ANNOTATE_PCQ_GET(pcq) /* empty */ +#define _Py_ANNOTATE_NEW_MEMORY(address, size) /* empty */ +#define _Py_ANNOTATE_EXPECT_RACE(address, description) /* empty */ +#define _Py_ANNOTATE_BENIGN_RACE(address, description) /* empty */ +#define _Py_ANNOTATE_BENIGN_RACE_SIZED(address, size, description) /* empty */ +#define _Py_ANNOTATE_PURE_HAPPENS_BEFORE_MUTEX(mu) /* empty */ +#define _Py_ANNOTATE_MUTEX_IS_USED_AS_CONDVAR(mu) /* empty */ +#define _Py_ANNOTATE_TRACE_MEMORY(arg) /* empty */ +#define _Py_ANNOTATE_THREAD_NAME(name) /* empty */ +#define _Py_ANNOTATE_IGNORE_READS_BEGIN() /* empty */ +#define _Py_ANNOTATE_IGNORE_READS_END() /* empty */ +#define _Py_ANNOTATE_IGNORE_WRITES_BEGIN() /* empty */ +#define _Py_ANNOTATE_IGNORE_WRITES_END() /* empty */ +#define _Py_ANNOTATE_IGNORE_READS_AND_WRITES_BEGIN() /* empty */ +#define _Py_ANNOTATE_IGNORE_READS_AND_WRITES_END() /* empty */ +#define _Py_ANNOTATE_IGNORE_SYNC_BEGIN() /* empty */ +#define _Py_ANNOTATE_IGNORE_SYNC_END() /* empty */ +#define _Py_ANNOTATE_ENABLE_RACE_DETECTION(enable) /* empty */ +#define _Py_ANNOTATE_NO_OP(arg) /* empty */ +#define _Py_ANNOTATE_FLUSH_STATE() /* empty */ + +#endif /* DYNAMIC_ANNOTATIONS_ENABLED */ + +/* Use the macros above rather than using these functions directly. */ +#ifdef __cplusplus +extern "C" { +#endif +void AnnotateRWLockCreate(const char *file, int line, + const volatile void *lock); +void AnnotateRWLockDestroy(const char *file, int line, + const volatile void *lock); +void AnnotateRWLockAcquired(const char *file, int line, + const volatile void *lock, long is_w); +void AnnotateRWLockReleased(const char *file, int line, + const volatile void *lock, long is_w); +void AnnotateBarrierInit(const char *file, int line, + const volatile void *barrier, long count, + long reinitialization_allowed); +void AnnotateBarrierWaitBefore(const char *file, int line, + const volatile void *barrier); +void AnnotateBarrierWaitAfter(const char *file, int line, + const volatile void *barrier); +void AnnotateBarrierDestroy(const char *file, int line, + const volatile void *barrier); +void AnnotateCondVarWait(const char *file, int line, + const volatile void *cv, + const volatile void *lock); +void AnnotateCondVarSignal(const char *file, int line, + const volatile void *cv); +void AnnotateCondVarSignalAll(const char *file, int line, + const volatile void *cv); +void AnnotatePublishMemoryRange(const char *file, int line, + const volatile void *address, + long size); +void AnnotateUnpublishMemoryRange(const char *file, int line, + const volatile void *address, + long size); +void AnnotatePCQCreate(const char *file, int line, + const volatile void *pcq); +void AnnotatePCQDestroy(const char *file, int line, + const volatile void *pcq); +void AnnotatePCQPut(const char *file, int line, + const volatile void *pcq); +void AnnotatePCQGet(const char *file, int line, + const volatile void *pcq); +void AnnotateNewMemory(const char *file, int line, + const volatile void *address, + long size); +void AnnotateExpectRace(const char *file, int line, + const volatile void *address, + const char *description); +void AnnotateBenignRace(const char *file, int line, + const volatile void *address, + const char *description); +void AnnotateBenignRaceSized(const char *file, int line, + const volatile void *address, + long size, + const char *description); +void AnnotateMutexIsUsedAsCondVar(const char *file, int line, + const volatile void *mu); +void AnnotateTraceMemory(const char *file, int line, + const volatile void *arg); +void AnnotateThreadName(const char *file, int line, + const char *name); +void AnnotateIgnoreReadsBegin(const char *file, int line); +void AnnotateIgnoreReadsEnd(const char *file, int line); +void AnnotateIgnoreWritesBegin(const char *file, int line); +void AnnotateIgnoreWritesEnd(const char *file, int line); +void AnnotateEnableRaceDetection(const char *file, int line, int enable); +void AnnotateNoOp(const char *file, int line, + const volatile void *arg); +void AnnotateFlushState(const char *file, int line); + +/* Return non-zero value if running under valgrind. + + If "valgrind.h" is included into dynamic_annotations.c, + the regular valgrind mechanism will be used. + See http://valgrind.org/docs/manual/manual-core-adv.html about + RUNNING_ON_VALGRIND and other valgrind "client requests". + The file "valgrind.h" may be obtained by doing + svn co svn://svn.valgrind.org/valgrind/trunk/include + + If for some reason you can't use "valgrind.h" or want to fake valgrind, + there are two ways to make this function return non-zero: + - Use environment variable: export RUNNING_ON_VALGRIND=1 + - Make your tool intercept the function RunningOnValgrind() and + change its return value. + */ +int RunningOnValgrind(void); + +#ifdef __cplusplus +} +#endif + +#if DYNAMIC_ANNOTATIONS_ENABLED != 0 && defined(__cplusplus) + + /* _Py_ANNOTATE_UNPROTECTED_READ is the preferred way to annotate racey reads. + + Instead of doing + _Py_ANNOTATE_IGNORE_READS_BEGIN(); + ... = x; + _Py_ANNOTATE_IGNORE_READS_END(); + one can use + ... = _Py_ANNOTATE_UNPROTECTED_READ(x); */ + template + inline T _Py_ANNOTATE_UNPROTECTED_READ(const volatile T &x) { + _Py_ANNOTATE_IGNORE_READS_BEGIN(); + T res = x; + _Py_ANNOTATE_IGNORE_READS_END(); + return res; + } + /* Apply _Py_ANNOTATE_BENIGN_RACE_SIZED to a static variable. */ +#define _Py_ANNOTATE_BENIGN_RACE_STATIC(static_var, description) \ + namespace { \ + class static_var ## _annotator { \ + public: \ + static_var ## _annotator() { \ + _Py_ANNOTATE_BENIGN_RACE_SIZED(&static_var, \ + sizeof(static_var), \ + # static_var ": " description); \ + } \ + }; \ + static static_var ## _annotator the ## static_var ## _annotator;\ + } +#else /* DYNAMIC_ANNOTATIONS_ENABLED == 0 */ + +#define _Py_ANNOTATE_UNPROTECTED_READ(x) (x) +#define _Py_ANNOTATE_BENIGN_RACE_STATIC(static_var, description) /* empty */ + +#endif /* DYNAMIC_ANNOTATIONS_ENABLED */ + +#endif /* __DYNAMIC_ANNOTATIONS_H__ */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/enumobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/enumobject.h new file mode 100644 index 000000000..c14dbfc8c --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/enumobject.h @@ -0,0 +1,17 @@ +#ifndef Py_ENUMOBJECT_H +#define Py_ENUMOBJECT_H + +/* Enumerate Object */ + +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_DATA(PyTypeObject) PyEnum_Type; +PyAPI_DATA(PyTypeObject) PyReversed_Type; + +#ifdef __cplusplus +} +#endif + +#endif /* !Py_ENUMOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/errcode.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/errcode.h new file mode 100644 index 000000000..dac5cf068 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/errcode.h @@ -0,0 +1,45 @@ +// Error codes passed around between file input, tokenizer, parser and +// interpreter. This is necessary so we can turn them into Python +// exceptions at a higher level. Note that some errors have a +// slightly different meaning when passed from the tokenizer to the +// parser than when passed from the parser to the interpreter; e.g. +// the parser only returns E_EOF when it hits EOF immediately, and it +// never returns E_OK. +// +// The public PyRun_InteractiveOneObjectEx() function can return E_EOF, +// same as its variants: +// +// * PyRun_InteractiveOneObject() +// * PyRun_InteractiveOneFlags() +// * PyRun_InteractiveOne() + +#ifndef Py_ERRCODE_H +#define Py_ERRCODE_H +#ifdef __cplusplus +extern "C" { +#endif + +#define E_OK 10 /* No error */ +#define E_EOF 11 /* End Of File */ +#define E_INTR 12 /* Interrupted */ +#define E_TOKEN 13 /* Bad token */ +#define E_SYNTAX 14 /* Syntax error */ +#define E_NOMEM 15 /* Ran out of memory */ +#define E_DONE 16 /* Parsing complete */ +#define E_ERROR 17 /* Execution error */ +#define E_TABSPACE 18 /* Inconsistent mixing of tabs and spaces */ +#define E_OVERFLOW 19 /* Node had too many children */ +#define E_TOODEEP 20 /* Too many indentation levels */ +#define E_DEDENT 21 /* No matching outer block for dedent */ +#define E_DECODE 22 /* Error in decoding into Unicode */ +#define E_EOFS 23 /* EOF in triple-quoted string */ +#define E_EOLS 24 /* EOL in single-quoted string */ +#define E_LINECONT 25 /* Unexpected characters after a line continuation */ +#define E_BADSINGLE 27 /* Ill-formed single statement input */ +#define E_INTERACT_STOP 28 /* Interactive mode stopped tokenization */ +#define E_COLUMNOVERFLOW 29 /* Column offset overflow */ + +#ifdef __cplusplus +} +#endif +#endif /* !Py_ERRCODE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/exports.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/exports.h new file mode 100644 index 000000000..ce601216f --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/exports.h @@ -0,0 +1,108 @@ +#ifndef Py_EXPORTS_H +#define Py_EXPORTS_H + +/* Declarations for symbol visibility. + + PyAPI_FUNC(type): Declares a public Python API function and return type + PyAPI_DATA(type): Declares public Python data and its type + PyMODINIT_FUNC: A Python module init function. If these functions are + inside the Python core, they are private to the core. + If in an extension module, it may be declared with + external linkage depending on the platform. + + As a number of platforms support/require "__declspec(dllimport/dllexport)", + we support a HAVE_DECLSPEC_DLL macro to save duplication. +*/ + +/* + All windows ports, except cygwin, are handled in PC/pyconfig.h. + + Cygwin is the only other autoconf platform requiring special + linkage handling and it uses __declspec(). +*/ +#if defined(__CYGWIN__) +# define HAVE_DECLSPEC_DLL +#endif + +#if defined(_WIN32) || defined(__CYGWIN__) + #if defined(Py_ENABLE_SHARED) + #define Py_IMPORTED_SYMBOL __declspec(dllimport) + #define Py_EXPORTED_SYMBOL __declspec(dllexport) + #define Py_LOCAL_SYMBOL + #else + #define Py_IMPORTED_SYMBOL + #define Py_EXPORTED_SYMBOL + #define Py_LOCAL_SYMBOL + #endif +#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 + +/* 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 + /* 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* +# else /* __CYGWIN__ */ +# define PyMODINIT_FUNC PyObject* +# endif /* __CYGWIN__ */ +# else /* Py_BUILD_CORE */ + /* Building an extension module, or an embedded situation */ + /* public Python functions and data are imported */ + /* Under Cygwin, auto-import functions to prevent compilation */ + /* 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 +# endif /* !__CYGWIN__ */ +# 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* +# else /* __cplusplus */ +# define PyMODINIT_FUNC Py_EXPORTED_SYMBOL PyObject* +# endif /* __cplusplus */ +# endif /* Py_BUILD_CORE */ +# endif /* HAVE_DECLSPEC_DLL */ +#endif /* Py_ENABLE_SHARED */ + +/* If no external linkage macros defined by now, create defaults */ +#ifndef PyAPI_FUNC +# define PyAPI_FUNC(RTYPE) Py_EXPORTED_SYMBOL RTYPE +#endif +#ifndef PyAPI_DATA +# 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* +# else /* __cplusplus */ +# define PyMODINIT_FUNC Py_EXPORTED_SYMBOL PyObject* +# endif /* __cplusplus */ +#endif + + +#endif /* Py_EXPORTS_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/fileobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/fileobject.h new file mode 100644 index 000000000..6a6d11409 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/fileobject.h @@ -0,0 +1,41 @@ +/* File object interface (what's left of it -- see io.py) */ + +#ifndef Py_FILEOBJECT_H +#define Py_FILEOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#define PY_STDIOTEXTMODE "b" + +PyAPI_FUNC(PyObject *) PyFile_FromFd(int, const char *, const char *, int, + const char *, const char *, + const char *, int); +PyAPI_FUNC(PyObject *) PyFile_GetLine(PyObject *, int); +PyAPI_FUNC(int) PyFile_WriteObject(PyObject *, PyObject *, int); +PyAPI_FUNC(int) PyFile_WriteString(const char *, PyObject *); +PyAPI_FUNC(int) PyObject_AsFileDescriptor(PyObject *); + +/* The default encoding used by the platform file system APIs + If non-NULL, this is different than the default encoding for strings +*/ +Py_DEPRECATED(3.12) PyAPI_DATA(const char *) Py_FileSystemDefaultEncoding; +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03060000 +Py_DEPRECATED(3.12) PyAPI_DATA(const char *) Py_FileSystemDefaultEncodeErrors; +#endif +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_HasFileSystemDefaultEncoding; + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03070000 +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_UTF8Mode; +#endif + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_FILEOBJECT_H +# include "cpython/fileobject.h" +# undef Py_CPYTHON_FILEOBJECT_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_FILEOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/fileutils.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/fileutils.h new file mode 100644 index 000000000..1509198e4 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/fileutils.h @@ -0,0 +1,62 @@ +#ifndef Py_FILEUTILS_H +#define Py_FILEUTILS_H + +/******************************* + * stat() and fstat() fiddling * + *******************************/ + +#ifdef HAVE_SYS_STAT_H +# include // S_ISREG() +#elif defined(HAVE_STAT_H) +# include // S_ISREG() +#endif + +#ifndef S_IFMT + // VisualAge C/C++ Failed to Define MountType Field in sys/stat.h. +# define S_IFMT 0170000 +#endif +#ifndef S_IFLNK + // Windows doesn't define S_IFLNK, but posixmodule.c maps + // IO_REPARSE_TAG_SYMLINK to S_IFLNK. +# define S_IFLNK 0120000 +#endif +#ifndef S_ISREG +# define S_ISREG(x) (((x) & S_IFMT) == S_IFREG) +#endif +#ifndef S_ISDIR +# define S_ISDIR(x) (((x) & S_IFMT) == S_IFDIR) +#endif +#ifndef S_ISCHR +# define S_ISCHR(x) (((x) & S_IFMT) == S_IFCHR) +#endif +#ifndef S_ISLNK +# define S_ISLNK(x) (((x) & S_IFMT) == S_IFLNK) +#endif + + +// Move this down here since some C++ #include's don't like to be included +// inside an extern "C". +#ifdef __cplusplus +extern "C" { +#endif + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 +PyAPI_FUNC(wchar_t *) Py_DecodeLocale( + const char *arg, + size_t *size); + +PyAPI_FUNC(char*) Py_EncodeLocale( + const wchar_t *text, + size_t *error_pos); +#endif + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_FILEUTILS_H +# include "cpython/fileutils.h" +# undef Py_CPYTHON_FILEUTILS_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_FILEUTILS_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/floatobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/floatobject.h new file mode 100644 index 000000000..8963c1683 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/floatobject.h @@ -0,0 +1,54 @@ + +/* Float object interface */ + +/* +PyFloatObject represents a (double precision) floating-point number. +*/ + +#ifndef Py_FLOATOBJECT_H +#define Py_FLOATOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +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 Py_RETURN_NAN return PyFloat_FromDouble(Py_NAN) + +#define Py_RETURN_INF(sign) \ + do { \ + if (copysign(1., sign) == 1.) { \ + return PyFloat_FromDouble(Py_HUGE_VAL); \ + } \ + else { \ + return PyFloat_FromDouble(-Py_HUGE_VAL); \ + } \ + } while(0) + +PyAPI_FUNC(double) PyFloat_GetMax(void); +PyAPI_FUNC(double) PyFloat_GetMin(void); +PyAPI_FUNC(PyObject*) PyFloat_GetInfo(void); + +/* Return Python float from string PyObject. */ +PyAPI_FUNC(PyObject*) PyFloat_FromString(PyObject*); + +/* Return Python float from C double. */ +PyAPI_FUNC(PyObject*) PyFloat_FromDouble(double); + +/* Extract C double from Python float. The macro version trades safety for + speed. */ +PyAPI_FUNC(double) PyFloat_AsDouble(PyObject*); + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_FLOATOBJECT_H +# include "cpython/floatobject.h" +# undef Py_CPYTHON_FLOATOBJECT_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_FLOATOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/frameobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/frameobject.h new file mode 100644 index 000000000..adb628f63 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/frameobject.h @@ -0,0 +1,20 @@ +/* Frame object interface */ + +#ifndef Py_FRAMEOBJECT_H +#define Py_FRAMEOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#include "pyframe.h" + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_FRAMEOBJECT_H +# include "cpython/frameobject.h" +# undef Py_CPYTHON_FRAMEOBJECT_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_FRAMEOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/genericaliasobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/genericaliasobject.h new file mode 100644 index 000000000..cf002976b --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/genericaliasobject.h @@ -0,0 +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 */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/import.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/import.h new file mode 100644 index 000000000..24b23b911 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/import.h @@ -0,0 +1,103 @@ +/* Module definition and import interface */ + +#ifndef Py_IMPORT_H +#define Py_IMPORT_H +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_FUNC(long) PyImport_GetMagicNumber(void); +PyAPI_FUNC(const char *) PyImport_GetMagicTag(void); +PyAPI_FUNC(PyObject *) PyImport_ExecCodeModule( + const char *name, /* UTF-8 encoded string */ + PyObject *co + ); +PyAPI_FUNC(PyObject *) PyImport_ExecCodeModuleEx( + const char *name, /* UTF-8 encoded string */ + PyObject *co, + const char *pathname /* decoded from the filesystem encoding */ + ); +PyAPI_FUNC(PyObject *) PyImport_ExecCodeModuleWithPathnames( + const char *name, /* UTF-8 encoded string */ + PyObject *co, + const char *pathname, /* decoded from the filesystem encoding */ + const char *cpathname /* decoded from the filesystem encoding */ + ); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +PyAPI_FUNC(PyObject *) PyImport_ExecCodeModuleObject( + PyObject *name, + PyObject *co, + PyObject *pathname, + PyObject *cpathname + ); +#endif +PyAPI_FUNC(PyObject *) PyImport_GetModuleDict(void); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03070000 +PyAPI_FUNC(PyObject *) PyImport_GetModule(PyObject *name); +#endif +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +PyAPI_FUNC(PyObject *) PyImport_AddModuleObject( + PyObject *name + ); +#endif +PyAPI_FUNC(PyObject *) PyImport_AddModule( + const char *name /* UTF-8 encoded string */ + ); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030d0000 +PyAPI_FUNC(PyObject *) PyImport_AddModuleRef( + const char *name /* UTF-8 encoded string */ + ); +#endif +PyAPI_FUNC(PyObject *) PyImport_ImportModule( + const char *name /* UTF-8 encoded string */ + ); +Py_DEPRECATED(3.13) PyAPI_FUNC(PyObject *) PyImport_ImportModuleNoBlock( + const char *name /* UTF-8 encoded string */ + ); +PyAPI_FUNC(PyObject *) PyImport_ImportModuleLevel( + const char *name, /* UTF-8 encoded string */ + PyObject *globals, + PyObject *locals, + PyObject *fromlist, + int level + ); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 +PyAPI_FUNC(PyObject *) PyImport_ImportModuleLevelObject( + PyObject *name, + PyObject *globals, + PyObject *locals, + PyObject *fromlist, + int level + ); +#endif + +#define PyImport_ImportModuleEx(n, g, l, f) \ + PyImport_ImportModuleLevel((n), (g), (l), (f), 0) + +PyAPI_FUNC(PyObject *) PyImport_GetImporter(PyObject *path); +PyAPI_FUNC(PyObject *) PyImport_Import(PyObject *name); +PyAPI_FUNC(PyObject *) PyImport_ReloadModule(PyObject *m); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +PyAPI_FUNC(int) PyImport_ImportFrozenModuleObject( + PyObject *name + ); +#endif +PyAPI_FUNC(int) PyImport_ImportFrozenModule( + const char *name /* UTF-8 encoded string */ + ); + +PyAPI_FUNC(int) PyImport_AppendInittab( + const char *name, /* ASCII encoded string */ + PyObject* (*initfunc)(void) + ); + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_IMPORT_H +# include "cpython/import.h" +# undef Py_CPYTHON_IMPORT_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_IMPORT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/mimalloc/mimalloc.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/mimalloc/mimalloc.h new file mode 100644 index 000000000..821129e76 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/mimalloc/mimalloc.h @@ -0,0 +1,565 @@ +/* ---------------------------------------------------------------------------- +Copyright (c) 2018-2023, Microsoft Research, Daan Leijen +This is free software; you can redistribute it and/or modify it under the +terms of the MIT license. A copy of the license can be found in the file +"LICENSE" at the root of this distribution. +-----------------------------------------------------------------------------*/ +#pragma once +#ifndef MIMALLOC_H +#define MIMALLOC_H + +#define MI_MALLOC_VERSION 212 // major + 2 digits minor + +// ------------------------------------------------------ +// Compiler specific attributes +// ------------------------------------------------------ + +#ifdef __cplusplus + #if (__cplusplus >= 201103L) || (_MSC_VER > 1900) // C++11 + #define mi_attr_noexcept noexcept + #else + #define mi_attr_noexcept throw() + #endif +#else + #define mi_attr_noexcept +#endif + +#if defined(__cplusplus) && (__cplusplus >= 201703) + #define mi_decl_nodiscard [[nodiscard]] +#elif (defined(__GNUC__) && (__GNUC__ >= 4)) || defined(__clang__) // includes clang, icc, and clang-cl + #define mi_decl_nodiscard __attribute__((warn_unused_result)) +#elif defined(_HAS_NODISCARD) + #define mi_decl_nodiscard _NODISCARD +#elif (_MSC_VER >= 1700) + #define mi_decl_nodiscard _Check_return_ +#else + #define mi_decl_nodiscard +#endif + +#if defined(_MSC_VER) || defined(__MINGW32__) + #if !defined(MI_SHARED_LIB) + #define mi_decl_export + #elif defined(MI_SHARED_LIB_EXPORT) + #define mi_decl_export __declspec(dllexport) + #else + #define mi_decl_export __declspec(dllimport) + #endif + #if defined(__MINGW32__) + #define mi_decl_restrict + #define mi_attr_malloc __attribute__((malloc)) + #else + #if (_MSC_VER >= 1900) && !defined(__EDG__) + #define mi_decl_restrict __declspec(allocator) __declspec(restrict) + #else + #define mi_decl_restrict __declspec(restrict) + #endif + #define mi_attr_malloc + #endif + #define mi_cdecl __cdecl + #define mi_attr_alloc_size(s) + #define mi_attr_alloc_size2(s1,s2) + #define mi_attr_alloc_align(p) +#elif defined(__GNUC__) // includes clang and icc + #if defined(MI_SHARED_LIB) && defined(MI_SHARED_LIB_EXPORT) + #define mi_decl_export __attribute__((visibility("default"))) + #else + #define mi_decl_export + #endif + #define mi_cdecl // leads to warnings... __attribute__((cdecl)) + #define mi_decl_restrict + #define mi_attr_malloc __attribute__((malloc)) + #if (defined(__clang_major__) && (__clang_major__ < 4)) || (__GNUC__ < 5) + #define mi_attr_alloc_size(s) + #define mi_attr_alloc_size2(s1,s2) + #define mi_attr_alloc_align(p) + #elif defined(__INTEL_COMPILER) + #define mi_attr_alloc_size(s) __attribute__((alloc_size(s))) + #define mi_attr_alloc_size2(s1,s2) __attribute__((alloc_size(s1,s2))) + #define mi_attr_alloc_align(p) + #else + #define mi_attr_alloc_size(s) __attribute__((alloc_size(s))) + #define mi_attr_alloc_size2(s1,s2) __attribute__((alloc_size(s1,s2))) + #define mi_attr_alloc_align(p) __attribute__((alloc_align(p))) + #endif +#else + #define mi_cdecl + #define mi_decl_export + #define mi_decl_restrict + #define mi_attr_malloc + #define mi_attr_alloc_size(s) + #define mi_attr_alloc_size2(s1,s2) + #define mi_attr_alloc_align(p) +#endif + +// ------------------------------------------------------ +// Includes +// ------------------------------------------------------ + +#include // size_t +#include // bool +#include // INTPTR_MAX + +#ifdef __cplusplus +extern "C" { +#endif + +// ------------------------------------------------------ +// Standard malloc interface +// ------------------------------------------------------ + +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_malloc(size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(1); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_calloc(size_t count, size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size2(1,2); +mi_decl_nodiscard mi_decl_export void* mi_realloc(void* p, size_t newsize) mi_attr_noexcept mi_attr_alloc_size(2); +mi_decl_export void* mi_expand(void* p, size_t newsize) mi_attr_noexcept mi_attr_alloc_size(2); + +mi_decl_export void mi_free(void* p) mi_attr_noexcept; +mi_decl_nodiscard mi_decl_export mi_decl_restrict char* mi_strdup(const char* s) mi_attr_noexcept mi_attr_malloc; +mi_decl_nodiscard mi_decl_export mi_decl_restrict char* mi_strndup(const char* s, size_t n) mi_attr_noexcept mi_attr_malloc; +mi_decl_nodiscard mi_decl_export mi_decl_restrict char* mi_realpath(const char* fname, char* resolved_name) mi_attr_noexcept mi_attr_malloc; + +// ------------------------------------------------------ +// Extended functionality +// ------------------------------------------------------ +#define MI_SMALL_WSIZE_MAX (128) +#define MI_SMALL_SIZE_MAX (MI_SMALL_WSIZE_MAX*sizeof(void*)) + +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_malloc_small(size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(1); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_zalloc_small(size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(1); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_zalloc(size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(1); + +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_mallocn(size_t count, size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size2(1,2); +mi_decl_nodiscard mi_decl_export void* mi_reallocn(void* p, size_t count, size_t size) mi_attr_noexcept mi_attr_alloc_size2(2,3); +mi_decl_nodiscard mi_decl_export void* mi_reallocf(void* p, size_t newsize) mi_attr_noexcept mi_attr_alloc_size(2); + +mi_decl_nodiscard mi_decl_export size_t mi_usable_size(const void* p) mi_attr_noexcept; +mi_decl_nodiscard mi_decl_export size_t mi_good_size(size_t size) mi_attr_noexcept; + + +// ------------------------------------------------------ +// Internals +// ------------------------------------------------------ + +typedef void (mi_cdecl mi_deferred_free_fun)(bool force, unsigned long long heartbeat, void* arg); +mi_decl_export void mi_register_deferred_free(mi_deferred_free_fun* deferred_free, void* arg) mi_attr_noexcept; + +typedef void (mi_cdecl mi_output_fun)(const char* msg, void* arg); +mi_decl_export void mi_register_output(mi_output_fun* out, void* arg) mi_attr_noexcept; + +typedef void (mi_cdecl mi_error_fun)(int err, void* arg); +mi_decl_export void mi_register_error(mi_error_fun* fun, void* arg); + +mi_decl_export void mi_collect(bool force) mi_attr_noexcept; +mi_decl_export int mi_version(void) mi_attr_noexcept; +mi_decl_export void mi_stats_reset(void) mi_attr_noexcept; +mi_decl_export void mi_stats_merge(void) mi_attr_noexcept; +mi_decl_export void mi_stats_print(void* out) mi_attr_noexcept; // backward compatibility: `out` is ignored and should be NULL +mi_decl_export void mi_stats_print_out(mi_output_fun* out, void* arg) mi_attr_noexcept; + +mi_decl_export void mi_process_init(void) mi_attr_noexcept; +mi_decl_export void mi_thread_init(void) mi_attr_noexcept; +mi_decl_export void mi_thread_done(void) mi_attr_noexcept; +mi_decl_export void mi_thread_stats_print_out(mi_output_fun* out, void* arg) mi_attr_noexcept; + +mi_decl_export void mi_process_info(size_t* elapsed_msecs, size_t* user_msecs, size_t* system_msecs, + size_t* current_rss, size_t* peak_rss, + size_t* current_commit, size_t* peak_commit, size_t* page_faults) mi_attr_noexcept; + +// ------------------------------------------------------------------------------------- +// Aligned allocation +// Note that `alignment` always follows `size` for consistency with unaligned +// allocation, but unfortunately this differs from `posix_memalign` and `aligned_alloc`. +// ------------------------------------------------------------------------------------- + +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_malloc_aligned(size_t size, size_t alignment) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(1) mi_attr_alloc_align(2); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_malloc_aligned_at(size_t size, size_t alignment, size_t offset) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(1); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_zalloc_aligned(size_t size, size_t alignment) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(1) mi_attr_alloc_align(2); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_zalloc_aligned_at(size_t size, size_t alignment, size_t offset) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(1); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_calloc_aligned(size_t count, size_t size, size_t alignment) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size2(1,2) mi_attr_alloc_align(3); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_calloc_aligned_at(size_t count, size_t size, size_t alignment, size_t offset) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size2(1,2); +mi_decl_nodiscard mi_decl_export void* mi_realloc_aligned(void* p, size_t newsize, size_t alignment) mi_attr_noexcept mi_attr_alloc_size(2) mi_attr_alloc_align(3); +mi_decl_nodiscard mi_decl_export void* mi_realloc_aligned_at(void* p, size_t newsize, size_t alignment, size_t offset) mi_attr_noexcept mi_attr_alloc_size(2); + + +// ------------------------------------------------------------------------------------- +// Heaps: first-class, but can only allocate from the same thread that created it. +// ------------------------------------------------------------------------------------- + +struct mi_heap_s; +typedef struct mi_heap_s mi_heap_t; + +mi_decl_nodiscard mi_decl_export mi_heap_t* mi_heap_new(void); +mi_decl_export void mi_heap_delete(mi_heap_t* heap); +mi_decl_export void mi_heap_destroy(mi_heap_t* heap); +mi_decl_export mi_heap_t* mi_heap_set_default(mi_heap_t* heap); +mi_decl_export mi_heap_t* mi_heap_get_default(void); +mi_decl_export mi_heap_t* mi_heap_get_backing(void); +mi_decl_export void mi_heap_collect(mi_heap_t* heap, bool force) mi_attr_noexcept; + +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_heap_malloc(mi_heap_t* heap, size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(2); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_heap_zalloc(mi_heap_t* heap, size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(2); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_heap_calloc(mi_heap_t* heap, size_t count, size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size2(2, 3); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_heap_mallocn(mi_heap_t* heap, size_t count, size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size2(2, 3); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_heap_malloc_small(mi_heap_t* heap, size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(2); + +mi_decl_nodiscard mi_decl_export void* mi_heap_realloc(mi_heap_t* heap, void* p, size_t newsize) mi_attr_noexcept mi_attr_alloc_size(3); +mi_decl_nodiscard mi_decl_export void* mi_heap_reallocn(mi_heap_t* heap, void* p, size_t count, size_t size) mi_attr_noexcept mi_attr_alloc_size2(3,4); +mi_decl_nodiscard mi_decl_export void* mi_heap_reallocf(mi_heap_t* heap, void* p, size_t newsize) mi_attr_noexcept mi_attr_alloc_size(3); + +mi_decl_nodiscard mi_decl_export mi_decl_restrict char* mi_heap_strdup(mi_heap_t* heap, const char* s) mi_attr_noexcept mi_attr_malloc; +mi_decl_nodiscard mi_decl_export mi_decl_restrict char* mi_heap_strndup(mi_heap_t* heap, const char* s, size_t n) mi_attr_noexcept mi_attr_malloc; +mi_decl_nodiscard mi_decl_export mi_decl_restrict char* mi_heap_realpath(mi_heap_t* heap, const char* fname, char* resolved_name) mi_attr_noexcept mi_attr_malloc; + +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_heap_malloc_aligned(mi_heap_t* heap, size_t size, size_t alignment) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(2) mi_attr_alloc_align(3); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_heap_malloc_aligned_at(mi_heap_t* heap, size_t size, size_t alignment, size_t offset) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(2); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_heap_zalloc_aligned(mi_heap_t* heap, size_t size, size_t alignment) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(2) mi_attr_alloc_align(3); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_heap_zalloc_aligned_at(mi_heap_t* heap, size_t size, size_t alignment, size_t offset) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(2); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_heap_calloc_aligned(mi_heap_t* heap, size_t count, size_t size, size_t alignment) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size2(2, 3) mi_attr_alloc_align(4); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_heap_calloc_aligned_at(mi_heap_t* heap, size_t count, size_t size, size_t alignment, size_t offset) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size2(2, 3); +mi_decl_nodiscard mi_decl_export void* mi_heap_realloc_aligned(mi_heap_t* heap, void* p, size_t newsize, size_t alignment) mi_attr_noexcept mi_attr_alloc_size(3) mi_attr_alloc_align(4); +mi_decl_nodiscard mi_decl_export void* mi_heap_realloc_aligned_at(mi_heap_t* heap, void* p, size_t newsize, size_t alignment, size_t offset) mi_attr_noexcept mi_attr_alloc_size(3); + + +// -------------------------------------------------------------------------------- +// Zero initialized re-allocation. +// Only valid on memory that was originally allocated with zero initialization too. +// e.g. `mi_calloc`, `mi_zalloc`, `mi_zalloc_aligned` etc. +// see +// -------------------------------------------------------------------------------- + +mi_decl_nodiscard mi_decl_export void* mi_rezalloc(void* p, size_t newsize) mi_attr_noexcept mi_attr_alloc_size(2); +mi_decl_nodiscard mi_decl_export void* mi_recalloc(void* p, size_t newcount, size_t size) mi_attr_noexcept mi_attr_alloc_size2(2,3); + +mi_decl_nodiscard mi_decl_export void* mi_rezalloc_aligned(void* p, size_t newsize, size_t alignment) mi_attr_noexcept mi_attr_alloc_size(2) mi_attr_alloc_align(3); +mi_decl_nodiscard mi_decl_export void* mi_rezalloc_aligned_at(void* p, size_t newsize, size_t alignment, size_t offset) mi_attr_noexcept mi_attr_alloc_size(2); +mi_decl_nodiscard mi_decl_export void* mi_recalloc_aligned(void* p, size_t newcount, size_t size, size_t alignment) mi_attr_noexcept mi_attr_alloc_size2(2,3) mi_attr_alloc_align(4); +mi_decl_nodiscard mi_decl_export void* mi_recalloc_aligned_at(void* p, size_t newcount, size_t size, size_t alignment, size_t offset) mi_attr_noexcept mi_attr_alloc_size2(2,3); + +mi_decl_nodiscard mi_decl_export void* mi_heap_rezalloc(mi_heap_t* heap, void* p, size_t newsize) mi_attr_noexcept mi_attr_alloc_size(3); +mi_decl_nodiscard mi_decl_export void* mi_heap_recalloc(mi_heap_t* heap, void* p, size_t newcount, size_t size) mi_attr_noexcept mi_attr_alloc_size2(3,4); + +mi_decl_nodiscard mi_decl_export void* mi_heap_rezalloc_aligned(mi_heap_t* heap, void* p, size_t newsize, size_t alignment) mi_attr_noexcept mi_attr_alloc_size(3) mi_attr_alloc_align(4); +mi_decl_nodiscard mi_decl_export void* mi_heap_rezalloc_aligned_at(mi_heap_t* heap, void* p, size_t newsize, size_t alignment, size_t offset) mi_attr_noexcept mi_attr_alloc_size(3); +mi_decl_nodiscard mi_decl_export void* mi_heap_recalloc_aligned(mi_heap_t* heap, void* p, size_t newcount, size_t size, size_t alignment) mi_attr_noexcept mi_attr_alloc_size2(3,4) mi_attr_alloc_align(5); +mi_decl_nodiscard mi_decl_export void* mi_heap_recalloc_aligned_at(mi_heap_t* heap, void* p, size_t newcount, size_t size, size_t alignment, size_t offset) mi_attr_noexcept mi_attr_alloc_size2(3,4); + + +// ------------------------------------------------------ +// Analysis +// ------------------------------------------------------ + +mi_decl_export bool mi_heap_contains_block(mi_heap_t* heap, const void* p); +mi_decl_export bool mi_heap_check_owned(mi_heap_t* heap, const void* p); +mi_decl_export bool mi_check_owned(const void* p); + +// An area of heap space contains blocks of a single size. +typedef struct mi_heap_area_s { + void* blocks; // start of the area containing heap blocks + size_t reserved; // bytes reserved for this area (virtual) + size_t committed; // current available bytes for this area + size_t used; // number of allocated blocks + size_t block_size; // size in bytes of each block + size_t full_block_size; // size in bytes of a full block including padding and metadata. +} mi_heap_area_t; + +typedef bool (mi_cdecl mi_block_visit_fun)(const mi_heap_t* heap, const mi_heap_area_t* area, void* block, size_t block_size, void* arg); + +mi_decl_export bool mi_heap_visit_blocks(const mi_heap_t* heap, bool visit_all_blocks, mi_block_visit_fun* visitor, void* arg); + +// Experimental +mi_decl_nodiscard mi_decl_export bool mi_is_in_heap_region(const void* p) mi_attr_noexcept; +mi_decl_nodiscard mi_decl_export bool mi_is_redirected(void) mi_attr_noexcept; + +mi_decl_export int mi_reserve_huge_os_pages_interleave(size_t pages, size_t numa_nodes, size_t timeout_msecs) mi_attr_noexcept; +mi_decl_export int mi_reserve_huge_os_pages_at(size_t pages, int numa_node, size_t timeout_msecs) mi_attr_noexcept; + +mi_decl_export int mi_reserve_os_memory(size_t size, bool commit, bool allow_large) mi_attr_noexcept; +mi_decl_export bool mi_manage_os_memory(void* start, size_t size, bool is_committed, bool is_large, bool is_zero, int numa_node) mi_attr_noexcept; + +mi_decl_export void mi_debug_show_arenas(void) mi_attr_noexcept; + +// Experimental: heaps associated with specific memory arena's +typedef int mi_arena_id_t; +mi_decl_export void* mi_arena_area(mi_arena_id_t arena_id, size_t* size); +mi_decl_export int mi_reserve_huge_os_pages_at_ex(size_t pages, int numa_node, size_t timeout_msecs, bool exclusive, mi_arena_id_t* arena_id) mi_attr_noexcept; +mi_decl_export int mi_reserve_os_memory_ex(size_t size, bool commit, bool allow_large, bool exclusive, mi_arena_id_t* arena_id) mi_attr_noexcept; +mi_decl_export bool mi_manage_os_memory_ex(void* start, size_t size, bool is_committed, bool is_large, bool is_zero, int numa_node, bool exclusive, mi_arena_id_t* arena_id) mi_attr_noexcept; + +#if MI_MALLOC_VERSION >= 182 +// Create a heap that only allocates in the specified arena +mi_decl_nodiscard mi_decl_export mi_heap_t* mi_heap_new_in_arena(mi_arena_id_t arena_id); +#endif + +// deprecated +mi_decl_export int mi_reserve_huge_os_pages(size_t pages, double max_secs, size_t* pages_reserved) mi_attr_noexcept; + + +// ------------------------------------------------------ +// Convenience +// ------------------------------------------------------ + +#define mi_malloc_tp(tp) ((tp*)mi_malloc(sizeof(tp))) +#define mi_zalloc_tp(tp) ((tp*)mi_zalloc(sizeof(tp))) +#define mi_calloc_tp(tp,n) ((tp*)mi_calloc(n,sizeof(tp))) +#define mi_mallocn_tp(tp,n) ((tp*)mi_mallocn(n,sizeof(tp))) +#define mi_reallocn_tp(p,tp,n) ((tp*)mi_reallocn(p,n,sizeof(tp))) +#define mi_recalloc_tp(p,tp,n) ((tp*)mi_recalloc(p,n,sizeof(tp))) + +#define mi_heap_malloc_tp(hp,tp) ((tp*)mi_heap_malloc(hp,sizeof(tp))) +#define mi_heap_zalloc_tp(hp,tp) ((tp*)mi_heap_zalloc(hp,sizeof(tp))) +#define mi_heap_calloc_tp(hp,tp,n) ((tp*)mi_heap_calloc(hp,n,sizeof(tp))) +#define mi_heap_mallocn_tp(hp,tp,n) ((tp*)mi_heap_mallocn(hp,n,sizeof(tp))) +#define mi_heap_reallocn_tp(hp,p,tp,n) ((tp*)mi_heap_reallocn(hp,p,n,sizeof(tp))) +#define mi_heap_recalloc_tp(hp,p,tp,n) ((tp*)mi_heap_recalloc(hp,p,n,sizeof(tp))) + + +// ------------------------------------------------------ +// Options +// ------------------------------------------------------ + +typedef enum mi_option_e { + // stable options + mi_option_show_errors, // print error messages + mi_option_show_stats, // print statistics on termination + mi_option_verbose, // print verbose messages + // the following options are experimental (see src/options.h) + mi_option_eager_commit, // eager commit segments? (after `eager_commit_delay` segments) (=1) + mi_option_arena_eager_commit, // eager commit arenas? Use 2 to enable just on overcommit systems (=2) + mi_option_purge_decommits, // should a memory purge decommit (or only reset) (=1) + mi_option_allow_large_os_pages, // allow large (2MiB) OS pages, implies eager commit + mi_option_reserve_huge_os_pages, // reserve N huge OS pages (1GiB/page) at startup + mi_option_reserve_huge_os_pages_at, // reserve huge OS pages at a specific NUMA node + mi_option_reserve_os_memory, // reserve specified amount of OS memory in an arena at startup + mi_option_deprecated_segment_cache, + mi_option_deprecated_page_reset, + mi_option_abandoned_page_purge, // immediately purge delayed purges on thread termination + mi_option_deprecated_segment_reset, + mi_option_eager_commit_delay, + mi_option_purge_delay, // memory purging is delayed by N milli seconds; use 0 for immediate purging or -1 for no purging at all. + mi_option_use_numa_nodes, // 0 = use all available numa nodes, otherwise use at most N nodes. + mi_option_limit_os_alloc, // 1 = do not use OS memory for allocation (but only programmatically reserved arenas) + mi_option_os_tag, // tag used for OS logging (macOS only for now) + mi_option_max_errors, // issue at most N error messages + mi_option_max_warnings, // issue at most N warning messages + mi_option_max_segment_reclaim, + mi_option_destroy_on_exit, // if set, release all memory on exit; sometimes used for dynamic unloading but can be unsafe. + mi_option_arena_reserve, // initial memory size in KiB for arena reservation (1GiB on 64-bit) + mi_option_arena_purge_mult, + mi_option_purge_extend_delay, + _mi_option_last, + // legacy option names + mi_option_large_os_pages = mi_option_allow_large_os_pages, + mi_option_eager_region_commit = mi_option_arena_eager_commit, + mi_option_reset_decommits = mi_option_purge_decommits, + mi_option_reset_delay = mi_option_purge_delay, + mi_option_abandoned_page_reset = mi_option_abandoned_page_purge +} mi_option_t; + + +mi_decl_nodiscard mi_decl_export bool mi_option_is_enabled(mi_option_t option); +mi_decl_export void mi_option_enable(mi_option_t option); +mi_decl_export void mi_option_disable(mi_option_t option); +mi_decl_export void mi_option_set_enabled(mi_option_t option, bool enable); +mi_decl_export void mi_option_set_enabled_default(mi_option_t option, bool enable); + +mi_decl_nodiscard mi_decl_export long mi_option_get(mi_option_t option); +mi_decl_nodiscard mi_decl_export long mi_option_get_clamp(mi_option_t option, long min, long max); +mi_decl_nodiscard mi_decl_export size_t mi_option_get_size(mi_option_t option); +mi_decl_export void mi_option_set(mi_option_t option, long value); +mi_decl_export void mi_option_set_default(mi_option_t option, long value); + + +// ------------------------------------------------------------------------------------------------------- +// "mi" prefixed implementations of various posix, Unix, Windows, and C++ allocation functions. +// (This can be convenient when providing overrides of these functions as done in `mimalloc-override.h`.) +// note: we use `mi_cfree` as "checked free" and it checks if the pointer is in our heap before free-ing. +// ------------------------------------------------------------------------------------------------------- + +mi_decl_export void mi_cfree(void* p) mi_attr_noexcept; +mi_decl_export void* mi__expand(void* p, size_t newsize) mi_attr_noexcept; +mi_decl_nodiscard mi_decl_export size_t mi_malloc_size(const void* p) mi_attr_noexcept; +mi_decl_nodiscard mi_decl_export size_t mi_malloc_good_size(size_t size) mi_attr_noexcept; +mi_decl_nodiscard mi_decl_export size_t mi_malloc_usable_size(const void *p) mi_attr_noexcept; + +mi_decl_export int mi_posix_memalign(void** p, size_t alignment, size_t size) mi_attr_noexcept; +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_memalign(size_t alignment, size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(2) mi_attr_alloc_align(1); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_valloc(size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(1); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_pvalloc(size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(1); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_aligned_alloc(size_t alignment, size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(2) mi_attr_alloc_align(1); + +mi_decl_nodiscard mi_decl_export void* mi_reallocarray(void* p, size_t count, size_t size) mi_attr_noexcept mi_attr_alloc_size2(2,3); +mi_decl_nodiscard mi_decl_export int mi_reallocarr(void* p, size_t count, size_t size) mi_attr_noexcept; +mi_decl_nodiscard mi_decl_export void* mi_aligned_recalloc(void* p, size_t newcount, size_t size, size_t alignment) mi_attr_noexcept; +mi_decl_nodiscard mi_decl_export void* mi_aligned_offset_recalloc(void* p, size_t newcount, size_t size, size_t alignment, size_t offset) mi_attr_noexcept; + +mi_decl_nodiscard mi_decl_export mi_decl_restrict unsigned short* mi_wcsdup(const unsigned short* s) mi_attr_noexcept mi_attr_malloc; +mi_decl_nodiscard mi_decl_export mi_decl_restrict unsigned char* mi_mbsdup(const unsigned char* s) mi_attr_noexcept mi_attr_malloc; +mi_decl_export int mi_dupenv_s(char** buf, size_t* size, const char* name) mi_attr_noexcept; +mi_decl_export int mi_wdupenv_s(unsigned short** buf, size_t* size, const unsigned short* name) mi_attr_noexcept; + +mi_decl_export void mi_free_size(void* p, size_t size) mi_attr_noexcept; +mi_decl_export void mi_free_size_aligned(void* p, size_t size, size_t alignment) mi_attr_noexcept; +mi_decl_export void mi_free_aligned(void* p, size_t alignment) mi_attr_noexcept; + +// The `mi_new` wrappers implement C++ semantics on out-of-memory instead of directly returning `NULL`. +// (and call `std::get_new_handler` and potentially raise a `std::bad_alloc` exception). +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_new(size_t size) mi_attr_malloc mi_attr_alloc_size(1); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_new_aligned(size_t size, size_t alignment) mi_attr_malloc mi_attr_alloc_size(1) mi_attr_alloc_align(2); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_new_nothrow(size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(1); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_new_aligned_nothrow(size_t size, size_t alignment) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(1) mi_attr_alloc_align(2); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_new_n(size_t count, size_t size) mi_attr_malloc mi_attr_alloc_size2(1, 2); +mi_decl_nodiscard mi_decl_export void* mi_new_realloc(void* p, size_t newsize) mi_attr_alloc_size(2); +mi_decl_nodiscard mi_decl_export void* mi_new_reallocn(void* p, size_t newcount, size_t size) mi_attr_alloc_size2(2, 3); + +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_heap_alloc_new(mi_heap_t* heap, size_t size) mi_attr_malloc mi_attr_alloc_size(2); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_heap_alloc_new_n(mi_heap_t* heap, size_t count, size_t size) mi_attr_malloc mi_attr_alloc_size2(2, 3); + +#ifdef __cplusplus +} +#endif + +// --------------------------------------------------------------------------------------------- +// Implement the C++ std::allocator interface for use in STL containers. +// (note: see `mimalloc-new-delete.h` for overriding the new/delete operators globally) +// --------------------------------------------------------------------------------------------- +#ifdef __cplusplus + +#include // std::size_t +#include // PTRDIFF_MAX +#if (__cplusplus >= 201103L) || (_MSC_VER > 1900) // C++11 +#include // std::true_type +#include // std::forward +#endif + +template struct _mi_stl_allocator_common { + typedef T value_type; + typedef std::size_t size_type; + typedef std::ptrdiff_t difference_type; + typedef value_type& reference; + typedef value_type const& const_reference; + typedef value_type* pointer; + typedef value_type const* const_pointer; + + #if ((__cplusplus >= 201103L) || (_MSC_VER > 1900)) // C++11 + using propagate_on_container_copy_assignment = std::true_type; + using propagate_on_container_move_assignment = std::true_type; + using propagate_on_container_swap = std::true_type; + template void construct(U* p, Args&& ...args) { ::new(p) U(std::forward(args)...); } + template void destroy(U* p) mi_attr_noexcept { p->~U(); } + #else + void construct(pointer p, value_type const& val) { ::new(p) value_type(val); } + void destroy(pointer p) { p->~value_type(); } + #endif + + size_type max_size() const mi_attr_noexcept { return (PTRDIFF_MAX/sizeof(value_type)); } + pointer address(reference x) const { return &x; } + const_pointer address(const_reference x) const { return &x; } +}; + +template struct mi_stl_allocator : public _mi_stl_allocator_common { + using typename _mi_stl_allocator_common::size_type; + using typename _mi_stl_allocator_common::value_type; + using typename _mi_stl_allocator_common::pointer; + template struct rebind { typedef mi_stl_allocator other; }; + + mi_stl_allocator() mi_attr_noexcept = default; + mi_stl_allocator(const mi_stl_allocator&) mi_attr_noexcept = default; + template mi_stl_allocator(const mi_stl_allocator&) mi_attr_noexcept { } + mi_stl_allocator select_on_container_copy_construction() const { return *this; } + void deallocate(T* p, size_type) { mi_free(p); } + + #if (__cplusplus >= 201703L) // C++17 + mi_decl_nodiscard T* allocate(size_type count) { return static_cast(mi_new_n(count, sizeof(T))); } + mi_decl_nodiscard T* allocate(size_type count, const void*) { return allocate(count); } + #else + mi_decl_nodiscard pointer allocate(size_type count, const void* = 0) { return static_cast(mi_new_n(count, sizeof(value_type))); } + #endif + + #if ((__cplusplus >= 201103L) || (_MSC_VER > 1900)) // C++11 + using is_always_equal = std::true_type; + #endif +}; + +template bool operator==(const mi_stl_allocator& , const mi_stl_allocator& ) mi_attr_noexcept { return true; } +template bool operator!=(const mi_stl_allocator& , const mi_stl_allocator& ) mi_attr_noexcept { return false; } + + +#if (__cplusplus >= 201103L) || (_MSC_VER >= 1900) // C++11 +#define MI_HAS_HEAP_STL_ALLOCATOR 1 + +#include // std::shared_ptr + +// Common base class for STL allocators in a specific heap +template struct _mi_heap_stl_allocator_common : public _mi_stl_allocator_common { + using typename _mi_stl_allocator_common::size_type; + using typename _mi_stl_allocator_common::value_type; + using typename _mi_stl_allocator_common::pointer; + + _mi_heap_stl_allocator_common(mi_heap_t* hp) : heap(hp) { } /* will not delete nor destroy the passed in heap */ + + #if (__cplusplus >= 201703L) // C++17 + mi_decl_nodiscard T* allocate(size_type count) { return static_cast(mi_heap_alloc_new_n(this->heap.get(), count, sizeof(T))); } + mi_decl_nodiscard T* allocate(size_type count, const void*) { return allocate(count); } + #else + mi_decl_nodiscard pointer allocate(size_type count, const void* = 0) { return static_cast(mi_heap_alloc_new_n(this->heap.get(), count, sizeof(value_type))); } + #endif + + #if ((__cplusplus >= 201103L) || (_MSC_VER > 1900)) // C++11 + using is_always_equal = std::false_type; + #endif + + void collect(bool force) { mi_heap_collect(this->heap.get(), force); } + template bool is_equal(const _mi_heap_stl_allocator_common& x) const { return (this->heap == x.heap); } + +protected: + std::shared_ptr heap; + template friend struct _mi_heap_stl_allocator_common; + + _mi_heap_stl_allocator_common() { + mi_heap_t* hp = mi_heap_new(); + this->heap.reset(hp, (_mi_destroy ? &heap_destroy : &heap_delete)); /* calls heap_delete/destroy when the refcount drops to zero */ + } + _mi_heap_stl_allocator_common(const _mi_heap_stl_allocator_common& x) mi_attr_noexcept : heap(x.heap) { } + template _mi_heap_stl_allocator_common(const _mi_heap_stl_allocator_common& x) mi_attr_noexcept : heap(x.heap) { } + +private: + static void heap_delete(mi_heap_t* hp) { if (hp != NULL) { mi_heap_delete(hp); } } + static void heap_destroy(mi_heap_t* hp) { if (hp != NULL) { mi_heap_destroy(hp); } } +}; + +// STL allocator allocation in a specific heap +template struct mi_heap_stl_allocator : public _mi_heap_stl_allocator_common { + using typename _mi_heap_stl_allocator_common::size_type; + mi_heap_stl_allocator() : _mi_heap_stl_allocator_common() { } // creates fresh heap that is deleted when the destructor is called + mi_heap_stl_allocator(mi_heap_t* hp) : _mi_heap_stl_allocator_common(hp) { } // no delete nor destroy on the passed in heap + template mi_heap_stl_allocator(const mi_heap_stl_allocator& x) mi_attr_noexcept : _mi_heap_stl_allocator_common(x) { } + + mi_heap_stl_allocator select_on_container_copy_construction() const { return *this; } + void deallocate(T* p, size_type) { mi_free(p); } + template struct rebind { typedef mi_heap_stl_allocator other; }; +}; + +template bool operator==(const mi_heap_stl_allocator& x, const mi_heap_stl_allocator& y) mi_attr_noexcept { return (x.is_equal(y)); } +template bool operator!=(const mi_heap_stl_allocator& x, const mi_heap_stl_allocator& y) mi_attr_noexcept { return (!x.is_equal(y)); } + + +// STL allocator allocation in a specific heap, where `free` does nothing and +// the heap is destroyed in one go on destruction -- use with care! +template struct mi_heap_destroy_stl_allocator : public _mi_heap_stl_allocator_common { + using typename _mi_heap_stl_allocator_common::size_type; + mi_heap_destroy_stl_allocator() : _mi_heap_stl_allocator_common() { } // creates fresh heap that is destroyed when the destructor is called + mi_heap_destroy_stl_allocator(mi_heap_t* hp) : _mi_heap_stl_allocator_common(hp) { } // no delete nor destroy on the passed in heap + template mi_heap_destroy_stl_allocator(const mi_heap_destroy_stl_allocator& x) mi_attr_noexcept : _mi_heap_stl_allocator_common(x) { } + + mi_heap_destroy_stl_allocator select_on_container_copy_construction() const { return *this; } + void deallocate(T*, size_type) { /* do nothing as we destroy the heap on destruct. */ } + template struct rebind { typedef mi_heap_destroy_stl_allocator other; }; +}; + +template bool operator==(const mi_heap_destroy_stl_allocator& x, const mi_heap_destroy_stl_allocator& y) mi_attr_noexcept { return (x.is_equal(y)); } +template bool operator!=(const mi_heap_destroy_stl_allocator& x, const mi_heap_destroy_stl_allocator& y) mi_attr_noexcept { return (!x.is_equal(y)); } + +#endif // C++11 + +#endif // __cplusplus + +#endif diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/mimalloc/mimalloc/atomic.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/mimalloc/mimalloc/atomic.h new file mode 100644 index 000000000..1093c5408 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/mimalloc/mimalloc/atomic.h @@ -0,0 +1,389 @@ +/* ---------------------------------------------------------------------------- +Copyright (c) 2018-2023 Microsoft Research, Daan Leijen +This is free software; you can redistribute it and/or modify it under the +terms of the MIT license. A copy of the license can be found in the file +"LICENSE" at the root of this distribution. +-----------------------------------------------------------------------------*/ +#pragma once +#ifndef MIMALLOC_ATOMIC_H +#define MIMALLOC_ATOMIC_H + +// -------------------------------------------------------------------------------------------- +// Atomics +// We need to be portable between C, C++, and MSVC. +// We base the primitives on the C/C++ atomics and create a mimimal wrapper for MSVC in C compilation mode. +// This is why we try to use only `uintptr_t` and `*` as atomic types. +// To gain better insight in the range of used atomics, we use explicitly named memory order operations +// instead of passing the memory order as a parameter. +// ----------------------------------------------------------------------------------------------- + +#if defined(__cplusplus) +// Use C++ atomics +#include +#define _Atomic(tp) std::atomic +#define mi_atomic(name) std::atomic_##name +#define mi_memory_order(name) std::memory_order_##name +#if (__cplusplus >= 202002L) // c++20, see issue #571 + #define MI_ATOMIC_VAR_INIT(x) x +#elif !defined(ATOMIC_VAR_INIT) + #define MI_ATOMIC_VAR_INIT(x) x +#else + #define MI_ATOMIC_VAR_INIT(x) ATOMIC_VAR_INIT(x) +#endif +#elif defined(_MSC_VER) +// Use MSVC C wrapper for C11 atomics +#define _Atomic(tp) tp +#define MI_ATOMIC_VAR_INIT(x) x +#define mi_atomic(name) mi_atomic_##name +#define mi_memory_order(name) mi_memory_order_##name +#else +// Use C11 atomics +#include +#define mi_atomic(name) atomic_##name +#define mi_memory_order(name) memory_order_##name +#if (__STDC_VERSION__ >= 201710L) // c17, see issue #735 + #define MI_ATOMIC_VAR_INIT(x) x +#elif !defined(ATOMIC_VAR_INIT) + #define MI_ATOMIC_VAR_INIT(x) x +#else + #define MI_ATOMIC_VAR_INIT(x) ATOMIC_VAR_INIT(x) +#endif +#endif + +// Various defines for all used memory orders in mimalloc +#define mi_atomic_cas_weak(p,expected,desired,mem_success,mem_fail) \ + mi_atomic(compare_exchange_weak_explicit)(p,expected,desired,mem_success,mem_fail) + +#define mi_atomic_cas_strong(p,expected,desired,mem_success,mem_fail) \ + mi_atomic(compare_exchange_strong_explicit)(p,expected,desired,mem_success,mem_fail) + +#define mi_atomic_load_acquire(p) mi_atomic(load_explicit)(p,mi_memory_order(acquire)) +#define mi_atomic_load_relaxed(p) mi_atomic(load_explicit)(p,mi_memory_order(relaxed)) +#define mi_atomic_store_release(p,x) mi_atomic(store_explicit)(p,x,mi_memory_order(release)) +#define mi_atomic_store_relaxed(p,x) mi_atomic(store_explicit)(p,x,mi_memory_order(relaxed)) +#define mi_atomic_exchange_release(p,x) mi_atomic(exchange_explicit)(p,x,mi_memory_order(release)) +#define mi_atomic_exchange_acq_rel(p,x) mi_atomic(exchange_explicit)(p,x,mi_memory_order(acq_rel)) +#define mi_atomic_cas_weak_release(p,exp,des) mi_atomic_cas_weak(p,exp,des,mi_memory_order(release),mi_memory_order(relaxed)) +#define mi_atomic_cas_weak_acq_rel(p,exp,des) mi_atomic_cas_weak(p,exp,des,mi_memory_order(acq_rel),mi_memory_order(acquire)) +#define mi_atomic_cas_strong_release(p,exp,des) mi_atomic_cas_strong(p,exp,des,mi_memory_order(release),mi_memory_order(relaxed)) +#define mi_atomic_cas_strong_acq_rel(p,exp,des) mi_atomic_cas_strong(p,exp,des,mi_memory_order(acq_rel),mi_memory_order(acquire)) + +#define mi_atomic_add_relaxed(p,x) mi_atomic(fetch_add_explicit)(p,x,mi_memory_order(relaxed)) +#define mi_atomic_sub_relaxed(p,x) mi_atomic(fetch_sub_explicit)(p,x,mi_memory_order(relaxed)) +#define mi_atomic_add_acq_rel(p,x) mi_atomic(fetch_add_explicit)(p,x,mi_memory_order(acq_rel)) +#define mi_atomic_sub_acq_rel(p,x) mi_atomic(fetch_sub_explicit)(p,x,mi_memory_order(acq_rel)) +#define mi_atomic_and_acq_rel(p,x) mi_atomic(fetch_and_explicit)(p,x,mi_memory_order(acq_rel)) +#define mi_atomic_or_acq_rel(p,x) mi_atomic(fetch_or_explicit)(p,x,mi_memory_order(acq_rel)) + +#define mi_atomic_increment_relaxed(p) mi_atomic_add_relaxed(p,(uintptr_t)1) +#define mi_atomic_decrement_relaxed(p) mi_atomic_sub_relaxed(p,(uintptr_t)1) +#define mi_atomic_increment_acq_rel(p) mi_atomic_add_acq_rel(p,(uintptr_t)1) +#define mi_atomic_decrement_acq_rel(p) mi_atomic_sub_acq_rel(p,(uintptr_t)1) + +static inline void mi_atomic_yield(void); +static inline intptr_t mi_atomic_addi(_Atomic(intptr_t)*p, intptr_t add); +static inline intptr_t mi_atomic_subi(_Atomic(intptr_t)*p, intptr_t sub); + + +#if defined(__cplusplus) || !defined(_MSC_VER) + +// In C++/C11 atomics we have polymorphic atomics so can use the typed `ptr` variants (where `tp` is the type of atomic value) +// We use these macros so we can provide a typed wrapper in MSVC in C compilation mode as well +#define mi_atomic_load_ptr_acquire(tp,p) mi_atomic_load_acquire(p) +#define mi_atomic_load_ptr_relaxed(tp,p) mi_atomic_load_relaxed(p) + +// In C++ we need to add casts to help resolve templates if NULL is passed +#if defined(__cplusplus) +#define mi_atomic_store_ptr_release(tp,p,x) mi_atomic_store_release(p,(tp*)x) +#define mi_atomic_store_ptr_relaxed(tp,p,x) mi_atomic_store_relaxed(p,(tp*)x) +#define mi_atomic_cas_ptr_weak_release(tp,p,exp,des) mi_atomic_cas_weak_release(p,exp,(tp*)des) +#define mi_atomic_cas_ptr_weak_acq_rel(tp,p,exp,des) mi_atomic_cas_weak_acq_rel(p,exp,(tp*)des) +#define mi_atomic_cas_ptr_strong_release(tp,p,exp,des) mi_atomic_cas_strong_release(p,exp,(tp*)des) +#define mi_atomic_exchange_ptr_release(tp,p,x) mi_atomic_exchange_release(p,(tp*)x) +#define mi_atomic_exchange_ptr_acq_rel(tp,p,x) mi_atomic_exchange_acq_rel(p,(tp*)x) +#else +#define mi_atomic_store_ptr_release(tp,p,x) mi_atomic_store_release(p,x) +#define mi_atomic_store_ptr_relaxed(tp,p,x) mi_atomic_store_relaxed(p,x) +#define mi_atomic_cas_ptr_weak_release(tp,p,exp,des) mi_atomic_cas_weak_release(p,exp,des) +#define mi_atomic_cas_ptr_weak_acq_rel(tp,p,exp,des) mi_atomic_cas_weak_acq_rel(p,exp,des) +#define mi_atomic_cas_ptr_strong_release(tp,p,exp,des) mi_atomic_cas_strong_release(p,exp,des) +#define mi_atomic_exchange_ptr_release(tp,p,x) mi_atomic_exchange_release(p,x) +#define mi_atomic_exchange_ptr_acq_rel(tp,p,x) mi_atomic_exchange_acq_rel(p,x) +#endif + +// These are used by the statistics +static inline int64_t mi_atomic_addi64_relaxed(volatile int64_t* p, int64_t add) { + return mi_atomic(fetch_add_explicit)((_Atomic(int64_t)*)p, add, mi_memory_order(relaxed)); +} +static inline void mi_atomic_maxi64_relaxed(volatile int64_t* p, int64_t x) { + int64_t current = mi_atomic_load_relaxed((_Atomic(int64_t)*)p); + while (current < x && !mi_atomic_cas_weak_release((_Atomic(int64_t)*)p, ¤t, x)) { /* nothing */ }; +} + +// Used by timers +#define mi_atomic_loadi64_acquire(p) mi_atomic(load_explicit)(p,mi_memory_order(acquire)) +#define mi_atomic_loadi64_relaxed(p) mi_atomic(load_explicit)(p,mi_memory_order(relaxed)) +#define mi_atomic_storei64_release(p,x) mi_atomic(store_explicit)(p,x,mi_memory_order(release)) +#define mi_atomic_storei64_relaxed(p,x) mi_atomic(store_explicit)(p,x,mi_memory_order(relaxed)) + +#define mi_atomic_casi64_strong_acq_rel(p,e,d) mi_atomic_cas_strong_acq_rel(p,e,d) +#define mi_atomic_addi64_acq_rel(p,i) mi_atomic_add_acq_rel(p,i) + + +#elif defined(_MSC_VER) + +// MSVC C compilation wrapper that uses Interlocked operations to model C11 atomics. +#define WIN32_LEAN_AND_MEAN +#include +#include +#ifdef _WIN64 +typedef LONG64 msc_intptr_t; +#define MI_64(f) f##64 +#else +typedef LONG msc_intptr_t; +#define MI_64(f) f +#endif + +typedef enum mi_memory_order_e { + mi_memory_order_relaxed, + mi_memory_order_consume, + mi_memory_order_acquire, + mi_memory_order_release, + mi_memory_order_acq_rel, + mi_memory_order_seq_cst +} mi_memory_order; + +static inline uintptr_t mi_atomic_fetch_add_explicit(_Atomic(uintptr_t)*p, uintptr_t add, mi_memory_order mo) { + (void)(mo); + return (uintptr_t)MI_64(_InterlockedExchangeAdd)((volatile msc_intptr_t*)p, (msc_intptr_t)add); +} +static inline uintptr_t mi_atomic_fetch_sub_explicit(_Atomic(uintptr_t)*p, uintptr_t sub, mi_memory_order mo) { + (void)(mo); + return (uintptr_t)MI_64(_InterlockedExchangeAdd)((volatile msc_intptr_t*)p, -((msc_intptr_t)sub)); +} +static inline uintptr_t mi_atomic_fetch_and_explicit(_Atomic(uintptr_t)*p, uintptr_t x, mi_memory_order mo) { + (void)(mo); + return (uintptr_t)MI_64(_InterlockedAnd)((volatile msc_intptr_t*)p, (msc_intptr_t)x); +} +static inline uintptr_t mi_atomic_fetch_or_explicit(_Atomic(uintptr_t)*p, uintptr_t x, mi_memory_order mo) { + (void)(mo); + return (uintptr_t)MI_64(_InterlockedOr)((volatile msc_intptr_t*)p, (msc_intptr_t)x); +} +static inline bool mi_atomic_compare_exchange_strong_explicit(_Atomic(uintptr_t)*p, uintptr_t* expected, uintptr_t desired, mi_memory_order mo1, mi_memory_order mo2) { + (void)(mo1); (void)(mo2); + uintptr_t read = (uintptr_t)MI_64(_InterlockedCompareExchange)((volatile msc_intptr_t*)p, (msc_intptr_t)desired, (msc_intptr_t)(*expected)); + if (read == *expected) { + return true; + } + else { + *expected = read; + return false; + } +} +static inline bool mi_atomic_compare_exchange_weak_explicit(_Atomic(uintptr_t)*p, uintptr_t* expected, uintptr_t desired, mi_memory_order mo1, mi_memory_order mo2) { + return mi_atomic_compare_exchange_strong_explicit(p, expected, desired, mo1, mo2); +} +static inline uintptr_t mi_atomic_exchange_explicit(_Atomic(uintptr_t)*p, uintptr_t exchange, mi_memory_order mo) { + (void)(mo); + return (uintptr_t)MI_64(_InterlockedExchange)((volatile msc_intptr_t*)p, (msc_intptr_t)exchange); +} +static inline void mi_atomic_thread_fence(mi_memory_order mo) { + (void)(mo); + _Atomic(uintptr_t) x = 0; + mi_atomic_exchange_explicit(&x, 1, mo); +} +static inline uintptr_t mi_atomic_load_explicit(_Atomic(uintptr_t) const* p, mi_memory_order mo) { + (void)(mo); +#if defined(_M_IX86) || defined(_M_X64) + return *p; +#else + uintptr_t x = *p; + if (mo > mi_memory_order_relaxed) { + while (!mi_atomic_compare_exchange_weak_explicit((_Atomic(uintptr_t)*)p, &x, x, mo, mi_memory_order_relaxed)) { /* nothing */ }; + } + return x; +#endif +} +static inline void mi_atomic_store_explicit(_Atomic(uintptr_t)*p, uintptr_t x, mi_memory_order mo) { + (void)(mo); +#if defined(_M_IX86) || defined(_M_X64) + *p = x; +#else + mi_atomic_exchange_explicit(p, x, mo); +#endif +} +static inline int64_t mi_atomic_loadi64_explicit(_Atomic(int64_t)*p, mi_memory_order mo) { + (void)(mo); +#if defined(_M_X64) + return *p; +#else + int64_t old = *p; + int64_t x = old; + while ((old = InterlockedCompareExchange64(p, x, old)) != x) { + x = old; + } + return x; +#endif +} +static inline void mi_atomic_storei64_explicit(_Atomic(int64_t)*p, int64_t x, mi_memory_order mo) { + (void)(mo); +#if defined(x_M_IX86) || defined(_M_X64) + *p = x; +#else + InterlockedExchange64(p, x); +#endif +} + +// These are used by the statistics +static inline int64_t mi_atomic_addi64_relaxed(volatile _Atomic(int64_t)*p, int64_t add) { +#ifdef _WIN64 + return (int64_t)mi_atomic_addi((int64_t*)p, add); +#else + int64_t current; + int64_t sum; + do { + current = *p; + sum = current + add; + } while (_InterlockedCompareExchange64(p, sum, current) != current); + return current; +#endif +} +static inline void mi_atomic_maxi64_relaxed(volatile _Atomic(int64_t)*p, int64_t x) { + int64_t current; + do { + current = *p; + } while (current < x && _InterlockedCompareExchange64(p, x, current) != current); +} + +static inline void mi_atomic_addi64_acq_rel(volatile _Atomic(int64_t*)p, int64_t i) { + mi_atomic_addi64_relaxed(p, i); +} + +static inline bool mi_atomic_casi64_strong_acq_rel(volatile _Atomic(int64_t*)p, int64_t* exp, int64_t des) { + int64_t read = _InterlockedCompareExchange64(p, des, *exp); + if (read == *exp) { + return true; + } + else { + *exp = read; + return false; + } +} + +// The pointer macros cast to `uintptr_t`. +#define mi_atomic_load_ptr_acquire(tp,p) (tp*)mi_atomic_load_acquire((_Atomic(uintptr_t)*)(p)) +#define mi_atomic_load_ptr_relaxed(tp,p) (tp*)mi_atomic_load_relaxed((_Atomic(uintptr_t)*)(p)) +#define mi_atomic_store_ptr_release(tp,p,x) mi_atomic_store_release((_Atomic(uintptr_t)*)(p),(uintptr_t)(x)) +#define mi_atomic_store_ptr_relaxed(tp,p,x) mi_atomic_store_relaxed((_Atomic(uintptr_t)*)(p),(uintptr_t)(x)) +#define mi_atomic_cas_ptr_weak_release(tp,p,exp,des) mi_atomic_cas_weak_release((_Atomic(uintptr_t)*)(p),(uintptr_t*)exp,(uintptr_t)des) +#define mi_atomic_cas_ptr_weak_acq_rel(tp,p,exp,des) mi_atomic_cas_weak_acq_rel((_Atomic(uintptr_t)*)(p),(uintptr_t*)exp,(uintptr_t)des) +#define mi_atomic_cas_ptr_strong_release(tp,p,exp,des) mi_atomic_cas_strong_release((_Atomic(uintptr_t)*)(p),(uintptr_t*)exp,(uintptr_t)des) +#define mi_atomic_exchange_ptr_release(tp,p,x) (tp*)mi_atomic_exchange_release((_Atomic(uintptr_t)*)(p),(uintptr_t)x) +#define mi_atomic_exchange_ptr_acq_rel(tp,p,x) (tp*)mi_atomic_exchange_acq_rel((_Atomic(uintptr_t)*)(p),(uintptr_t)x) + +#define mi_atomic_loadi64_acquire(p) mi_atomic(loadi64_explicit)(p,mi_memory_order(acquire)) +#define mi_atomic_loadi64_relaxed(p) mi_atomic(loadi64_explicit)(p,mi_memory_order(relaxed)) +#define mi_atomic_storei64_release(p,x) mi_atomic(storei64_explicit)(p,x,mi_memory_order(release)) +#define mi_atomic_storei64_relaxed(p,x) mi_atomic(storei64_explicit)(p,x,mi_memory_order(relaxed)) + + +#endif + + +// Atomically add a signed value; returns the previous value. +static inline intptr_t mi_atomic_addi(_Atomic(intptr_t)*p, intptr_t add) { + return (intptr_t)mi_atomic_add_acq_rel((_Atomic(uintptr_t)*)p, (uintptr_t)add); +} + +// Atomically subtract a signed value; returns the previous value. +static inline intptr_t mi_atomic_subi(_Atomic(intptr_t)*p, intptr_t sub) { + return (intptr_t)mi_atomic_addi(p, -sub); +} + +typedef _Atomic(uintptr_t) mi_atomic_once_t; + +// Returns true only on the first invocation +static inline bool mi_atomic_once( mi_atomic_once_t* once ) { + if (mi_atomic_load_relaxed(once) != 0) return false; // quick test + uintptr_t expected = 0; + return mi_atomic_cas_strong_acq_rel(once, &expected, (uintptr_t)1); // try to set to 1 +} + +typedef _Atomic(uintptr_t) mi_atomic_guard_t; + +// Allows only one thread to execute at a time +#define mi_atomic_guard(guard) \ + uintptr_t _mi_guard_expected = 0; \ + for(bool _mi_guard_once = true; \ + _mi_guard_once && mi_atomic_cas_strong_acq_rel(guard,&_mi_guard_expected,(uintptr_t)1); \ + (mi_atomic_store_release(guard,(uintptr_t)0), _mi_guard_once = false) ) + + + +// Yield +#if defined(__cplusplus) +#include +static inline void mi_atomic_yield(void) { + std::this_thread::yield(); +} +#elif defined(_WIN32) +#define WIN32_LEAN_AND_MEAN +#include +static inline void mi_atomic_yield(void) { + YieldProcessor(); +} +#elif defined(__SSE2__) +#include +static inline void mi_atomic_yield(void) { + _mm_pause(); +} +#elif (defined(__GNUC__) || defined(__clang__)) && \ + (defined(__x86_64__) || defined(__i386__) || defined(__arm__) || defined(__armel__) || defined(__ARMEL__) || \ + defined(__aarch64__) || defined(__powerpc__) || defined(__ppc__) || defined(__PPC__)) || defined(__POWERPC__) +#if defined(__x86_64__) || defined(__i386__) +static inline void mi_atomic_yield(void) { + __asm__ volatile ("pause" ::: "memory"); +} +#elif defined(__aarch64__) +static inline void mi_atomic_yield(void) { + __asm__ volatile("wfe"); +} +#elif (defined(__arm__) && __ARM_ARCH__ >= 7) +static inline void mi_atomic_yield(void) { + __asm__ volatile("yield" ::: "memory"); +} +#elif defined(__powerpc__) || defined(__ppc__) || defined(__PPC__) || defined(__POWERPC__) +#ifdef __APPLE__ +static inline void mi_atomic_yield(void) { + __asm__ volatile ("or r27,r27,r27" ::: "memory"); +} +#else +static inline void mi_atomic_yield(void) { + __asm__ __volatile__ ("or 27,27,27" ::: "memory"); +} +#endif +#elif defined(__armel__) || defined(__ARMEL__) +static inline void mi_atomic_yield(void) { + __asm__ volatile ("nop" ::: "memory"); +} +#endif +#elif defined(__sun) +// Fallback for other archs +#include +static inline void mi_atomic_yield(void) { + smt_pause(); +} +#elif defined(__wasi__) +#include +static inline void mi_atomic_yield(void) { + sched_yield(); +} +#else +#include +static inline void mi_atomic_yield(void) { + sleep(0); +} +#endif + + +#endif // __MIMALLOC_ATOMIC_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/mimalloc/mimalloc/internal.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/mimalloc/mimalloc/internal.h new file mode 100644 index 000000000..94f88fb60 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/mimalloc/mimalloc/internal.h @@ -0,0 +1,969 @@ +/* ---------------------------------------------------------------------------- +Copyright (c) 2018-2023, Microsoft Research, Daan Leijen +This is free software; you can redistribute it and/or modify it under the +terms of the MIT license. A copy of the license can be found in the file +"LICENSE" at the root of this distribution. +-----------------------------------------------------------------------------*/ +#pragma once +#ifndef MIMALLOC_INTERNAL_H +#define MIMALLOC_INTERNAL_H + + +// -------------------------------------------------------------------------- +// This file contains the interal API's of mimalloc and various utility +// functions and macros. +// -------------------------------------------------------------------------- + +#include "types.h" +#include "track.h" + +#if (MI_DEBUG>0) +#define mi_trace_message(...) _mi_trace_message(__VA_ARGS__) +#else +#define mi_trace_message(...) +#endif + +#if defined(__EMSCRIPTEN__) && !defined(__wasi__) +#define __wasi__ +#endif + +#if defined(__cplusplus) +#define mi_decl_externc extern "C" +#else +#define mi_decl_externc +#endif + +// pthreads +#if !defined(_WIN32) && !defined(__wasi__) +#define MI_USE_PTHREADS +#include +#endif + +// "options.c" +void _mi_fputs(mi_output_fun* out, void* arg, const char* prefix, const char* message); +void _mi_fprintf(mi_output_fun* out, void* arg, const char* fmt, ...); +void _mi_warning_message(const char* fmt, ...); +void _mi_verbose_message(const char* fmt, ...); +void _mi_trace_message(const char* fmt, ...); +void _mi_options_init(void); +void _mi_error_message(int err, const char* fmt, ...); + +// random.c +void _mi_random_init(mi_random_ctx_t* ctx); +void _mi_random_init_weak(mi_random_ctx_t* ctx); +void _mi_random_reinit_if_weak(mi_random_ctx_t * ctx); +void _mi_random_split(mi_random_ctx_t* ctx, mi_random_ctx_t* new_ctx); +uintptr_t _mi_random_next(mi_random_ctx_t* ctx); +uintptr_t _mi_heap_random_next(mi_heap_t* heap); +uintptr_t _mi_os_random_weak(uintptr_t extra_seed); +static inline uintptr_t _mi_random_shuffle(uintptr_t x); + +// init.c +extern mi_decl_cache_align mi_stats_t _mi_stats_main; +extern mi_decl_cache_align const mi_page_t _mi_page_empty; +bool _mi_is_main_thread(void); +size_t _mi_current_thread_count(void); +bool _mi_preloading(void); // true while the C runtime is not initialized yet +mi_threadid_t _mi_thread_id(void) mi_attr_noexcept; +mi_heap_t* _mi_heap_main_get(void); // statically allocated main backing heap +void _mi_thread_done(mi_heap_t* heap); +void _mi_thread_data_collect(void); +void _mi_tld_init(mi_tld_t* tld, mi_heap_t* bheap); + +// os.c +void _mi_os_init(void); // called from process init +void* _mi_os_alloc(size_t size, mi_memid_t* memid, mi_stats_t* stats); +void _mi_os_free(void* p, size_t size, mi_memid_t memid, mi_stats_t* stats); +void _mi_os_free_ex(void* p, size_t size, bool still_committed, mi_memid_t memid, mi_stats_t* stats); + +size_t _mi_os_page_size(void); +size_t _mi_os_good_alloc_size(size_t size); +bool _mi_os_has_overcommit(void); +bool _mi_os_has_virtual_reserve(void); + +bool _mi_os_purge(void* p, size_t size, mi_stats_t* stats); +bool _mi_os_reset(void* addr, size_t size, mi_stats_t* tld_stats); +bool _mi_os_commit(void* p, size_t size, bool* is_zero, mi_stats_t* stats); +bool _mi_os_decommit(void* addr, size_t size, mi_stats_t* stats); +bool _mi_os_protect(void* addr, size_t size); +bool _mi_os_unprotect(void* addr, size_t size); +bool _mi_os_purge(void* p, size_t size, mi_stats_t* stats); +bool _mi_os_purge_ex(void* p, size_t size, bool allow_reset, mi_stats_t* stats); + +void* _mi_os_alloc_aligned(size_t size, size_t alignment, bool commit, bool allow_large, mi_memid_t* memid, mi_stats_t* stats); +void* _mi_os_alloc_aligned_at_offset(size_t size, size_t alignment, size_t align_offset, bool commit, bool allow_large, mi_memid_t* memid, mi_stats_t* tld_stats); + +void* _mi_os_get_aligned_hint(size_t try_alignment, size_t size); +bool _mi_os_use_large_page(size_t size, size_t alignment); +size_t _mi_os_large_page_size(void); + +void* _mi_os_alloc_huge_os_pages(size_t pages, int numa_node, mi_msecs_t max_secs, size_t* pages_reserved, size_t* psize, mi_memid_t* memid); + +// arena.c +mi_arena_id_t _mi_arena_id_none(void); +void _mi_arena_free(void* p, size_t size, size_t still_committed_size, mi_memid_t memid, mi_stats_t* stats); +void* _mi_arena_alloc(size_t size, bool commit, bool allow_large, mi_arena_id_t req_arena_id, mi_memid_t* memid, mi_os_tld_t* tld); +void* _mi_arena_alloc_aligned(size_t size, size_t alignment, size_t align_offset, bool commit, bool allow_large, mi_arena_id_t req_arena_id, mi_memid_t* memid, mi_os_tld_t* tld); +bool _mi_arena_memid_is_suitable(mi_memid_t memid, mi_arena_id_t request_arena_id); +bool _mi_arena_contains(const void* p); +void _mi_arena_collect(bool force_purge, mi_stats_t* stats); +void _mi_arena_unsafe_destroy_all(mi_stats_t* stats); + +// "segment-map.c" +void _mi_segment_map_allocated_at(const mi_segment_t* segment); +void _mi_segment_map_freed_at(const mi_segment_t* segment); + +// "segment.c" +extern mi_abandoned_pool_t _mi_abandoned_default; // global abandoned pool +mi_page_t* _mi_segment_page_alloc(mi_heap_t* heap, size_t block_size, size_t page_alignment, mi_segments_tld_t* tld, mi_os_tld_t* os_tld); +void _mi_segment_page_free(mi_page_t* page, bool force, mi_segments_tld_t* tld); +void _mi_segment_page_abandon(mi_page_t* page, mi_segments_tld_t* tld); +bool _mi_segment_try_reclaim_abandoned( mi_heap_t* heap, bool try_all, mi_segments_tld_t* tld); +void _mi_segment_thread_collect(mi_segments_tld_t* tld); +bool _mi_abandoned_pool_visit_blocks(mi_abandoned_pool_t* pool, uint8_t page_tag, bool visit_blocks, mi_block_visit_fun* visitor, void* arg); + + +#if MI_HUGE_PAGE_ABANDON +void _mi_segment_huge_page_free(mi_segment_t* segment, mi_page_t* page, mi_block_t* block); +#else +void _mi_segment_huge_page_reset(mi_segment_t* segment, mi_page_t* page, mi_block_t* block); +#endif + +uint8_t* _mi_segment_page_start(const mi_segment_t* segment, const mi_page_t* page, size_t* page_size); // page start for any page +void _mi_abandoned_reclaim_all(mi_heap_t* heap, mi_segments_tld_t* tld); +void _mi_abandoned_await_readers(mi_abandoned_pool_t *pool); +void _mi_abandoned_collect(mi_heap_t* heap, bool force, mi_segments_tld_t* tld); + +// "page.c" +void* _mi_malloc_generic(mi_heap_t* heap, size_t size, bool zero, size_t huge_alignment) mi_attr_noexcept mi_attr_malloc; + +void _mi_page_retire(mi_page_t* page) mi_attr_noexcept; // free the page if there are no other pages with many free blocks +void _mi_page_unfull(mi_page_t* page); +void _mi_page_free(mi_page_t* page, mi_page_queue_t* pq, bool force); // free the page +void _mi_page_abandon(mi_page_t* page, mi_page_queue_t* pq); // abandon the page, to be picked up by another thread... +void _mi_heap_delayed_free_all(mi_heap_t* heap); +bool _mi_heap_delayed_free_partial(mi_heap_t* heap); +void _mi_heap_collect_retired(mi_heap_t* heap, bool force); + +void _mi_page_use_delayed_free(mi_page_t* page, mi_delayed_t delay, bool override_never); +bool _mi_page_try_use_delayed_free(mi_page_t* page, mi_delayed_t delay, bool override_never); +size_t _mi_page_queue_append(mi_heap_t* heap, mi_page_queue_t* pq, mi_page_queue_t* append); +void _mi_deferred_free(mi_heap_t* heap, bool force); + +void _mi_page_free_collect(mi_page_t* page,bool force); +void _mi_page_reclaim(mi_heap_t* heap, mi_page_t* page); // callback from segments + +size_t _mi_bin_size(uint8_t bin); // for stats +uint8_t _mi_bin(size_t size); // for stats + +// "heap.c" +void _mi_heap_init_ex(mi_heap_t* heap, mi_tld_t* tld, mi_arena_id_t arena_id, bool no_reclaim, uint8_t tag); +void _mi_heap_destroy_pages(mi_heap_t* heap); +void _mi_heap_collect_abandon(mi_heap_t* heap); +void _mi_heap_set_default_direct(mi_heap_t* heap); +bool _mi_heap_memid_is_suitable(mi_heap_t* heap, mi_memid_t memid); +void _mi_heap_unsafe_destroy_all(void); +void _mi_heap_area_init(mi_heap_area_t* area, mi_page_t* page); +bool _mi_heap_area_visit_blocks(const mi_heap_area_t* area, mi_page_t *page, mi_block_visit_fun* visitor, void* arg); + +// "stats.c" +void _mi_stats_done(mi_stats_t* stats); +mi_msecs_t _mi_clock_now(void); +mi_msecs_t _mi_clock_end(mi_msecs_t start); +mi_msecs_t _mi_clock_start(void); + +// "alloc.c" +void* _mi_page_malloc(mi_heap_t* heap, mi_page_t* page, size_t size, bool zero) mi_attr_noexcept; // called from `_mi_malloc_generic` +void* _mi_heap_malloc_zero(mi_heap_t* heap, size_t size, bool zero) mi_attr_noexcept; +void* _mi_heap_malloc_zero_ex(mi_heap_t* heap, size_t size, bool zero, size_t huge_alignment) mi_attr_noexcept; // called from `_mi_heap_malloc_aligned` +void* _mi_heap_realloc_zero(mi_heap_t* heap, void* p, size_t newsize, bool zero) mi_attr_noexcept; +mi_block_t* _mi_page_ptr_unalign(const mi_segment_t* segment, const mi_page_t* page, const void* p); +bool _mi_free_delayed_block(mi_block_t* block); +void _mi_free_generic(const mi_segment_t* segment, mi_page_t* page, bool is_local, void* p) mi_attr_noexcept; // for runtime integration +void _mi_padding_shrink(const mi_page_t* page, const mi_block_t* block, const size_t min_size); + +// option.c, c primitives +char _mi_toupper(char c); +int _mi_strnicmp(const char* s, const char* t, size_t n); +void _mi_strlcpy(char* dest, const char* src, size_t dest_size); +void _mi_strlcat(char* dest, const char* src, size_t dest_size); +size_t _mi_strlen(const char* s); +size_t _mi_strnlen(const char* s, size_t max_len); + + +#if MI_DEBUG>1 +bool _mi_page_is_valid(mi_page_t* page); +#endif + + +// ------------------------------------------------------ +// Branches +// ------------------------------------------------------ + +#if defined(__GNUC__) || defined(__clang__) +#define mi_unlikely(x) (__builtin_expect(!!(x),false)) +#define mi_likely(x) (__builtin_expect(!!(x),true)) +#elif (defined(__cplusplus) && (__cplusplus >= 202002L)) || (defined(_MSVC_LANG) && _MSVC_LANG >= 202002L) +#define mi_unlikely(x) (x) [[unlikely]] +#define mi_likely(x) (x) [[likely]] +#else +#define mi_unlikely(x) (x) +#define mi_likely(x) (x) +#endif + +#ifndef __has_builtin +#define __has_builtin(x) 0 +#endif + + +/* ----------------------------------------------------------- + Error codes passed to `_mi_fatal_error` + All are recoverable but EFAULT is a serious error and aborts by default in secure mode. + For portability define undefined error codes using common Unix codes: + +----------------------------------------------------------- */ +#include +#ifndef EAGAIN // double free +#define EAGAIN (11) +#endif +#ifndef ENOMEM // out of memory +#define ENOMEM (12) +#endif +#ifndef EFAULT // corrupted free-list or meta-data +#define EFAULT (14) +#endif +#ifndef EINVAL // trying to free an invalid pointer +#define EINVAL (22) +#endif +#ifndef EOVERFLOW // count*size overflow +#define EOVERFLOW (75) +#endif + + +/* ----------------------------------------------------------- + Inlined definitions +----------------------------------------------------------- */ +#define MI_UNUSED(x) (void)(x) +#if (MI_DEBUG>0) +#define MI_UNUSED_RELEASE(x) +#else +#define MI_UNUSED_RELEASE(x) MI_UNUSED(x) +#endif + +#define MI_INIT4(x) x(),x(),x(),x() +#define MI_INIT8(x) MI_INIT4(x),MI_INIT4(x) +#define MI_INIT16(x) MI_INIT8(x),MI_INIT8(x) +#define MI_INIT32(x) MI_INIT16(x),MI_INIT16(x) +#define MI_INIT64(x) MI_INIT32(x),MI_INIT32(x) +#define MI_INIT128(x) MI_INIT64(x),MI_INIT64(x) +#define MI_INIT256(x) MI_INIT128(x),MI_INIT128(x) + + +#include +// initialize a local variable to zero; use memset as compilers optimize constant sized memset's +#define _mi_memzero_var(x) memset(&x,0,sizeof(x)) + +// Is `x` a power of two? (0 is considered a power of two) +static inline bool _mi_is_power_of_two(uintptr_t x) { + return ((x & (x - 1)) == 0); +} + +// Is a pointer aligned? +static inline bool _mi_is_aligned(void* p, size_t alignment) { + mi_assert_internal(alignment != 0); + return (((uintptr_t)p % alignment) == 0); +} + +// Align upwards +static inline uintptr_t _mi_align_up(uintptr_t sz, size_t alignment) { + mi_assert_internal(alignment != 0); + uintptr_t mask = alignment - 1; + if ((alignment & mask) == 0) { // power of two? + return ((sz + mask) & ~mask); + } + else { + return (((sz + mask)/alignment)*alignment); + } +} + +// Align downwards +static inline uintptr_t _mi_align_down(uintptr_t sz, size_t alignment) { + mi_assert_internal(alignment != 0); + uintptr_t mask = alignment - 1; + if ((alignment & mask) == 0) { // power of two? + return (sz & ~mask); + } + else { + return ((sz / alignment) * alignment); + } +} + +// Divide upwards: `s <= _mi_divide_up(s,d)*d < s+d`. +static inline uintptr_t _mi_divide_up(uintptr_t size, size_t divider) { + mi_assert_internal(divider != 0); + return (divider == 0 ? size : ((size + divider - 1) / divider)); +} + +// Is memory zero initialized? +static inline bool mi_mem_is_zero(const void* p, size_t size) { + for (size_t i = 0; i < size; i++) { + if (((uint8_t*)p)[i] != 0) return false; + } + return true; +} + + +// Align a byte size to a size in _machine words_, +// i.e. byte size == `wsize*sizeof(void*)`. +static inline size_t _mi_wsize_from_size(size_t size) { + mi_assert_internal(size <= SIZE_MAX - sizeof(uintptr_t)); + return (size + sizeof(uintptr_t) - 1) / sizeof(uintptr_t); +} + +// Overflow detecting multiply +#if __has_builtin(__builtin_umul_overflow) || (defined(__GNUC__) && (__GNUC__ >= 5)) +#include // UINT_MAX, ULONG_MAX +#if defined(_CLOCK_T) // for Illumos +#undef _CLOCK_T +#endif +static inline bool mi_mul_overflow(size_t count, size_t size, size_t* total) { + #if (SIZE_MAX == ULONG_MAX) + return __builtin_umull_overflow(count, size, (unsigned long *)total); + #elif (SIZE_MAX == UINT_MAX) + return __builtin_umul_overflow(count, size, (unsigned int *)total); + #else + return __builtin_umulll_overflow(count, size, (unsigned long long *)total); + #endif +} +#else /* __builtin_umul_overflow is unavailable */ +static inline bool mi_mul_overflow(size_t count, size_t size, size_t* total) { + #define MI_MUL_NO_OVERFLOW ((size_t)1 << (4*sizeof(size_t))) // sqrt(SIZE_MAX) + *total = count * size; + // note: gcc/clang optimize this to directly check the overflow flag + return ((size >= MI_MUL_NO_OVERFLOW || count >= MI_MUL_NO_OVERFLOW) && size > 0 && (SIZE_MAX / size) < count); +} +#endif + +// Safe multiply `count*size` into `total`; return `true` on overflow. +static inline bool mi_count_size_overflow(size_t count, size_t size, size_t* total) { + if (count==1) { // quick check for the case where count is one (common for C++ allocators) + *total = size; + return false; + } + else if mi_unlikely(mi_mul_overflow(count, size, total)) { + #if MI_DEBUG > 0 + _mi_error_message(EOVERFLOW, "allocation request is too large (%zu * %zu bytes)\n", count, size); + #endif + *total = SIZE_MAX; + return true; + } + else return false; +} + + +/*---------------------------------------------------------------------------------------- + Heap functions +------------------------------------------------------------------------------------------- */ + +extern const mi_heap_t _mi_heap_empty; // read-only empty heap, initial value of the thread local default heap + +static inline bool mi_heap_is_backing(const mi_heap_t* heap) { + return (heap->tld->heap_backing == heap); +} + +static inline bool mi_heap_is_initialized(mi_heap_t* heap) { + mi_assert_internal(heap != NULL); + return (heap != &_mi_heap_empty); +} + +static inline uintptr_t _mi_ptr_cookie(const void* p) { + extern mi_heap_t _mi_heap_main; + mi_assert_internal(_mi_heap_main.cookie != 0); + return ((uintptr_t)p ^ _mi_heap_main.cookie); +} + +/* ----------------------------------------------------------- + Pages +----------------------------------------------------------- */ + +static inline mi_page_t* _mi_heap_get_free_small_page(mi_heap_t* heap, size_t size) { + mi_assert_internal(size <= (MI_SMALL_SIZE_MAX + MI_PADDING_SIZE)); + const size_t idx = _mi_wsize_from_size(size); + mi_assert_internal(idx < MI_PAGES_DIRECT); + return heap->pages_free_direct[idx]; +} + +// Segment that contains the pointer +// Large aligned blocks may be aligned at N*MI_SEGMENT_SIZE (inside a huge segment > MI_SEGMENT_SIZE), +// and we need align "down" to the segment info which is `MI_SEGMENT_SIZE` bytes before it; +// therefore we align one byte before `p`. +static inline mi_segment_t* _mi_ptr_segment(const void* p) { + mi_assert_internal(p != NULL); + return (mi_segment_t*)(((uintptr_t)p - 1) & ~MI_SEGMENT_MASK); +} + +static inline mi_page_t* mi_slice_to_page(mi_slice_t* s) { + mi_assert_internal(s->slice_offset== 0 && s->slice_count > 0); + return (mi_page_t*)(s); +} + +static inline mi_slice_t* mi_page_to_slice(mi_page_t* p) { + mi_assert_internal(p->slice_offset== 0 && p->slice_count > 0); + return (mi_slice_t*)(p); +} + +// Segment belonging to a page +static inline mi_segment_t* _mi_page_segment(const mi_page_t* page) { + mi_segment_t* segment = _mi_ptr_segment(page); + mi_assert_internal(segment == NULL || ((mi_slice_t*)page >= segment->slices && (mi_slice_t*)page < segment->slices + segment->slice_entries)); + return segment; +} + +static inline mi_slice_t* mi_slice_first(const mi_slice_t* slice) { + mi_slice_t* start = (mi_slice_t*)((uint8_t*)slice - slice->slice_offset); + mi_assert_internal(start >= _mi_ptr_segment(slice)->slices); + mi_assert_internal(start->slice_offset == 0); + mi_assert_internal(start + start->slice_count > slice); + return start; +} + +// Get the page containing the pointer (performance critical as it is called in mi_free) +static inline mi_page_t* _mi_segment_page_of(const mi_segment_t* segment, const void* p) { + mi_assert_internal(p > (void*)segment); + ptrdiff_t diff = (uint8_t*)p - (uint8_t*)segment; + mi_assert_internal(diff > 0 && diff <= (ptrdiff_t)MI_SEGMENT_SIZE); + size_t idx = (size_t)diff >> MI_SEGMENT_SLICE_SHIFT; + mi_assert_internal(idx <= segment->slice_entries); + mi_slice_t* slice0 = (mi_slice_t*)&segment->slices[idx]; + mi_slice_t* slice = mi_slice_first(slice0); // adjust to the block that holds the page data + mi_assert_internal(slice->slice_offset == 0); + mi_assert_internal(slice >= segment->slices && slice < segment->slices + segment->slice_entries); + return mi_slice_to_page(slice); +} + +// Quick page start for initialized pages +static inline uint8_t* _mi_page_start(const mi_segment_t* segment, const mi_page_t* page, size_t* page_size) { + return _mi_segment_page_start(segment, page, page_size); +} + +// Get the page containing the pointer +static inline mi_page_t* _mi_ptr_page(void* p) { + return _mi_segment_page_of(_mi_ptr_segment(p), p); +} + +// Get the block size of a page (special case for huge objects) +static inline size_t mi_page_block_size(const mi_page_t* page) { + const size_t bsize = page->xblock_size; + mi_assert_internal(bsize > 0); + if mi_likely(bsize < MI_HUGE_BLOCK_SIZE) { + return bsize; + } + else { + size_t psize; + _mi_segment_page_start(_mi_page_segment(page), page, &psize); + return psize; + } +} + +static inline bool mi_page_is_huge(const mi_page_t* page) { + return (_mi_page_segment(page)->kind == MI_SEGMENT_HUGE); +} + +// Get the usable block size of a page without fixed padding. +// This may still include internal padding due to alignment and rounding up size classes. +static inline size_t mi_page_usable_block_size(const mi_page_t* page) { + return mi_page_block_size(page) - MI_PADDING_SIZE; +} + +// size of a segment +static inline size_t mi_segment_size(mi_segment_t* segment) { + return segment->segment_slices * MI_SEGMENT_SLICE_SIZE; +} + +static inline uint8_t* mi_segment_end(mi_segment_t* segment) { + return (uint8_t*)segment + mi_segment_size(segment); +} + +// Thread free access +static inline mi_block_t* mi_page_thread_free(const mi_page_t* page) { + return (mi_block_t*)(mi_atomic_load_relaxed(&((mi_page_t*)page)->xthread_free) & ~3); +} + +static inline mi_delayed_t mi_page_thread_free_flag(const mi_page_t* page) { + return (mi_delayed_t)(mi_atomic_load_relaxed(&((mi_page_t*)page)->xthread_free) & 3); +} + +// Heap access +static inline mi_heap_t* mi_page_heap(const mi_page_t* page) { + return (mi_heap_t*)(mi_atomic_load_relaxed(&((mi_page_t*)page)->xheap)); +} + +static inline void mi_page_set_heap(mi_page_t* page, mi_heap_t* heap) { + mi_assert_internal(mi_page_thread_free_flag(page) != MI_DELAYED_FREEING); + mi_atomic_store_release(&page->xheap,(uintptr_t)heap); +} + +// Thread free flag helpers +static inline mi_block_t* mi_tf_block(mi_thread_free_t tf) { + return (mi_block_t*)(tf & ~0x03); +} +static inline mi_delayed_t mi_tf_delayed(mi_thread_free_t tf) { + return (mi_delayed_t)(tf & 0x03); +} +static inline mi_thread_free_t mi_tf_make(mi_block_t* block, mi_delayed_t delayed) { + return (mi_thread_free_t)((uintptr_t)block | (uintptr_t)delayed); +} +static inline mi_thread_free_t mi_tf_set_delayed(mi_thread_free_t tf, mi_delayed_t delayed) { + return mi_tf_make(mi_tf_block(tf),delayed); +} +static inline mi_thread_free_t mi_tf_set_block(mi_thread_free_t tf, mi_block_t* block) { + return mi_tf_make(block, mi_tf_delayed(tf)); +} + +// are all blocks in a page freed? +// note: needs up-to-date used count, (as the `xthread_free` list may not be empty). see `_mi_page_collect_free`. +static inline bool mi_page_all_free(const mi_page_t* page) { + mi_assert_internal(page != NULL); + return (page->used == 0); +} + +// are there any available blocks? +static inline bool mi_page_has_any_available(const mi_page_t* page) { + mi_assert_internal(page != NULL && page->reserved > 0); + return (page->used < page->reserved || (mi_page_thread_free(page) != NULL)); +} + +// are there immediately available blocks, i.e. blocks available on the free list. +static inline bool mi_page_immediate_available(const mi_page_t* page) { + mi_assert_internal(page != NULL); + return (page->free != NULL); +} + +// is more than 7/8th of a page in use? +static inline bool mi_page_mostly_used(const mi_page_t* page) { + if (page==NULL) return true; + uint16_t frac = page->reserved / 8U; + return (page->reserved - page->used <= frac); +} + +static inline mi_page_queue_t* mi_page_queue(const mi_heap_t* heap, size_t size) { + return &((mi_heap_t*)heap)->pages[_mi_bin(size)]; +} + + + +//----------------------------------------------------------- +// Page flags +//----------------------------------------------------------- +static inline bool mi_page_is_in_full(const mi_page_t* page) { + return page->flags.x.in_full; +} + +static inline void mi_page_set_in_full(mi_page_t* page, bool in_full) { + page->flags.x.in_full = in_full; +} + +static inline bool mi_page_has_aligned(const mi_page_t* page) { + return page->flags.x.has_aligned; +} + +static inline void mi_page_set_has_aligned(mi_page_t* page, bool has_aligned) { + page->flags.x.has_aligned = has_aligned; +} + + +/* ------------------------------------------------------------------- +Encoding/Decoding the free list next pointers + +This is to protect against buffer overflow exploits where the +free list is mutated. Many hardened allocators xor the next pointer `p` +with a secret key `k1`, as `p^k1`. This prevents overwriting with known +values but might be still too weak: if the attacker can guess +the pointer `p` this can reveal `k1` (since `p^k1^p == k1`). +Moreover, if multiple blocks can be read as well, the attacker can +xor both as `(p1^k1) ^ (p2^k1) == p1^p2` which may reveal a lot +about the pointers (and subsequently `k1`). + +Instead mimalloc uses an extra key `k2` and encodes as `((p^k2)<<> (MI_INTPTR_BITS - shift)))); +} +static inline uintptr_t mi_rotr(uintptr_t x, uintptr_t shift) { + shift %= MI_INTPTR_BITS; + return (shift==0 ? x : ((x >> shift) | (x << (MI_INTPTR_BITS - shift)))); +} + +static inline void* mi_ptr_decode(const void* null, const mi_encoded_t x, const uintptr_t* keys) { + void* p = (void*)(mi_rotr(x - keys[0], keys[0]) ^ keys[1]); + return (p==null ? NULL : p); +} + +static inline mi_encoded_t mi_ptr_encode(const void* null, const void* p, const uintptr_t* keys) { + uintptr_t x = (uintptr_t)(p==NULL ? null : p); + return mi_rotl(x ^ keys[1], keys[0]) + keys[0]; +} + +static inline mi_block_t* mi_block_nextx( const void* null, const mi_block_t* block, const uintptr_t* keys ) { + mi_track_mem_defined(block,sizeof(mi_block_t)); + mi_block_t* next; + #ifdef MI_ENCODE_FREELIST + next = (mi_block_t*)mi_ptr_decode(null, block->next, keys); + #else + MI_UNUSED(keys); MI_UNUSED(null); + next = (mi_block_t*)block->next; + #endif + mi_track_mem_noaccess(block,sizeof(mi_block_t)); + return next; +} + +static inline void mi_block_set_nextx(const void* null, mi_block_t* block, const mi_block_t* next, const uintptr_t* keys) { + mi_track_mem_undefined(block,sizeof(mi_block_t)); + #ifdef MI_ENCODE_FREELIST + block->next = mi_ptr_encode(null, next, keys); + #else + MI_UNUSED(keys); MI_UNUSED(null); + block->next = (mi_encoded_t)next; + #endif + mi_track_mem_noaccess(block,sizeof(mi_block_t)); +} + +static inline mi_block_t* mi_block_next(const mi_page_t* page, const mi_block_t* block) { + #ifdef MI_ENCODE_FREELIST + mi_block_t* next = mi_block_nextx(page,block,page->keys); + // check for free list corruption: is `next` at least in the same page? + // TODO: check if `next` is `page->block_size` aligned? + if mi_unlikely(next!=NULL && !mi_is_in_same_page(block, next)) { + _mi_error_message(EFAULT, "corrupted free list entry of size %zub at %p: value 0x%zx\n", mi_page_block_size(page), block, (uintptr_t)next); + next = NULL; + } + return next; + #else + MI_UNUSED(page); + return mi_block_nextx(page,block,NULL); + #endif +} + +static inline void mi_block_set_next(const mi_page_t* page, mi_block_t* block, const mi_block_t* next) { + #ifdef MI_ENCODE_FREELIST + mi_block_set_nextx(page,block,next, page->keys); + #else + MI_UNUSED(page); + mi_block_set_nextx(page,block,next,NULL); + #endif +} + + +// ------------------------------------------------------------------- +// commit mask +// ------------------------------------------------------------------- + +static inline void mi_commit_mask_create_empty(mi_commit_mask_t* cm) { + for (size_t i = 0; i < MI_COMMIT_MASK_FIELD_COUNT; i++) { + cm->mask[i] = 0; + } +} + +static inline void mi_commit_mask_create_full(mi_commit_mask_t* cm) { + for (size_t i = 0; i < MI_COMMIT_MASK_FIELD_COUNT; i++) { + cm->mask[i] = ~((size_t)0); + } +} + +static inline bool mi_commit_mask_is_empty(const mi_commit_mask_t* cm) { + for (size_t i = 0; i < MI_COMMIT_MASK_FIELD_COUNT; i++) { + if (cm->mask[i] != 0) return false; + } + return true; +} + +static inline bool mi_commit_mask_is_full(const mi_commit_mask_t* cm) { + for (size_t i = 0; i < MI_COMMIT_MASK_FIELD_COUNT; i++) { + if (cm->mask[i] != ~((size_t)0)) return false; + } + return true; +} + +// defined in `segment.c`: +size_t _mi_commit_mask_committed_size(const mi_commit_mask_t* cm, size_t total); +size_t _mi_commit_mask_next_run(const mi_commit_mask_t* cm, size_t* idx); + +#define mi_commit_mask_foreach(cm,idx,count) \ + idx = 0; \ + while ((count = _mi_commit_mask_next_run(cm,&idx)) > 0) { + +#define mi_commit_mask_foreach_end() \ + idx += count; \ + } + + + +/* ----------------------------------------------------------- + memory id's +----------------------------------------------------------- */ + +static inline mi_memid_t _mi_memid_create(mi_memkind_t memkind) { + mi_memid_t memid; + _mi_memzero_var(memid); + memid.memkind = memkind; + return memid; +} + +static inline mi_memid_t _mi_memid_none(void) { + return _mi_memid_create(MI_MEM_NONE); +} + +static inline mi_memid_t _mi_memid_create_os(bool committed, bool is_zero, bool is_large) { + mi_memid_t memid = _mi_memid_create(MI_MEM_OS); + memid.initially_committed = committed; + memid.initially_zero = is_zero; + memid.is_pinned = is_large; + return memid; +} + + +// ------------------------------------------------------------------- +// Fast "random" shuffle +// ------------------------------------------------------------------- + +static inline uintptr_t _mi_random_shuffle(uintptr_t x) { + if (x==0) { x = 17; } // ensure we don't get stuck in generating zeros +#if (MI_INTPTR_SIZE==8) + // by Sebastiano Vigna, see: + x ^= x >> 30; + x *= 0xbf58476d1ce4e5b9UL; + x ^= x >> 27; + x *= 0x94d049bb133111ebUL; + x ^= x >> 31; +#elif (MI_INTPTR_SIZE==4) + // by Chris Wellons, see: + x ^= x >> 16; + x *= 0x7feb352dUL; + x ^= x >> 15; + x *= 0x846ca68bUL; + x ^= x >> 16; +#endif + return x; +} + +// ------------------------------------------------------------------- +// Optimize numa node access for the common case (= one node) +// ------------------------------------------------------------------- + +int _mi_os_numa_node_get(mi_os_tld_t* tld); +size_t _mi_os_numa_node_count_get(void); + +extern _Atomic(size_t) _mi_numa_node_count; +static inline int _mi_os_numa_node(mi_os_tld_t* tld) { + if mi_likely(mi_atomic_load_relaxed(&_mi_numa_node_count) == 1) { return 0; } + else return _mi_os_numa_node_get(tld); +} +static inline size_t _mi_os_numa_node_count(void) { + const size_t count = mi_atomic_load_relaxed(&_mi_numa_node_count); + if mi_likely(count > 0) { return count; } + else return _mi_os_numa_node_count_get(); +} + + + +// ----------------------------------------------------------------------- +// Count bits: trailing or leading zeros (with MI_INTPTR_BITS on all zero) +// ----------------------------------------------------------------------- + +#if defined(__GNUC__) + +#include // LONG_MAX +#define MI_HAVE_FAST_BITSCAN +static inline size_t mi_clz(uintptr_t x) { + if (x==0) return MI_INTPTR_BITS; +#if (INTPTR_MAX == LONG_MAX) + return __builtin_clzl(x); +#else + return __builtin_clzll(x); +#endif +} +static inline size_t mi_ctz(uintptr_t x) { + if (x==0) return MI_INTPTR_BITS; +#if (INTPTR_MAX == LONG_MAX) + return __builtin_ctzl(x); +#else + return __builtin_ctzll(x); +#endif +} + +#elif defined(_MSC_VER) + +#include // LONG_MAX +#include // BitScanReverse64 +#define MI_HAVE_FAST_BITSCAN +static inline size_t mi_clz(uintptr_t x) { + if (x==0) return MI_INTPTR_BITS; + unsigned long idx; +#if (INTPTR_MAX == LONG_MAX) + _BitScanReverse(&idx, x); +#else + _BitScanReverse64(&idx, x); +#endif + return ((MI_INTPTR_BITS - 1) - idx); +} +static inline size_t mi_ctz(uintptr_t x) { + if (x==0) return MI_INTPTR_BITS; + unsigned long idx; +#if (INTPTR_MAX == LONG_MAX) + _BitScanForward(&idx, x); +#else + _BitScanForward64(&idx, x); +#endif + return idx; +} + +#else +static inline size_t mi_ctz32(uint32_t x) { + // de Bruijn multiplication, see + static const unsigned char debruijn[32] = { + 0, 1, 28, 2, 29, 14, 24, 3, 30, 22, 20, 15, 25, 17, 4, 8, + 31, 27, 13, 23, 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, 10, 9 + }; + if (x==0) return 32; + return debruijn[((x & -(int32_t)x) * 0x077CB531UL) >> 27]; +} +static inline size_t mi_clz32(uint32_t x) { + // de Bruijn multiplication, see + static const uint8_t debruijn[32] = { + 31, 22, 30, 21, 18, 10, 29, 2, 20, 17, 15, 13, 9, 6, 28, 1, + 23, 19, 11, 3, 16, 14, 7, 24, 12, 4, 8, 25, 5, 26, 27, 0 + }; + if (x==0) return 32; + x |= x >> 1; + x |= x >> 2; + x |= x >> 4; + x |= x >> 8; + x |= x >> 16; + return debruijn[(uint32_t)(x * 0x07C4ACDDUL) >> 27]; +} + +static inline size_t mi_clz(uintptr_t x) { + if (x==0) return MI_INTPTR_BITS; +#if (MI_INTPTR_BITS <= 32) + return mi_clz32((uint32_t)x); +#else + size_t count = mi_clz32((uint32_t)(x >> 32)); + if (count < 32) return count; + return (32 + mi_clz32((uint32_t)x)); +#endif +} +static inline size_t mi_ctz(uintptr_t x) { + if (x==0) return MI_INTPTR_BITS; +#if (MI_INTPTR_BITS <= 32) + return mi_ctz32((uint32_t)x); +#else + size_t count = mi_ctz32((uint32_t)x); + if (count < 32) return count; + return (32 + mi_ctz32((uint32_t)(x>>32))); +#endif +} + +#endif + +// "bit scan reverse": Return index of the highest bit (or MI_INTPTR_BITS if `x` is zero) +static inline size_t mi_bsr(uintptr_t x) { + return (x==0 ? MI_INTPTR_BITS : MI_INTPTR_BITS - 1 - mi_clz(x)); +} + + +// --------------------------------------------------------------------------------- +// Provide our own `_mi_memcpy` for potential performance optimizations. +// +// For now, only on Windows with msvc/clang-cl we optimize to `rep movsb` if +// we happen to run on x86/x64 cpu's that have "fast short rep movsb" (FSRM) support +// (AMD Zen3+ (~2020) or Intel Ice Lake+ (~2017). See also issue #201 and pr #253. +// --------------------------------------------------------------------------------- + +#if !MI_TRACK_ENABLED && defined(_WIN32) && (defined(_M_IX86) || defined(_M_X64)) +#include +extern bool _mi_cpu_has_fsrm; +static inline void _mi_memcpy(void* dst, const void* src, size_t n) { + if (_mi_cpu_has_fsrm) { + __movsb((unsigned char*)dst, (const unsigned char*)src, n); + } + else { + memcpy(dst, src, n); + } +} +static inline void _mi_memzero(void* dst, size_t n) { + if (_mi_cpu_has_fsrm) { + __stosb((unsigned char*)dst, 0, n); + } + else { + memset(dst, 0, n); + } +} +#else +static inline void _mi_memcpy(void* dst, const void* src, size_t n) { + memcpy(dst, src, n); +} +static inline void _mi_memzero(void* dst, size_t n) { + memset(dst, 0, n); +} +#endif + +// ------------------------------------------------------------------------------- +// The `_mi_memcpy_aligned` can be used if the pointers are machine-word aligned +// This is used for example in `mi_realloc`. +// ------------------------------------------------------------------------------- + +#if (defined(__GNUC__) && (__GNUC__ >= 4)) || defined(__clang__) +// On GCC/CLang we provide a hint that the pointers are word aligned. +static inline void _mi_memcpy_aligned(void* dst, const void* src, size_t n) { + mi_assert_internal(((uintptr_t)dst % MI_INTPTR_SIZE == 0) && ((uintptr_t)src % MI_INTPTR_SIZE == 0)); + void* adst = __builtin_assume_aligned(dst, MI_INTPTR_SIZE); + const void* asrc = __builtin_assume_aligned(src, MI_INTPTR_SIZE); + _mi_memcpy(adst, asrc, n); +} + +static inline void _mi_memzero_aligned(void* dst, size_t n) { + mi_assert_internal((uintptr_t)dst % MI_INTPTR_SIZE == 0); + void* adst = __builtin_assume_aligned(dst, MI_INTPTR_SIZE); + _mi_memzero(adst, n); +} +#else +// Default fallback on `_mi_memcpy` +static inline void _mi_memcpy_aligned(void* dst, const void* src, size_t n) { + mi_assert_internal(((uintptr_t)dst % MI_INTPTR_SIZE == 0) && ((uintptr_t)src % MI_INTPTR_SIZE == 0)); + _mi_memcpy(dst, src, n); +} + +static inline void _mi_memzero_aligned(void* dst, size_t n) { + mi_assert_internal((uintptr_t)dst % MI_INTPTR_SIZE == 0); + _mi_memzero(dst, n); +} +#endif + + +#endif diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/mimalloc/mimalloc/prim.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/mimalloc/mimalloc/prim.h new file mode 100644 index 000000000..8a60d5284 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/mimalloc/mimalloc/prim.h @@ -0,0 +1,329 @@ +/* ---------------------------------------------------------------------------- +Copyright (c) 2018-2023, Microsoft Research, Daan Leijen +This is free software; you can redistribute it and/or modify it under the +terms of the MIT license. A copy of the license can be found in the file +"LICENSE" at the root of this distribution. +-----------------------------------------------------------------------------*/ +#pragma once +#ifndef MIMALLOC_PRIM_H +#define MIMALLOC_PRIM_H + + +// -------------------------------------------------------------------------- +// This file specifies the primitive portability API. +// Each OS/host needs to implement these primitives, see `src/prim` +// for implementations on Window, macOS, WASI, and Linux/Unix. +// +// note: on all primitive functions, we always have result parameters != NUL, and: +// addr != NULL and page aligned +// size > 0 and page aligned +// return value is an error code an int where 0 is success. +// -------------------------------------------------------------------------- + +// OS memory configuration +typedef struct mi_os_mem_config_s { + size_t page_size; // 4KiB + size_t large_page_size; // 2MiB + size_t alloc_granularity; // smallest allocation size (on Windows 64KiB) + bool has_overcommit; // can we reserve more memory than can be actually committed? + bool must_free_whole; // must allocated blocks be freed as a whole (false for mmap, true for VirtualAlloc) + bool has_virtual_reserve; // supports virtual address space reservation? (if true we can reserve virtual address space without using commit or physical memory) +} mi_os_mem_config_t; + +// Initialize +void _mi_prim_mem_init( mi_os_mem_config_t* config ); + +// Free OS memory +int _mi_prim_free(void* addr, size_t size ); + +// Allocate OS memory. Return NULL on error. +// The `try_alignment` is just a hint and the returned pointer does not have to be aligned. +// If `commit` is false, the virtual memory range only needs to be reserved (with no access) +// which will later be committed explicitly using `_mi_prim_commit`. +// `is_zero` is set to true if the memory was zero initialized (as on most OS's) +// pre: !commit => !allow_large +// try_alignment >= _mi_os_page_size() and a power of 2 +int _mi_prim_alloc(size_t size, size_t try_alignment, bool commit, bool allow_large, bool* is_large, bool* is_zero, void** addr); + +// Commit memory. Returns error code or 0 on success. +// For example, on Linux this would make the memory PROT_READ|PROT_WRITE. +// `is_zero` is set to true if the memory was zero initialized (e.g. on Windows) +int _mi_prim_commit(void* addr, size_t size, bool* is_zero); + +// Decommit memory. Returns error code or 0 on success. The `needs_recommit` result is true +// if the memory would need to be re-committed. For example, on Windows this is always true, +// but on Linux we could use MADV_DONTNEED to decommit which does not need a recommit. +// pre: needs_recommit != NULL +int _mi_prim_decommit(void* addr, size_t size, bool* needs_recommit); + +// Reset memory. The range keeps being accessible but the content might be reset. +// Returns error code or 0 on success. +int _mi_prim_reset(void* addr, size_t size); + +// Protect memory. Returns error code or 0 on success. +int _mi_prim_protect(void* addr, size_t size, bool protect); + +// Allocate huge (1GiB) pages possibly associated with a NUMA node. +// `is_zero` is set to true if the memory was zero initialized (as on most OS's) +// pre: size > 0 and a multiple of 1GiB. +// numa_node is either negative (don't care), or a numa node number. +int _mi_prim_alloc_huge_os_pages(void* hint_addr, size_t size, int numa_node, bool* is_zero, void** addr); + +// Return the current NUMA node +size_t _mi_prim_numa_node(void); + +// Return the number of logical NUMA nodes +size_t _mi_prim_numa_node_count(void); + +// Clock ticks +mi_msecs_t _mi_prim_clock_now(void); + +// Return process information (only for statistics) +typedef struct mi_process_info_s { + mi_msecs_t elapsed; + mi_msecs_t utime; + mi_msecs_t stime; + size_t current_rss; + size_t peak_rss; + size_t current_commit; + size_t peak_commit; + size_t page_faults; +} mi_process_info_t; + +void _mi_prim_process_info(mi_process_info_t* pinfo); + +// Default stderr output. (only for warnings etc. with verbose enabled) +// msg != NULL && _mi_strlen(msg) > 0 +void _mi_prim_out_stderr( const char* msg ); + +// Get an environment variable. (only for options) +// name != NULL, result != NULL, result_size >= 64 +bool _mi_prim_getenv(const char* name, char* result, size_t result_size); + + +// Fill a buffer with strong randomness; return `false` on error or if +// there is no strong randomization available. +bool _mi_prim_random_buf(void* buf, size_t buf_len); + +// Called on the first thread start, and should ensure `_mi_thread_done` is called on thread termination. +void _mi_prim_thread_init_auto_done(void); + +// Called on process exit and may take action to clean up resources associated with the thread auto done. +void _mi_prim_thread_done_auto_done(void); + +// Called when the default heap for a thread changes +void _mi_prim_thread_associate_default_heap(mi_heap_t* heap); + + +//------------------------------------------------------------------- +// Thread id: `_mi_prim_thread_id()` +// +// Getting the thread id should be performant as it is called in the +// fast path of `_mi_free` and we specialize for various platforms as +// inlined definitions. Regular code should call `init.c:_mi_thread_id()`. +// We only require _mi_prim_thread_id() to return a unique id +// for each thread (unequal to zero). +//------------------------------------------------------------------- + +// defined in `init.c`; do not use these directly +extern mi_decl_thread mi_heap_t* _mi_heap_default; // default heap to allocate from +extern bool _mi_process_is_initialized; // has mi_process_init been called? + +static inline mi_threadid_t _mi_prim_thread_id(void) mi_attr_noexcept; + +#ifdef MI_PRIM_THREAD_ID + +static inline mi_threadid_t _mi_prim_thread_id(void) mi_attr_noexcept { + return MI_PRIM_THREAD_ID(); +} + +#elif defined(_WIN32) + +#define WIN32_LEAN_AND_MEAN +#include +static inline mi_threadid_t _mi_prim_thread_id(void) mi_attr_noexcept { + // Windows: works on Intel and ARM in both 32- and 64-bit + return (uintptr_t)NtCurrentTeb(); +} + +// We use assembly for a fast thread id on the main platforms. The TLS layout depends on +// both the OS and libc implementation so we use specific tests for each main platform. +// If you test on another platform and it works please send a PR :-) +// see also https://akkadia.org/drepper/tls.pdf for more info on the TLS register. +#elif defined(__GNUC__) && ( \ + (defined(__GLIBC__) && (defined(__x86_64__) || defined(__i386__) || defined(__arm__) || defined(__aarch64__))) \ + || (defined(__APPLE__) && (defined(__x86_64__) || defined(__aarch64__))) \ + || (defined(__BIONIC__) && (defined(__x86_64__) || defined(__i386__) || defined(__arm__) || defined(__aarch64__))) \ + || (defined(__FreeBSD__) && (defined(__x86_64__) || defined(__i386__) || defined(__aarch64__))) \ + || (defined(__OpenBSD__) && (defined(__x86_64__) || defined(__i386__) || defined(__aarch64__))) \ + ) + +static inline void* mi_prim_tls_slot(size_t slot) mi_attr_noexcept { + void* res; + const size_t ofs = (slot*sizeof(void*)); + #if defined(__i386__) + __asm__("movl %%gs:%1, %0" : "=r" (res) : "m" (*((void**)ofs)) : ); // x86 32-bit always uses GS + #elif defined(__APPLE__) && defined(__x86_64__) + __asm__("movq %%gs:%1, %0" : "=r" (res) : "m" (*((void**)ofs)) : ); // x86_64 macOSX uses GS + #elif defined(__x86_64__) && (MI_INTPTR_SIZE==4) + __asm__("movl %%fs:%1, %0" : "=r" (res) : "m" (*((void**)ofs)) : ); // x32 ABI + #elif defined(__x86_64__) + __asm__("movq %%fs:%1, %0" : "=r" (res) : "m" (*((void**)ofs)) : ); // x86_64 Linux, BSD uses FS + #elif defined(__arm__) + void** tcb; MI_UNUSED(ofs); + __asm__ volatile ("mrc p15, 0, %0, c13, c0, 3\nbic %0, %0, #3" : "=r" (tcb)); + res = tcb[slot]; + #elif defined(__aarch64__) + void** tcb; MI_UNUSED(ofs); + #if defined(__APPLE__) // M1, issue #343 + __asm__ volatile ("mrs %0, tpidrro_el0\nbic %0, %0, #7" : "=r" (tcb)); + #else + __asm__ volatile ("mrs %0, tpidr_el0" : "=r" (tcb)); + #endif + res = tcb[slot]; + #endif + return res; +} + +// setting a tls slot is only used on macOS for now +static inline void mi_prim_tls_slot_set(size_t slot, void* value) mi_attr_noexcept { + const size_t ofs = (slot*sizeof(void*)); + #if defined(__i386__) + __asm__("movl %1,%%gs:%0" : "=m" (*((void**)ofs)) : "rn" (value) : ); // 32-bit always uses GS + #elif defined(__APPLE__) && defined(__x86_64__) + __asm__("movq %1,%%gs:%0" : "=m" (*((void**)ofs)) : "rn" (value) : ); // x86_64 macOS uses GS + #elif defined(__x86_64__) && (MI_INTPTR_SIZE==4) + __asm__("movl %1,%%fs:%0" : "=m" (*((void**)ofs)) : "rn" (value) : ); // x32 ABI + #elif defined(__x86_64__) + __asm__("movq %1,%%fs:%0" : "=m" (*((void**)ofs)) : "rn" (value) : ); // x86_64 Linux, BSD uses FS + #elif defined(__arm__) + void** tcb; MI_UNUSED(ofs); + __asm__ volatile ("mrc p15, 0, %0, c13, c0, 3\nbic %0, %0, #3" : "=r" (tcb)); + tcb[slot] = value; + #elif defined(__aarch64__) + void** tcb; MI_UNUSED(ofs); + #if defined(__APPLE__) // M1, issue #343 + __asm__ volatile ("mrs %0, tpidrro_el0\nbic %0, %0, #7" : "=r" (tcb)); + #else + __asm__ volatile ("mrs %0, tpidr_el0" : "=r" (tcb)); + #endif + tcb[slot] = value; + #endif +} + +static inline mi_threadid_t _mi_prim_thread_id(void) mi_attr_noexcept { + #if defined(__BIONIC__) + // issue #384, #495: on the Bionic libc (Android), slot 1 is the thread id + // see: https://github.com/aosp-mirror/platform_bionic/blob/c44b1d0676ded732df4b3b21c5f798eacae93228/libc/platform/bionic/tls_defines.h#L86 + return (uintptr_t)mi_prim_tls_slot(1); + #else + // in all our other targets, slot 0 is the thread id + // glibc: https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=sysdeps/x86_64/nptl/tls.h + // apple: https://github.com/apple/darwin-xnu/blob/main/libsyscall/os/tsd.h#L36 + return (uintptr_t)mi_prim_tls_slot(0); + #endif +} + +#else + +// otherwise use portable C, taking the address of a thread local variable (this is still very fast on most platforms). +static inline mi_threadid_t _mi_prim_thread_id(void) mi_attr_noexcept { + return (uintptr_t)&_mi_heap_default; +} + +#endif + + + +/* ---------------------------------------------------------------------------------------- +The thread local default heap: `_mi_prim_get_default_heap()` +This is inlined here as it is on the fast path for allocation functions. + +On most platforms (Windows, Linux, FreeBSD, NetBSD, etc), this just returns a +__thread local variable (`_mi_heap_default`). With the initial-exec TLS model this ensures +that the storage will always be available (allocated on the thread stacks). + +On some platforms though we cannot use that when overriding `malloc` since the underlying +TLS implementation (or the loader) will call itself `malloc` on a first access and recurse. +We try to circumvent this in an efficient way: +- macOSX : we use an unused TLS slot from the OS allocated slots (MI_TLS_SLOT). On OSX, the + loader itself calls `malloc` even before the modules are initialized. +- OpenBSD: we use an unused slot from the pthread block (MI_TLS_PTHREAD_SLOT_OFS). +- DragonFly: defaults are working but seem slow compared to freeBSD (see PR #323) +------------------------------------------------------------------------------------------- */ + +static inline mi_heap_t* mi_prim_get_default_heap(void); + +#if defined(MI_MALLOC_OVERRIDE) +#if defined(__APPLE__) // macOS + #define MI_TLS_SLOT 89 // seems unused? + // #define MI_TLS_RECURSE_GUARD 1 + // other possible unused ones are 9, 29, __PTK_FRAMEWORK_JAVASCRIPTCORE_KEY4 (94), __PTK_FRAMEWORK_GC_KEY9 (112) and __PTK_FRAMEWORK_OLDGC_KEY9 (89) + // see +#elif defined(__OpenBSD__) + // use end bytes of a name; goes wrong if anyone uses names > 23 characters (ptrhread specifies 16) + // see + #define MI_TLS_PTHREAD_SLOT_OFS (6*sizeof(int) + 4*sizeof(void*) + 24) + // #elif defined(__DragonFly__) + // #warning "mimalloc is not working correctly on DragonFly yet." + // #define MI_TLS_PTHREAD_SLOT_OFS (4 + 1*sizeof(void*)) // offset `uniqueid` (also used by gdb?) +#elif defined(__ANDROID__) + // See issue #381 + #define MI_TLS_PTHREAD +#endif +#endif + + +#if defined(MI_TLS_SLOT) + +static inline mi_heap_t* mi_prim_get_default_heap(void) { + mi_heap_t* heap = (mi_heap_t*)mi_prim_tls_slot(MI_TLS_SLOT); + if mi_unlikely(heap == NULL) { + #ifdef __GNUC__ + __asm(""); // prevent conditional load of the address of _mi_heap_empty + #endif + heap = (mi_heap_t*)&_mi_heap_empty; + } + return heap; +} + +#elif defined(MI_TLS_PTHREAD_SLOT_OFS) + +static inline mi_heap_t** mi_prim_tls_pthread_heap_slot(void) { + pthread_t self = pthread_self(); + #if defined(__DragonFly__) + if (self==NULL) return NULL; + #endif + return (mi_heap_t**)((uint8_t*)self + MI_TLS_PTHREAD_SLOT_OFS); +} + +static inline mi_heap_t* mi_prim_get_default_heap(void) { + mi_heap_t** pheap = mi_prim_tls_pthread_heap_slot(); + if mi_unlikely(pheap == NULL) return _mi_heap_main_get(); + mi_heap_t* heap = *pheap; + if mi_unlikely(heap == NULL) return (mi_heap_t*)&_mi_heap_empty; + return heap; +} + +#elif defined(MI_TLS_PTHREAD) + +extern pthread_key_t _mi_heap_default_key; +static inline mi_heap_t* mi_prim_get_default_heap(void) { + mi_heap_t* heap = (mi_unlikely(_mi_heap_default_key == (pthread_key_t)(-1)) ? _mi_heap_main_get() : (mi_heap_t*)pthread_getspecific(_mi_heap_default_key)); + return (mi_unlikely(heap == NULL) ? (mi_heap_t*)&_mi_heap_empty : heap); +} + +#else // default using a thread local variable; used on most platforms. + +static inline mi_heap_t* mi_prim_get_default_heap(void) { + #if defined(MI_TLS_RECURSE_GUARD) + if (mi_unlikely(!_mi_process_is_initialized)) return _mi_heap_main_get(); + #endif + return _mi_heap_default; +} + +#endif // mi_prim_get_default_heap() + + + +#endif // MIMALLOC_PRIM_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/mimalloc/mimalloc/track.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/mimalloc/mimalloc/track.h new file mode 100644 index 000000000..fa1a048d8 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/mimalloc/mimalloc/track.h @@ -0,0 +1,147 @@ +/* ---------------------------------------------------------------------------- +Copyright (c) 2018-2023, Microsoft Research, Daan Leijen +This is free software; you can redistribute it and/or modify it under the +terms of the MIT license. A copy of the license can be found in the file +"LICENSE" at the root of this distribution. +-----------------------------------------------------------------------------*/ +#pragma once +#ifndef MIMALLOC_TRACK_H +#define MIMALLOC_TRACK_H + +/* ------------------------------------------------------------------------------------------------------ +Track memory ranges with macros for tools like Valgrind address sanitizer, or other memory checkers. +These can be defined for tracking allocation: + + #define mi_track_malloc_size(p,reqsize,size,zero) + #define mi_track_free_size(p,_size) + +The macros are set up such that the size passed to `mi_track_free_size` +always matches the size of `mi_track_malloc_size`. (currently, `size == mi_usable_size(p)`). +The `reqsize` is what the user requested, and `size >= reqsize`. +The `size` is either byte precise (and `size==reqsize`) if `MI_PADDING` is enabled, +or otherwise it is the usable block size which may be larger than the original request. +Use `_mi_block_size_of(void* p)` to get the full block size that was allocated (including padding etc). +The `zero` parameter is `true` if the allocated block is zero initialized. + +Optional: + + #define mi_track_align(p,alignedp,offset,size) + #define mi_track_resize(p,oldsize,newsize) + #define mi_track_init() + +The `mi_track_align` is called right after a `mi_track_malloc` for aligned pointers in a block. +The corresponding `mi_track_free` still uses the block start pointer and original size (corresponding to the `mi_track_malloc`). +The `mi_track_resize` is currently unused but could be called on reallocations within a block. +`mi_track_init` is called at program start. + +The following macros are for tools like asan and valgrind to track whether memory is +defined, undefined, or not accessible at all: + + #define mi_track_mem_defined(p,size) + #define mi_track_mem_undefined(p,size) + #define mi_track_mem_noaccess(p,size) + +-------------------------------------------------------------------------------------------------------*/ + +#if MI_TRACK_VALGRIND +// valgrind tool + +#define MI_TRACK_ENABLED 1 +#define MI_TRACK_HEAP_DESTROY 1 // track free of individual blocks on heap_destroy +#define MI_TRACK_TOOL "valgrind" + +#include +#include + +#define mi_track_malloc_size(p,reqsize,size,zero) VALGRIND_MALLOCLIKE_BLOCK(p,size,MI_PADDING_SIZE /*red zone*/,zero) +#define mi_track_free_size(p,_size) VALGRIND_FREELIKE_BLOCK(p,MI_PADDING_SIZE /*red zone*/) +#define mi_track_resize(p,oldsize,newsize) VALGRIND_RESIZEINPLACE_BLOCK(p,oldsize,newsize,MI_PADDING_SIZE /*red zone*/) +#define mi_track_mem_defined(p,size) VALGRIND_MAKE_MEM_DEFINED(p,size) +#define mi_track_mem_undefined(p,size) VALGRIND_MAKE_MEM_UNDEFINED(p,size) +#define mi_track_mem_noaccess(p,size) VALGRIND_MAKE_MEM_NOACCESS(p,size) + +#elif MI_TRACK_ASAN +// address sanitizer + +#define MI_TRACK_ENABLED 1 +#define MI_TRACK_HEAP_DESTROY 0 +#define MI_TRACK_TOOL "asan" + +#include + +#define mi_track_malloc_size(p,reqsize,size,zero) ASAN_UNPOISON_MEMORY_REGION(p,size) +#define mi_track_free_size(p,size) ASAN_POISON_MEMORY_REGION(p,size) +#define mi_track_mem_defined(p,size) ASAN_UNPOISON_MEMORY_REGION(p,size) +#define mi_track_mem_undefined(p,size) ASAN_UNPOISON_MEMORY_REGION(p,size) +#define mi_track_mem_noaccess(p,size) ASAN_POISON_MEMORY_REGION(p,size) + +#elif MI_TRACK_ETW +// windows event tracing + +#define MI_TRACK_ENABLED 1 +#define MI_TRACK_HEAP_DESTROY 1 +#define MI_TRACK_TOOL "ETW" + +#define WIN32_LEAN_AND_MEAN +#include +#include "../src/prim/windows/etw.h" + +#define mi_track_init() EventRegistermicrosoft_windows_mimalloc(); +#define mi_track_malloc_size(p,reqsize,size,zero) EventWriteETW_MI_ALLOC((UINT64)(p), size) +#define mi_track_free_size(p,size) EventWriteETW_MI_FREE((UINT64)(p), size) + +#else +// no tracking + +#define MI_TRACK_ENABLED 0 +#define MI_TRACK_HEAP_DESTROY 0 +#define MI_TRACK_TOOL "none" + +#define mi_track_malloc_size(p,reqsize,size,zero) +#define mi_track_free_size(p,_size) + +#endif + +// ------------------- +// Utility definitions + +#ifndef mi_track_resize +#define mi_track_resize(p,oldsize,newsize) mi_track_free_size(p,oldsize); mi_track_malloc(p,newsize,false) +#endif + +#ifndef mi_track_align +#define mi_track_align(p,alignedp,offset,size) mi_track_mem_noaccess(p,offset) +#endif + +#ifndef mi_track_init +#define mi_track_init() +#endif + +#ifndef mi_track_mem_defined +#define mi_track_mem_defined(p,size) +#endif + +#ifndef mi_track_mem_undefined +#define mi_track_mem_undefined(p,size) +#endif + +#ifndef mi_track_mem_noaccess +#define mi_track_mem_noaccess(p,size) +#endif + + +#if MI_PADDING +#define mi_track_malloc(p,reqsize,zero) \ + if ((p)!=NULL) { \ + mi_assert_internal(mi_usable_size(p)==(reqsize)); \ + mi_track_malloc_size(p,reqsize,reqsize,zero); \ + } +#else +#define mi_track_malloc(p,reqsize,zero) \ + if ((p)!=NULL) { \ + mi_assert_internal(mi_usable_size(p)>=(reqsize)); \ + mi_track_malloc_size(p,reqsize,mi_usable_size(p),zero); \ + } +#endif + +#endif diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/mimalloc/mimalloc/types.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/mimalloc/mimalloc/types.h new file mode 100644 index 000000000..354839ba9 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/mimalloc/mimalloc/types.h @@ -0,0 +1,721 @@ +/* ---------------------------------------------------------------------------- +Copyright (c) 2018-2023, Microsoft Research, Daan Leijen +This is free software; you can redistribute it and/or modify it under the +terms of the MIT license. A copy of the license can be found in the file +"LICENSE" at the root of this distribution. +-----------------------------------------------------------------------------*/ +#pragma once +#ifndef MIMALLOC_TYPES_H +#define MIMALLOC_TYPES_H + +// -------------------------------------------------------------------------- +// This file contains the main type definitions for mimalloc: +// mi_heap_t : all data for a thread-local heap, contains +// lists of all managed heap pages. +// mi_segment_t : a larger chunk of memory (32GiB) from where pages +// are allocated. +// mi_page_t : a mimalloc page (usually 64KiB or 512KiB) from +// where objects are allocated. +// -------------------------------------------------------------------------- + + +#include // ptrdiff_t +#include // uintptr_t, uint16_t, etc +#include "atomic.h" // _Atomic + +#ifdef _MSC_VER +#pragma warning(disable:4214) // bitfield is not int +#endif + +// Minimal alignment necessary. On most platforms 16 bytes are needed +// due to SSE registers for example. This must be at least `sizeof(void*)` +#ifndef MI_MAX_ALIGN_SIZE +#define MI_MAX_ALIGN_SIZE 16 // sizeof(max_align_t) +#endif + +#define MI_CACHE_LINE 64 +#if defined(_MSC_VER) +#pragma warning(disable:4127) // suppress constant conditional warning (due to MI_SECURE paths) +#pragma warning(disable:26812) // unscoped enum warning +#define mi_decl_noinline __declspec(noinline) +#define mi_decl_thread __declspec(thread) +#define mi_decl_cache_align __declspec(align(MI_CACHE_LINE)) +#elif (defined(__GNUC__) && (__GNUC__ >= 3)) || defined(__clang__) // includes clang and icc +#define mi_decl_noinline __attribute__((noinline)) +#define mi_decl_thread __thread +#define mi_decl_cache_align __attribute__((aligned(MI_CACHE_LINE))) +#else +#define mi_decl_noinline +#define mi_decl_thread __thread // hope for the best :-) +#define mi_decl_cache_align +#endif + +// ------------------------------------------------------ +// Variants +// ------------------------------------------------------ + +// Define NDEBUG in the release version to disable assertions. +// #define NDEBUG + +// Define MI_TRACK_ to enable tracking support +// #define MI_TRACK_VALGRIND 1 +// #define MI_TRACK_ASAN 1 +// #define MI_TRACK_ETW 1 + +// Define MI_STAT as 1 to maintain statistics; set it to 2 to have detailed statistics (but costs some performance). +// #define MI_STAT 1 + +// Define MI_SECURE to enable security mitigations +// #define MI_SECURE 1 // guard page around metadata +// #define MI_SECURE 2 // guard page around each mimalloc page +// #define MI_SECURE 3 // encode free lists (detect corrupted free list (buffer overflow), and invalid pointer free) +// #define MI_SECURE 4 // checks for double free. (may be more expensive) + +#if !defined(MI_SECURE) +#define MI_SECURE 0 +#endif + +// Define MI_DEBUG for debug mode +// #define MI_DEBUG 1 // basic assertion checks and statistics, check double free, corrupted free list, and invalid pointer free. +// #define MI_DEBUG 2 // + internal assertion checks +// #define MI_DEBUG 3 // + extensive internal invariant checking (cmake -DMI_DEBUG_FULL=ON) +#if !defined(MI_DEBUG) +#if !defined(NDEBUG) || defined(_DEBUG) +#define MI_DEBUG 2 +#else +#define MI_DEBUG 0 +#endif +#endif + +// Reserve extra padding at the end of each block to be more resilient against heap block overflows. +// The padding can detect buffer overflow on free. +#if !defined(MI_PADDING) && (MI_SECURE>=3 || MI_DEBUG>=1 || (MI_TRACK_VALGRIND || MI_TRACK_ASAN || MI_TRACK_ETW)) +#define MI_PADDING 1 +#endif + +// Check padding bytes; allows byte-precise buffer overflow detection +#if !defined(MI_PADDING_CHECK) && MI_PADDING && (MI_SECURE>=3 || MI_DEBUG>=1) +#define MI_PADDING_CHECK 1 +#endif + + +// Encoded free lists allow detection of corrupted free lists +// and can detect buffer overflows, modify after free, and double `free`s. +#if (MI_SECURE>=3 || MI_DEBUG>=1) +#define MI_ENCODE_FREELIST 1 +#endif + + +// We used to abandon huge pages but to eagerly deallocate if freed from another thread, +// but that makes it not possible to visit them during a heap walk or include them in a +// `mi_heap_destroy`. We therefore instead reset/decommit the huge blocks if freed from +// another thread so most memory is available until it gets properly freed by the owning thread. +// #define MI_HUGE_PAGE_ABANDON 1 + + +// ------------------------------------------------------ +// Platform specific values +// ------------------------------------------------------ + +// ------------------------------------------------------ +// Size of a pointer. +// We assume that `sizeof(void*)==sizeof(intptr_t)` +// and it holds for all platforms we know of. +// +// However, the C standard only requires that: +// p == (void*)((intptr_t)p)) +// but we also need: +// i == (intptr_t)((void*)i) +// or otherwise one might define an intptr_t type that is larger than a pointer... +// ------------------------------------------------------ + +#if INTPTR_MAX > INT64_MAX +# define MI_INTPTR_SHIFT (4) // assume 128-bit (as on arm CHERI for example) +#elif INTPTR_MAX == INT64_MAX +# define MI_INTPTR_SHIFT (3) +#elif INTPTR_MAX == INT32_MAX +# define MI_INTPTR_SHIFT (2) +#else +#error platform pointers must be 32, 64, or 128 bits +#endif + +#if SIZE_MAX == UINT64_MAX +# define MI_SIZE_SHIFT (3) +typedef int64_t mi_ssize_t; +#elif SIZE_MAX == UINT32_MAX +# define MI_SIZE_SHIFT (2) +typedef int32_t mi_ssize_t; +#else +#error platform objects must be 32 or 64 bits +#endif + +#if (SIZE_MAX/2) > LONG_MAX +# define MI_ZU(x) x##ULL +# define MI_ZI(x) x##LL +#else +# define MI_ZU(x) x##UL +# define MI_ZI(x) x##L +#endif + +#define MI_INTPTR_SIZE (1< 4 +#define MI_SEGMENT_SHIFT ( 9 + MI_SEGMENT_SLICE_SHIFT) // 32MiB +#else +#define MI_SEGMENT_SHIFT ( 7 + MI_SEGMENT_SLICE_SHIFT) // 4MiB on 32-bit +#endif + +#define MI_SMALL_PAGE_SHIFT (MI_SEGMENT_SLICE_SHIFT) // 64KiB +#define MI_MEDIUM_PAGE_SHIFT ( 3 + MI_SMALL_PAGE_SHIFT) // 512KiB + + +// Derived constants +#define MI_SEGMENT_SIZE (MI_ZU(1)<= 655360) +#error "mimalloc internal: define more bins" +#endif + +// Maximum slice offset (15) +#define MI_MAX_SLICE_OFFSET ((MI_ALIGNMENT_MAX / MI_SEGMENT_SLICE_SIZE) - 1) + +// Used as a special value to encode block sizes in 32 bits. +#define MI_HUGE_BLOCK_SIZE ((uint32_t)(2*MI_GiB)) + +// blocks up to this size are always allocated aligned +#define MI_MAX_ALIGN_GUARANTEE (8*MI_MAX_ALIGN_SIZE) + +// Alignments over MI_ALIGNMENT_MAX are allocated in dedicated huge page segments +#define MI_ALIGNMENT_MAX (MI_SEGMENT_SIZE >> 1) + + +// ------------------------------------------------------ +// Mimalloc pages contain allocated blocks +// ------------------------------------------------------ + +// The free lists use encoded next fields +// (Only actually encodes when MI_ENCODED_FREELIST is defined.) +typedef uintptr_t mi_encoded_t; + +// thread id's +typedef size_t mi_threadid_t; + +// free lists contain blocks +typedef struct mi_block_s { + mi_encoded_t next; +} mi_block_t; + + +// The delayed flags are used for efficient multi-threaded free-ing +typedef enum mi_delayed_e { + MI_USE_DELAYED_FREE = 0, // push on the owning heap thread delayed list + MI_DELAYED_FREEING = 1, // temporary: another thread is accessing the owning heap + MI_NO_DELAYED_FREE = 2, // optimize: push on page local thread free queue if another block is already in the heap thread delayed free list + MI_NEVER_DELAYED_FREE = 3 // sticky, only resets on page reclaim +} mi_delayed_t; + + +// The `in_full` and `has_aligned` page flags are put in a union to efficiently +// test if both are false (`full_aligned == 0`) in the `mi_free` routine. +#if !MI_TSAN +typedef union mi_page_flags_s { + uint8_t full_aligned; + struct { + uint8_t in_full : 1; + uint8_t has_aligned : 1; + } x; +} mi_page_flags_t; +#else +// under thread sanitizer, use a byte for each flag to suppress warning, issue #130 +typedef union mi_page_flags_s { + uint16_t full_aligned; + struct { + uint8_t in_full; + uint8_t has_aligned; + } x; +} mi_page_flags_t; +#endif + +// Thread free list. +// We use the bottom 2 bits of the pointer for mi_delayed_t flags +typedef uintptr_t mi_thread_free_t; + +// A page contains blocks of one specific size (`block_size`). +// Each page has three list of free blocks: +// `free` for blocks that can be allocated, +// `local_free` for freed blocks that are not yet available to `mi_malloc` +// `thread_free` for freed blocks by other threads +// The `local_free` and `thread_free` lists are migrated to the `free` list +// when it is exhausted. The separate `local_free` list is necessary to +// implement a monotonic heartbeat. The `thread_free` list is needed for +// avoiding atomic operations in the common case. +// +// +// `used - |thread_free|` == actual blocks that are in use (alive) +// `used - |thread_free| + |free| + |local_free| == capacity` +// +// We don't count `freed` (as |free|) but use `used` to reduce +// the number of memory accesses in the `mi_page_all_free` function(s). +// +// Notes: +// - Access is optimized for `mi_free` and `mi_page_alloc` (in `alloc.c`) +// - Using `uint16_t` does not seem to slow things down +// - The size is 8 words on 64-bit which helps the page index calculations +// (and 10 words on 32-bit, and encoded free lists add 2 words. Sizes 10 +// and 12 are still good for address calculation) +// - To limit the structure size, the `xblock_size` is 32-bits only; for +// blocks > MI_HUGE_BLOCK_SIZE the size is determined from the segment page size +// - `thread_free` uses the bottom bits as a delayed-free flags to optimize +// concurrent frees where only the first concurrent free adds to the owning +// heap `thread_delayed_free` list (see `alloc.c:mi_free_block_mt`). +// The invariant is that no-delayed-free is only set if there is +// at least one block that will be added, or as already been added, to +// the owning heap `thread_delayed_free` list. This guarantees that pages +// will be freed correctly even if only other threads free blocks. +typedef struct mi_page_s { + // "owned" by the segment + uint32_t slice_count; // slices in this page (0 if not a page) + uint32_t slice_offset; // distance from the actual page data slice (0 if a page) + uint8_t is_committed : 1; // `true` if the page virtual memory is committed + uint8_t is_zero_init : 1; // `true` if the page was initially zero initialized + uint8_t use_qsbr : 1; // delay page freeing using qsbr + uint8_t tag : 4; // tag from the owning heap + uint8_t debug_offset; // number of bytes to preserve when filling freed or uninitialized memory + + // layout like this to optimize access in `mi_malloc` and `mi_free` + uint16_t capacity; // number of blocks committed, must be the first field, see `segment.c:page_clear` + uint16_t reserved; // number of blocks reserved in memory + mi_page_flags_t flags; // `in_full` and `has_aligned` flags (8 bits) + uint8_t free_is_zero : 1; // `true` if the blocks in the free list are zero initialized + uint8_t retire_expire : 7; // expiration count for retired blocks + + mi_block_t* free; // list of available free blocks (`malloc` allocates from this list) + uint32_t used; // number of blocks in use (including blocks in `local_free` and `thread_free`) + uint32_t xblock_size; // size available in each block (always `>0`) + mi_block_t* local_free; // list of deferred free blocks by this thread (migrates to `free`) + + #if (MI_ENCODE_FREELIST || MI_PADDING) + uintptr_t keys[2]; // two random keys to encode the free lists (see `_mi_block_next`) or padding canary + #endif + + _Atomic(mi_thread_free_t) xthread_free; // list of deferred free blocks freed by other threads + _Atomic(uintptr_t) xheap; + + struct mi_page_s* next; // next page owned by this thread with the same `block_size` + struct mi_page_s* prev; // previous page owned by this thread with the same `block_size` + +#ifdef Py_GIL_DISABLED + struct llist_node qsbr_node; + uint64_t qsbr_goal; +#endif + + // 64-bit 9 words, 32-bit 12 words, (+2 for secure) + #if MI_INTPTR_SIZE==8 && !defined(Py_GIL_DISABLED) + uintptr_t padding[1]; + #endif +} mi_page_t; + + + +// ------------------------------------------------------ +// Mimalloc segments contain mimalloc pages +// ------------------------------------------------------ + +typedef enum mi_page_kind_e { + MI_PAGE_SMALL, // small blocks go into 64KiB pages inside a segment + MI_PAGE_MEDIUM, // medium blocks go into medium pages inside a segment + MI_PAGE_LARGE, // larger blocks go into a page of just one block + MI_PAGE_HUGE, // huge blocks (> 16 MiB) are put into a single page in a single segment. +} mi_page_kind_t; + +typedef enum mi_segment_kind_e { + MI_SEGMENT_NORMAL, // MI_SEGMENT_SIZE size with pages inside. + MI_SEGMENT_HUGE, // > MI_LARGE_SIZE_MAX segment with just one huge page inside. +} mi_segment_kind_t; + +// ------------------------------------------------------ +// A segment holds a commit mask where a bit is set if +// the corresponding MI_COMMIT_SIZE area is committed. +// The MI_COMMIT_SIZE must be a multiple of the slice +// size. If it is equal we have the most fine grained +// decommit (but setting it higher can be more efficient). +// The MI_MINIMAL_COMMIT_SIZE is the minimal amount that will +// be committed in one go which can be set higher than +// MI_COMMIT_SIZE for efficiency (while the decommit mask +// is still tracked in fine-grained MI_COMMIT_SIZE chunks) +// ------------------------------------------------------ + +#define MI_MINIMAL_COMMIT_SIZE (1*MI_SEGMENT_SLICE_SIZE) +#define MI_COMMIT_SIZE (MI_SEGMENT_SLICE_SIZE) // 64KiB +#define MI_COMMIT_MASK_BITS (MI_SEGMENT_SIZE / MI_COMMIT_SIZE) +#define MI_COMMIT_MASK_FIELD_BITS MI_SIZE_BITS +#define MI_COMMIT_MASK_FIELD_COUNT (MI_COMMIT_MASK_BITS / MI_COMMIT_MASK_FIELD_BITS) + +#if (MI_COMMIT_MASK_BITS != (MI_COMMIT_MASK_FIELD_COUNT * MI_COMMIT_MASK_FIELD_BITS)) +#error "the segment size must be exactly divisible by the (commit size * size_t bits)" +#endif + +typedef struct mi_commit_mask_s { + size_t mask[MI_COMMIT_MASK_FIELD_COUNT]; +} mi_commit_mask_t; + +typedef mi_page_t mi_slice_t; +typedef int64_t mi_msecs_t; + + +// Memory can reside in arena's, direct OS allocated, or statically allocated. The memid keeps track of this. +typedef enum mi_memkind_e { + MI_MEM_NONE, // not allocated + MI_MEM_EXTERNAL, // not owned by mimalloc but provided externally (via `mi_manage_os_memory` for example) + MI_MEM_STATIC, // allocated in a static area and should not be freed (for arena meta data for example) + MI_MEM_OS, // allocated from the OS + MI_MEM_OS_HUGE, // allocated as huge os pages + MI_MEM_OS_REMAP, // allocated in a remapable area (i.e. using `mremap`) + MI_MEM_ARENA // allocated from an arena (the usual case) +} mi_memkind_t; + +static inline bool mi_memkind_is_os(mi_memkind_t memkind) { + return (memkind >= MI_MEM_OS && memkind <= MI_MEM_OS_REMAP); +} + +typedef struct mi_memid_os_info { + void* base; // actual base address of the block (used for offset aligned allocations) + size_t alignment; // alignment at allocation +} mi_memid_os_info_t; + +typedef struct mi_memid_arena_info { + size_t block_index; // index in the arena + mi_arena_id_t id; // arena id (>= 1) + bool is_exclusive; // the arena can only be used for specific arena allocations +} mi_memid_arena_info_t; + +typedef struct mi_memid_s { + union { + mi_memid_os_info_t os; // only used for MI_MEM_OS + mi_memid_arena_info_t arena; // only used for MI_MEM_ARENA + } mem; + bool is_pinned; // `true` if we cannot decommit/reset/protect in this memory (e.g. when allocated using large OS pages) + bool initially_committed;// `true` if the memory was originally allocated as committed + bool initially_zero; // `true` if the memory was originally zero initialized + mi_memkind_t memkind; +} mi_memid_t; + + +// Segments are large allocated memory blocks (8mb on 64 bit) from +// the OS. Inside segments we allocated fixed size _pages_ that +// contain blocks. +typedef struct mi_segment_s { + // constant fields + mi_memid_t memid; // memory id for arena allocation + bool allow_decommit; + bool allow_purge; + size_t segment_size; + + // segment fields + mi_msecs_t purge_expire; + mi_commit_mask_t purge_mask; + mi_commit_mask_t commit_mask; + + _Atomic(struct mi_segment_s*) abandoned_next; + + // from here is zero initialized + struct mi_segment_s* next; // the list of freed segments in the cache (must be first field, see `segment.c:mi_segment_init`) + + size_t abandoned; // abandoned pages (i.e. the original owning thread stopped) (`abandoned <= used`) + size_t abandoned_visits; // count how often this segment is visited in the abandoned list (to force reclaim it it is too long) + size_t used; // count of pages in use + uintptr_t cookie; // verify addresses in debug mode: `mi_ptr_cookie(segment) == segment->cookie` + + size_t segment_slices; // for huge segments this may be different from `MI_SLICES_PER_SEGMENT` + size_t segment_info_slices; // initial slices we are using segment info and possible guard pages. + + // layout like this to optimize access in `mi_free` + mi_segment_kind_t kind; + size_t slice_entries; // entries in the `slices` array, at most `MI_SLICES_PER_SEGMENT` + _Atomic(mi_threadid_t) thread_id; // unique id of the thread owning this segment + + mi_slice_t slices[MI_SLICES_PER_SEGMENT+1]; // one more for huge blocks with large alignment +} mi_segment_t; + +typedef uintptr_t mi_tagged_segment_t; + +// Segments unowned by any thread are put in a shared pool +typedef struct mi_abandoned_pool_s { + // This is a list of visited abandoned pages that were full at the time. + // this list migrates to `abandoned` when that becomes NULL. The use of + // this list reduces contention and the rate at which segments are visited. + mi_decl_cache_align _Atomic(mi_segment_t*) abandoned_visited; // = NULL + + // The abandoned page list (tagged as it supports pop) + mi_decl_cache_align _Atomic(mi_tagged_segment_t) abandoned; // = NULL + + // Maintain these for debug purposes (these counts may be a bit off) + mi_decl_cache_align _Atomic(size_t) abandoned_count; + mi_decl_cache_align _Atomic(size_t) abandoned_visited_count; + + // We also maintain a count of current readers of the abandoned list + // in order to prevent resetting/decommitting segment memory if it might + // still be read. + mi_decl_cache_align _Atomic(size_t) abandoned_readers; // = 0 +} mi_abandoned_pool_t; + + +// ------------------------------------------------------ +// Heaps +// Provide first-class heaps to allocate from. +// A heap just owns a set of pages for allocation and +// can only be allocate/reallocate from the thread that created it. +// Freeing blocks can be done from any thread though. +// Per thread, the segments are shared among its heaps. +// Per thread, there is always a default heap that is +// used for allocation; it is initialized to statically +// point to an empty heap to avoid initialization checks +// in the fast path. +// ------------------------------------------------------ + +// Thread local data +typedef struct mi_tld_s mi_tld_t; + +// Pages of a certain block size are held in a queue. +typedef struct mi_page_queue_s { + mi_page_t* first; + mi_page_t* last; + size_t block_size; +} mi_page_queue_t; + +#define MI_BIN_FULL (MI_BIN_HUGE+1) + +// Random context +typedef struct mi_random_cxt_s { + uint32_t input[16]; + uint32_t output[16]; + int output_available; + bool weak; +} mi_random_ctx_t; + + +// In debug mode there is a padding structure at the end of the blocks to check for buffer overflows +#if (MI_PADDING) +typedef struct mi_padding_s { + uint32_t canary; // encoded block value to check validity of the padding (in case of overflow) + uint32_t delta; // padding bytes before the block. (mi_usable_size(p) - delta == exact allocated bytes) +} mi_padding_t; +#define MI_PADDING_SIZE (sizeof(mi_padding_t)) +#define MI_PADDING_WSIZE ((MI_PADDING_SIZE + MI_INTPTR_SIZE - 1) / MI_INTPTR_SIZE) +#else +#define MI_PADDING_SIZE 0 +#define MI_PADDING_WSIZE 0 +#endif + +#define MI_PAGES_DIRECT (MI_SMALL_WSIZE_MAX + MI_PADDING_WSIZE + 1) + + +// A heap owns a set of pages. +struct mi_heap_s { + mi_tld_t* tld; + mi_page_t* pages_free_direct[MI_PAGES_DIRECT]; // optimize: array where every entry points a page with possibly free blocks in the corresponding queue for that size. + mi_page_queue_t pages[MI_BIN_FULL + 1]; // queue of pages for each size class (or "bin") + _Atomic(mi_block_t*) thread_delayed_free; + mi_threadid_t thread_id; // thread this heap belongs too + mi_arena_id_t arena_id; // arena id if the heap belongs to a specific arena (or 0) + uintptr_t cookie; // random cookie to verify pointers (see `_mi_ptr_cookie`) + uintptr_t keys[2]; // two random keys used to encode the `thread_delayed_free` list + mi_random_ctx_t random; // random number context used for secure allocation + size_t page_count; // total number of pages in the `pages` queues. + size_t page_retired_min; // smallest retired index (retired pages are fully free, but still in the page queues) + size_t page_retired_max; // largest retired index into the `pages` array. + mi_heap_t* next; // list of heaps per thread + bool no_reclaim; // `true` if this heap should not reclaim abandoned pages + uint8_t tag; // custom identifier for this heap + uint8_t debug_offset; // number of bytes to preserve when filling freed or uninitialized memory + bool page_use_qsbr; // should freeing pages be delayed using QSBR +}; + + + +// ------------------------------------------------------ +// Debug +// ------------------------------------------------------ + +#if !defined(MI_DEBUG_UNINIT) +#define MI_DEBUG_UNINIT (0xD0) +#endif +#if !defined(MI_DEBUG_FREED) +#define MI_DEBUG_FREED (0xDF) +#endif +#if !defined(MI_DEBUG_PADDING) +#define MI_DEBUG_PADDING (0xDE) +#endif + +#if (MI_DEBUG) +// use our own assertion to print without memory allocation +void _mi_assert_fail(const char* assertion, const char* fname, unsigned int line, const char* func ); +#define mi_assert(expr) ((expr) ? (void)0 : _mi_assert_fail(#expr,__FILE__,__LINE__,__func__)) +#else +#define mi_assert(x) +#endif + +#if (MI_DEBUG>1) +#define mi_assert_internal mi_assert +#else +#define mi_assert_internal(x) +#endif + +#if (MI_DEBUG>2) +#define mi_assert_expensive mi_assert +#else +#define mi_assert_expensive(x) +#endif + +// ------------------------------------------------------ +// Statistics +// ------------------------------------------------------ + +#ifndef MI_STAT +#if (MI_DEBUG>0) +#define MI_STAT 2 +#else +#define MI_STAT 0 +#endif +#endif + +typedef struct mi_stat_count_s { + int64_t allocated; + int64_t freed; + int64_t peak; + int64_t current; +} mi_stat_count_t; + +typedef struct mi_stat_counter_s { + int64_t total; + int64_t count; +} mi_stat_counter_t; + +typedef struct mi_stats_s { + mi_stat_count_t segments; + mi_stat_count_t pages; + mi_stat_count_t reserved; + mi_stat_count_t committed; + mi_stat_count_t reset; + mi_stat_count_t purged; + mi_stat_count_t page_committed; + mi_stat_count_t segments_abandoned; + mi_stat_count_t pages_abandoned; + mi_stat_count_t threads; + mi_stat_count_t normal; + mi_stat_count_t huge; + mi_stat_count_t large; + mi_stat_count_t malloc; + mi_stat_count_t segments_cache; + mi_stat_counter_t pages_extended; + mi_stat_counter_t mmap_calls; + mi_stat_counter_t commit_calls; + mi_stat_counter_t reset_calls; + mi_stat_counter_t purge_calls; + mi_stat_counter_t page_no_retire; + mi_stat_counter_t searches; + mi_stat_counter_t normal_count; + mi_stat_counter_t huge_count; + mi_stat_counter_t large_count; +#if MI_STAT>1 + mi_stat_count_t normal_bins[MI_BIN_HUGE+1]; +#endif +} mi_stats_t; + + +void _mi_stat_increase(mi_stat_count_t* stat, size_t amount); +void _mi_stat_decrease(mi_stat_count_t* stat, size_t amount); +void _mi_stat_counter_increase(mi_stat_counter_t* stat, size_t amount); + +#if (MI_STAT) +#define mi_stat_increase(stat,amount) _mi_stat_increase( &(stat), amount) +#define mi_stat_decrease(stat,amount) _mi_stat_decrease( &(stat), amount) +#define mi_stat_counter_increase(stat,amount) _mi_stat_counter_increase( &(stat), amount) +#else +#define mi_stat_increase(stat,amount) (void)0 +#define mi_stat_decrease(stat,amount) (void)0 +#define mi_stat_counter_increase(stat,amount) (void)0 +#endif + +#define mi_heap_stat_counter_increase(heap,stat,amount) mi_stat_counter_increase( (heap)->tld->stats.stat, amount) +#define mi_heap_stat_increase(heap,stat,amount) mi_stat_increase( (heap)->tld->stats.stat, amount) +#define mi_heap_stat_decrease(heap,stat,amount) mi_stat_decrease( (heap)->tld->stats.stat, amount) + +// ------------------------------------------------------ +// Thread Local data +// ------------------------------------------------------ + +// A "span" is is an available range of slices. The span queues keep +// track of slice spans of at most the given `slice_count` (but more than the previous size class). +typedef struct mi_span_queue_s { + mi_slice_t* first; + mi_slice_t* last; + size_t slice_count; +} mi_span_queue_t; + +#define MI_SEGMENT_BIN_MAX (35) // 35 == mi_segment_bin(MI_SLICES_PER_SEGMENT) + +// OS thread local data +typedef struct mi_os_tld_s { + size_t region_idx; // start point for next allocation + mi_stats_t* stats; // points to tld stats +} mi_os_tld_t; + + +// Segments thread local data +typedef struct mi_segments_tld_s { + mi_span_queue_t spans[MI_SEGMENT_BIN_MAX+1]; // free slice spans inside segments + size_t count; // current number of segments; + size_t peak_count; // peak number of segments + size_t current_size; // current size of all segments + size_t peak_size; // peak size of all segments + mi_stats_t* stats; // points to tld stats + mi_os_tld_t* os; // points to os stats + mi_abandoned_pool_t* abandoned; // pool of abandoned segments +} mi_segments_tld_t; + +// Thread local data +struct mi_tld_s { + unsigned long long heartbeat; // monotonic heartbeat count + bool recurse; // true if deferred was called; used to prevent infinite recursion. + mi_heap_t* heap_backing; // backing heap of this thread (cannot be deleted) + mi_heap_t* heaps; // list of heaps in this thread (so we can abandon all when the thread terminates) + mi_segments_tld_t segments; // segment tld + mi_os_tld_t os; // os tld + mi_stats_t stats; // statistics +}; + +#endif diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_abstract.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_abstract.h new file mode 100644 index 000000000..3cc0afac4 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_abstract.h @@ -0,0 +1,61 @@ +#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); +} + +PyObject *_PyNumber_PowerNoMod(PyObject *lhs, PyObject *rhs); +PyObject *_PyNumber_InPlacePowerNoMod(PyObject *lhs, PyObject *rhs); + +extern int _PyObject_HasLen(PyObject *o); + +/* === Sequence protocol ================================================ */ + +#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. */ +extern Py_ssize_t _PySequence_IterSearch(PyObject *seq, + PyObject *obj, int operation); + +/* === Mapping protocol ================================================= */ + +extern int _PyObject_RealIsInstance(PyObject *inst, PyObject *cls); + +extern int _PyObject_RealIsSubclass(PyObject *derived, PyObject *cls); + +// Convert Python int to Py_ssize_t. Do nothing if the argument is None. +// Export for '_bisect' shared extension. +PyAPI_FUNC(int) _Py_convert_optional_to_ssize_t(PyObject *, void *); + +// Same as PyNumber_Index() but can return an instance of a subclass of int. +// Export for 'math' shared extension. +PyAPI_FUNC(PyObject*) _PyNumber_Index(PyObject *o); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_ABSTRACT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_asdl.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_asdl.h new file mode 100644 index 000000000..afeada88d --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_asdl.h @@ -0,0 +1,112 @@ +#ifndef Py_INTERNAL_ASDL_H +#define Py_INTERNAL_ASDL_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_pyarena.h" // _PyArena_Malloc() + +typedef PyObject * identifier; +typedef PyObject * string; +typedef PyObject * object; +typedef PyObject * constant; + +/* It would be nice if the code generated by asdl_c.py was completely + independent of Python, but it is a goal the requires too much work + at this stage. So, for example, I'll represent identifiers as + interned Python strings. +*/ + +#define _ASDL_SEQ_HEAD \ + Py_ssize_t size; \ + void **elements; + +typedef struct { + _ASDL_SEQ_HEAD +} asdl_seq; + +typedef struct { + _ASDL_SEQ_HEAD + void *typed_elements[1]; +} asdl_generic_seq; + +typedef struct { + _ASDL_SEQ_HEAD + PyObject *typed_elements[1]; +} asdl_identifier_seq; + +typedef struct { + _ASDL_SEQ_HEAD + int typed_elements[1]; +} asdl_int_seq; + +asdl_generic_seq *_Py_asdl_generic_seq_new(Py_ssize_t size, PyArena *arena); +asdl_identifier_seq *_Py_asdl_identifier_seq_new(Py_ssize_t size, PyArena *arena); +asdl_int_seq *_Py_asdl_int_seq_new(Py_ssize_t size, PyArena *arena); + + +#define GENERATE_ASDL_SEQ_CONSTRUCTOR(NAME, TYPE) \ +asdl_ ## NAME ## _seq *_Py_asdl_ ## NAME ## _seq_new(Py_ssize_t size, PyArena *arena) \ +{ \ + asdl_ ## NAME ## _seq *seq = NULL; \ + size_t n; \ + /* check size is sane */ \ + if (size < 0 || \ + (size && (((size_t)size - 1) > (SIZE_MAX / sizeof(void *))))) { \ + PyErr_NoMemory(); \ + return NULL; \ + } \ + n = (size ? (sizeof(TYPE *) * (size - 1)) : 0); \ + /* check if size can be added safely */ \ + if (n > SIZE_MAX - sizeof(asdl_ ## NAME ## _seq)) { \ + PyErr_NoMemory(); \ + return NULL; \ + } \ + n += sizeof(asdl_ ## NAME ## _seq); \ + seq = (asdl_ ## NAME ## _seq *)_PyArena_Malloc(arena, n); \ + if (!seq) { \ + PyErr_NoMemory(); \ + return NULL; \ + } \ + memset(seq, 0, n); \ + seq->size = size; \ + seq->elements = (void**)seq->typed_elements; \ + return seq; \ +} + +#define asdl_seq_GET_UNTYPED(S, I) _Py_RVALUE((S)->elements[(I)]) +#define asdl_seq_GET(S, I) _Py_RVALUE((S)->typed_elements[(I)]) +#define asdl_seq_LEN(S) _Py_RVALUE(((S) == NULL ? 0 : (S)->size)) + +#ifdef Py_DEBUG +# define asdl_seq_SET(S, I, V) \ + do { \ + Py_ssize_t _asdl_i = (I); \ + assert((S) != NULL); \ + assert(0 <= _asdl_i && _asdl_i < (S)->size); \ + (S)->typed_elements[_asdl_i] = (V); \ + } while (0) +#else +# define asdl_seq_SET(S, I, V) _Py_RVALUE((S)->typed_elements[(I)] = (V)) +#endif + +#ifdef Py_DEBUG +# define asdl_seq_SET_UNTYPED(S, I, V) \ + do { \ + Py_ssize_t _asdl_i = (I); \ + assert((S) != NULL); \ + assert(0 <= _asdl_i && _asdl_i < (S)->size); \ + (S)->elements[_asdl_i] = (V); \ + } while (0) +#else +# define asdl_seq_SET_UNTYPED(S, I, V) _Py_RVALUE((S)->elements[(I)] = (V)) +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_ASDL_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_ast.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_ast.h new file mode 100644 index 000000000..f5bf1205a --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_ast.h @@ -0,0 +1,926 @@ +// File automatically generated by Parser/asdl_c.py. + +#ifndef Py_INTERNAL_AST_H +#define Py_INTERNAL_AST_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_asdl.h" // _ASDL_SEQ_HEAD + +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 _boolop { And=1, Or=2 } boolop_ty; + +typedef enum _operator { Add=1, Sub=2, Mult=3, MatMult=4, Div=5, Mod=6, Pow=7, + LShift=8, RShift=9, BitOr=10, BitXor=11, BitAnd=12, + FloorDiv=13 } operator_ty; + +typedef enum _unaryop { Invert=1, Not=2, UAdd=3, USub=4 } unaryop_ty; + +typedef enum _cmpop { Eq=1, NotEq=2, Lt=3, LtE=4, Gt=5, GtE=6, Is=7, IsNot=8, + In=9, NotIn=10 } cmpop_ty; + +typedef struct _comprehension *comprehension_ty; + +typedef struct _excepthandler *excepthandler_ty; + +typedef struct _arguments *arguments_ty; + +typedef struct _arg *arg_ty; + +typedef struct _keyword *keyword_ty; + +typedef struct _alias *alias_ty; + +typedef struct _withitem *withitem_ty; + +typedef struct _match_case *match_case_ty; + +typedef struct _pattern *pattern_ty; + +typedef struct _type_ignore *type_ignore_ty; + +typedef struct _type_param *type_param_ty; + + +typedef struct { + _ASDL_SEQ_HEAD + mod_ty typed_elements[1]; +} asdl_mod_seq; + +asdl_mod_seq *_Py_asdl_mod_seq_new(Py_ssize_t size, PyArena *arena); + +typedef struct { + _ASDL_SEQ_HEAD + stmt_ty typed_elements[1]; +} asdl_stmt_seq; + +asdl_stmt_seq *_Py_asdl_stmt_seq_new(Py_ssize_t size, PyArena *arena); + +typedef struct { + _ASDL_SEQ_HEAD + expr_ty typed_elements[1]; +} asdl_expr_seq; + +asdl_expr_seq *_Py_asdl_expr_seq_new(Py_ssize_t size, PyArena *arena); + +typedef struct { + _ASDL_SEQ_HEAD + comprehension_ty typed_elements[1]; +} asdl_comprehension_seq; + +asdl_comprehension_seq *_Py_asdl_comprehension_seq_new(Py_ssize_t size, PyArena + *arena); + +typedef struct { + _ASDL_SEQ_HEAD + excepthandler_ty typed_elements[1]; +} asdl_excepthandler_seq; + +asdl_excepthandler_seq *_Py_asdl_excepthandler_seq_new(Py_ssize_t size, PyArena + *arena); + +typedef struct { + _ASDL_SEQ_HEAD + arguments_ty typed_elements[1]; +} asdl_arguments_seq; + +asdl_arguments_seq *_Py_asdl_arguments_seq_new(Py_ssize_t size, PyArena *arena); + +typedef struct { + _ASDL_SEQ_HEAD + arg_ty typed_elements[1]; +} asdl_arg_seq; + +asdl_arg_seq *_Py_asdl_arg_seq_new(Py_ssize_t size, PyArena *arena); + +typedef struct { + _ASDL_SEQ_HEAD + keyword_ty typed_elements[1]; +} asdl_keyword_seq; + +asdl_keyword_seq *_Py_asdl_keyword_seq_new(Py_ssize_t size, PyArena *arena); + +typedef struct { + _ASDL_SEQ_HEAD + alias_ty typed_elements[1]; +} asdl_alias_seq; + +asdl_alias_seq *_Py_asdl_alias_seq_new(Py_ssize_t size, PyArena *arena); + +typedef struct { + _ASDL_SEQ_HEAD + withitem_ty typed_elements[1]; +} asdl_withitem_seq; + +asdl_withitem_seq *_Py_asdl_withitem_seq_new(Py_ssize_t size, PyArena *arena); + +typedef struct { + _ASDL_SEQ_HEAD + match_case_ty typed_elements[1]; +} asdl_match_case_seq; + +asdl_match_case_seq *_Py_asdl_match_case_seq_new(Py_ssize_t size, PyArena + *arena); + +typedef struct { + _ASDL_SEQ_HEAD + pattern_ty typed_elements[1]; +} asdl_pattern_seq; + +asdl_pattern_seq *_Py_asdl_pattern_seq_new(Py_ssize_t size, PyArena *arena); + +typedef struct { + _ASDL_SEQ_HEAD + type_ignore_ty typed_elements[1]; +} asdl_type_ignore_seq; + +asdl_type_ignore_seq *_Py_asdl_type_ignore_seq_new(Py_ssize_t size, PyArena + *arena); + +typedef struct { + _ASDL_SEQ_HEAD + type_param_ty typed_elements[1]; +} asdl_type_param_seq; + +asdl_type_param_seq *_Py_asdl_type_param_seq_new(Py_ssize_t size, PyArena + *arena); + + +enum _mod_kind {Module_kind=1, Interactive_kind=2, Expression_kind=3, + FunctionType_kind=4}; +struct _mod { + enum _mod_kind kind; + union { + struct { + asdl_stmt_seq *body; + asdl_type_ignore_seq *type_ignores; + } Module; + + struct { + asdl_stmt_seq *body; + } Interactive; + + struct { + expr_ty body; + } Expression; + + struct { + asdl_expr_seq *argtypes; + expr_ty returns; + } FunctionType; + + } v; +}; + +enum _stmt_kind {FunctionDef_kind=1, AsyncFunctionDef_kind=2, ClassDef_kind=3, + Return_kind=4, Delete_kind=5, Assign_kind=6, + TypeAlias_kind=7, AugAssign_kind=8, AnnAssign_kind=9, + For_kind=10, AsyncFor_kind=11, While_kind=12, If_kind=13, + With_kind=14, AsyncWith_kind=15, Match_kind=16, + Raise_kind=17, Try_kind=18, TryStar_kind=19, Assert_kind=20, + Import_kind=21, ImportFrom_kind=22, Global_kind=23, + Nonlocal_kind=24, Expr_kind=25, Pass_kind=26, Break_kind=27, + Continue_kind=28}; +struct _stmt { + enum _stmt_kind kind; + union { + struct { + identifier name; + arguments_ty args; + asdl_stmt_seq *body; + asdl_expr_seq *decorator_list; + expr_ty returns; + string type_comment; + asdl_type_param_seq *type_params; + } FunctionDef; + + struct { + identifier name; + arguments_ty args; + asdl_stmt_seq *body; + asdl_expr_seq *decorator_list; + expr_ty returns; + string type_comment; + asdl_type_param_seq *type_params; + } AsyncFunctionDef; + + struct { + identifier name; + asdl_expr_seq *bases; + asdl_keyword_seq *keywords; + asdl_stmt_seq *body; + asdl_expr_seq *decorator_list; + asdl_type_param_seq *type_params; + } ClassDef; + + struct { + expr_ty value; + } Return; + + struct { + asdl_expr_seq *targets; + } Delete; + + struct { + asdl_expr_seq *targets; + expr_ty value; + string type_comment; + } Assign; + + struct { + expr_ty name; + asdl_type_param_seq *type_params; + expr_ty value; + } TypeAlias; + + struct { + expr_ty target; + operator_ty op; + expr_ty value; + } AugAssign; + + struct { + expr_ty target; + expr_ty annotation; + expr_ty value; + int simple; + } AnnAssign; + + struct { + expr_ty target; + expr_ty iter; + asdl_stmt_seq *body; + asdl_stmt_seq *orelse; + string type_comment; + } For; + + struct { + expr_ty target; + expr_ty iter; + asdl_stmt_seq *body; + asdl_stmt_seq *orelse; + string type_comment; + } AsyncFor; + + struct { + expr_ty test; + asdl_stmt_seq *body; + asdl_stmt_seq *orelse; + } While; + + struct { + expr_ty test; + asdl_stmt_seq *body; + asdl_stmt_seq *orelse; + } If; + + struct { + asdl_withitem_seq *items; + asdl_stmt_seq *body; + string type_comment; + } With; + + struct { + asdl_withitem_seq *items; + asdl_stmt_seq *body; + string type_comment; + } AsyncWith; + + struct { + expr_ty subject; + asdl_match_case_seq *cases; + } Match; + + struct { + expr_ty exc; + expr_ty cause; + } Raise; + + struct { + asdl_stmt_seq *body; + asdl_excepthandler_seq *handlers; + asdl_stmt_seq *orelse; + asdl_stmt_seq *finalbody; + } Try; + + struct { + asdl_stmt_seq *body; + asdl_excepthandler_seq *handlers; + asdl_stmt_seq *orelse; + asdl_stmt_seq *finalbody; + } TryStar; + + struct { + expr_ty test; + expr_ty msg; + } Assert; + + struct { + asdl_alias_seq *names; + } Import; + + struct { + identifier module; + asdl_alias_seq *names; + int level; + } ImportFrom; + + struct { + asdl_identifier_seq *names; + } Global; + + struct { + asdl_identifier_seq *names; + } Nonlocal; + + struct { + expr_ty value; + } Expr; + + } v; + int lineno; + int 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}; +struct _expr { + enum _expr_kind kind; + union { + struct { + boolop_ty op; + asdl_expr_seq *values; + } BoolOp; + + struct { + expr_ty target; + expr_ty value; + } NamedExpr; + + struct { + expr_ty left; + operator_ty op; + expr_ty right; + } BinOp; + + struct { + unaryop_ty op; + expr_ty operand; + } UnaryOp; + + struct { + arguments_ty args; + expr_ty body; + } Lambda; + + struct { + expr_ty test; + expr_ty body; + expr_ty orelse; + } IfExp; + + struct { + asdl_expr_seq *keys; + asdl_expr_seq *values; + } Dict; + + struct { + asdl_expr_seq *elts; + } Set; + + struct { + expr_ty elt; + asdl_comprehension_seq *generators; + } ListComp; + + struct { + expr_ty elt; + asdl_comprehension_seq *generators; + } SetComp; + + struct { + expr_ty key; + expr_ty value; + asdl_comprehension_seq *generators; + } DictComp; + + struct { + expr_ty elt; + asdl_comprehension_seq *generators; + } GeneratorExp; + + struct { + expr_ty value; + } Await; + + struct { + expr_ty value; + } Yield; + + struct { + expr_ty value; + } YieldFrom; + + struct { + expr_ty left; + asdl_int_seq *ops; + asdl_expr_seq *comparators; + } Compare; + + struct { + expr_ty func; + asdl_expr_seq *args; + asdl_keyword_seq *keywords; + } Call; + + struct { + expr_ty value; + int conversion; + expr_ty format_spec; + } FormattedValue; + + struct { + asdl_expr_seq *values; + } JoinedStr; + + struct { + constant value; + string kind; + } Constant; + + struct { + expr_ty value; + identifier attr; + expr_context_ty ctx; + } Attribute; + + struct { + expr_ty value; + expr_ty slice; + expr_context_ty ctx; + } Subscript; + + struct { + expr_ty value; + expr_context_ty ctx; + } Starred; + + struct { + identifier id; + expr_context_ty ctx; + } Name; + + struct { + asdl_expr_seq *elts; + expr_context_ty ctx; + } List; + + struct { + asdl_expr_seq *elts; + expr_context_ty ctx; + } Tuple; + + struct { + expr_ty lower; + expr_ty upper; + expr_ty step; + } Slice; + + } v; + int lineno; + int col_offset; + int end_lineno; + int end_col_offset; +}; + +struct _comprehension { + expr_ty target; + expr_ty iter; + asdl_expr_seq *ifs; + int is_async; +}; + +enum _excepthandler_kind {ExceptHandler_kind=1}; +struct _excepthandler { + enum _excepthandler_kind kind; + union { + struct { + expr_ty type; + identifier name; + asdl_stmt_seq *body; + } ExceptHandler; + + } v; + int lineno; + int col_offset; + int end_lineno; + int end_col_offset; +}; + +struct _arguments { + asdl_arg_seq *posonlyargs; + asdl_arg_seq *args; + arg_ty vararg; + asdl_arg_seq *kwonlyargs; + asdl_expr_seq *kw_defaults; + arg_ty kwarg; + asdl_expr_seq *defaults; +}; + +struct _arg { + identifier arg; + expr_ty annotation; + string type_comment; + int lineno; + int 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; +}; + +struct _alias { + identifier name; + identifier asname; + int lineno; + int col_offset; + int end_lineno; + int end_col_offset; +}; + +struct _withitem { + expr_ty context_expr; + expr_ty optional_vars; +}; + +struct _match_case { + pattern_ty pattern; + expr_ty guard; + asdl_stmt_seq *body; +}; + +enum _pattern_kind {MatchValue_kind=1, MatchSingleton_kind=2, + MatchSequence_kind=3, MatchMapping_kind=4, + MatchClass_kind=5, MatchStar_kind=6, MatchAs_kind=7, + MatchOr_kind=8}; +struct _pattern { + enum _pattern_kind kind; + union { + struct { + expr_ty value; + } MatchValue; + + struct { + constant value; + } MatchSingleton; + + struct { + asdl_pattern_seq *patterns; + } MatchSequence; + + struct { + asdl_expr_seq *keys; + asdl_pattern_seq *patterns; + identifier rest; + } MatchMapping; + + struct { + expr_ty cls; + asdl_pattern_seq *patterns; + asdl_identifier_seq *kwd_attrs; + asdl_pattern_seq *kwd_patterns; + } MatchClass; + + struct { + identifier name; + } MatchStar; + + struct { + pattern_ty pattern; + identifier name; + } MatchAs; + + struct { + asdl_pattern_seq *patterns; + } MatchOr; + + } v; + int lineno; + int col_offset; + int end_lineno; + int end_col_offset; +}; + +enum _type_ignore_kind {TypeIgnore_kind=1}; +struct _type_ignore { + enum _type_ignore_kind kind; + union { + struct { + int lineno; + string tag; + } TypeIgnore; + + } v; +}; + +enum _type_param_kind {TypeVar_kind=1, ParamSpec_kind=2, TypeVarTuple_kind=3}; +struct _type_param { + enum _type_param_kind kind; + union { + struct { + identifier name; + expr_ty bound; + expr_ty default_value; + } TypeVar; + + struct { + identifier name; + expr_ty default_value; + } ParamSpec; + + struct { + identifier name; + expr_ty default_value; + } TypeVarTuple; + + } v; + int lineno; + int col_offset; + int end_lineno; + int end_col_offset; +}; + + +// Note: these macros affect function definitions, not only call sites. +mod_ty _PyAST_Module(asdl_stmt_seq * body, asdl_type_ignore_seq * type_ignores, + PyArena *arena); +mod_ty _PyAST_Interactive(asdl_stmt_seq * body, PyArena *arena); +mod_ty _PyAST_Expression(expr_ty body, PyArena *arena); +mod_ty _PyAST_FunctionType(asdl_expr_seq * argtypes, expr_ty returns, PyArena + *arena); +stmt_ty _PyAST_FunctionDef(identifier name, arguments_ty args, asdl_stmt_seq * + body, asdl_expr_seq * decorator_list, expr_ty + returns, string type_comment, asdl_type_param_seq * + type_params, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); +stmt_ty _PyAST_AsyncFunctionDef(identifier name, arguments_ty args, + asdl_stmt_seq * body, asdl_expr_seq * + decorator_list, expr_ty returns, string + type_comment, asdl_type_param_seq * + type_params, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); +stmt_ty _PyAST_ClassDef(identifier name, asdl_expr_seq * bases, + asdl_keyword_seq * keywords, asdl_stmt_seq * body, + asdl_expr_seq * decorator_list, asdl_type_param_seq * + type_params, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); +stmt_ty _PyAST_Return(expr_ty value, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); +stmt_ty _PyAST_Delete(asdl_expr_seq * targets, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); +stmt_ty _PyAST_Assign(asdl_expr_seq * targets, expr_ty value, string + type_comment, int lineno, int col_offset, int end_lineno, + int end_col_offset, PyArena *arena); +stmt_ty _PyAST_TypeAlias(expr_ty name, asdl_type_param_seq * type_params, + expr_ty value, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); +stmt_ty _PyAST_AugAssign(expr_ty target, operator_ty op, expr_ty value, int + lineno, int col_offset, int end_lineno, int + end_col_offset, PyArena *arena); +stmt_ty _PyAST_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); +stmt_ty _PyAST_For(expr_ty target, expr_ty iter, asdl_stmt_seq * body, + asdl_stmt_seq * orelse, string type_comment, int lineno, int + col_offset, int end_lineno, int end_col_offset, PyArena + *arena); +stmt_ty _PyAST_AsyncFor(expr_ty target, expr_ty iter, asdl_stmt_seq * body, + asdl_stmt_seq * orelse, string type_comment, int + lineno, int col_offset, int end_lineno, int + end_col_offset, PyArena *arena); +stmt_ty _PyAST_While(expr_ty test, asdl_stmt_seq * body, asdl_stmt_seq * + orelse, int lineno, int col_offset, int end_lineno, int + end_col_offset, PyArena *arena); +stmt_ty _PyAST_If(expr_ty test, asdl_stmt_seq * body, asdl_stmt_seq * orelse, + int lineno, int col_offset, int end_lineno, int + end_col_offset, PyArena *arena); +stmt_ty _PyAST_With(asdl_withitem_seq * items, asdl_stmt_seq * body, string + type_comment, int lineno, int col_offset, int end_lineno, + int end_col_offset, PyArena *arena); +stmt_ty _PyAST_AsyncWith(asdl_withitem_seq * items, asdl_stmt_seq * body, + string type_comment, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); +stmt_ty _PyAST_Match(expr_ty subject, asdl_match_case_seq * cases, int lineno, + int col_offset, int end_lineno, int end_col_offset, + PyArena *arena); +stmt_ty _PyAST_Raise(expr_ty exc, expr_ty cause, int lineno, int col_offset, + int end_lineno, int end_col_offset, PyArena *arena); +stmt_ty _PyAST_Try(asdl_stmt_seq * body, asdl_excepthandler_seq * handlers, + asdl_stmt_seq * orelse, asdl_stmt_seq * finalbody, int + lineno, int col_offset, int end_lineno, int end_col_offset, + PyArena *arena); +stmt_ty _PyAST_TryStar(asdl_stmt_seq * body, asdl_excepthandler_seq * handlers, + asdl_stmt_seq * orelse, asdl_stmt_seq * finalbody, int + lineno, int col_offset, int end_lineno, int + end_col_offset, PyArena *arena); +stmt_ty _PyAST_Assert(expr_ty test, expr_ty msg, int lineno, int col_offset, + int end_lineno, int end_col_offset, PyArena *arena); +stmt_ty _PyAST_Import(asdl_alias_seq * names, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); +stmt_ty _PyAST_ImportFrom(identifier module, asdl_alias_seq * names, int level, + int lineno, int col_offset, int end_lineno, int + end_col_offset, PyArena *arena); +stmt_ty _PyAST_Global(asdl_identifier_seq * names, int lineno, int col_offset, + int end_lineno, int end_col_offset, PyArena *arena); +stmt_ty _PyAST_Nonlocal(asdl_identifier_seq * names, int lineno, int + col_offset, int end_lineno, int end_col_offset, PyArena + *arena); +stmt_ty _PyAST_Expr(expr_ty value, int lineno, int col_offset, int end_lineno, + int end_col_offset, PyArena *arena); +stmt_ty _PyAST_Pass(int lineno, int col_offset, int end_lineno, int + end_col_offset, PyArena *arena); +stmt_ty _PyAST_Break(int lineno, int col_offset, int end_lineno, int + end_col_offset, PyArena *arena); +stmt_ty _PyAST_Continue(int lineno, int col_offset, int end_lineno, int + end_col_offset, PyArena *arena); +expr_ty _PyAST_BoolOp(boolop_ty op, asdl_expr_seq * values, int lineno, int + col_offset, int end_lineno, int end_col_offset, PyArena + *arena); +expr_ty _PyAST_NamedExpr(expr_ty target, expr_ty value, int lineno, int + col_offset, int end_lineno, int end_col_offset, + PyArena *arena); +expr_ty _PyAST_BinOp(expr_ty left, operator_ty op, expr_ty right, int lineno, + int col_offset, int end_lineno, int end_col_offset, + PyArena *arena); +expr_ty _PyAST_UnaryOp(unaryop_ty op, expr_ty operand, int lineno, int + col_offset, int end_lineno, int end_col_offset, PyArena + *arena); +expr_ty _PyAST_Lambda(arguments_ty args, expr_ty body, int lineno, int + col_offset, int end_lineno, int end_col_offset, PyArena + *arena); +expr_ty _PyAST_IfExp(expr_ty test, expr_ty body, expr_ty orelse, int lineno, + int col_offset, int end_lineno, int end_col_offset, + PyArena *arena); +expr_ty _PyAST_Dict(asdl_expr_seq * keys, asdl_expr_seq * values, int lineno, + int col_offset, int end_lineno, int end_col_offset, PyArena + *arena); +expr_ty _PyAST_Set(asdl_expr_seq * elts, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); +expr_ty _PyAST_ListComp(expr_ty elt, asdl_comprehension_seq * generators, int + lineno, int col_offset, int end_lineno, int + end_col_offset, PyArena *arena); +expr_ty _PyAST_SetComp(expr_ty elt, asdl_comprehension_seq * generators, int + lineno, int col_offset, int end_lineno, int + end_col_offset, PyArena *arena); +expr_ty _PyAST_DictComp(expr_ty key, expr_ty value, asdl_comprehension_seq * + generators, int lineno, int col_offset, int end_lineno, + int end_col_offset, PyArena *arena); +expr_ty _PyAST_GeneratorExp(expr_ty elt, asdl_comprehension_seq * generators, + int lineno, int col_offset, int end_lineno, int + end_col_offset, PyArena *arena); +expr_ty _PyAST_Await(expr_ty value, int lineno, int col_offset, int end_lineno, + int end_col_offset, PyArena *arena); +expr_ty _PyAST_Yield(expr_ty value, int lineno, int col_offset, int end_lineno, + int end_col_offset, PyArena *arena); +expr_ty _PyAST_YieldFrom(expr_ty value, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); +expr_ty _PyAST_Compare(expr_ty left, asdl_int_seq * ops, asdl_expr_seq * + comparators, int lineno, int col_offset, int end_lineno, + int end_col_offset, PyArena *arena); +expr_ty _PyAST_Call(expr_ty func, asdl_expr_seq * args, asdl_keyword_seq * + keywords, int lineno, int col_offset, int end_lineno, int + end_col_offset, PyArena *arena); +expr_ty _PyAST_FormattedValue(expr_ty value, int conversion, expr_ty + format_spec, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); +expr_ty _PyAST_JoinedStr(asdl_expr_seq * values, int lineno, int col_offset, + int end_lineno, int end_col_offset, PyArena *arena); +expr_ty _PyAST_Constant(constant value, string kind, int lineno, int + col_offset, int end_lineno, int end_col_offset, PyArena + *arena); +expr_ty _PyAST_Attribute(expr_ty value, identifier attr, expr_context_ty ctx, + int lineno, int col_offset, int end_lineno, int + end_col_offset, PyArena *arena); +expr_ty _PyAST_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 _PyAST_Starred(expr_ty value, expr_context_ty ctx, int lineno, int + col_offset, int end_lineno, int end_col_offset, PyArena + *arena); +expr_ty _PyAST_Name(identifier id, expr_context_ty ctx, int lineno, int + col_offset, int end_lineno, int end_col_offset, PyArena + *arena); +expr_ty _PyAST_List(asdl_expr_seq * elts, expr_context_ty ctx, int lineno, int + col_offset, int end_lineno, int end_col_offset, PyArena + *arena); +expr_ty _PyAST_Tuple(asdl_expr_seq * elts, expr_context_ty ctx, int lineno, int + col_offset, int end_lineno, int end_col_offset, PyArena + *arena); +expr_ty _PyAST_Slice(expr_ty lower, expr_ty upper, expr_ty step, int lineno, + int col_offset, int end_lineno, int end_col_offset, + PyArena *arena); +comprehension_ty _PyAST_comprehension(expr_ty target, expr_ty iter, + asdl_expr_seq * ifs, int is_async, + PyArena *arena); +excepthandler_ty _PyAST_ExceptHandler(expr_ty type, identifier name, + asdl_stmt_seq * body, int lineno, int + col_offset, int end_lineno, int + end_col_offset, PyArena *arena); +arguments_ty _PyAST_arguments(asdl_arg_seq * posonlyargs, asdl_arg_seq * args, + arg_ty vararg, asdl_arg_seq * kwonlyargs, + asdl_expr_seq * kw_defaults, arg_ty kwarg, + asdl_expr_seq * defaults, PyArena *arena); +arg_ty _PyAST_arg(identifier arg, expr_ty annotation, string type_comment, int + lineno, int col_offset, int end_lineno, int end_col_offset, + PyArena *arena); +keyword_ty _PyAST_keyword(identifier arg, expr_ty value, int lineno, int + col_offset, int end_lineno, int end_col_offset, + PyArena *arena); +alias_ty _PyAST_alias(identifier name, identifier asname, int lineno, int + col_offset, int end_lineno, int end_col_offset, PyArena + *arena); +withitem_ty _PyAST_withitem(expr_ty context_expr, expr_ty optional_vars, + PyArena *arena); +match_case_ty _PyAST_match_case(pattern_ty pattern, expr_ty guard, + asdl_stmt_seq * body, PyArena *arena); +pattern_ty _PyAST_MatchValue(expr_ty value, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); +pattern_ty _PyAST_MatchSingleton(constant value, int lineno, int col_offset, + int end_lineno, int end_col_offset, PyArena + *arena); +pattern_ty _PyAST_MatchSequence(asdl_pattern_seq * patterns, int lineno, int + col_offset, int end_lineno, int end_col_offset, + PyArena *arena); +pattern_ty _PyAST_MatchMapping(asdl_expr_seq * keys, asdl_pattern_seq * + patterns, identifier rest, int lineno, int + col_offset, int end_lineno, int end_col_offset, + PyArena *arena); +pattern_ty _PyAST_MatchClass(expr_ty cls, asdl_pattern_seq * patterns, + asdl_identifier_seq * kwd_attrs, asdl_pattern_seq + * kwd_patterns, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); +pattern_ty _PyAST_MatchStar(identifier name, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); +pattern_ty _PyAST_MatchAs(pattern_ty pattern, identifier name, int lineno, int + col_offset, int end_lineno, int end_col_offset, + PyArena *arena); +pattern_ty _PyAST_MatchOr(asdl_pattern_seq * patterns, int lineno, int + col_offset, int end_lineno, int end_col_offset, + PyArena *arena); +type_ignore_ty _PyAST_TypeIgnore(int lineno, string tag, PyArena *arena); +type_param_ty _PyAST_TypeVar(identifier name, expr_ty bound, expr_ty + default_value, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); +type_param_ty _PyAST_ParamSpec(identifier name, expr_ty default_value, int + lineno, int col_offset, int end_lineno, int + end_col_offset, PyArena *arena); +type_param_ty _PyAST_TypeVarTuple(identifier name, expr_ty default_value, int + lineno, int col_offset, int end_lineno, int + end_col_offset, PyArena *arena); + + +PyObject* PyAST_mod2obj(mod_ty t); +mod_ty PyAST_obj2mod(PyObject* ast, PyArena* arena, int mode); +int PyAST_Check(PyObject* obj); + +extern int _PyAST_Validate(mod_ty); + +/* _PyAST_ExprAsUnicode is defined in ast_unparse.c */ +extern 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. */ +extern PyObject* _PyAST_GetDocString(asdl_stmt_seq *); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_AST_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_ast_state.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_ast_state.h new file mode 100644 index 000000000..09ae95465 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_ast_state.h @@ -0,0 +1,268 @@ +// File automatically generated by Parser/asdl_c.py. + +#ifndef Py_INTERNAL_AST_STATE_H +#define Py_INTERNAL_AST_STATE_H + +#include "pycore_lock.h" // _PyOnceFlag + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +struct ast_state { + _PyOnceFlag once; + int finalized; + 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 *MatchAs_type; + PyObject *MatchClass_type; + PyObject *MatchMapping_type; + PyObject *MatchOr_type; + PyObject *MatchSequence_type; + PyObject *MatchSingleton_type; + PyObject *MatchStar_type; + PyObject *MatchValue_type; + PyObject *Match_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 *ParamSpec_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 *TryStar_type; + PyObject *Try_type; + PyObject *Tuple_type; + PyObject *TypeAlias_type; + PyObject *TypeIgnore_type; + PyObject *TypeVarTuple_type; + PyObject *TypeVar_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 *__match_args__; + 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 *bound; + PyObject *cases; + PyObject *cause; + PyObject *cls; + PyObject *cmpop_type; + PyObject *col_offset; + PyObject *comparators; + PyObject *comprehension_type; + PyObject *context_expr; + PyObject *conversion; + PyObject *ctx; + PyObject *decorator_list; + PyObject *default_value; + 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 *guard; + 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 *kwd_attrs; + PyObject *kwd_patterns; + PyObject *kwonlyargs; + PyObject *left; + PyObject *level; + PyObject *lineno; + PyObject *lower; + PyObject *match_case_type; + 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 *pattern; + PyObject *pattern_type; + PyObject *patterns; + PyObject *posonlyargs; + PyObject *rest; + PyObject *returns; + PyObject *right; + PyObject *simple; + PyObject *slice; + PyObject *step; + PyObject *stmt_type; + PyObject *subject; + PyObject *tag; + PyObject *target; + PyObject *targets; + PyObject *test; + PyObject *type; + PyObject *type_comment; + PyObject *type_ignore_type; + PyObject *type_ignores; + PyObject *type_param_type; + PyObject *type_params; + PyObject *unaryop_type; + PyObject *upper; + PyObject *value; + PyObject *values; + PyObject *vararg; + PyObject *withitem_type; +}; + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_AST_STATE_H */ + diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_atexit.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_atexit.h new file mode 100644 index 000000000..507a5c03c --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_atexit.h @@ -0,0 +1,66 @@ +#ifndef Py_INTERNAL_ATEXIT_H +#define Py_INTERNAL_ATEXIT_H + +#include "pycore_lock.h" // PyMutex + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +//############### +// runtime atexit + +typedef void (*atexit_callbackfunc)(void); + +struct _atexit_runtime_state { + PyMutex mutex; +#define NEXITFUNCS 32 + atexit_callbackfunc callbacks[NEXITFUNCS]; + int ncallbacks; +}; + + +//################### +// interpreter atexit + +typedef void (*atexit_datacallbackfunc)(void *); + +typedef struct atexit_callback { + atexit_datacallbackfunc func; + void *data; + struct atexit_callback *next; +} atexit_callback; + +typedef struct { + PyObject *func; + PyObject *args; + PyObject *kwargs; +} atexit_py_callback; + +struct atexit_state { + atexit_callback *ll_callbacks; + atexit_callback *last_ll_callback; + + // XXX The rest of the state could be moved to the atexit module state + // and a low-level callback added for it during module exec. + // For the moment we leave it here. + atexit_py_callback **callbacks; + int ncallbacks; + int callback_len; +}; + +// Export for '_interpchannels' shared extension +PyAPI_FUNC(int) _Py_AtExit( + PyInterpreterState *interp, + atexit_datacallbackfunc func, + void *data); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_ATEXIT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_backoff.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_backoff.h new file mode 100644 index 000000000..0bcca1e76 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_backoff.h @@ -0,0 +1,145 @@ + +#ifndef Py_INTERNAL_BACKOFF_H +#define Py_INTERNAL_BACKOFF_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include +#include +#include + + +typedef struct { + union { + struct { + uint16_t backoff : 4; + uint16_t value : 12; + }; + uint16_t as_counter; // For printf("%#x", ...) + }; +} _Py_BackoffCounter; + + +/* 16-bit countdown counters using exponential backoff. + + These are used by the adaptive specializer to count down until + it is time to specialize an instruction. If specialization fails + the counter is reset using exponential backoff. + + Another use is for the Tier 2 optimizer to decide when to create + a new Tier 2 trace (executor). Again, exponential backoff is used. + + The 16-bit counter is structured as a 12-bit unsigned 'value' + and a 4-bit 'backoff' field. When resetting the counter, the + backoff field is incremented (until it reaches a limit) and the + value is set to a bit mask representing the value 2**backoff - 1. + The maximum backoff is 12 (the number of value bits). + + There is an exceptional value which must not be updated, 0xFFFF. +*/ + +#define UNREACHABLE_BACKOFF 0xFFFF + +static inline bool +is_unreachable_backoff_counter(_Py_BackoffCounter counter) +{ + return counter.as_counter == UNREACHABLE_BACKOFF; +} + +static inline _Py_BackoffCounter +make_backoff_counter(uint16_t value, uint16_t backoff) +{ + assert(backoff <= 15); + assert(value <= 0xFFF); + _Py_BackoffCounter result; + result.value = value; + result.backoff = backoff; + return result; +} + +static inline _Py_BackoffCounter +forge_backoff_counter(uint16_t counter) +{ + _Py_BackoffCounter result; + result.as_counter = counter; + return result; +} + +static inline _Py_BackoffCounter +restart_backoff_counter(_Py_BackoffCounter counter) +{ + assert(!is_unreachable_backoff_counter(counter)); + if (counter.backoff < 12) { + return make_backoff_counter((1 << (counter.backoff + 1)) - 1, counter.backoff + 1); + } + else { + return make_backoff_counter((1 << 12) - 1, 12); + } +} + +static inline _Py_BackoffCounter +pause_backoff_counter(_Py_BackoffCounter counter) +{ + return make_backoff_counter(counter.value | 1, counter.backoff); +} + +static inline _Py_BackoffCounter +advance_backoff_counter(_Py_BackoffCounter counter) +{ + if (!is_unreachable_backoff_counter(counter)) { + return make_backoff_counter((counter.value - 1) & 0xFFF, counter.backoff); + } + else { + return counter; + } +} + +static inline bool +backoff_counter_triggers(_Py_BackoffCounter counter) +{ + return counter.value == 0; +} + +/* Initial JUMP_BACKWARD counter. + * This determines when we create a trace for a loop. +* Backoff sequence 16, 32, 64, 128, 256, 512, 1024, 2048, 4096. */ +#define JUMP_BACKWARD_INITIAL_VALUE 16 +#define JUMP_BACKWARD_INITIAL_BACKOFF 4 +static inline _Py_BackoffCounter +initial_jump_backoff_counter(void) +{ + return make_backoff_counter(JUMP_BACKWARD_INITIAL_VALUE, + JUMP_BACKWARD_INITIAL_BACKOFF); +} + +/* Initial exit temperature. + * Must be larger than ADAPTIVE_COOLDOWN_VALUE, + * otherwise when a side exit warms up we may construct + * a new trace before the Tier 1 code has properly re-specialized. + * Backoff sequence 64, 128, 256, 512, 1024, 2048, 4096. */ +#define COLD_EXIT_INITIAL_VALUE 64 +#define COLD_EXIT_INITIAL_BACKOFF 6 + +static inline _Py_BackoffCounter +initial_temperature_backoff_counter(void) +{ + return make_backoff_counter(COLD_EXIT_INITIAL_VALUE, + COLD_EXIT_INITIAL_BACKOFF); +} + +/* Unreachable backoff counter. */ +static inline _Py_BackoffCounter +initial_unreachable_backoff_counter(void) +{ + return forge_backoff_counter(UNREACHABLE_BACKOFF); +} + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_BACKOFF_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_bitutils.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_bitutils.h new file mode 100644 index 000000000..50f693775 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_bitutils.h @@ -0,0 +1,186 @@ +/* Bit and bytes utilities. + + Bytes swap functions, reverse order of bytes: + + - _Py_bswap16(uint16_t) + - _Py_bswap32(uint32_t) + - _Py_bswap64(uint64_t) +*/ + +#ifndef Py_INTERNAL_BITUTILS_H +#define Py_INTERNAL_BITUTILS_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 +# include // _byteswap_uint64() +#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 +} + + +// Population count: count the number of 1's in 'x' +// (number of bits set to 1), also known as the hamming weight. +// +// Implementation note. CPUID is not used, to test if x86 POPCNT instruction +// can be used, to keep the implementation simple. For example, Visual Studio +// __popcnt() is not used this reason. The clang and GCC builtin function can +// use the x86 POPCNT instruction if the target architecture has SSE4a or +// newer. +static inline int +_Py_popcount32(uint32_t x) +{ +#if (defined(__clang__) || defined(__GNUC__)) + +#if SIZEOF_INT >= 4 + Py_BUILD_ASSERT(sizeof(x) <= sizeof(unsigned int)); + return __builtin_popcount(x); +#else + // The C standard guarantees that unsigned long will always be big enough + // to hold a uint32_t value without losing information. + Py_BUILD_ASSERT(sizeof(x) <= sizeof(unsigned long)); + return __builtin_popcountl(x); +#endif + +#else + // 32-bit SWAR (SIMD Within A Register) popcount + + // Binary: 0 1 0 1 ... + const uint32_t M1 = 0x55555555; + // Binary: 00 11 00 11. .. + const uint32_t M2 = 0x33333333; + // Binary: 0000 1111 0000 1111 ... + const uint32_t M4 = 0x0F0F0F0F; + + // Put count of each 2 bits into those 2 bits + x = x - ((x >> 1) & M1); + // Put count of each 4 bits into those 4 bits + x = (x & M2) + ((x >> 2) & M2); + // Put count of each 8 bits into those 8 bits + x = (x + (x >> 4)) & M4; + // Sum of the 4 byte counts. + // Take care when considering changes to the next line. Portability and + // correctness are delicate here, thanks to C's "integer promotions" (C99 + // §6.3.1.1p2). On machines where the `int` type has width greater than 32 + // bits, `x` will be promoted to an `int`, and following C's "usual + // arithmetic conversions" (C99 §6.3.1.8), the multiplication will be + // performed as a multiplication of two `unsigned int` operands. In this + // case it's critical that we cast back to `uint32_t` in order to keep only + // the least significant 32 bits. On machines where the `int` type has + // width no greater than 32, the multiplication is of two 32-bit unsigned + // integer types, and the (uint32_t) cast is a no-op. In both cases, we + // avoid the risk of undefined behaviour due to overflow of a + // multiplication of signed integer types. + return (uint32_t)(x * 0x01010101U) >> 24; +#endif +} + + +// Return the index of the most significant 1 bit in 'x'. This is the smallest +// integer k such that x < 2**k. Equivalent to floor(log2(x)) + 1 for x != 0. +static inline int +_Py_bit_length(unsigned long x) +{ +#if (defined(__clang__) || defined(__GNUC__)) + if (x != 0) { + // __builtin_clzl() is available since GCC 3.4. + // Undefined behavior for x == 0. + return (int)sizeof(unsigned long) * 8 - __builtin_clzl(x); + } + else { + return 0; + } +#elif defined(_MSC_VER) + // _BitScanReverse() is documented to search 32 bits. + Py_BUILD_ASSERT(sizeof(unsigned long) <= 4); + unsigned long msb; + if (_BitScanReverse(&msb, x)) { + return (int)msb + 1; + } + else { + return 0; + } +#else + const int BIT_LENGTH_TABLE[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 + }; + int msb = 0; + while (x >= 32) { + msb += 6; + x >>= 6; + } + msb += BIT_LENGTH_TABLE[x]; + return msb; +#endif +} + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_BITUTILS_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_blocks_output_buffer.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_blocks_output_buffer.h new file mode 100644 index 000000000..573e10359 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_blocks_output_buffer.h @@ -0,0 +1,321 @@ +/* + _BlocksOutputBuffer is used to maintain an output buffer + that has unpredictable size. Suitable for compression/decompression + API (bz2/lzma/zlib) that has stream->next_out and stream->avail_out: + + stream->next_out: point to the next output position. + stream->avail_out: the number of available bytes left in the buffer. + + It maintains a list of bytes object, so there is no overhead of resizing + the buffer. + + Usage: + + 1, Initialize the struct instance like this: + _BlocksOutputBuffer buffer = {.list = NULL}; + Set .list to NULL for _BlocksOutputBuffer_OnError() + + 2, Initialize the buffer use one of these functions: + _BlocksOutputBuffer_InitAndGrow() + _BlocksOutputBuffer_InitWithSize() + + 3, If (avail_out == 0), grow the buffer: + _BlocksOutputBuffer_Grow() + + 4, Get the current outputted data size: + _BlocksOutputBuffer_GetDataSize() + + 5, Finish the buffer, and return a bytes object: + _BlocksOutputBuffer_Finish() + + 6, Clean up the buffer when an error occurred: + _BlocksOutputBuffer_OnError() +*/ + +#ifndef Py_INTERNAL_BLOCKS_OUTPUT_BUFFER_H +#define Py_INTERNAL_BLOCKS_OUTPUT_BUFFER_H +#ifdef __cplusplus +extern "C" { +#endif + +#include "Python.h" + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +typedef struct { + // List of bytes objects + PyObject *list; + // Number of whole allocated size + Py_ssize_t allocated; + // Max length of the buffer, negative number means unlimited length. + Py_ssize_t max_length; +} _BlocksOutputBuffer; + +static const char unable_allocate_msg[] = "Unable to allocate output buffer."; + +/* In 32-bit build, the max block size should <= INT32_MAX. */ +#define OUTPUT_BUFFER_MAX_BLOCK_SIZE (256*1024*1024) + +/* Block size sequence */ +#define KB (1024) +#define MB (1024*1024) +static const Py_ssize_t BUFFER_BLOCK_SIZE[] = + { 32*KB, 64*KB, 256*KB, 1*MB, 4*MB, 8*MB, 16*MB, 16*MB, + 32*MB, 32*MB, 32*MB, 32*MB, 64*MB, 64*MB, 128*MB, 128*MB, + OUTPUT_BUFFER_MAX_BLOCK_SIZE }; +#undef KB +#undef MB + +/* According to the block sizes defined by BUFFER_BLOCK_SIZE, the whole + allocated size growth step is: + 1 32 KB +32 KB + 2 96 KB +64 KB + 3 352 KB +256 KB + 4 1.34 MB +1 MB + 5 5.34 MB +4 MB + 6 13.34 MB +8 MB + 7 29.34 MB +16 MB + 8 45.34 MB +16 MB + 9 77.34 MB +32 MB + 10 109.34 MB +32 MB + 11 141.34 MB +32 MB + 12 173.34 MB +32 MB + 13 237.34 MB +64 MB + 14 301.34 MB +64 MB + 15 429.34 MB +128 MB + 16 557.34 MB +128 MB + 17 813.34 MB +256 MB + 18 1069.34 MB +256 MB + 19 1325.34 MB +256 MB + 20 1581.34 MB +256 MB + 21 1837.34 MB +256 MB + 22 2093.34 MB +256 MB + ... +*/ + +/* Initialize the buffer, and grow the buffer. + + max_length: Max length of the buffer, -1 for unlimited length. + + On success, return allocated size (>=0) + On failure, return -1 +*/ +static inline Py_ssize_t +_BlocksOutputBuffer_InitAndGrow(_BlocksOutputBuffer *buffer, + const Py_ssize_t max_length, + void **next_out) +{ + PyObject *b; + Py_ssize_t block_size; + + // ensure .list was set to NULL + assert(buffer->list == NULL); + + // get block size + if (0 <= max_length && max_length < BUFFER_BLOCK_SIZE[0]) { + block_size = max_length; + } else { + block_size = BUFFER_BLOCK_SIZE[0]; + } + + // the first block + b = PyBytes_FromStringAndSize(NULL, block_size); + if (b == NULL) { + return -1; + } + + // create the list + buffer->list = PyList_New(1); + if (buffer->list == NULL) { + Py_DECREF(b); + return -1; + } + PyList_SET_ITEM(buffer->list, 0, b); + + // set variables + buffer->allocated = block_size; + buffer->max_length = max_length; + + *next_out = PyBytes_AS_STRING(b); + return block_size; +} + +/* Initialize the buffer, with an initial size. + + Check block size limit in the outer wrapper function. For example, some libs + accept UINT32_MAX as the maximum block size, then init_size should <= it. + + On success, return allocated size (>=0) + On failure, return -1 +*/ +static inline Py_ssize_t +_BlocksOutputBuffer_InitWithSize(_BlocksOutputBuffer *buffer, + const Py_ssize_t init_size, + void **next_out) +{ + PyObject *b; + + // ensure .list was set to NULL + assert(buffer->list == NULL); + + // the first block + b = PyBytes_FromStringAndSize(NULL, init_size); + if (b == NULL) { + PyErr_SetString(PyExc_MemoryError, unable_allocate_msg); + return -1; + } + + // create the list + buffer->list = PyList_New(1); + if (buffer->list == NULL) { + Py_DECREF(b); + return -1; + } + PyList_SET_ITEM(buffer->list, 0, b); + + // set variables + buffer->allocated = init_size; + buffer->max_length = -1; + + *next_out = PyBytes_AS_STRING(b); + return init_size; +} + +/* Grow the buffer. The avail_out must be 0, please check it before calling. + + On success, return allocated size (>=0) + On failure, return -1 +*/ +static inline Py_ssize_t +_BlocksOutputBuffer_Grow(_BlocksOutputBuffer *buffer, + void **next_out, + const Py_ssize_t avail_out) +{ + PyObject *b; + const Py_ssize_t list_len = Py_SIZE(buffer->list); + Py_ssize_t block_size; + + // ensure no gaps in the data + if (avail_out != 0) { + PyErr_SetString(PyExc_SystemError, + "avail_out is non-zero in _BlocksOutputBuffer_Grow()."); + return -1; + } + + // get block size + if (list_len < (Py_ssize_t) Py_ARRAY_LENGTH(BUFFER_BLOCK_SIZE)) { + block_size = BUFFER_BLOCK_SIZE[list_len]; + } else { + block_size = BUFFER_BLOCK_SIZE[Py_ARRAY_LENGTH(BUFFER_BLOCK_SIZE) - 1]; + } + + // check max_length + if (buffer->max_length >= 0) { + // if (rest == 0), should not grow the buffer. + Py_ssize_t rest = buffer->max_length - buffer->allocated; + assert(rest > 0); + + // block_size of the last block + if (block_size > rest) { + block_size = rest; + } + } + + // check buffer->allocated overflow + if (block_size > PY_SSIZE_T_MAX - buffer->allocated) { + PyErr_SetString(PyExc_MemoryError, unable_allocate_msg); + return -1; + } + + // create the block + b = PyBytes_FromStringAndSize(NULL, block_size); + if (b == NULL) { + PyErr_SetString(PyExc_MemoryError, unable_allocate_msg); + return -1; + } + if (PyList_Append(buffer->list, b) < 0) { + Py_DECREF(b); + return -1; + } + Py_DECREF(b); + + // set variables + buffer->allocated += block_size; + + *next_out = PyBytes_AS_STRING(b); + return block_size; +} + +/* Return the current outputted data size. */ +static inline Py_ssize_t +_BlocksOutputBuffer_GetDataSize(_BlocksOutputBuffer *buffer, + const Py_ssize_t avail_out) +{ + return buffer->allocated - avail_out; +} + +/* Finish the buffer. + + Return a bytes object on success + Return NULL on failure +*/ +static inline PyObject * +_BlocksOutputBuffer_Finish(_BlocksOutputBuffer *buffer, + const Py_ssize_t avail_out) +{ + PyObject *result, *block; + const Py_ssize_t list_len = Py_SIZE(buffer->list); + + // fast path for single block + if ((list_len == 1 && avail_out == 0) || + (list_len == 2 && Py_SIZE(PyList_GET_ITEM(buffer->list, 1)) == avail_out)) + { + block = PyList_GET_ITEM(buffer->list, 0); + Py_INCREF(block); + + Py_CLEAR(buffer->list); + return block; + } + + // final bytes object + result = PyBytes_FromStringAndSize(NULL, buffer->allocated - avail_out); + if (result == NULL) { + PyErr_SetString(PyExc_MemoryError, unable_allocate_msg); + return NULL; + } + + // memory copy + if (list_len > 0) { + char *posi = PyBytes_AS_STRING(result); + + // blocks except the last one + Py_ssize_t i = 0; + for (; i < list_len-1; i++) { + block = PyList_GET_ITEM(buffer->list, i); + memcpy(posi, PyBytes_AS_STRING(block), Py_SIZE(block)); + posi += Py_SIZE(block); + } + // the last block + block = PyList_GET_ITEM(buffer->list, i); + memcpy(posi, PyBytes_AS_STRING(block), Py_SIZE(block) - avail_out); + } else { + assert(Py_SIZE(result) == 0); + } + + Py_CLEAR(buffer->list); + return result; +} + +/* Clean up the buffer when an error occurred. */ +static inline void +_BlocksOutputBuffer_OnError(_BlocksOutputBuffer *buffer) +{ + Py_CLEAR(buffer->list); +} + +#ifdef __cplusplus +} +#endif +#endif /* Py_INTERNAL_BLOCKS_OUTPUT_BUFFER_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_brc.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_brc.h new file mode 100644 index 000000000..3453d83b5 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_brc.h @@ -0,0 +1,74 @@ +#ifndef Py_INTERNAL_BRC_H +#define Py_INTERNAL_BRC_H + +#include +#include "pycore_llist.h" // struct llist_node +#include "pycore_lock.h" // PyMutex +#include "pycore_object_stack.h" // _PyObjectStack + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#ifdef Py_GIL_DISABLED + +// Prime number to avoid correlations with memory addresses. +#define _Py_BRC_NUM_BUCKETS 257 + +// Hash table bucket +struct _brc_bucket { + // Mutex protects both the bucket and thread state queues in this bucket. + PyMutex mutex; + + // Linked list of _PyThreadStateImpl objects hashed to this bucket. + struct llist_node root; +}; + +// Per-interpreter biased reference counting state +struct _brc_state { + // Hash table of thread states by thread-id. Thread states within a bucket + // are chained using a doubly-linked list. + struct _brc_bucket table[_Py_BRC_NUM_BUCKETS]; +}; + +// Per-thread biased reference counting state +struct _brc_thread_state { + // Linked-list of thread states per hash bucket + struct llist_node bucket_node; + + // Thread-id as determined by _PyThread_Id() + uintptr_t tid; + + // Objects with refcounts to be merged (protected by bucket mutex) + _PyObjectStack objects_to_merge; + + // Local stack of objects to be merged (not accessed by other threads) + _PyObjectStack local_objects_to_merge; +}; + +// Initialize/finalize the per-thread biased reference counting state +void _Py_brc_init_thread(PyThreadState *tstate); +void _Py_brc_remove_thread(PyThreadState *tstate); + +// Initialize per-interpreter state +void _Py_brc_init_state(PyInterpreterState *interp); + +void _Py_brc_after_fork(PyInterpreterState *interp); + +// Enqueues an object to be merged by it's owning thread (tid). This +// steals a reference to the object. +void _Py_brc_queue_object(PyObject *ob); + +// Merge the refcounts of queued objects for the current thread. +void _Py_brc_merge_refcounts(PyThreadState *tstate); + +#endif /* Py_GIL_DISABLED */ + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_BRC_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_bytes_methods.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_bytes_methods.h new file mode 100644 index 000000000..059dc2599 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_bytes_methods.h @@ -0,0 +1,82 @@ +#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 *sub, + Py_ssize_t start, Py_ssize_t end); +extern PyObject *_Py_bytes_index(const char *str, Py_ssize_t len, PyObject *sub, + Py_ssize_t start, Py_ssize_t end); +extern PyObject *_Py_bytes_rfind(const char *str, Py_ssize_t len, PyObject *sub, + Py_ssize_t start, Py_ssize_t end); +extern PyObject *_Py_bytes_rindex(const char *str, Py_ssize_t len, PyObject *sub, + Py_ssize_t start, Py_ssize_t end); +extern PyObject *_Py_bytes_count(const char *str, Py_ssize_t len, PyObject *sub, + Py_ssize_t start, Py_ssize_t end); +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 *subobj, Py_ssize_t start, + Py_ssize_t end); +extern PyObject *_Py_bytes_endswith(const char *str, Py_ssize_t len, + PyObject *subobj, Py_ssize_t start, + Py_ssize_t end); + +/* 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/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_bytesobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_bytesobject.h new file mode 100644 index 000000000..300e7f489 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_bytesobject.h @@ -0,0 +1,148 @@ +#ifndef Py_INTERNAL_BYTESOBJECT_H +#define Py_INTERNAL_BYTESOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +extern PyObject* _PyBytes_FormatEx( + const char *format, + Py_ssize_t format_len, + PyObject *args, + int use_bytearray); + +extern PyObject* _PyBytes_FromHex( + PyObject *string, + int use_bytearray); + +// Helper for PyBytes_DecodeEscape that detects invalid escape chars. +// Export for test_peg_generator. +PyAPI_FUNC(PyObject*) _PyBytes_DecodeEscape(const char *, Py_ssize_t, + const char *, const char **); + + +// Substring Search. +// +// Returns the index of the first occurrence of +// a substring ("needle") in a larger text ("haystack"). +// If the needle is not found, return -1. +// If the needle is found, add offset to the index. +// +// Export for 'mmap' shared extension. +PyAPI_FUNC(Py_ssize_t) +_PyBytes_Find(const char *haystack, Py_ssize_t len_haystack, + const char *needle, Py_ssize_t len_needle, + Py_ssize_t offset); + +// Same as above, but search right-to-left. +// Export for 'mmap' shared extension. +PyAPI_FUNC(Py_ssize_t) +_PyBytes_ReverseFind(const char *haystack, Py_ssize_t len_haystack, + const char *needle, Py_ssize_t len_needle, + Py_ssize_t offset); + + +// Helper function to implement the repeat and inplace repeat methods on a +// buffer. +// +// len_dest is assumed to be an integer multiple of len_src. +// If src equals dest, then assume the operation is inplace. +// +// This method repeately doubles the number of bytes copied to reduce +// the number of invocations of memcpy. +// +// Export for 'array' shared extension. +PyAPI_FUNC(void) +_PyBytes_Repeat(char* dest, Py_ssize_t len_dest, + const char* src, Py_ssize_t len_src); + +/* --- _PyBytesWriter ----------------------------------------------------- */ + +/* 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. + + Export _PyBytesWriter API for '_pickle' shared extension. */ +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); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_BYTESOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_call.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_call.h new file mode 100644 index 000000000..c92028a01 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_call.h @@ -0,0 +1,205 @@ +#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 + +#include "pycore_identifier.h" // _Py_Identifier +#include "pycore_pystate.h" // _PyThreadState_GET() + +/* 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 + + +// Export for 'math' shared extension, used via _PyObject_VectorcallTstate() +// static inline function. +PyAPI_FUNC(PyObject*) _Py_CheckFunctionResult( + PyThreadState *tstate, + PyObject *callable, + PyObject *result, + const char *where); + +extern PyObject* _PyObject_Call_Prepend( + PyThreadState *tstate, + PyObject *callable, + PyObject *obj, + PyObject *args, + PyObject *kwargs); + +extern PyObject* _PyObject_VectorcallDictTstate( + PyThreadState *tstate, + PyObject *callable, + PyObject *const *args, + size_t nargsf, + PyObject *kwargs); + +extern PyObject* _PyObject_Call( + PyThreadState *tstate, + PyObject *callable, + PyObject *args, + PyObject *kwargs); + +extern PyObject * _PyObject_CallMethodFormat( + PyThreadState *tstate, + PyObject *callable, + const char *format, + ...); + +// Export for 'array' shared extension +PyAPI_FUNC(PyObject*) _PyObject_CallMethod( + PyObject *obj, + PyObject *name, + const char *format, ...); + +extern PyObject* _PyObject_CallMethodIdObjArgs( + PyObject *obj, + _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 _Py_NULL; + } + return PyObject_VectorcallMethod(oname, args, nargsf, kwnames); +} + +static inline PyObject * +_PyObject_CallMethodIdNoArgs(PyObject *self, _Py_Identifier *name) +{ + size_t nargsf = 1 | PY_VECTORCALL_ARGUMENTS_OFFSET; + return _PyObject_VectorcallMethodId(name, &self, nargsf, _Py_NULL); +} + +static inline PyObject * +_PyObject_CallMethodIdOneArg(PyObject *self, _Py_Identifier *name, PyObject *arg) +{ + PyObject *args[2] = {self, arg}; + size_t nargsf = 2 | PY_VECTORCALL_ARGUMENTS_OFFSET; + assert(arg != NULL); + return _PyObject_VectorcallMethodId(name, args, nargsf, _Py_NULL); +} + + +/* === Vectorcall protocol (PEP 590) ============================= */ + +// Call callable using tp_call. Arguments are like PyObject_Vectorcall(), +// except that nargs is plainly the number of arguments without flags. +// +// Export for 'math' shared extension, used via _PyObject_VectorcallTstate() +// static inline function. +PyAPI_FUNC(PyObject*) _PyObject_MakeTpCall( + PyThreadState *tstate, + PyObject *callable, + PyObject *const *args, Py_ssize_t nargs, + PyObject *keywords); + +// Static inline variant of public PyVectorcall_Function(). +static inline vectorcallfunc +_PyVectorcall_FunctionInline(PyObject *callable) +{ + assert(callable != NULL); + + PyTypeObject *tp = Py_TYPE(callable); + if (!PyType_HasFeature(tp, Py_TPFLAGS_HAVE_VECTORCALL)) { + return NULL; + } + assert(PyCallable_Check(callable)); + + Py_ssize_t offset = tp->tp_vectorcall_offset; + assert(offset > 0); + + vectorcallfunc ptr; + 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_FunctionInline(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_CallNoArgsTstate(PyThreadState *tstate, PyObject *func) { + return _PyObject_VectorcallTstate(tstate, func, NULL, 0, NULL); +} + + +// Private static inline function variant of public PyObject_CallNoArgs() +static inline PyObject * +_PyObject_CallNoArgs(PyObject *func) { + EVAL_CALL_STAT_INC_IF_FUNCTION(EVAL_CALL_API, func); + PyThreadState *tstate = _PyThreadState_GET(); + return _PyObject_VectorcallTstate(tstate, func, NULL, 0, NULL); +} + + +extern PyObject *const * +_PyStack_UnpackDict(PyThreadState *tstate, + PyObject *const *args, Py_ssize_t nargs, + PyObject *kwargs, PyObject **p_kwnames); + +extern void _PyStack_UnpackDict_Free( + PyObject *const *stack, + Py_ssize_t nargs, + PyObject *kwnames); + +extern void _PyStack_UnpackDict_FreeNoDecRef( + PyObject *const *stack, + PyObject *kwnames); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_CALL_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_capsule.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_capsule.h new file mode 100644 index 000000000..aa2c67f3a --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_capsule.h @@ -0,0 +1,17 @@ +#ifndef Py_INTERNAL_PYCAPSULE_H +#define Py_INTERNAL_PYCAPSULE_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +// Export for '_socket' shared extension +PyAPI_FUNC(int) _PyCapsule_SetTraverse(PyObject *op, traverseproc traverse_func, inquiry clear_func); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_PYCAPSULE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_cell.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_cell.h new file mode 100644 index 000000000..27f67d57b --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_cell.h @@ -0,0 +1,48 @@ +#ifndef Py_INTERNAL_CELL_H +#define Py_INTERNAL_CELL_H + +#include "pycore_critical_section.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +// Sets the cell contents to `value` and return previous contents. Steals a +// reference to `value`. +static inline PyObject * +PyCell_SwapTakeRef(PyCellObject *cell, PyObject *value) +{ + PyObject *old_value; + Py_BEGIN_CRITICAL_SECTION(cell); + old_value = cell->ob_ref; + cell->ob_ref = value; + Py_END_CRITICAL_SECTION(); + return old_value; +} + +static inline void +PyCell_SetTakeRef(PyCellObject *cell, PyObject *value) +{ + PyObject *old_value = PyCell_SwapTakeRef(cell, value); + Py_XDECREF(old_value); +} + +// Gets the cell contents. Returns a new reference. +static inline PyObject * +PyCell_GetRef(PyCellObject *cell) +{ + PyObject *res; + Py_BEGIN_CRITICAL_SECTION(cell); + res = Py_XNewRef(cell->ob_ref); + Py_END_CRITICAL_SECTION(); + return res; +} + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_CELL_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_ceval.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_ceval.h new file mode 100644 index 000000000..043f5957d --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_ceval.h @@ -0,0 +1,303 @@ +#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 + +#include "dynamic_annotations.h" // _Py_ANNOTATE_RWLOCK_CREATE + +#include "pycore_interp.h" // PyInterpreterState.eval_frame +#include "pycore_pystate.h" // _PyThreadState_GET() + +/* Forward declarations */ +struct pyruntimestate; +struct _ceval_runtime_state; + +// Export for '_lsprof' shared extension +PyAPI_FUNC(int) _PyEval_SetProfile(PyThreadState *tstate, Py_tracefunc func, PyObject *arg); + +extern int _PyEval_SetTrace(PyThreadState *tstate, Py_tracefunc func, PyObject *arg); + +extern int _PyEval_SetOpcodeTrace(PyFrameObject *f, bool enable); + +// Helper to look up a builtin object +// Export for 'array' shared extension +PyAPI_FUNC(PyObject*) _PyEval_GetBuiltin(PyObject *); + +extern PyObject* _PyEval_GetBuiltinId(_Py_Identifier *); + +extern void _PyEval_SetSwitchInterval(unsigned long microseconds); +extern unsigned long _PyEval_GetSwitchInterval(void); + +// Export for '_queue' shared extension +PyAPI_FUNC(int) _PyEval_MakePendingCalls(PyThreadState *); + +#ifndef Py_DEFAULT_RECURSION_LIMIT +# define Py_DEFAULT_RECURSION_LIMIT 1000 +#endif + +extern void _Py_FinishPendingCalls(PyThreadState *tstate); +extern void _PyEval_InitState(PyInterpreterState *); +extern void _PyEval_SignalReceived(void); + +// bitwise flags: +#define _Py_PENDING_MAINTHREADONLY 1 +#define _Py_PENDING_RAWFREE 2 + +typedef int _Py_add_pending_call_result; +#define _Py_ADD_PENDING_SUCCESS 0 +#define _Py_ADD_PENDING_FULL -1 + +// Export for '_testinternalcapi' shared extension +PyAPI_FUNC(_Py_add_pending_call_result) _PyEval_AddPendingCall( + PyInterpreterState *interp, + _Py_pending_call_func func, + void *arg, + int flags); + +#ifdef HAVE_FORK +extern PyStatus _PyEval_ReInitThreads(PyThreadState *tstate); +#endif + +// Used by sys.call_tracing() +extern PyObject* _PyEval_CallTracing(PyObject *func, PyObject *args); + +// Used by sys.get_asyncgen_hooks() +extern PyObject* _PyEval_GetAsyncGenFirstiter(void); +extern PyObject* _PyEval_GetAsyncGenFinalizer(void); + +// Used by sys.set_asyncgen_hooks() +extern int _PyEval_SetAsyncGenFirstiter(PyObject *); +extern int _PyEval_SetAsyncGenFinalizer(PyObject *); + +// Used by sys.get_coroutine_origin_tracking_depth() +// and sys.set_coroutine_origin_tracking_depth() +extern int _PyEval_GetCoroutineOriginTrackingDepth(void); +extern int _PyEval_SetCoroutineOriginTrackingDepth(int depth); + +extern void _PyEval_Fini(void); + + +extern PyObject* _PyEval_GetBuiltins(PyThreadState *tstate); +extern PyObject* _PyEval_BuiltinsFromGlobals( + PyThreadState *tstate, + PyObject *globals); + +// Trampoline API + +typedef struct { + // Callback to initialize the trampoline state + void* (*init_state)(void); + // Callback to register every trampoline being created + void (*write_state)(void* state, const void *code_addr, + unsigned int code_size, PyCodeObject* code); + // Callback to free the trampoline state + int (*free_state)(void* state); +} _PyPerf_Callbacks; + +extern int _PyPerfTrampoline_SetCallbacks(_PyPerf_Callbacks *); +extern void _PyPerfTrampoline_GetCallbacks(_PyPerf_Callbacks *); +extern int _PyPerfTrampoline_Init(int activate); +extern int _PyPerfTrampoline_Fini(void); +extern void _PyPerfTrampoline_FreeArenas(void); +extern int _PyIsPerfTrampolineActive(void); +extern PyStatus _PyPerfTrampoline_AfterFork_Child(void); +#ifdef PY_HAVE_PERF_TRAMPOLINE +extern _PyPerf_Callbacks _Py_perfmap_callbacks; +extern _PyPerf_Callbacks _Py_perfmap_jit_callbacks; +#endif + +static inline PyObject* +_PyEval_EvalFrame(PyThreadState *tstate, struct _PyInterpreterFrame *frame, int throwflag) +{ + EVAL_CALL_STAT_INC(EVAL_CALL_TOTAL); + if (tstate->interp->eval_frame == NULL) { + return _PyEval_EvalFrameDefault(tstate, frame, throwflag); + } + return tstate->interp->eval_frame(tstate, frame, throwflag); +} + +extern PyObject* +_PyEval_Vector(PyThreadState *tstate, + PyFunctionObject *func, PyObject *locals, + PyObject* const* args, size_t argcount, + PyObject *kwnames); + +extern int _PyEval_ThreadsInitialized(void); +extern void _PyEval_InitGIL(PyThreadState *tstate, int own_gil); +extern void _PyEval_FiniGIL(PyInterpreterState *interp); + +extern void _PyEval_AcquireLock(PyThreadState *tstate); + +extern void _PyEval_ReleaseLock(PyInterpreterState *, PyThreadState *, + int final_release); + +#ifdef Py_GIL_DISABLED +// Returns 0 or 1 if the GIL for the given thread's interpreter is disabled or +// enabled, respectively. +// +// The enabled state of the GIL will not change while one or more threads are +// attached. +static inline int +_PyEval_IsGILEnabled(PyThreadState *tstate) +{ + struct _gil_runtime_state *gil = tstate->interp->ceval.gil; + return _Py_atomic_load_int_relaxed(&gil->enabled) != 0; +} + +// Enable or disable the GIL used by the interpreter that owns tstate, which +// must be the current thread. This may affect other interpreters, if the GIL +// is shared. All three functions will be no-ops (and return 0) if the +// interpreter's `enable_gil' config is not _PyConfig_GIL_DEFAULT. +// +// Every call to _PyEval_EnableGILTransient() must be paired with exactly one +// call to either _PyEval_EnableGILPermanent() or +// _PyEval_DisableGIL(). _PyEval_EnableGILPermanent() and _PyEval_DisableGIL() +// must only be called while the GIL is enabled from a call to +// _PyEval_EnableGILTransient(). +// +// _PyEval_EnableGILTransient() returns 1 if it enabled the GIL, or 0 if the +// GIL was already enabled, whether transiently or permanently. The caller will +// hold the GIL upon return. +// +// _PyEval_EnableGILPermanent() returns 1 if it permanently enabled the GIL +// (which must already be enabled), or 0 if it was already permanently +// enabled. Once _PyEval_EnableGILPermanent() has been called once, all +// subsequent calls to any of the three functions will be no-ops. +// +// _PyEval_DisableGIL() returns 1 if it disabled the GIL, or 0 if the GIL was +// kept enabled because of another request, whether transient or permanent. +// +// All three functions must be called by an attached thread (this implies that +// if the GIL is enabled, the current thread must hold it). +extern int _PyEval_EnableGILTransient(PyThreadState *tstate); +extern int _PyEval_EnableGILPermanent(PyThreadState *tstate); +extern int _PyEval_DisableGIL(PyThreadState *state); +#endif + +extern void _PyEval_DeactivateOpCache(void); + + +/* --- _Py_EnterRecursiveCall() ----------------------------------------- */ + +#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->c_recursion_remaining-- < 0 + || (tstate->c_recursion_remaining & 63) == 0); +} +#else +static inline int _Py_MakeRecCheck(PyThreadState *tstate) { + return tstate->c_recursion_remaining-- < 0; +} +#endif + +// Export for '_json' shared extension, used via _Py_EnterRecursiveCall() +// static inline function. +PyAPI_FUNC(int) _Py_CheckRecursiveCall( + PyThreadState *tstate, + const char *where); + +int _Py_CheckRecursiveCallPy( + PyThreadState *tstate); + +static inline int _Py_EnterRecursiveCallTstate(PyThreadState *tstate, + const char *where) { + return (_Py_MakeRecCheck(tstate) && _Py_CheckRecursiveCall(tstate, where)); +} + +static inline void _Py_EnterRecursiveCallTstateUnchecked(PyThreadState *tstate) { + assert(tstate->c_recursion_remaining > 0); + tstate->c_recursion_remaining--; +} + +static inline int _Py_EnterRecursiveCall(const char *where) { + PyThreadState *tstate = _PyThreadState_GET(); + return _Py_EnterRecursiveCallTstate(tstate, where); +} + +static inline void _Py_LeaveRecursiveCallTstate(PyThreadState *tstate) { + tstate->c_recursion_remaining++; +} + +static inline void _Py_LeaveRecursiveCall(void) { + PyThreadState *tstate = _PyThreadState_GET(); + _Py_LeaveRecursiveCallTstate(tstate); +} + +extern struct _PyInterpreterFrame* _PyEval_GetFrame(void); + +PyAPI_FUNC(PyObject *)_Py_MakeCoro(PyFunctionObject *func); + +/* Handle signals, pending calls, GIL drop request + and asynchronous exception */ +PyAPI_FUNC(int) _Py_HandlePending(PyThreadState *tstate); + +extern PyObject * _PyEval_GetFrameLocals(void); + +typedef PyObject *(*conversion_func)(PyObject *); + +PyAPI_DATA(const binaryfunc) _PyEval_BinaryOps[]; +PyAPI_DATA(const conversion_func) _PyEval_ConversionFuncs[]; + +PyAPI_FUNC(int) _PyEval_CheckExceptStarTypeValid(PyThreadState *tstate, PyObject* right); +PyAPI_FUNC(int) _PyEval_CheckExceptTypeValid(PyThreadState *tstate, PyObject* right); +PyAPI_FUNC(int) _PyEval_ExceptionGroupMatch(PyObject* exc_value, PyObject *match_type, PyObject **match, PyObject **rest); +PyAPI_FUNC(void) _PyEval_FormatAwaitableError(PyThreadState *tstate, PyTypeObject *type, int oparg); +PyAPI_FUNC(void) _PyEval_FormatExcCheckArg(PyThreadState *tstate, PyObject *exc, const char *format_str, PyObject *obj); +PyAPI_FUNC(void) _PyEval_FormatExcUnbound(PyThreadState *tstate, PyCodeObject *co, int oparg); +PyAPI_FUNC(void) _PyEval_FormatKwargsError(PyThreadState *tstate, PyObject *func, PyObject *kwargs); +PyAPI_FUNC(PyObject *)_PyEval_MatchClass(PyThreadState *tstate, PyObject *subject, PyObject *type, Py_ssize_t nargs, PyObject *kwargs); +PyAPI_FUNC(PyObject *)_PyEval_MatchKeys(PyThreadState *tstate, PyObject *map, PyObject *keys); +PyAPI_FUNC(int) _PyEval_UnpackIterable(PyThreadState *tstate, PyObject *v, int argcnt, int argcntafter, PyObject **sp); +PyAPI_FUNC(void) _PyEval_MonitorRaise(PyThreadState *tstate, _PyInterpreterFrame *frame, _Py_CODEUNIT *instr); +PyAPI_FUNC(void) _PyEval_FrameClearAndPop(PyThreadState *tstate, _PyInterpreterFrame *frame); + + +/* Bits that can be set in PyThreadState.eval_breaker */ +#define _PY_GIL_DROP_REQUEST_BIT (1U << 0) +#define _PY_SIGNALS_PENDING_BIT (1U << 1) +#define _PY_CALLS_TO_DO_BIT (1U << 2) +#define _PY_ASYNC_EXCEPTION_BIT (1U << 3) +#define _PY_GC_SCHEDULED_BIT (1U << 4) +#define _PY_EVAL_PLEASE_STOP_BIT (1U << 5) +#define _PY_EVAL_EXPLICIT_MERGE_BIT (1U << 6) + +/* Reserve a few bits for future use */ +#define _PY_EVAL_EVENTS_BITS 8 +#define _PY_EVAL_EVENTS_MASK ((1 << _PY_EVAL_EVENTS_BITS)-1) + +static inline void +_Py_set_eval_breaker_bit(PyThreadState *tstate, uintptr_t bit) +{ + _Py_atomic_or_uintptr(&tstate->eval_breaker, bit); +} + +static inline void +_Py_unset_eval_breaker_bit(PyThreadState *tstate, uintptr_t bit) +{ + _Py_atomic_and_uintptr(&tstate->eval_breaker, ~bit); +} + +static inline int +_Py_eval_breaker_bit_is_set(PyThreadState *tstate, uintptr_t bit) +{ + uintptr_t b = _Py_atomic_load_uintptr_relaxed(&tstate->eval_breaker); + return (b & bit) != 0; +} + +// Free-threaded builds use these functions to set or unset a bit on all +// threads in the given interpreter. +void _Py_set_eval_breaker_bit_all(PyInterpreterState *interp, uintptr_t bit); +void _Py_unset_eval_breaker_bit_all(PyInterpreterState *interp, uintptr_t bit); + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_CEVAL_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_ceval_state.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_ceval_state.h new file mode 100644 index 000000000..009a1ea41 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_ceval_state.h @@ -0,0 +1,134 @@ +#ifndef Py_INTERNAL_CEVAL_STATE_H +#define Py_INTERNAL_CEVAL_STATE_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_lock.h" // PyMutex +#include "pycore_gil.h" // struct _gil_runtime_state + + +typedef int (*_Py_pending_call_func)(void *); + +struct _pending_call { + _Py_pending_call_func func; + void *arg; + int flags; +}; + +#define PENDINGCALLSARRAYSIZE 300 + +#define MAXPENDINGCALLS PENDINGCALLSARRAYSIZE +/* For interpreter-level pending calls, we want to avoid spending too + much time on pending calls in any one thread, so we apply a limit. */ +#if MAXPENDINGCALLS > 100 +# define MAXPENDINGCALLSLOOP 100 +#else +# define MAXPENDINGCALLSLOOP MAXPENDINGCALLS +#endif + +/* We keep the number small to preserve as much compatibility + as possible with earlier versions. */ +#define MAXPENDINGCALLS_MAIN 32 +/* For the main thread, we want to make sure all pending calls are + run at once, for the sake of prompt signal handling. This is + unlikely to cause any problems since there should be very few + pending calls for the main thread. */ +#define MAXPENDINGCALLSLOOP_MAIN 0 + +struct _pending_calls { + PyThreadState *handling_thread; + PyMutex mutex; + /* Request for running pending calls. */ + int32_t npending; + /* The maximum allowed number of pending calls. + If the queue fills up to this point then _PyEval_AddPendingCall() + will return _Py_ADD_PENDING_FULL. */ + int32_t max; + /* We don't want a flood of pending calls to interrupt any one thread + for too long, so we keep a limit on the number handled per pass. + A value of 0 means there is no limit (other than the maximum + size of the list of pending calls). */ + int32_t maxloop; + struct _pending_call calls[PENDINGCALLSARRAYSIZE]; + int first; + int next; +}; + + +typedef enum { + PERF_STATUS_FAILED = -1, // Perf trampoline is in an invalid state + PERF_STATUS_NO_INIT = 0, // Perf trampoline is not initialized + PERF_STATUS_OK = 1, // Perf trampoline is ready to be executed +} perf_status_t; + +#ifdef PY_HAVE_PERF_TRAMPOLINE +struct code_arena_st; + +struct trampoline_api_st { + void* (*init_state)(void); + void (*write_state)(void* state, const void *code_addr, + unsigned int code_size, PyCodeObject* code); + int (*free_state)(void* state); + void *state; + Py_ssize_t code_padding; +}; +#endif + + +struct _ceval_runtime_state { + struct { +#ifdef PY_HAVE_PERF_TRAMPOLINE + perf_status_t status; + int perf_trampoline_type; + Py_ssize_t extra_code_index; + struct code_arena_st *code_arena; + struct trampoline_api_st trampoline_api; + FILE *map_file; + Py_ssize_t persist_after_fork; +#else + int _not_used; +#endif + } perf; + /* Pending calls to be made only on the main thread. */ + // The signal machinery falls back on this + // so it must be especially stable and efficient. + // For example, we use a preallocated array + // for the list of pending calls. + struct _pending_calls pending_mainthread; + PyMutex sys_trace_profile_mutex; +}; + + +#ifdef PY_HAVE_PERF_TRAMPOLINE +# define _PyEval_RUNTIME_PERF_INIT \ + { \ + .status = PERF_STATUS_NO_INIT, \ + .extra_code_index = -1, \ + .persist_after_fork = 0, \ + } +#else +# define _PyEval_RUNTIME_PERF_INIT {0} +#endif + + +struct _ceval_state { + /* This variable holds the global instrumentation version. When a thread is + running, this value is overlaid onto PyThreadState.eval_breaker so that + changes in the instrumentation version will trigger the eval breaker. */ + uintptr_t instrumentation_version; + int recursion_limit; + struct _gil_runtime_state *gil; + int own_gil; + struct _pending_calls pending; +}; + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_CEVAL_STATE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_code.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_code.h new file mode 100644 index 000000000..1fb8cc473 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_code.h @@ -0,0 +1,596 @@ +#ifndef Py_INTERNAL_CODE_H +#define Py_INTERNAL_CODE_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_lock.h" // PyMutex +#include "pycore_backoff.h" // _Py_BackoffCounter + + +/* Each instruction in a code object is a fixed-width value, + * currently 2 bytes: 1-byte opcode + 1-byte oparg. The EXTENDED_ARG + * opcode allows for larger values but the current limit is 3 uses + * of EXTENDED_ARG (see Python/compile.c), for a maximum + * 32-bit value. This aligns with the note in Python/compile.c + * (compiler_addop_i_line) indicating that the max oparg value is + * 2**32 - 1, rather than INT_MAX. + */ + +typedef union { + uint16_t cache; + struct { + uint8_t code; + uint8_t arg; + } op; + _Py_BackoffCounter counter; // First cache entry of specializable op +} _Py_CODEUNIT; + +#define _PyCode_CODE(CO) _Py_RVALUE((_Py_CODEUNIT *)(CO)->co_code_adaptive) +#define _PyCode_NBYTES(CO) (Py_SIZE(CO) * (Py_ssize_t)sizeof(_Py_CODEUNIT)) + + +/* These macros only remain defined for compatibility. */ +#define _Py_OPCODE(word) ((word).op.code) +#define _Py_OPARG(word) ((word).op.arg) + +static inline _Py_CODEUNIT +_py_make_codeunit(uint8_t opcode, uint8_t oparg) +{ + // No designated initialisers because of C++ compat + _Py_CODEUNIT word; + word.op.code = opcode; + word.op.arg = oparg; + return word; +} + +static inline void +_py_set_opcode(_Py_CODEUNIT *word, uint8_t opcode) +{ + word->op.code = opcode; +} + +#define _Py_MAKE_CODEUNIT(opcode, oparg) _py_make_codeunit((opcode), (oparg)) +#define _Py_SET_OPCODE(word, opcode) _py_set_opcode(&(word), (opcode)) + + +// We hide some of the newer PyCodeObject fields behind macros. +// This helps with backporting certain changes to 3.12. +#define _PyCode_HAS_EXECUTORS(CODE) \ + (CODE->co_executors != NULL) +#define _PyCode_HAS_INSTRUMENTATION(CODE) \ + (CODE->_co_instrumentation_version > 0) + +struct _py_code_state { + PyMutex mutex; + // Interned constants from code objects. Used by the free-threaded build. + struct _Py_hashtable_t *constants; +}; + +extern PyStatus _PyCode_Init(PyInterpreterState *interp); +extern void _PyCode_Fini(PyInterpreterState *interp); + +#define CODE_MAX_WATCHERS 8 + +/* PEP 659 + * Specialization and quickening structs and helper functions + */ + + +// Inline caches. If you change the number of cache entries for an instruction, +// you must *also* update the number of cache entries in Lib/opcode.py and bump +// the magic number in Lib/importlib/_bootstrap_external.py! + +#define CACHE_ENTRIES(cache) (sizeof(cache)/sizeof(_Py_CODEUNIT)) + +typedef struct { + _Py_BackoffCounter counter; + uint16_t module_keys_version; + uint16_t builtin_keys_version; + uint16_t index; +} _PyLoadGlobalCache; + +#define INLINE_CACHE_ENTRIES_LOAD_GLOBAL CACHE_ENTRIES(_PyLoadGlobalCache) + +typedef struct { + _Py_BackoffCounter counter; +} _PyBinaryOpCache; + +#define INLINE_CACHE_ENTRIES_BINARY_OP CACHE_ENTRIES(_PyBinaryOpCache) + +typedef struct { + _Py_BackoffCounter counter; +} _PyUnpackSequenceCache; + +#define INLINE_CACHE_ENTRIES_UNPACK_SEQUENCE \ + CACHE_ENTRIES(_PyUnpackSequenceCache) + +typedef struct { + _Py_BackoffCounter counter; +} _PyCompareOpCache; + +#define INLINE_CACHE_ENTRIES_COMPARE_OP CACHE_ENTRIES(_PyCompareOpCache) + +typedef struct { + _Py_BackoffCounter counter; +} _PyBinarySubscrCache; + +#define INLINE_CACHE_ENTRIES_BINARY_SUBSCR CACHE_ENTRIES(_PyBinarySubscrCache) + +typedef struct { + _Py_BackoffCounter counter; +} _PySuperAttrCache; + +#define INLINE_CACHE_ENTRIES_LOAD_SUPER_ATTR CACHE_ENTRIES(_PySuperAttrCache) + +typedef struct { + _Py_BackoffCounter counter; + uint16_t version[2]; + uint16_t index; +} _PyAttrCache; + +typedef struct { + _Py_BackoffCounter counter; + uint16_t type_version[2]; + union { + uint16_t keys_version[2]; + uint16_t dict_offset; + }; + uint16_t descr[4]; +} _PyLoadMethodCache; + + +// MUST be the max(_PyAttrCache, _PyLoadMethodCache) +#define INLINE_CACHE_ENTRIES_LOAD_ATTR CACHE_ENTRIES(_PyLoadMethodCache) + +#define INLINE_CACHE_ENTRIES_STORE_ATTR CACHE_ENTRIES(_PyAttrCache) + +typedef struct { + _Py_BackoffCounter counter; + uint16_t func_version[2]; +} _PyCallCache; + +#define INLINE_CACHE_ENTRIES_CALL CACHE_ENTRIES(_PyCallCache) + +typedef struct { + _Py_BackoffCounter counter; +} _PyStoreSubscrCache; + +#define INLINE_CACHE_ENTRIES_STORE_SUBSCR CACHE_ENTRIES(_PyStoreSubscrCache) + +typedef struct { + _Py_BackoffCounter counter; +} _PyForIterCache; + +#define INLINE_CACHE_ENTRIES_FOR_ITER CACHE_ENTRIES(_PyForIterCache) + +typedef struct { + _Py_BackoffCounter counter; +} _PySendCache; + +#define INLINE_CACHE_ENTRIES_SEND CACHE_ENTRIES(_PySendCache) + +typedef struct { + _Py_BackoffCounter counter; + uint16_t version[2]; +} _PyToBoolCache; + +#define INLINE_CACHE_ENTRIES_TO_BOOL CACHE_ENTRIES(_PyToBoolCache) + +typedef struct { + _Py_BackoffCounter counter; +} _PyContainsOpCache; + +#define INLINE_CACHE_ENTRIES_CONTAINS_OP CACHE_ENTRIES(_PyContainsOpCache) + +// Borrowed references to common callables: +struct callable_cache { + PyObject *isinstance; + PyObject *len; + PyObject *list_append; + PyObject *object__getattribute__; +}; + +/* "Locals plus" for a code object is the set of locals + cell vars + + * free vars. This relates to variable names as well as offsets into + * the "fast locals" storage array of execution frames. The compiler + * builds the list of names, their offsets, and the corresponding + * kind of local. + * + * Those kinds represent the source of the initial value and the + * variable's scope (as related to closures). A "local" is an + * argument or other variable defined in the current scope. A "free" + * variable is one that is defined in an outer scope and comes from + * the function's closure. A "cell" variable is a local that escapes + * into an inner function as part of a closure, and thus must be + * wrapped in a cell. Any "local" can also be a "cell", but the + * "free" kind is mutually exclusive with both. + */ + +// Note that these all fit within a byte, as do combinations. +// Later, we will use the smaller numbers to differentiate the different +// kinds of locals (e.g. pos-only arg, varkwargs, local-only). +#define CO_FAST_HIDDEN 0x10 +#define CO_FAST_LOCAL 0x20 +#define CO_FAST_CELL 0x40 +#define CO_FAST_FREE 0x80 + +typedef unsigned char _PyLocals_Kind; + +static inline _PyLocals_Kind +_PyLocals_GetKind(PyObject *kinds, int i) +{ + assert(PyBytes_Check(kinds)); + assert(0 <= i && i < PyBytes_GET_SIZE(kinds)); + char *ptr = PyBytes_AS_STRING(kinds); + return (_PyLocals_Kind)(ptr[i]); +} + +static inline void +_PyLocals_SetKind(PyObject *kinds, int i, _PyLocals_Kind kind) +{ + assert(PyBytes_Check(kinds)); + assert(0 <= i && i < PyBytes_GET_SIZE(kinds)); + char *ptr = PyBytes_AS_STRING(kinds); + ptr[i] = (char) kind; +} + + +struct _PyCodeConstructor { + /* metadata */ + PyObject *filename; + PyObject *name; + PyObject *qualname; + int flags; + + /* the code */ + PyObject *code; + int firstlineno; + PyObject *linetable; + + /* used by the code */ + PyObject *consts; + PyObject *names; + + /* mapping frame offsets to information */ + PyObject *localsplusnames; // Tuple of strings + PyObject *localspluskinds; // Bytes object, one byte per variable + + /* args (within varnames) */ + int argcount; + int posonlyargcount; + // XXX Replace argcount with posorkwargcount (argcount - posonlyargcount). + int kwonlyargcount; + + /* needed to create the frame */ + int stacksize; + + /* used by the eval loop */ + PyObject *exceptiontable; +}; + +// Using an "arguments struct" like this is helpful for maintainability +// in a case such as this with many parameters. It does bear a risk: +// if the struct changes and callers are not updated properly then the +// compiler will not catch problems (like a missing argument). This can +// cause hard-to-debug problems. The risk is mitigated by the use of +// check_code() in codeobject.c. However, we may decide to switch +// back to a regular function signature. Regardless, this approach +// wouldn't be appropriate if this weren't a strictly internal API. +// (See the comments in https://github.com/python/cpython/pull/26258.) +extern int _PyCode_Validate(struct _PyCodeConstructor *); +extern PyCodeObject* _PyCode_New(struct _PyCodeConstructor *); + + +/* Private API */ + +/* Getters for internal PyCodeObject data. */ +extern PyObject* _PyCode_GetVarnames(PyCodeObject *); +extern PyObject* _PyCode_GetCellvars(PyCodeObject *); +extern PyObject* _PyCode_GetFreevars(PyCodeObject *); +extern PyObject* _PyCode_GetCode(PyCodeObject *); + +/** API for initializing the line number tables. */ +extern int _PyCode_InitAddressRange(PyCodeObject* co, PyCodeAddressRange *bounds); + +/** Out of process API for initializing the location table. */ +extern void _PyLineTable_InitAddressRange( + const char *linetable, + Py_ssize_t length, + int firstlineno, + PyCodeAddressRange *range); + +/** API for traversing the line number table. */ +extern int _PyLineTable_NextAddressRange(PyCodeAddressRange *range); +extern int _PyLineTable_PreviousAddressRange(PyCodeAddressRange *range); + +/** API for executors */ +extern void _PyCode_Clear_Executors(PyCodeObject *code); + +#ifdef Py_GIL_DISABLED +// gh-115999 tracks progress on addressing this. +#define ENABLE_SPECIALIZATION 0 +#else +#define ENABLE_SPECIALIZATION 1 +#endif + +/* Specialization functions */ + +extern void _Py_Specialize_LoadSuperAttr(PyObject *global_super, PyObject *cls, + _Py_CODEUNIT *instr, int load_method); +extern void _Py_Specialize_LoadAttr(PyObject *owner, _Py_CODEUNIT *instr, + PyObject *name); +extern void _Py_Specialize_StoreAttr(PyObject *owner, _Py_CODEUNIT *instr, + PyObject *name); +extern void _Py_Specialize_LoadGlobal(PyObject *globals, PyObject *builtins, + _Py_CODEUNIT *instr, PyObject *name); +extern void _Py_Specialize_BinarySubscr(PyObject *sub, PyObject *container, + _Py_CODEUNIT *instr); +extern void _Py_Specialize_StoreSubscr(PyObject *container, PyObject *sub, + _Py_CODEUNIT *instr); +extern void _Py_Specialize_Call(PyObject *callable, _Py_CODEUNIT *instr, + int nargs); +extern void _Py_Specialize_BinaryOp(PyObject *lhs, PyObject *rhs, _Py_CODEUNIT *instr, + int oparg, PyObject **locals); +extern void _Py_Specialize_CompareOp(PyObject *lhs, PyObject *rhs, + _Py_CODEUNIT *instr, int oparg); +extern void _Py_Specialize_UnpackSequence(PyObject *seq, _Py_CODEUNIT *instr, + int oparg); +extern void _Py_Specialize_ForIter(PyObject *iter, _Py_CODEUNIT *instr, int oparg); +extern void _Py_Specialize_Send(PyObject *receiver, _Py_CODEUNIT *instr); +extern void _Py_Specialize_ToBool(PyObject *value, _Py_CODEUNIT *instr); +extern void _Py_Specialize_ContainsOp(PyObject *value, _Py_CODEUNIT *instr); + +#ifdef Py_STATS + +#include "pycore_bitutils.h" // _Py_bit_length + +#define STAT_INC(opname, name) do { if (_Py_stats) _Py_stats->opcode_stats[opname].specialization.name++; } while (0) +#define STAT_DEC(opname, name) do { if (_Py_stats) _Py_stats->opcode_stats[opname].specialization.name--; } while (0) +#define OPCODE_EXE_INC(opname) do { if (_Py_stats) _Py_stats->opcode_stats[opname].execution_count++; } while (0) +#define CALL_STAT_INC(name) do { if (_Py_stats) _Py_stats->call_stats.name++; } while (0) +#define OBJECT_STAT_INC(name) do { if (_Py_stats) _Py_stats->object_stats.name++; } while (0) +#define OBJECT_STAT_INC_COND(name, cond) \ + do { if (_Py_stats && cond) _Py_stats->object_stats.name++; } while (0) +#define EVAL_CALL_STAT_INC(name) do { if (_Py_stats) _Py_stats->call_stats.eval_calls[name]++; } while (0) +#define EVAL_CALL_STAT_INC_IF_FUNCTION(name, callable) \ + do { if (_Py_stats && PyFunction_Check(callable)) _Py_stats->call_stats.eval_calls[name]++; } while (0) +#define GC_STAT_ADD(gen, name, n) do { if (_Py_stats) _Py_stats->gc_stats[(gen)].name += (n); } while (0) +#define OPT_STAT_INC(name) do { if (_Py_stats) _Py_stats->optimization_stats.name++; } while (0) +#define UOP_STAT_INC(opname, name) do { if (_Py_stats) { assert(opname < 512); _Py_stats->optimization_stats.opcode[opname].name++; } } while (0) +#define UOP_PAIR_INC(uopcode, lastuop) \ + do { \ + if (lastuop && _Py_stats) { \ + _Py_stats->optimization_stats.opcode[lastuop].pair_count[uopcode]++; \ + } \ + lastuop = uopcode; \ + } while (0) +#define OPT_UNSUPPORTED_OPCODE(opname) do { if (_Py_stats) _Py_stats->optimization_stats.unsupported_opcode[opname]++; } while (0) +#define OPT_ERROR_IN_OPCODE(opname) do { if (_Py_stats) _Py_stats->optimization_stats.error_in_opcode[opname]++; } while (0) +#define OPT_HIST(length, name) \ + do { \ + if (_Py_stats) { \ + int bucket = _Py_bit_length(length >= 1 ? length - 1 : 0); \ + bucket = (bucket >= _Py_UOP_HIST_SIZE) ? _Py_UOP_HIST_SIZE - 1 : bucket; \ + _Py_stats->optimization_stats.name[bucket]++; \ + } \ + } while (0) +#define RARE_EVENT_STAT_INC(name) do { if (_Py_stats) _Py_stats->rare_event_stats.name++; } while (0) + +// Export for '_opcode' shared extension +PyAPI_FUNC(PyObject*) _Py_GetSpecializationStats(void); + +#else +#define STAT_INC(opname, name) ((void)0) +#define STAT_DEC(opname, name) ((void)0) +#define OPCODE_EXE_INC(opname) ((void)0) +#define CALL_STAT_INC(name) ((void)0) +#define OBJECT_STAT_INC(name) ((void)0) +#define OBJECT_STAT_INC_COND(name, cond) ((void)0) +#define EVAL_CALL_STAT_INC(name) ((void)0) +#define EVAL_CALL_STAT_INC_IF_FUNCTION(name, callable) ((void)0) +#define GC_STAT_ADD(gen, name, n) ((void)0) +#define OPT_STAT_INC(name) ((void)0) +#define UOP_STAT_INC(opname, name) ((void)0) +#define UOP_PAIR_INC(uopcode, lastuop) ((void)0) +#define OPT_UNSUPPORTED_OPCODE(opname) ((void)0) +#define OPT_ERROR_IN_OPCODE(opname) ((void)0) +#define OPT_HIST(length, name) ((void)0) +#define RARE_EVENT_STAT_INC(name) ((void)0) +#endif // !Py_STATS + +// Utility functions for reading/writing 32/64-bit values in the inline caches. +// Great care should be taken to ensure that these functions remain correct and +// performant! They should compile to just "move" instructions on all supported +// compilers and platforms. + +// We use memcpy to let the C compiler handle unaligned accesses and endianness +// issues for us. It also seems to produce better code than manual copying for +// most compilers (see https://blog.regehr.org/archives/959 for more info). + +static inline void +write_u32(uint16_t *p, uint32_t val) +{ + memcpy(p, &val, sizeof(val)); +} + +static inline void +write_u64(uint16_t *p, uint64_t val) +{ + memcpy(p, &val, sizeof(val)); +} + +static inline void +write_obj(uint16_t *p, PyObject *val) +{ + memcpy(p, &val, sizeof(val)); +} + +static inline uint16_t +read_u16(uint16_t *p) +{ + return *p; +} + +static inline uint32_t +read_u32(uint16_t *p) +{ + uint32_t val; + memcpy(&val, p, sizeof(val)); + return val; +} + +static inline uint64_t +read_u64(uint16_t *p) +{ + uint64_t val; + memcpy(&val, p, sizeof(val)); + return val; +} + +static inline PyObject * +read_obj(uint16_t *p) +{ + PyObject *val; + memcpy(&val, p, sizeof(val)); + return val; +} + +/* See Objects/exception_handling_notes.txt for details. + */ +static inline unsigned char * +parse_varint(unsigned char *p, int *result) { + int val = p[0] & 63; + while (p[0] & 64) { + p++; + val = (val << 6) | (p[0] & 63); + } + *result = val; + return p+1; +} + +static inline int +write_varint(uint8_t *ptr, unsigned int val) +{ + int written = 1; + while (val >= 64) { + *ptr++ = 64 | (val & 63); + val >>= 6; + written++; + } + *ptr = (uint8_t)val; + return written; +} + +static inline int +write_signed_varint(uint8_t *ptr, int val) +{ + unsigned int uval; + if (val < 0) { + // (unsigned int)(-val) has an undefined behavior for INT_MIN + uval = ((0 - (unsigned int)val) << 1) | 1; + } + else { + uval = (unsigned int)val << 1; + } + return write_varint(ptr, uval); +} + +static inline int +write_location_entry_start(uint8_t *ptr, int code, int length) +{ + assert((code & 15) == code); + *ptr = 128 | (uint8_t)(code << 3) | (uint8_t)(length - 1); + return 1; +} + + +/** Counters + * The first 16-bit value in each inline cache is a counter. + * + * When counting executions until the next specialization attempt, + * exponential backoff is used to reduce the number of specialization failures. + * See pycore_backoff.h for more details. + * On a specialization failure, the backoff counter is restarted. + */ + +#include "pycore_backoff.h" + +// A value of 1 means that we attempt to specialize the *second* time each +// instruction is executed. Executing twice is a much better indicator of +// "hotness" than executing once, but additional warmup delays only prevent +// specialization. Most types stabilize by the second execution, too: +#define ADAPTIVE_WARMUP_VALUE 1 +#define ADAPTIVE_WARMUP_BACKOFF 1 + +// A value of 52 means that we attempt to re-specialize after 53 misses (a prime +// number, useful for avoiding artifacts if every nth value is a different type +// or something). Setting the backoff to 0 means that the counter is reset to +// the same state as a warming-up instruction (value == 1, backoff == 1) after +// deoptimization. This isn't strictly necessary, but it is bit easier to reason +// about when thinking about the opcode transitions as a state machine: +#define ADAPTIVE_COOLDOWN_VALUE 52 +#define ADAPTIVE_COOLDOWN_BACKOFF 0 + +// Can't assert this in pycore_backoff.h because of header order dependencies +#if COLD_EXIT_INITIAL_VALUE <= ADAPTIVE_COOLDOWN_VALUE +# error "Cold exit value should be larger than adaptive cooldown value" +#endif + +static inline _Py_BackoffCounter +adaptive_counter_bits(uint16_t value, uint16_t backoff) { + return make_backoff_counter(value, backoff); +} + +static inline _Py_BackoffCounter +adaptive_counter_warmup(void) { + return adaptive_counter_bits(ADAPTIVE_WARMUP_VALUE, + ADAPTIVE_WARMUP_BACKOFF); +} + +static inline _Py_BackoffCounter +adaptive_counter_cooldown(void) { + return adaptive_counter_bits(ADAPTIVE_COOLDOWN_VALUE, + ADAPTIVE_COOLDOWN_BACKOFF); +} + +static inline _Py_BackoffCounter +adaptive_counter_backoff(_Py_BackoffCounter counter) { + return restart_backoff_counter(counter); +} + + +/* Comparison bit masks. */ + +/* Note this evaluates its arguments twice each */ +#define COMPARISON_BIT(x, y) (1 << (2 * ((x) >= (y)) + ((x) <= (y)))) + +/* + * The following bits are chosen so that the value of + * COMPARSION_BIT(left, right) + * masked by the values below will be non-zero if the + * comparison is true, and zero if it is false */ + +/* This is for values that are unordered, ie. NaN, not types that are unordered, e.g. sets */ +#define COMPARISON_UNORDERED 1 + +#define COMPARISON_LESS_THAN 2 +#define COMPARISON_GREATER_THAN 4 +#define COMPARISON_EQUALS 8 + +#define COMPARISON_NOT_EQUALS (COMPARISON_UNORDERED | COMPARISON_LESS_THAN | COMPARISON_GREATER_THAN) + +extern int _Py_Instrument(PyCodeObject *co, PyInterpreterState *interp); + +extern int _Py_GetBaseOpcode(PyCodeObject *code, int offset); + +extern int _PyInstruction_GetLength(PyCodeObject *code, int offset); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_CODE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_codecs.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_codecs.h new file mode 100644 index 000000000..5e2d5c5ce --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_codecs.h @@ -0,0 +1,86 @@ +#ifndef Py_INTERNAL_CODECS_H +#define Py_INTERNAL_CODECS_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_lock.h" // PyMutex + +/* Initialize codecs-related state for the given interpreter, including + registering the first codec search function. Must be called before any other + PyCodec-related functions, and while only one thread is active. */ +extern PyStatus _PyCodec_InitRegistry(PyInterpreterState *interp); + +/* Finalize codecs-related state for the given interpreter. No PyCodec-related + functions other than PyCodec_Unregister() may be called after this. */ +extern void _PyCodec_Fini(PyInterpreterState *interp); + +extern PyObject* _PyCodec_Lookup(const char *encoding); + +/* Text codec specific encoding and decoding API. + + Checks the encoding against a list of codecs which do not + implement a str<->bytes encoding before attempting the + operation. + + Please note that these APIs are internal and should not + be used in Python C extensions. + + XXX (ncoghlan): should we make these, or something like them, public + in Python 3.5+? + + */ +extern PyObject* _PyCodec_LookupTextEncoding( + const char *encoding, + const char *alternate_command); + +extern PyObject* _PyCodec_EncodeText( + PyObject *object, + const char *encoding, + const char *errors); + +extern PyObject* _PyCodec_DecodeText( + PyObject *object, + const char *encoding, + const char *errors); + +/* These two aren't actually text encoding specific, but _io.TextIOWrapper + * is the only current API consumer. + */ +extern PyObject* _PyCodecInfo_GetIncrementalDecoder( + PyObject *codec_info, + const char *errors); + +extern PyObject* _PyCodecInfo_GetIncrementalEncoder( + PyObject *codec_info, + const char *errors); + +// Per-interpreter state used by codecs.c. +struct codecs_state { + // A list of callable objects used to search for codecs. + PyObject *search_path; + + // A dict mapping codec names to codecs returned from a callable in + // search_path. + PyObject *search_cache; + + // A dict mapping error handling strategies to functions to implement them. + PyObject *error_registry; + +#ifdef Py_GIL_DISABLED + // Used to safely delete a specific item from search_path. + PyMutex search_path_mutex; +#endif + + // Whether or not the rest of the state is initialized. + int initialized; +}; + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_CODECS_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_compile.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_compile.h new file mode 100644 index 000000000..3c21f83a1 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_compile.h @@ -0,0 +1,118 @@ +#ifndef Py_INTERNAL_COMPILE_H +#define Py_INTERNAL_COMPILE_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_symtable.h" // _Py_SourceLocation +#include "pycore_instruction_sequence.h" + +struct _arena; // Type defined in pycore_pyarena.h +struct _mod; // Type defined in pycore_ast.h + +// Export for 'test_peg_generator' shared extension +PyAPI_FUNC(PyCodeObject*) _PyAST_Compile( + struct _mod *mod, + PyObject *filename, + PyCompilerFlags *flags, + int optimize, + struct _arena *arena); + +/* AST optimizations */ +extern int _PyCompile_AstOptimize( + struct _mod *mod, + PyObject *filename, + PyCompilerFlags *flags, + int optimize, + struct _arena *arena); + +struct _Py_SourceLocation; + +extern int _PyAST_Optimize( + struct _mod *, + struct _arena *arena, + int optimize, + int ff_features); + + +typedef struct { + PyObject *u_name; + PyObject *u_qualname; /* dot-separated qualified name (lazy) */ + + /* The following fields are dicts that map objects to + the index of them in co_XXX. The index is used as + the argument for opcodes that refer to those collections. + */ + PyObject *u_consts; /* all constants */ + PyObject *u_names; /* all names */ + PyObject *u_varnames; /* local variables */ + PyObject *u_cellvars; /* cell variables */ + PyObject *u_freevars; /* free variables */ + PyObject *u_fasthidden; /* dict; keys are names that are fast-locals only + temporarily within an inlined comprehension. When + value is True, treat as fast-local. */ + + 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_kwonlyargcount; /* number of keyword only arguments for block */ + + int u_firstlineno; /* the first lineno of the block */ +} _PyCompile_CodeUnitMetadata; + + +/* Utility for a number of growing arrays used in the compiler */ +int _PyCompile_EnsureArrayLargeEnough( + int idx, + void **array, + int *alloc, + int default_alloc, + size_t item_size); + +int _PyCompile_ConstCacheMergeOne(PyObject *const_cache, PyObject **obj); + + +// Export for '_opcode' extension module +PyAPI_FUNC(int) _PyCompile_OpcodeIsValid(int opcode); +PyAPI_FUNC(int) _PyCompile_OpcodeHasArg(int opcode); +PyAPI_FUNC(int) _PyCompile_OpcodeHasConst(int opcode); +PyAPI_FUNC(int) _PyCompile_OpcodeHasName(int opcode); +PyAPI_FUNC(int) _PyCompile_OpcodeHasJump(int opcode); +PyAPI_FUNC(int) _PyCompile_OpcodeHasFree(int opcode); +PyAPI_FUNC(int) _PyCompile_OpcodeHasLocal(int opcode); +PyAPI_FUNC(int) _PyCompile_OpcodeHasExc(int opcode); + +PyAPI_FUNC(PyObject*) _PyCompile_GetUnaryIntrinsicName(int index); +PyAPI_FUNC(PyObject*) _PyCompile_GetBinaryIntrinsicName(int index); + +/* Access compiler internals for unit testing */ + +// Export for '_testinternalcapi' shared extension +PyAPI_FUNC(PyObject*) _PyCompile_CleanDoc(PyObject *doc); + +// Export for '_testinternalcapi' shared extension +PyAPI_FUNC(PyObject*) _PyCompile_CodeGen( + PyObject *ast, + PyObject *filename, + PyCompilerFlags *flags, + int optimize, + int compile_mode); + +// Export for '_testinternalcapi' shared extension +PyAPI_FUNC(PyObject*) _PyCompile_OptimizeCfg( + PyObject *instructions, + PyObject *consts, + int nlocals); + +// Export for '_testinternalcapi' shared extension +PyAPI_FUNC(PyCodeObject*) +_PyCompile_Assemble(_PyCompile_CodeUnitMetadata *umd, PyObject *filename, + PyObject *instructions); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_COMPILE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_complexobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_complexobject.h new file mode 100644 index 000000000..54713536e --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_complexobject.h @@ -0,0 +1,25 @@ +#ifndef Py_INTERNAL_COMPLEXOBJECT_H +#define Py_INTERNAL_COMPLEXOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_unicodeobject.h" // _PyUnicodeWriter + +/* Format the object based on the format_spec, as defined in PEP 3101 + (Advanced String Formatting). */ +extern int _PyComplex_FormatAdvancedWriter( + _PyUnicodeWriter *writer, + PyObject *obj, + PyObject *format_spec, + Py_ssize_t start, + Py_ssize_t end); + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_COMPLEXOBJECT_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_condvar.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_condvar.h new file mode 100644 index 000000000..ee9533484 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_condvar.h @@ -0,0 +1,91 @@ +#ifndef Py_INTERNAL_CONDVAR_H +#define Py_INTERNAL_CONDVAR_H + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_pythread.h" // _POSIX_THREADS + + +#ifdef _POSIX_THREADS +/* + * POSIX support + */ +#define Py_HAVE_CONDVAR + +#ifdef HAVE_PTHREAD_H +# include // pthread_mutex_t +#endif + +#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 // CRITICAL_SECTION + +/* options */ +/* emulated condition variables are provided for those that want + * to target Windows XP or earlier. Modify this macro to enable them. + */ +#ifndef _PY_EMULATED_WIN_CV +#define _PY_EMULATED_WIN_CV 0 /* use non-emulated condition variables */ +#endif + +/* fall back to emulation if targeting earlier than 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-reset 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 Windows primitives if build target is Vista 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/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_context.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_context.h new file mode 100644 index 000000000..10c1f1e52 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_context.h @@ -0,0 +1,61 @@ +#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_freelist.h" // _PyFreeListState +#include "pycore_hamt.h" // PyHamtObject + + +extern PyTypeObject _PyContextTokenMissing_Type; + +/* runtime lifecycle */ + +PyStatus _PyContext_Init(PyInterpreterState *); + + +/* other API */ + +typedef struct { + PyObject_HEAD +} _PyContextTokenMissing; + +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; +#ifndef Py_GIL_DISABLED + PyObject *var_cached; + uint64_t var_cached_tsid; + uint64_t var_cached_tsver; +#endif + Py_hash_t var_hash; +}; + + +struct _pycontexttokenobject { + PyObject_HEAD + PyContext *tok_ctx; + PyContextVar *tok_var; + PyObject *tok_oldval; + int tok_used; +}; + + +// _testinternalcapi.hamt() used by tests. +// Export for '_testcapi' shared extension +PyAPI_FUNC(PyObject*) _PyContext_NewHamtForTests(void); + + +#endif /* !Py_INTERNAL_CONTEXT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_critical_section.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_critical_section.h new file mode 100644 index 000000000..78cd0d549 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_critical_section.h @@ -0,0 +1,233 @@ +#ifndef Py_INTERNAL_CRITICAL_SECTION_H +#define Py_INTERNAL_CRITICAL_SECTION_H + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_lock.h" // PyMutex +#include "pycore_pystate.h" // _PyThreadState_GET() +#include + +#ifdef __cplusplus +extern "C" { +#endif + +// Tagged pointers to critical sections use the two least significant bits to +// mark if the pointed-to critical section is inactive and whether it is a +// PyCriticalSection2 object. +#define _Py_CRITICAL_SECTION_INACTIVE 0x1 +#define _Py_CRITICAL_SECTION_TWO_MUTEXES 0x2 +#define _Py_CRITICAL_SECTION_MASK 0x3 + +#ifdef Py_GIL_DISABLED +# define Py_BEGIN_CRITICAL_SECTION_MUT(mutex) \ + { \ + PyCriticalSection _py_cs; \ + _PyCriticalSection_BeginMutex(&_py_cs, mutex) + +# define Py_BEGIN_CRITICAL_SECTION2_MUT(m1, m2) \ + { \ + PyCriticalSection2 _py_cs2; \ + _PyCriticalSection2_BeginMutex(&_py_cs2, m1, m2) + +// Specialized version of critical section locking to safely use +// PySequence_Fast APIs without the GIL. For performance, the argument *to* +// PySequence_Fast() is provided to the macro, not the *result* of +// PySequence_Fast(), which would require an extra test to determine if the +// lock must be acquired. +# define Py_BEGIN_CRITICAL_SECTION_SEQUENCE_FAST(original) \ + { \ + PyObject *_orig_seq = _PyObject_CAST(original); \ + const bool _should_lock_cs = PyList_CheckExact(_orig_seq); \ + PyCriticalSection _cs; \ + if (_should_lock_cs) { \ + _PyCriticalSection_Begin(&_cs, _orig_seq); \ + } + +# define Py_END_CRITICAL_SECTION_SEQUENCE_FAST() \ + if (_should_lock_cs) { \ + PyCriticalSection_End(&_cs); \ + } \ + } + +// Asserts that the mutex is locked. The mutex must be held by the +// top-most critical section otherwise there's the possibility +// that the mutex would be swalled out in some code paths. +#define _Py_CRITICAL_SECTION_ASSERT_MUTEX_LOCKED(mutex) \ + _PyCriticalSection_AssertHeld(mutex) + +// Asserts that the mutex for the given object is locked. The mutex must +// be held by the top-most critical section otherwise there's the +// possibility that the mutex would be swalled out in some code paths. +#ifdef Py_DEBUG + +# define _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED(op) \ + if (Py_REFCNT(op) != 1) { \ + _Py_CRITICAL_SECTION_ASSERT_MUTEX_LOCKED(&_PyObject_CAST(op)->ob_mutex); \ + } + +#else /* Py_DEBUG */ + +# define _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED(op) + +#endif /* Py_DEBUG */ + +#else /* !Py_GIL_DISABLED */ +// The critical section APIs are no-ops with the GIL. +# define Py_BEGIN_CRITICAL_SECTION_MUT(mut) { +# define Py_BEGIN_CRITICAL_SECTION2_MUT(m1, m2) { +# define Py_BEGIN_CRITICAL_SECTION_SEQUENCE_FAST(original) { +# define Py_END_CRITICAL_SECTION_SEQUENCE_FAST() } +# define _Py_CRITICAL_SECTION_ASSERT_MUTEX_LOCKED(mutex) +# define _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED(op) +#endif /* !Py_GIL_DISABLED */ + +// Resumes the top-most critical section. +PyAPI_FUNC(void) +_PyCriticalSection_Resume(PyThreadState *tstate); + +// (private) slow path for locking the mutex +PyAPI_FUNC(void) +_PyCriticalSection_BeginSlow(PyCriticalSection *c, PyMutex *m); + +PyAPI_FUNC(void) +_PyCriticalSection2_BeginSlow(PyCriticalSection2 *c, PyMutex *m1, PyMutex *m2, + int is_m1_locked); + +PyAPI_FUNC(void) +_PyCriticalSection_SuspendAll(PyThreadState *tstate); + +#ifdef Py_GIL_DISABLED + +static inline int +_PyCriticalSection_IsActive(uintptr_t tag) +{ + return tag != 0 && (tag & _Py_CRITICAL_SECTION_INACTIVE) == 0; +} + +static inline void +_PyCriticalSection_BeginMutex(PyCriticalSection *c, PyMutex *m) +{ + if (PyMutex_LockFast(&m->_bits)) { + PyThreadState *tstate = _PyThreadState_GET(); + c->_cs_mutex = m; + c->_cs_prev = tstate->critical_section; + tstate->critical_section = (uintptr_t)c; + } + else { + _PyCriticalSection_BeginSlow(c, m); + } +} + +static inline void +_PyCriticalSection_Begin(PyCriticalSection *c, PyObject *op) +{ + _PyCriticalSection_BeginMutex(c, &op->ob_mutex); +} +#define PyCriticalSection_Begin _PyCriticalSection_Begin + +// Removes the top-most critical section from the thread's stack of critical +// sections. If the new top-most critical section is inactive, then it is +// resumed. +static inline void +_PyCriticalSection_Pop(PyCriticalSection *c) +{ + PyThreadState *tstate = _PyThreadState_GET(); + uintptr_t prev = c->_cs_prev; + tstate->critical_section = prev; + + if ((prev & _Py_CRITICAL_SECTION_INACTIVE) != 0) { + _PyCriticalSection_Resume(tstate); + } +} + +static inline void +_PyCriticalSection_End(PyCriticalSection *c) +{ + PyMutex_Unlock(c->_cs_mutex); + _PyCriticalSection_Pop(c); +} +#define PyCriticalSection_End _PyCriticalSection_End + +static inline void +_PyCriticalSection2_BeginMutex(PyCriticalSection2 *c, PyMutex *m1, PyMutex *m2) +{ + if (m1 == m2) { + // If the two mutex arguments are the same, treat this as a critical + // section with a single mutex. + c->_cs_mutex2 = NULL; + _PyCriticalSection_BeginMutex(&c->_cs_base, m1); + return; + } + + if ((uintptr_t)m2 < (uintptr_t)m1) { + // Sort the mutexes so that the lower address is locked first. + // The exact order does not matter, but we need to acquire the mutexes + // in a consistent order to avoid lock ordering deadlocks. + PyMutex *tmp = m1; + m1 = m2; + m2 = tmp; + } + + if (PyMutex_LockFast(&m1->_bits)) { + if (PyMutex_LockFast(&m2->_bits)) { + PyThreadState *tstate = _PyThreadState_GET(); + c->_cs_base._cs_mutex = m1; + c->_cs_mutex2 = m2; + c->_cs_base._cs_prev = tstate->critical_section; + + uintptr_t p = (uintptr_t)c | _Py_CRITICAL_SECTION_TWO_MUTEXES; + tstate->critical_section = p; + } + else { + _PyCriticalSection2_BeginSlow(c, m1, m2, 1); + } + } + else { + _PyCriticalSection2_BeginSlow(c, m1, m2, 0); + } +} + +static inline void +_PyCriticalSection2_Begin(PyCriticalSection2 *c, PyObject *a, PyObject *b) +{ + _PyCriticalSection2_BeginMutex(c, &a->ob_mutex, &b->ob_mutex); +} +#define PyCriticalSection2_Begin _PyCriticalSection2_Begin + +static inline void +_PyCriticalSection2_End(PyCriticalSection2 *c) +{ + if (c->_cs_mutex2) { + PyMutex_Unlock(c->_cs_mutex2); + } + PyMutex_Unlock(c->_cs_base._cs_mutex); + _PyCriticalSection_Pop(&c->_cs_base); +} +#define PyCriticalSection2_End _PyCriticalSection2_End + +static inline void +_PyCriticalSection_AssertHeld(PyMutex *mutex) +{ +#ifdef Py_DEBUG + PyThreadState *tstate = _PyThreadState_GET(); + uintptr_t prev = tstate->critical_section; + if (prev & _Py_CRITICAL_SECTION_TWO_MUTEXES) { + PyCriticalSection2 *cs = (PyCriticalSection2 *)(prev & ~_Py_CRITICAL_SECTION_MASK); + assert(cs != NULL && (cs->_cs_base._cs_mutex == mutex || cs->_cs_mutex2 == mutex)); + } + else { + PyCriticalSection *cs = (PyCriticalSection *)(tstate->critical_section & ~_Py_CRITICAL_SECTION_MASK); + assert(cs != NULL && cs->_cs_mutex == mutex); + } + +#endif +} + +#endif /* Py_GIL_DISABLED */ + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_CRITICAL_SECTION_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_crossinterp.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_crossinterp.h new file mode 100644 index 000000000..2dd165eae --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_crossinterp.h @@ -0,0 +1,340 @@ +#ifndef Py_INTERNAL_CROSSINTERP_H +#define Py_INTERNAL_CROSSINTERP_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_lock.h" // PyMutex +#include "pycore_pyerrors.h" + +/**************/ +/* exceptions */ +/**************/ + +PyAPI_DATA(PyObject *) PyExc_InterpreterError; +PyAPI_DATA(PyObject *) PyExc_InterpreterNotFoundError; + + +/***************************/ +/* cross-interpreter calls */ +/***************************/ + +typedef int (*_Py_simple_func)(void *); +extern int _Py_CallInInterpreter( + PyInterpreterState *interp, + _Py_simple_func func, + void *arg); +extern int _Py_CallInInterpreterAndRawFree( + PyInterpreterState *interp, + _Py_simple_func func, + void *arg); + + +/**************************/ +/* cross-interpreter data */ +/**************************/ + +typedef struct _xid _PyCrossInterpreterData; +typedef PyObject *(*xid_newobjectfunc)(_PyCrossInterpreterData *); +typedef void (*xid_freefunc)(void *); + +// _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. +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 interpid; + // 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. + xid_newobjectfunc new_object; + // 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. + xid_freefunc free; +}; + +PyAPI_FUNC(_PyCrossInterpreterData *) _PyCrossInterpreterData_New(void); +PyAPI_FUNC(void) _PyCrossInterpreterData_Free(_PyCrossInterpreterData *data); + +#define _PyCrossInterpreterData_DATA(DATA) ((DATA)->data) +#define _PyCrossInterpreterData_OBJ(DATA) ((DATA)->obj) +#define _PyCrossInterpreterData_INTERPID(DATA) ((DATA)->interpid) +// Users should not need getters for "new_object" or "free". + + +/* defining cross-interpreter data */ + +PyAPI_FUNC(void) _PyCrossInterpreterData_Init( + _PyCrossInterpreterData *data, + PyInterpreterState *interp, void *shared, PyObject *obj, + xid_newobjectfunc new_object); +PyAPI_FUNC(int) _PyCrossInterpreterData_InitWithSize( + _PyCrossInterpreterData *, + PyInterpreterState *interp, const size_t, PyObject *, + xid_newobjectfunc); +PyAPI_FUNC(void) _PyCrossInterpreterData_Clear( + PyInterpreterState *, _PyCrossInterpreterData *); + +// Normally the Init* functions are sufficient. The only time +// additional initialization might be needed is to set the "free" func, +// though that should be infrequent. +#define _PyCrossInterpreterData_SET_FREE(DATA, FUNC) \ + do { \ + (DATA)->free = (FUNC); \ + } while (0) +// Additionally, some shareable types are essentially light wrappers +// around other shareable types. The crossinterpdatafunc of the wrapper +// can often be implemented by calling the wrapped object's +// crossinterpdatafunc and then changing the "new_object" function. +// We have _PyCrossInterpreterData_SET_NEW_OBJECT() here for that, +// but might be better to have a function like +// _PyCrossInterpreterData_AdaptToWrapper() instead. +#define _PyCrossInterpreterData_SET_NEW_OBJECT(DATA, FUNC) \ + do { \ + (DATA)->new_object = (FUNC); \ + } while (0) + + +/* using cross-interpreter data */ + +PyAPI_FUNC(int) _PyObject_CheckCrossInterpreterData(PyObject *); +PyAPI_FUNC(int) _PyObject_GetCrossInterpreterData(PyObject *, _PyCrossInterpreterData *); +PyAPI_FUNC(PyObject *) _PyCrossInterpreterData_NewObject(_PyCrossInterpreterData *); +PyAPI_FUNC(int) _PyCrossInterpreterData_Release(_PyCrossInterpreterData *); +PyAPI_FUNC(int) _PyCrossInterpreterData_ReleaseAndRawFree(_PyCrossInterpreterData *); + + +/* 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. + +typedef int (*crossinterpdatafunc)(PyThreadState *tstate, PyObject *, + _PyCrossInterpreterData *); + +struct _xidregitem; + +struct _xidregitem { + struct _xidregitem *prev; + struct _xidregitem *next; + /* This can be a dangling pointer, but only if weakref is set. */ + PyTypeObject *cls; + /* This is NULL for builtin types. */ + PyObject *weakref; + size_t refcount; + crossinterpdatafunc getdata; +}; + +struct _xidregistry { + int global; /* builtin types or heap types */ + int initialized; + PyMutex mutex; + struct _xidregitem *head; +}; + +PyAPI_FUNC(int) _PyCrossInterpreterData_RegisterClass(PyTypeObject *, crossinterpdatafunc); +PyAPI_FUNC(int) _PyCrossInterpreterData_UnregisterClass(PyTypeObject *); +PyAPI_FUNC(crossinterpdatafunc) _PyCrossInterpreterData_Lookup(PyObject *); + + +/*****************************/ +/* runtime state & lifecycle */ +/*****************************/ + +struct _xi_runtime_state { + // builtin types + // XXX Remove this field once we have a tp_* slot. + struct _xidregistry registry; +}; + +struct _xi_state { + // heap types + // XXX Remove this field once we have a tp_* slot. + struct _xidregistry registry; + + // heap types + PyObject *PyExc_NotShareableError; +}; + +extern PyStatus _PyXI_Init(PyInterpreterState *interp); +extern void _PyXI_Fini(PyInterpreterState *interp); + +extern PyStatus _PyXI_InitTypes(PyInterpreterState *interp); +extern void _PyXI_FiniTypes(PyInterpreterState *interp); + +#define _PyInterpreterState_GetXIState(interp) (&(interp)->xi) + + +/***************************/ +/* short-term data sharing */ +/***************************/ + +// 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 _excinfo { + struct _excinfo_type { + PyTypeObject *builtin; + const char *name; + const char *qualname; + const char *module; + } type; + const char *msg; + const char *errdisplay; +} _PyXI_excinfo; + +PyAPI_FUNC(int) _PyXI_InitExcInfo(_PyXI_excinfo *info, PyObject *exc); +PyAPI_FUNC(PyObject *) _PyXI_FormatExcInfo(_PyXI_excinfo *info); +PyAPI_FUNC(PyObject *) _PyXI_ExcInfoAsObject(_PyXI_excinfo *info); +PyAPI_FUNC(void) _PyXI_ClearExcInfo(_PyXI_excinfo *info); + + +typedef enum error_code { + _PyXI_ERR_NO_ERROR = 0, + _PyXI_ERR_UNCAUGHT_EXCEPTION = -1, + _PyXI_ERR_OTHER = -2, + _PyXI_ERR_NO_MEMORY = -3, + _PyXI_ERR_ALREADY_RUNNING = -4, + _PyXI_ERR_MAIN_NS_FAILURE = -5, + _PyXI_ERR_APPLY_NS_FAILURE = -6, + _PyXI_ERR_NOT_SHAREABLE = -7, +} _PyXI_errcode; + + +typedef struct _sharedexception { + // The originating interpreter. + PyInterpreterState *interp; + // The kind of error to propagate. + _PyXI_errcode code; + // The exception information to propagate, if applicable. + // This is populated only for some error codes, + // but always for _PyXI_ERR_UNCAUGHT_EXCEPTION. + _PyXI_excinfo uncaught; +} _PyXI_error; + +PyAPI_FUNC(PyObject *) _PyXI_ApplyError(_PyXI_error *err); + + +typedef struct xi_session _PyXI_session; +typedef struct _sharedns _PyXI_namespace; + +PyAPI_FUNC(void) _PyXI_FreeNamespace(_PyXI_namespace *ns); +PyAPI_FUNC(_PyXI_namespace *) _PyXI_NamespaceFromNames(PyObject *names); +PyAPI_FUNC(int) _PyXI_FillNamespaceFromDict( + _PyXI_namespace *ns, + PyObject *nsobj, + _PyXI_session *session); +PyAPI_FUNC(int) _PyXI_ApplyNamespace( + _PyXI_namespace *ns, + PyObject *nsobj, + PyObject *dflt); + + +// A cross-interpreter session involves entering an interpreter +// (_PyXI_Enter()), doing some work with it, and finally exiting +// that interpreter (_PyXI_Exit()). +// +// At the boundaries of the session, both entering and exiting, +// data may be exchanged between the previous interpreter and the +// target one in a thread-safe way that does not violate the +// isolation between interpreters. This includes setting objects +// in the target's __main__ module on the way in, and capturing +// uncaught exceptions on the way out. +struct xi_session { + // Once a session has been entered, this is the tstate that was + // current before the session. If it is different from cur_tstate + // then we must have switched interpreters. Either way, this will + // be the current tstate once we exit the session. + PyThreadState *prev_tstate; + // Once a session has been entered, this is the current tstate. + // It must be current when the session exits. + PyThreadState *init_tstate; + // This is true if init_tstate needs cleanup during exit. + int own_init_tstate; + + // This is true if, while entering the session, init_thread took + // "ownership" of the interpreter's __main__ module. This means + // it is the only thread that is allowed to run code there. + // (Caveat: for now, users may still run exec() against the + // __main__ module's dict, though that isn't advisable.) + int running; + // This is a cached reference to the __dict__ of the entered + // interpreter's __main__ module. It is looked up when at the + // beginning of the session as a convenience. + PyObject *main_ns; + + // This is set if the interpreter is entered and raised an exception + // that needs to be handled in some special way during exit. + _PyXI_errcode *error_override; + // This is set if exit captured an exception to propagate. + _PyXI_error *error; + + // -- pre-allocated memory -- + _PyXI_error _error; + _PyXI_errcode _error_override; +}; + +PyAPI_FUNC(int) _PyXI_Enter( + _PyXI_session *session, + PyInterpreterState *interp, + PyObject *nsupdates); +PyAPI_FUNC(void) _PyXI_Exit(_PyXI_session *session); + +PyAPI_FUNC(PyObject *) _PyXI_ApplyCapturedException(_PyXI_session *session); +PyAPI_FUNC(int) _PyXI_HasCapturedException(_PyXI_session *session); + + +/*************/ +/* other API */ +/*************/ + +// Export for _testinternalcapi shared extension +PyAPI_FUNC(PyInterpreterState *) _PyXI_NewInterpreter( + PyInterpreterConfig *config, + long *maybe_whence, + PyThreadState **p_tstate, + PyThreadState **p_save_tstate); +PyAPI_FUNC(void) _PyXI_EndInterpreter( + PyInterpreterState *interp, + PyThreadState *tstate, + PyThreadState **p_save_tstate); + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_CROSSINTERP_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_descrobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_descrobject.h new file mode 100644 index 000000000..3cec59a68 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_descrobject.h @@ -0,0 +1,28 @@ +#ifndef Py_INTERNAL_DESCROBJECT_H +#define Py_INTERNAL_DESCROBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +typedef struct { + PyObject_HEAD + PyObject *prop_get; + PyObject *prop_set; + PyObject *prop_del; + PyObject *prop_doc; + PyObject *prop_name; + int getter_doc; +} propertyobject; + +typedef propertyobject _PyPropertyObject; + +extern PyTypeObject _PyMethodWrapper_Type; + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_DESCROBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_dict.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_dict.h new file mode 100644 index 000000000..36da498db --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_dict.h @@ -0,0 +1,340 @@ +#ifndef Py_INTERNAL_DICT_H +#define Py_INTERNAL_DICT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_freelist.h" // _PyFreeListState +#include "pycore_identifier.h" // _Py_Identifier +#include "pycore_object.h" // PyManagedDictPointer +#include "pycore_pyatomic_ft_wrappers.h" // FT_ATOMIC_LOAD_SSIZE_ACQUIRE + +// Unsafe flavor of PyDict_GetItemWithError(): no error checking +extern PyObject* _PyDict_GetItemWithError(PyObject *dp, PyObject *key); + +// Delete an item from a dict if a predicate is true +// Returns -1 on error, 1 if the item was deleted, 0 otherwise +// Export for '_asyncio' shared extension +PyAPI_FUNC(int) _PyDict_DelItemIf(PyObject *mp, PyObject *key, + int (*predicate)(PyObject *value, void *arg), + void *arg); + +// "KnownHash" variants +// Export for '_asyncio' shared extension +PyAPI_FUNC(int) _PyDict_SetItem_KnownHash(PyObject *mp, PyObject *key, + PyObject *item, Py_hash_t hash); +// Export for '_asyncio' shared extension +PyAPI_FUNC(int) _PyDict_DelItem_KnownHash(PyObject *mp, PyObject *key, + Py_hash_t hash); +extern int _PyDict_Contains_KnownHash(PyObject *, PyObject *, Py_hash_t); + +// "Id" variants +extern PyObject* _PyDict_GetItemIdWithError(PyObject *dp, + _Py_Identifier *key); +extern int _PyDict_ContainsId(PyObject *, _Py_Identifier *); +extern int _PyDict_SetItemId(PyObject *dp, _Py_Identifier *key, PyObject *item); +extern int _PyDict_DelItemId(PyObject *mp, _Py_Identifier *key); + +extern int _PyDict_Next( + PyObject *mp, Py_ssize_t *pos, PyObject **key, PyObject **value, Py_hash_t *hash); + +extern int _PyDict_HasOnlyStringKeys(PyObject *mp); + +extern void _PyDict_MaybeUntrack(PyObject *mp); + +// Export for '_ctypes' shared extension +PyAPI_FUNC(Py_ssize_t) _PyDict_SizeOf(PyDictObject *); + +#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); + +extern void _PyDict_DebugMallocStats(FILE *out); + + +/* _PyDictView */ + +typedef struct { + PyObject_HEAD + PyDictObject *dv_dict; +} _PyDictViewObject; + +extern PyObject* _PyDictView_New(PyObject *, PyTypeObject *); +extern PyObject* _PyDictView_Intersect(PyObject* self, PyObject *other); + +/* other API */ + +typedef struct { + /* Cached hash code of me_key. */ + Py_hash_t me_hash; + PyObject *me_key; + PyObject *me_value; /* This field is only meaningful for combined tables */ +} PyDictKeyEntry; + +typedef struct { + PyObject *me_key; /* The key must be Unicode and have hash. */ + PyObject *me_value; /* This field is only meaningful for combined tables */ +} PyDictUnicodeEntry; + +extern PyDictKeysObject *_PyDict_NewKeysForClass(void); +extern PyObject *_PyDict_FromKeys(PyObject *, PyObject *, PyObject *); + +/* Gets a version number unique to the current state of the keys of dict, if possible. + * Returns the version number, or zero if it was not possible to get a version number. */ +extern uint32_t _PyDictKeys_GetVersionForCurrentState( + PyInterpreterState *interp, PyDictKeysObject *dictkeys); + +extern size_t _PyDict_KeysSize(PyDictKeysObject *keys); + +extern void _PyDictKeys_DecRef(PyDictKeysObject *keys); + +/* _Py_dict_lookup() returns index of entry which can be used like DK_ENTRIES(dk)[index]. + * -1 when no entry found, -3 when compare raises error. + */ +extern Py_ssize_t _Py_dict_lookup(PyDictObject *mp, PyObject *key, Py_hash_t hash, PyObject **value_addr); +extern Py_ssize_t _Py_dict_lookup_threadsafe(PyDictObject *mp, PyObject *key, Py_hash_t hash, PyObject **value_addr); + +extern Py_ssize_t _PyDict_LookupIndex(PyDictObject *, PyObject *); +extern Py_ssize_t _PyDictKeys_StringLookup(PyDictKeysObject* dictkeys, PyObject *key); +PyAPI_FUNC(PyObject *)_PyDict_LoadGlobal(PyDictObject *, PyDictObject *, PyObject *); + +/* Consumes references to key and value */ +PyAPI_FUNC(int) _PyDict_SetItem_Take2(PyDictObject *op, PyObject *key, PyObject *value); +extern int _PyDict_SetItem_LockHeld(PyDictObject *dict, PyObject *name, PyObject *value); +// Export for '_asyncio' shared extension +PyAPI_FUNC(int) _PyDict_SetItem_KnownHash_LockHeld(PyDictObject *mp, PyObject *key, + PyObject *value, Py_hash_t hash); +// Export for '_asyncio' shared extension +PyAPI_FUNC(int) _PyDict_GetItemRef_KnownHash_LockHeld(PyDictObject *op, PyObject *key, Py_hash_t hash, PyObject **result); +extern int _PyDict_GetItemRef_KnownHash(PyDictObject *op, PyObject *key, Py_hash_t hash, PyObject **result); +extern int _PyDict_GetItemRef_Unicode_LockHeld(PyDictObject *op, PyObject *key, PyObject **result); +extern int _PyObjectDict_SetItem(PyTypeObject *tp, PyObject *obj, PyObject **dictptr, PyObject *name, PyObject *value); + +extern int _PyDict_Pop_KnownHash( + PyDictObject *dict, + PyObject *key, + Py_hash_t hash, + PyObject **result); + +#define DKIX_EMPTY (-1) +#define DKIX_DUMMY (-2) /* Used internally */ +#define DKIX_ERROR (-3) +#define DKIX_KEY_CHANGED (-4) /* Used internally */ + +typedef enum { + DICT_KEYS_GENERAL = 0, + DICT_KEYS_UNICODE = 1, + DICT_KEYS_SPLIT = 2 +} DictKeysKind; + +/* See dictobject.c for actual layout of DictKeysObject */ +struct _dictkeysobject { + Py_ssize_t dk_refcnt; + + /* Size of the hash table (dk_indices). It must be a power of 2. */ + uint8_t dk_log2_size; + + /* Size of the hash table (dk_indices) by bytes. */ + uint8_t dk_log2_index_bytes; + + /* Kind of keys */ + uint8_t dk_kind; + +#ifdef Py_GIL_DISABLED + /* Lock used to protect shared keys */ + PyMutex dk_mutex; +#endif + + /* Version number -- Reset to 0 by any modification to keys */ + uint32_t dk_version; + + /* Number of usable entries in dk_entries. */ + Py_ssize_t dk_usable; + + /* Number of used entries in dk_entries. */ + Py_ssize_t dk_nentries; + + + /* Actual hash table of dk_size entries. It holds indices in dk_entries, + or DKIX_EMPTY(-1) or DKIX_DUMMY(-2). + + Indices must be: 0 <= indice < USABLE_FRACTION(dk_size). + + The size in bytes of an indice depends on dk_size: + + - 1 byte if dk_size <= 0xff (char*) + - 2 bytes if dk_size <= 0xffff (int16_t*) + - 4 bytes if dk_size <= 0xffffffff (int32_t*) + - 8 bytes otherwise (int64_t*) + + Dynamically sized, SIZEOF_VOID_P is minimum. */ + char dk_indices[]; /* char is required to avoid strict aliasing. */ + + /* "PyDictKeyEntry or PyDictUnicodeEntry dk_entries[USABLE_FRACTION(DK_SIZE(dk))];" array follows: + see the DK_ENTRIES() / DK_UNICODE_ENTRIES() functions below */ +}; + +/* This must be no more than 250, for the prefix size to fit in one byte. */ +#define SHARED_KEYS_MAX_SIZE 30 +#define NEXT_LOG2_SHARED_KEYS_MAX_SIZE 6 + +/* Layout of dict values: + * + * The PyObject *values are preceded by an array of bytes holding + * the insertion order and size. + * [-1] = prefix size. [-2] = used size. size[-2-n...] = insertion order. + */ +struct _dictvalues { + uint8_t capacity; + uint8_t size; + uint8_t embedded; + uint8_t valid; + PyObject *values[1]; +}; + +#define DK_LOG_SIZE(dk) _Py_RVALUE((dk)->dk_log2_size) +#if SIZEOF_VOID_P > 4 +#define DK_SIZE(dk) (((int64_t)1)<dk_indices); + size_t index = (size_t)1 << dk->dk_log2_index_bytes; + return (&indices[index]); +} + +static inline PyDictKeyEntry* DK_ENTRIES(PyDictKeysObject *dk) { + assert(dk->dk_kind == DICT_KEYS_GENERAL); + return (PyDictKeyEntry*)_DK_ENTRIES(dk); +} +static inline PyDictUnicodeEntry* DK_UNICODE_ENTRIES(PyDictKeysObject *dk) { + assert(dk->dk_kind != DICT_KEYS_GENERAL); + return (PyDictUnicodeEntry*)_DK_ENTRIES(dk); +} + +#define DK_IS_UNICODE(dk) ((dk)->dk_kind != DICT_KEYS_GENERAL) + +#define DICT_VERSION_INCREMENT (1 << (DICT_MAX_WATCHERS + DICT_WATCHED_MUTATION_BITS)) +#define DICT_WATCHER_MASK ((1 << DICT_MAX_WATCHERS) - 1) +#define DICT_WATCHER_AND_MODIFICATION_MASK ((1 << (DICT_MAX_WATCHERS + DICT_WATCHED_MUTATION_BITS)) - 1) + +#ifdef Py_GIL_DISABLED + +#define THREAD_LOCAL_DICT_VERSION_COUNT 256 +#define THREAD_LOCAL_DICT_VERSION_BATCH THREAD_LOCAL_DICT_VERSION_COUNT * DICT_VERSION_INCREMENT + +static inline uint64_t +dict_next_version(PyInterpreterState *interp) +{ + PyThreadState *tstate = PyThreadState_GET(); + uint64_t cur_progress = (tstate->dict_global_version & + (THREAD_LOCAL_DICT_VERSION_BATCH - 1)); + if (cur_progress == 0) { + uint64_t next = _Py_atomic_add_uint64(&interp->dict_state.global_version, + THREAD_LOCAL_DICT_VERSION_BATCH); + tstate->dict_global_version = next; + } + return tstate->dict_global_version += DICT_VERSION_INCREMENT; +} + +#define DICT_NEXT_VERSION(INTERP) dict_next_version(INTERP) + +#else +#define DICT_NEXT_VERSION(INTERP) \ + ((INTERP)->dict_state.global_version += DICT_VERSION_INCREMENT) +#endif + +void +_PyDict_SendEvent(int watcher_bits, + PyDict_WatchEvent event, + PyDictObject *mp, + PyObject *key, + PyObject *value); + +static inline uint64_t +_PyDict_NotifyEvent(PyInterpreterState *interp, + PyDict_WatchEvent event, + PyDictObject *mp, + PyObject *key, + PyObject *value) +{ + assert(Py_REFCNT((PyObject*)mp) > 0); + int watcher_bits = mp->ma_version_tag & DICT_WATCHER_MASK; + if (watcher_bits) { + RARE_EVENT_STAT_INC(watched_dict_modification); + _PyDict_SendEvent(watcher_bits, event, mp, key, value); + } + return DICT_NEXT_VERSION(interp) | (mp->ma_version_tag & DICT_WATCHER_AND_MODIFICATION_MASK); +} + +extern PyDictObject *_PyObject_MaterializeManagedDict(PyObject *obj); + +PyAPI_FUNC(PyObject *)_PyDict_FromItems( + PyObject *const *keys, Py_ssize_t keys_offset, + PyObject *const *values, Py_ssize_t values_offset, + Py_ssize_t length); + +static inline uint8_t * +get_insertion_order_array(PyDictValues *values) +{ + return (uint8_t *)&values->values[values->capacity]; +} + +static inline void +_PyDictValues_AddToInsertionOrder(PyDictValues *values, Py_ssize_t ix) +{ + assert(ix < SHARED_KEYS_MAX_SIZE); + int size = values->size; + uint8_t *array = get_insertion_order_array(values); + assert(size < values->capacity); + assert(((uint8_t)ix) == ix); + array[size] = (uint8_t)ix; + values->size = size+1; +} + +static inline size_t +shared_keys_usable_size(PyDictKeysObject *keys) +{ + // dk_usable will decrease for each instance that is created and each + // value that is added. dk_nentries will increase for each value that + // is added. We want to always return the right value or larger. + // We therefore increase dk_nentries first and we decrease dk_usable + // second, and conversely here we read dk_usable first and dk_entries + // second (to avoid the case where we read entries before the increment + // and read usable after the decrement) + Py_ssize_t dk_usable = FT_ATOMIC_LOAD_SSIZE_ACQUIRE(keys->dk_usable); + Py_ssize_t dk_nentries = FT_ATOMIC_LOAD_SSIZE_ACQUIRE(keys->dk_nentries); + return dk_nentries + dk_usable; +} + +static inline size_t +_PyInlineValuesSize(PyTypeObject *tp) +{ + PyDictKeysObject *keys = ((PyHeapTypeObject*)tp)->ht_cached_keys; + assert(keys != NULL); + size_t size = shared_keys_usable_size(keys); + size_t prefix_size = _Py_SIZE_ROUND_UP(size, sizeof(PyObject *)); + assert(prefix_size < 256); + return prefix_size + (size + 1) * sizeof(PyObject *); +} + +int +_PyDict_DetachFromObject(PyDictObject *dict, PyObject *obj); + +PyDictObject *_PyObject_MaterializeManagedDict_LockHeld(PyObject *); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_DICT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_dict_state.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_dict_state.h new file mode 100644 index 000000000..1a44755c7 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_dict_state.h @@ -0,0 +1,32 @@ +#ifndef Py_INTERNAL_DICT_STATE_H +#define Py_INTERNAL_DICT_STATE_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#define DICT_MAX_WATCHERS 8 +#define DICT_WATCHED_MUTATION_BITS 4 + +struct _Py_dict_state { + /*Global counter used to set ma_version_tag field of dictionary. + * It is incremented each time that a dictionary is created and each + * time that a dictionary is modified. */ + uint64_t global_version; + uint32_t next_keys_version; + PyDict_WatchCallback watchers[DICT_MAX_WATCHERS]; +}; + +#define _dict_state_INIT \ + { \ + .next_keys_version = 2, \ + } + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_DICT_STATE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_dtoa.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_dtoa.h new file mode 100644 index 000000000..e4222c526 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_dtoa.h @@ -0,0 +1,75 @@ +#ifndef Py_INTERNAL_DTOA_H +#define Py_INTERNAL_DTOA_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_pymath.h" // _PY_SHORT_FLOAT_REPR + + +typedef uint32_t ULong; + +struct +Bigint { + struct Bigint *next; + int k, maxwds, sign, wds; + ULong x[1]; +}; + +#if defined(Py_USING_MEMORY_DEBUGGER) || _PY_SHORT_FLOAT_REPR == 0 + +struct _dtoa_state { + int _not_used; +}; +#define _dtoa_state_INIT(INTERP) \ + {0} + +#else // !Py_USING_MEMORY_DEBUGGER && _PY_SHORT_FLOAT_REPR != 0 + +/* The size of the Bigint freelist */ +#define Bigint_Kmax 7 + +/* The size of the cached powers of 5 array */ +#define Bigint_Pow5size 8 + +#ifndef PRIVATE_MEM +#define PRIVATE_MEM 2304 +#endif +#define Bigint_PREALLOC_SIZE \ + ((PRIVATE_MEM+sizeof(double)-1)/sizeof(double)) + +struct _dtoa_state { + // p5s is an array of powers of 5 of the form: + // 5**(2**(i+2)) for 0 <= i < Bigint_Pow5size + struct Bigint *p5s[Bigint_Pow5size]; + // XXX This should be freed during runtime fini. + struct Bigint *freelist[Bigint_Kmax+1]; + double preallocated[Bigint_PREALLOC_SIZE]; + double *preallocated_next; +}; +#define _dtoa_state_INIT(INTERP) \ + { \ + .preallocated_next = (INTERP)->dtoa.preallocated, \ + } + +#endif // !Py_USING_MEMORY_DEBUGGER + + +extern double _Py_dg_strtod(const char *str, char **ptr); +extern char* _Py_dg_dtoa(double d, int mode, int ndigits, + int *decpt, int *sign, char **rve); +extern void _Py_dg_freedtoa(char *s); + + +extern PyStatus _PyDtoa_Init(PyInterpreterState *interp); +extern void _PyDtoa_Fini(PyInterpreterState *interp); + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_DTOA_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_emscripten_signal.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_emscripten_signal.h new file mode 100644 index 000000000..754193e21 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_emscripten_signal.h @@ -0,0 +1,30 @@ +#ifndef Py_EMSCRIPTEN_SIGNAL_H +#define Py_EMSCRIPTEN_SIGNAL_H + +#if defined(__EMSCRIPTEN__) + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +void +_Py_CheckEmscriptenSignals(void); + +void +_Py_CheckEmscriptenSignalsPeriodically(void); + +#define _Py_CHECK_EMSCRIPTEN_SIGNALS() _Py_CheckEmscriptenSignals() + +#define _Py_CHECK_EMSCRIPTEN_SIGNALS_PERIODICALLY() _Py_CheckEmscriptenSignalsPeriodically() + +extern int Py_EMSCRIPTEN_SIGNAL_HANDLING; +extern int _Py_emscripten_signal_clock; + +#else + +#define _Py_CHECK_EMSCRIPTEN_SIGNALS() +#define _Py_CHECK_EMSCRIPTEN_SIGNALS_PERIODICALLY() + +#endif // defined(__EMSCRIPTEN__) + +#endif // ndef Py_EMSCRIPTEN_SIGNAL_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_emscripten_trampoline.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_emscripten_trampoline.h new file mode 100644 index 000000000..e519c99ad --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_emscripten_trampoline.h @@ -0,0 +1,81 @@ +#ifndef Py_EMSCRIPTEN_TRAMPOLINE_H +#define Py_EMSCRIPTEN_TRAMPOLINE_H + +#include "pycore_runtime.h" // _PyRuntimeState + +/** + * C function call trampolines to mitigate bad function pointer casts. + * + * Section 6.3.2.3, paragraph 8 reads: + * + * A pointer to a function of one type may be converted to a pointer to a + * function of another type and back again; the result shall compare equal to + * the original pointer. If a converted pointer is used to call a function + * whose type is not compatible with the pointed-to type, the behavior is + * undefined. + * + * Typical native ABIs ignore additional arguments or fill in missing values + * with 0/NULL in function pointer cast. Compilers do not show warnings when a + * function pointer is explicitly casted to an incompatible type. + * + * Bad fpcasts are an issue in WebAssembly. WASM's indirect_call has strict + * function signature checks. Argument count, types, and return type must match. + * + * Third party code unintentionally rely on problematic fpcasts. The call + * trampoline mitigates common occurrences of bad fpcasts on Emscripten. + */ + +#if defined(__EMSCRIPTEN__) && defined(PY_CALL_TRAMPOLINE) + +void _Py_EmscriptenTrampoline_Init(_PyRuntimeState *runtime); + +PyObject* +_PyEM_TrampolineCall_JavaScript(PyCFunctionWithKeywords func, + PyObject* self, + PyObject* args, + PyObject* kw); + +PyObject* +_PyEM_TrampolineCall_Reflection(PyCFunctionWithKeywords func, + PyObject* self, + PyObject* args, + PyObject* kw); + +#define _PyEM_TrampolineCall(meth, self, args, kw) \ + ((_PyRuntime.wasm_type_reflection_available) ? \ + (_PyEM_TrampolineCall_Reflection((PyCFunctionWithKeywords)(meth), (self), (args), (kw))) : \ + (_PyEM_TrampolineCall_JavaScript((PyCFunctionWithKeywords)(meth), (self), (args), (kw)))) + +#define _PyCFunction_TrampolineCall(meth, self, args) \ + _PyEM_TrampolineCall( \ + (*(PyCFunctionWithKeywords)(void(*)(void))(meth)), (self), (args), NULL) + +#define _PyCFunctionWithKeywords_TrampolineCall(meth, self, args, kw) \ + _PyEM_TrampolineCall((meth), (self), (args), (kw)) + +#define descr_set_trampoline_call(set, obj, value, closure) \ + ((int)_PyEM_TrampolineCall((PyCFunctionWithKeywords)(set), (obj), (value), (PyObject*)(closure))) + +#define descr_get_trampoline_call(get, obj, closure) \ + _PyEM_TrampolineCall((PyCFunctionWithKeywords)(get), (obj), (PyObject*)(closure), NULL) + + +#else // defined(__EMSCRIPTEN__) && defined(PY_CALL_TRAMPOLINE) + +#define _Py_EmscriptenTrampoline_Init(runtime) + +#define _PyCFunction_TrampolineCall(meth, self, args) \ + (meth)((self), (args)) + +#define _PyCFunctionWithKeywords_TrampolineCall(meth, self, args, kw) \ + (meth)((self), (args), (kw)) + +#define descr_set_trampoline_call(set, obj, value, closure) \ + (set)((obj), (value), (closure)) + +#define descr_get_trampoline_call(get, obj, closure) \ + (get)((obj), (closure)) + +#endif // defined(__EMSCRIPTEN__) && defined(PY_CALL_TRAMPOLINE) + +#endif // ndef Py_EMSCRIPTEN_SIGNAL_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_exceptions.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_exceptions.h new file mode 100644 index 000000000..4a9df7091 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_exceptions.h @@ -0,0 +1,37 @@ +#ifndef Py_INTERNAL_EXCEPTIONS_H +#define Py_INTERNAL_EXCEPTIONS_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +/* runtime lifecycle */ + +extern PyStatus _PyExc_InitState(PyInterpreterState *); +extern PyStatus _PyExc_InitGlobalObjects(PyInterpreterState *); +extern int _PyExc_InitTypes(PyInterpreterState *); +extern void _PyExc_Fini(PyInterpreterState *); + + +/* other API */ + +struct _Py_exc_state { + // The dict mapping from errno codes to OSError subclasses + PyObject *errnomap; + PyBaseExceptionObject *memerrors_freelist; + int memerrors_numfree; + // The ExceptionGroup type + PyObject *PyExc_ExceptionGroup; +}; + +extern void _PyExc_ClearExceptionGroupType(PyInterpreterState *); + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_EXCEPTIONS_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_faulthandler.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_faulthandler.h new file mode 100644 index 000000000..6dd7d8d7c --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_faulthandler.h @@ -0,0 +1,99 @@ +#ifndef Py_INTERNAL_FAULTHANDLER_H +#define Py_INTERNAL_FAULTHANDLER_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#ifdef HAVE_SIGACTION +# include // sigaction +#endif + + +#ifndef MS_WINDOWS + /* register() is useless on Windows, because only SIGSEGV, SIGABRT and + SIGILL can be handled by the process, and these signals can only be used + with enable(), not using register() */ +# define FAULTHANDLER_USER +#endif + + +#ifdef HAVE_SIGACTION +/* Using an alternative stack requires sigaltstack() + and sigaction() SA_ONSTACK */ +# ifdef HAVE_SIGALTSTACK +# define FAULTHANDLER_USE_ALT_STACK +# endif +typedef struct sigaction _Py_sighandler_t; +#else +typedef PyOS_sighandler_t _Py_sighandler_t; +#endif // HAVE_SIGACTION + + +#ifdef FAULTHANDLER_USER +struct faulthandler_user_signal { + int enabled; + PyObject *file; + int fd; + int all_threads; + int chain; + _Py_sighandler_t previous; + PyInterpreterState *interp; +}; +#endif /* FAULTHANDLER_USER */ + + +struct _faulthandler_runtime_state { + struct { + int enabled; + PyObject *file; + int fd; + int all_threads; + PyInterpreterState *interp; +#ifdef MS_WINDOWS + void *exc_handler; +#endif + } fatal_error; + + struct { + PyObject *file; + int fd; + PY_TIMEOUT_T timeout_us; /* timeout in microseconds */ + int repeat; + PyInterpreterState *interp; + int exit; + char *header; + size_t header_len; + /* The main thread always holds this lock. It is only released when + faulthandler_thread() is interrupted before this thread exits, or at + Python exit. */ + PyThread_type_lock cancel_event; + /* released by child thread when joined */ + PyThread_type_lock running; + } thread; + +#ifdef FAULTHANDLER_USER + struct faulthandler_user_signal *user_signals; +#endif + +#ifdef FAULTHANDLER_USE_ALT_STACK + stack_t stack; + stack_t old_stack; +#endif +}; + +#define _faulthandler_runtime_state_INIT \ + { \ + .fatal_error = { \ + .fd = -1, \ + }, \ + } + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_FAULTHANDLER_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_fileutils.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_fileutils.h new file mode 100644 index 000000000..13f86b01b --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_fileutils.h @@ -0,0 +1,335 @@ +#ifndef Py_INTERNAL_FILEUTILS_H +#define Py_INTERNAL_FILEUTILS_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include // struct lconv + + +/* 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 */ + #define _PyIsSelectable_fd(FD) (1) +#else + #define _PyIsSelectable_fd(FD) ((unsigned int)(FD) < (unsigned int)FD_SETSIZE) +#endif + +struct _fileutils_state { + int force_ascii; +}; + +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; + +// Export for '_testinternalcapi' shared extension +PyAPI_FUNC(_Py_error_handler) _Py_GetErrorHandler(const char *errors); + +// Export for '_testinternalcapi' shared extension +PyAPI_FUNC(int) _Py_DecodeLocaleEx( + const char *arg, + wchar_t **wstr, + size_t *wlen, + const char **reason, + int current_locale, + _Py_error_handler errors); + +// Export for '_testinternalcapi' shared extension +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); + +extern char* _Py_EncodeLocaleRaw( + const wchar_t *text, + size_t *error_pos); + +extern 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 { + uint64_t 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; + time_t st_birthtime; + int st_birthtime_nsec; + unsigned long st_file_attributes; + unsigned long st_reparse_tag; + uint64_t st_ino_high; +}; +#else +# define _Py_stat_struct stat +#endif + +// Export for 'mmap' shared extension +PyAPI_FUNC(int) _Py_fstat( + int fd, + struct _Py_stat_struct *status); + +// Export for 'mmap' shared extension +PyAPI_FUNC(int) _Py_fstat_noraise( + int fd, + struct _Py_stat_struct *status); + +// Export for '_tkinter' shared extension +PyAPI_FUNC(int) _Py_stat( + PyObject *path, + struct stat *status); + +// Export for 'select' shared extension (Solaris newDevPollObject()) +PyAPI_FUNC(int) _Py_open( + const char *pathname, + int flags); + +// Export for '_posixsubprocess' shared extension +PyAPI_FUNC(int) _Py_open_noraise( + const char *pathname, + int flags); + +extern FILE* _Py_wfopen( + const wchar_t *path, + const wchar_t *mode); + +extern Py_ssize_t _Py_read( + int fd, + void *buf, + size_t count); + +// Export for 'select' shared extension (Solaris devpoll_flush()) +PyAPI_FUNC(Py_ssize_t) _Py_write( + int fd, + const void *buf, + size_t count); + +// Export for '_posixsubprocess' shared extension +PyAPI_FUNC(Py_ssize_t) _Py_write_noraise( + int fd, + const void *buf, + size_t count); + +#ifdef HAVE_READLINK +extern 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 +extern 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 + +extern wchar_t* _Py_wgetcwd( + wchar_t *buf, + /* Number of characters of 'buf' buffer + including the trailing NUL character */ + size_t buflen); + +extern int _Py_get_inheritable(int fd); + +// Export for '_socket' shared extension +PyAPI_FUNC(int) _Py_set_inheritable(int fd, int inheritable, + int *atomic_flag_works); + +// Export for '_posixsubprocess' shared extension +PyAPI_FUNC(int) _Py_set_inheritable_async_safe(int fd, int inheritable, + int *atomic_flag_works); + +// Export for '_socket' shared extension +PyAPI_FUNC(int) _Py_dup(int fd); + +extern int _Py_get_blocking(int fd); + +extern int _Py_set_blocking(int fd, int blocking); + +#ifdef MS_WINDOWS +extern void* _Py_get_osfhandle_noraise(int fd); + +// Export for '_testconsole' shared extension +PyAPI_FUNC(void*) _Py_get_osfhandle(int fd); + +extern int _Py_open_osfhandle_noraise(void *handle, int flags); + +extern int _Py_open_osfhandle(void *handle, int flags); +#endif /* MS_WINDOWS */ + +// This is used after getting NULL back from Py_DecodeLocale(). +#define DECODE_LOCALE_ERR(NAME, LEN) \ + ((LEN) == (size_t)-2) \ + ? _PyStatus_ERR("cannot decode " NAME) \ + : _PyStatus_NO_MEMORY() + +extern int _Py_HasFileSystemDefaultEncodeErrors; + +extern int _Py_DecodeUTF8Ex( + const char *arg, + Py_ssize_t arglen, + wchar_t **wstr, + size_t *wlen, + const char **reason, + _Py_error_handler errors); + +extern int _Py_EncodeUTF8Ex( + const wchar_t *text, + char **str, + size_t *error_pos, + const char **reason, + int raw_malloc, + _Py_error_handler errors); + +extern wchar_t* _Py_DecodeUTF8_surrogateescape( + const char *arg, + Py_ssize_t arglen, + size_t *wlen); + +extern int +_Py_wstat(const wchar_t *, struct stat *); + +extern 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. */ +extern void _Py_ResetForceASCII(void); + + +extern int _Py_GetLocaleconvNumeric( + struct lconv *lc, + PyObject **decimal_point, + PyObject **thousands_sep); + +// Export for '_posixsubprocess' (on macOS) +PyAPI_FUNC(void) _Py_closerange(int first, int last); + +extern wchar_t* _Py_GetLocaleEncoding(void); +extern PyObject* _Py_GetLocaleEncodingObject(void); + +#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 + +extern int _Py_isabs(const wchar_t *path); +extern int _Py_abspath(const wchar_t *path, wchar_t **abspath_p); +#ifdef MS_WINDOWS +extern int _PyOS_getfullpathname(const wchar_t *path, wchar_t **abspath_p); +#endif +extern wchar_t* _Py_join_relfile(const wchar_t *dirname, + const wchar_t *relfile); +extern int _Py_add_relfile(wchar_t *dirname, + const wchar_t *relfile, + size_t bufsize); +extern size_t _Py_find_basename(const wchar_t *filename); + +// Export for '_testinternalcapi' shared extension +PyAPI_FUNC(wchar_t*) _Py_normpath(wchar_t *path, Py_ssize_t size); + +extern wchar_t *_Py_normpath_and_size(wchar_t *path, Py_ssize_t size, Py_ssize_t *length); + +// The Windows Games API family does not provide these functions +// so provide our own implementations. Remove them in case they get added +// to the Games API family +#if defined(MS_WINDOWS_GAMES) && !defined(MS_WINDOWS_DESKTOP) +#include // HRESULT + +extern HRESULT PathCchSkipRoot(const wchar_t *pszPath, const wchar_t **ppszRootEnd); +#endif /* defined(MS_WINDOWS_GAMES) && !defined(MS_WINDOWS_DESKTOP) */ + +extern void _Py_skiproot(const wchar_t *path, Py_ssize_t size, Py_ssize_t *drvsize, Py_ssize_t *rootsize); + +// Macros to protect CRT calls against instant termination when passed an +// invalid parameter (bpo-23524). IPH stands for Invalid Parameter Handler. +// Usage: +// +// _Py_BEGIN_SUPPRESS_IPH +// ... +// _Py_END_SUPPRESS_IPH +#if defined _MSC_VER && _MSC_VER >= 1900 + +# include // _set_thread_local_invalid_parameter_handler() + + extern _invalid_parameter_handler _Py_silent_invalid_parameter_handler; +# define _Py_BEGIN_SUPPRESS_IPH \ + { _invalid_parameter_handler _Py_old_handler = \ + _set_thread_local_invalid_parameter_handler(_Py_silent_invalid_parameter_handler); +# define _Py_END_SUPPRESS_IPH \ + _set_thread_local_invalid_parameter_handler(_Py_old_handler); } +#else +# define _Py_BEGIN_SUPPRESS_IPH +# define _Py_END_SUPPRESS_IPH +#endif /* _MSC_VER >= 1900 */ + +// Export for 'select' shared extension (Argument Clinic code) +PyAPI_FUNC(int) _PyLong_FileDescriptor_Converter(PyObject *, void *); + +// Export for test_peg_generator +PyAPI_FUNC(char*) _Py_UniversalNewlineFgetsWithSize(char *, int, FILE*, PyObject *, size_t*); + +extern int _PyFile_Flush(PyObject *); + +#ifndef MS_WINDOWS +extern int _Py_GetTicksPerSecond(long *ticks_per_second); +#endif + +// Export for '_testcapi' shared extension +PyAPI_FUNC(int) _Py_IsValidFD(int fd); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_FILEUTILS_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_fileutils_windows.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_fileutils_windows.h new file mode 100644 index 000000000..b79aa9fb4 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_fileutils_windows.h @@ -0,0 +1,98 @@ +#ifndef Py_INTERNAL_FILEUTILS_WINDOWS_H +#define Py_INTERNAL_FILEUTILS_WINDOWS_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#ifdef MS_WINDOWS + +#if !defined(NTDDI_WIN10_NI) || !(NTDDI_VERSION >= NTDDI_WIN10_NI) +typedef struct _FILE_STAT_BASIC_INFORMATION { + LARGE_INTEGER FileId; + LARGE_INTEGER CreationTime; + LARGE_INTEGER LastAccessTime; + LARGE_INTEGER LastWriteTime; + LARGE_INTEGER ChangeTime; + LARGE_INTEGER AllocationSize; + LARGE_INTEGER EndOfFile; + ULONG FileAttributes; + ULONG ReparseTag; + ULONG NumberOfLinks; + ULONG DeviceType; + ULONG DeviceCharacteristics; + ULONG Reserved; + LARGE_INTEGER VolumeSerialNumber; + FILE_ID_128 FileId128; +} FILE_STAT_BASIC_INFORMATION; + +typedef enum _FILE_INFO_BY_NAME_CLASS { + FileStatByNameInfo, + FileStatLxByNameInfo, + FileCaseSensitiveByNameInfo, + FileStatBasicByNameInfo, + MaximumFileInfoByNameClass +} FILE_INFO_BY_NAME_CLASS; +#endif + +typedef BOOL (WINAPI *PGetFileInformationByName)( + PCWSTR FileName, + FILE_INFO_BY_NAME_CLASS FileInformationClass, + PVOID FileInfoBuffer, + ULONG FileInfoBufferSize +); + +static inline BOOL _Py_GetFileInformationByName( + PCWSTR FileName, + FILE_INFO_BY_NAME_CLASS FileInformationClass, + PVOID FileInfoBuffer, + ULONG FileInfoBufferSize +) { + static PGetFileInformationByName GetFileInformationByName = NULL; + static int GetFileInformationByName_init = -1; + + if (GetFileInformationByName_init < 0) { + HMODULE hMod = LoadLibraryW(L"api-ms-win-core-file-l2-1-4"); + GetFileInformationByName_init = 0; + if (hMod) { + GetFileInformationByName = (PGetFileInformationByName)GetProcAddress( + hMod, "GetFileInformationByName"); + if (GetFileInformationByName) { + GetFileInformationByName_init = 1; + } else { + FreeLibrary(hMod); + } + } + } + + if (GetFileInformationByName_init <= 0) { + SetLastError(ERROR_NOT_SUPPORTED); + return FALSE; + } + return GetFileInformationByName(FileName, FileInformationClass, FileInfoBuffer, FileInfoBufferSize); +} + +static inline BOOL _Py_GetFileInformationByName_ErrorIsTrustworthy(int error) +{ + switch(error) { + case ERROR_FILE_NOT_FOUND: + case ERROR_PATH_NOT_FOUND: + case ERROR_NOT_READY: + case ERROR_BAD_NET_NAME: + case ERROR_BAD_NETPATH: + case ERROR_BAD_PATHNAME: + case ERROR_INVALID_NAME: + case ERROR_FILENAME_EXCED_RANGE: + return TRUE; + case ERROR_NOT_SUPPORTED: + return FALSE; + } + return FALSE; +} + +#endif + +#endif diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_floatobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_floatobject.h new file mode 100644 index 000000000..f984df695 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_floatobject.h @@ -0,0 +1,62 @@ +#ifndef Py_INTERNAL_FLOATOBJECT_H +#define Py_INTERNAL_FLOATOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_freelist.h" // _PyFreeListState +#include "pycore_unicodeobject.h" // _PyUnicodeWriter + +/* runtime lifecycle */ + +extern void _PyFloat_InitState(PyInterpreterState *); +extern PyStatus _PyFloat_InitTypes(PyInterpreterState *); +extern void _PyFloat_FiniType(PyInterpreterState *); + + +/* other API */ + +enum _py_float_format_type { + _py_float_format_unknown, + _py_float_format_ieee_big_endian, + _py_float_format_ieee_little_endian, +}; + +struct _Py_float_runtime_state { + enum _py_float_format_type float_format; + enum _py_float_format_type double_format; +}; + + + + +PyAPI_FUNC(void) _PyFloat_ExactDealloc(PyObject *op); + + +extern void _PyFloat_DebugMallocStats(FILE* out); + + +/* Format the object based on the format_spec, as defined in PEP 3101 + (Advanced String Formatting). */ +extern int _PyFloat_FormatAdvancedWriter( + _PyUnicodeWriter *writer, + PyObject *obj, + PyObject *format_spec, + Py_ssize_t start, + Py_ssize_t end); + +extern PyObject* _Py_string_to_number_with_underscores( + const char *str, Py_ssize_t len, const char *what, PyObject *obj, void *arg, + PyObject *(*innerfunc)(const char *, Py_ssize_t, void *)); + +extern double _Py_parse_inf_or_nan(const char *p, char **endptr); + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_FLOATOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_flowgraph.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_flowgraph.h new file mode 100644 index 000000000..819117b83 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_flowgraph.h @@ -0,0 +1,40 @@ +#ifndef Py_INTERNAL_CFG_H +#define Py_INTERNAL_CFG_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_compile.h" +#include "pycore_instruction_sequence.h" +#include "pycore_opcode_utils.h" + +struct _PyCfgBuilder; + +int _PyCfgBuilder_UseLabel(struct _PyCfgBuilder *g, _PyJumpTargetLabel lbl); +int _PyCfgBuilder_Addop(struct _PyCfgBuilder *g, int opcode, int oparg, _Py_SourceLocation loc); + +struct _PyCfgBuilder* _PyCfgBuilder_New(void); +void _PyCfgBuilder_Free(struct _PyCfgBuilder *g); +int _PyCfgBuilder_CheckSize(struct _PyCfgBuilder* g); + +int _PyCfg_OptimizeCodeUnit(struct _PyCfgBuilder *g, PyObject *consts, PyObject *const_cache, + int nlocals, int nparams, int firstlineno); + +int _PyCfg_ToInstructionSequence(struct _PyCfgBuilder *g, _PyInstructionSequence *seq); +int _PyCfg_OptimizedCfgToInstructionSequence(struct _PyCfgBuilder *g, _PyCompile_CodeUnitMetadata *umd, + int code_flags, int *stackdepth, int *nlocalsplus, + _PyInstructionSequence *seq); + +PyCodeObject * +_PyAssemble_MakeCodeObject(_PyCompile_CodeUnitMetadata *u, PyObject *const_cache, + PyObject *consts, int maxdepth, _PyInstructionSequence *instrs, + int nlocalsplus, int code_flags, PyObject *filename); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_CFG_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_format.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_format.h new file mode 100644 index 000000000..1b8d57539 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_format.h @@ -0,0 +1,27 @@ +#ifndef Py_INTERNAL_FORMAT_H +#define Py_INTERNAL_FORMAT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +/* Format codes + * F_LJUST '-' + * F_SIGN '+' + * F_BLANK ' ' + * F_ALT '#' + * F_ZERO '0' + */ +#define F_LJUST (1<<0) +#define F_SIGN (1<<1) +#define F_BLANK (1<<2) +#define F_ALT (1<<3) +#define F_ZERO (1<<4) + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_FORMAT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_frame.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_frame.h new file mode 100644 index 000000000..af181e376 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_frame.h @@ -0,0 +1,330 @@ +#ifndef Py_INTERNAL_FRAME_H +#define Py_INTERNAL_FRAME_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include +#include // offsetof() +#include "pycore_code.h" // STATS + +/* See Objects/frame_layout.md for an explanation of the frame stack + * including explanation of the PyFrameObject and _PyInterpreterFrame + * structs. */ + + +struct _frame { + PyObject_HEAD + PyFrameObject *f_back; /* previous frame, or NULL */ + struct _PyInterpreterFrame *f_frame; /* points to the frame data */ + PyObject *f_trace; /* Trace function */ + int f_lineno; /* Current line number. Only valid if non-zero */ + char f_trace_lines; /* Emit per-line trace events? */ + char f_trace_opcodes; /* Emit per-opcode trace events? */ + PyObject *f_extra_locals; /* Dict for locals set by users using f_locals, could be NULL */ + /* This is purely for backwards compatibility for PyEval_GetLocals. + PyEval_GetLocals requires a borrowed reference so the actual reference + is stored here */ + PyObject *f_locals_cache; + /* The frame data, if this frame object owns the frame */ + PyObject *_f_frame_data[1]; +}; + +extern PyFrameObject* _PyFrame_New_NoTrack(PyCodeObject *code); + + +/* other API */ + +typedef enum _framestate { + FRAME_CREATED = -3, + FRAME_SUSPENDED = -2, + FRAME_SUSPENDED_YIELD_FROM = -1, + FRAME_EXECUTING = 0, + FRAME_COMPLETED = 1, + FRAME_CLEARED = 4 +} PyFrameState; + +#define FRAME_STATE_SUSPENDED(S) ((S) == FRAME_SUSPENDED || (S) == FRAME_SUSPENDED_YIELD_FROM) +#define FRAME_STATE_FINISHED(S) ((S) >= FRAME_COMPLETED) + +enum _frameowner { + FRAME_OWNED_BY_THREAD = 0, + FRAME_OWNED_BY_GENERATOR = 1, + FRAME_OWNED_BY_FRAME_OBJECT = 2, + FRAME_OWNED_BY_CSTACK = 3, +}; + +typedef struct _PyInterpreterFrame { + PyObject *f_executable; /* Strong reference (code object or None) */ + struct _PyInterpreterFrame *previous; + PyObject *f_funcobj; /* Strong reference. Only valid if not on C stack */ + PyObject *f_globals; /* Borrowed reference. Only valid if not on C stack */ + PyObject *f_builtins; /* Borrowed reference. Only valid if not on C stack */ + PyObject *f_locals; /* Strong reference, may be NULL. Only valid if not on C stack */ + PyFrameObject *frame_obj; /* Strong reference, may be NULL. Only valid if not on C stack */ + _Py_CODEUNIT *instr_ptr; /* Instruction currently executing (or about to begin) */ + int stacktop; /* Offset of TOS from localsplus */ + uint16_t return_offset; /* Only relevant during a function call */ + char owner; + /* Locals and stack */ + PyObject *localsplus[1]; +} _PyInterpreterFrame; + +#define _PyInterpreterFrame_LASTI(IF) \ + ((int)((IF)->instr_ptr - _PyCode_CODE(_PyFrame_GetCode(IF)))) + +static inline PyCodeObject *_PyFrame_GetCode(_PyInterpreterFrame *f) { + assert(PyCode_Check(f->f_executable)); + return (PyCodeObject *)f->f_executable; +} + +static inline PyObject **_PyFrame_Stackbase(_PyInterpreterFrame *f) { + return f->localsplus + _PyFrame_GetCode(f)->co_nlocalsplus; +} + +static inline PyObject *_PyFrame_StackPeek(_PyInterpreterFrame *f) { + assert(f->stacktop > _PyFrame_GetCode(f)->co_nlocalsplus); + assert(f->localsplus[f->stacktop-1] != NULL); + return f->localsplus[f->stacktop-1]; +} + +static inline PyObject *_PyFrame_StackPop(_PyInterpreterFrame *f) { + assert(f->stacktop > _PyFrame_GetCode(f)->co_nlocalsplus); + f->stacktop--; + return f->localsplus[f->stacktop]; +} + +static inline void _PyFrame_StackPush(_PyInterpreterFrame *f, PyObject *value) { + f->localsplus[f->stacktop] = value; + f->stacktop++; +} + +#define FRAME_SPECIALS_SIZE ((int)((sizeof(_PyInterpreterFrame)-1)/sizeof(PyObject *))) + +static inline int +_PyFrame_NumSlotsForCodeObject(PyCodeObject *code) +{ + /* This function needs to remain in sync with the calculation of + * co_framesize in Tools/build/deepfreeze.py */ + assert(code->co_framesize >= FRAME_SPECIALS_SIZE); + return code->co_framesize - FRAME_SPECIALS_SIZE; +} + +static inline void _PyFrame_Copy(_PyInterpreterFrame *src, _PyInterpreterFrame *dest) +{ + assert(src->stacktop >= _PyFrame_GetCode(src)->co_nlocalsplus); + *dest = *src; + for (int i = 1; i < src->stacktop; i++) { + dest->localsplus[i] = src->localsplus[i]; + } + // Don't leave a dangling pointer to the old frame when creating generators + // and coroutines: + dest->previous = NULL; +} + +/* Consumes reference to func and locals. + Does not initialize frame->previous, which happens + when frame is linked into the frame stack. + */ +static inline void +_PyFrame_Initialize( + _PyInterpreterFrame *frame, PyFunctionObject *func, + PyObject *locals, PyCodeObject *code, int null_locals_from) +{ + frame->f_funcobj = (PyObject *)func; + frame->f_executable = Py_NewRef(code); + frame->f_builtins = func->func_builtins; + frame->f_globals = func->func_globals; + frame->f_locals = locals; + frame->stacktop = code->co_nlocalsplus; + frame->frame_obj = NULL; + frame->instr_ptr = _PyCode_CODE(code); + frame->return_offset = 0; + frame->owner = FRAME_OWNED_BY_THREAD; + + for (int i = null_locals_from; i < code->co_nlocalsplus; i++) { + frame->localsplus[i] = NULL; + } +} + +/* Gets the pointer to the locals array + * that precedes this frame. + */ +static inline PyObject** +_PyFrame_GetLocalsArray(_PyInterpreterFrame *frame) +{ + return frame->localsplus; +} + +/* Fetches the stack pointer, and sets stacktop to -1. + Having stacktop <= 0 ensures that invalid + values are not visible to the cycle GC. + We choose -1 rather than 0 to assist debugging. */ +static inline PyObject** +_PyFrame_GetStackPointer(_PyInterpreterFrame *frame) +{ + PyObject **sp = frame->localsplus + frame->stacktop; + frame->stacktop = -1; + return sp; +} + +static inline void +_PyFrame_SetStackPointer(_PyInterpreterFrame *frame, PyObject **stack_pointer) +{ + frame->stacktop = (int)(stack_pointer - frame->localsplus); +} + +/* Determine whether a frame is incomplete. + * A frame is incomplete if it is part way through + * creating cell objects or a generator or coroutine. + * + * Frames on the frame stack are incomplete until the + * first RESUME instruction. + * Frames owned by a generator are always complete. + */ +static inline bool +_PyFrame_IsIncomplete(_PyInterpreterFrame *frame) +{ + if (frame->owner == FRAME_OWNED_BY_CSTACK) { + return true; + } + return frame->owner != FRAME_OWNED_BY_GENERATOR && + frame->instr_ptr < _PyCode_CODE(_PyFrame_GetCode(frame)) + _PyFrame_GetCode(frame)->_co_firsttraceable; +} + +static inline _PyInterpreterFrame * +_PyFrame_GetFirstComplete(_PyInterpreterFrame *frame) +{ + while (frame && _PyFrame_IsIncomplete(frame)) { + frame = frame->previous; + } + return frame; +} + +static inline _PyInterpreterFrame * +_PyThreadState_GetFrame(PyThreadState *tstate) +{ + return _PyFrame_GetFirstComplete(tstate->current_frame); +} + +/* For use by _PyFrame_GetFrameObject + Do not call directly. */ +PyFrameObject * +_PyFrame_MakeAndSetFrameObject(_PyInterpreterFrame *frame); + +/* Gets the PyFrameObject for this frame, lazily + * creating it if necessary. + * Returns a borrowed reference */ +static inline PyFrameObject * +_PyFrame_GetFrameObject(_PyInterpreterFrame *frame) +{ + + assert(!_PyFrame_IsIncomplete(frame)); + PyFrameObject *res = frame->frame_obj; + if (res != NULL) { + return res; + } + return _PyFrame_MakeAndSetFrameObject(frame); +} + +void +_PyFrame_ClearLocals(_PyInterpreterFrame *frame); + +/* Clears all references in the frame. + * If take is non-zero, then the _PyInterpreterFrame frame + * may be transferred to the frame object it references + * instead of being cleared. Either way + * the caller no longer owns the references + * in the frame. + * take should be set to 1 for heap allocated + * frames like the ones in generators and coroutines. + */ +void +_PyFrame_ClearExceptCode(_PyInterpreterFrame * frame); + +int +_PyFrame_Traverse(_PyInterpreterFrame *frame, visitproc visit, void *arg); + +bool +_PyFrame_HasHiddenLocals(_PyInterpreterFrame *frame); + +PyObject * +_PyFrame_GetLocals(_PyInterpreterFrame *frame); + +static inline bool +_PyThreadState_HasStackSpace(PyThreadState *tstate, int size) +{ + assert( + (tstate->datastack_top == NULL && tstate->datastack_limit == NULL) + || + (tstate->datastack_top != NULL && tstate->datastack_limit != NULL) + ); + return tstate->datastack_top != NULL && + size < tstate->datastack_limit - tstate->datastack_top; +} + +extern _PyInterpreterFrame * +_PyThreadState_PushFrame(PyThreadState *tstate, size_t size); + +PyAPI_FUNC(void) _PyThreadState_PopFrame(PyThreadState *tstate, _PyInterpreterFrame *frame); + +/* Pushes a frame without checking for space. + * Must be guarded by _PyThreadState_HasStackSpace() + * Consumes reference to func. */ +static inline _PyInterpreterFrame * +_PyFrame_PushUnchecked(PyThreadState *tstate, PyFunctionObject *func, int null_locals_from) +{ + CALL_STAT_INC(frames_pushed); + PyCodeObject *code = (PyCodeObject *)func->func_code; + _PyInterpreterFrame *new_frame = (_PyInterpreterFrame *)tstate->datastack_top; + tstate->datastack_top += code->co_framesize; + assert(tstate->datastack_top < tstate->datastack_limit); + _PyFrame_Initialize(new_frame, func, NULL, code, null_locals_from); + return new_frame; +} + +/* Pushes a trampoline frame without checking for space. + * Must be guarded by _PyThreadState_HasStackSpace() */ +static inline _PyInterpreterFrame * +_PyFrame_PushTrampolineUnchecked(PyThreadState *tstate, PyCodeObject *code, int stackdepth) +{ + CALL_STAT_INC(frames_pushed); + _PyInterpreterFrame *frame = (_PyInterpreterFrame *)tstate->datastack_top; + tstate->datastack_top += code->co_framesize; + assert(tstate->datastack_top < tstate->datastack_limit); + frame->f_funcobj = Py_None; + frame->f_executable = Py_NewRef(code); +#ifdef Py_DEBUG + frame->f_builtins = NULL; + frame->f_globals = NULL; +#endif + frame->f_locals = NULL; + frame->stacktop = code->co_nlocalsplus + stackdepth; + frame->frame_obj = NULL; + frame->instr_ptr = _PyCode_CODE(code); + frame->owner = FRAME_OWNED_BY_THREAD; + frame->return_offset = 0; + return frame; +} + +static inline +PyGenObject *_PyFrame_GetGenerator(_PyInterpreterFrame *frame) +{ + assert(frame->owner == FRAME_OWNED_BY_GENERATOR); + size_t offset_in_gen = offsetof(PyGenObject, gi_iframe); + return (PyGenObject *)(((char *)frame) - offset_in_gen); +} + +PyAPI_FUNC(_PyInterpreterFrame *) +_PyEvalFramePushAndInit(PyThreadState *tstate, PyFunctionObject *func, + PyObject *locals, PyObject* const* args, + size_t argcount, PyObject *kwnames); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_FRAME_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_freelist.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_freelist.h new file mode 100644 index 000000000..e684e084b --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_freelist.h @@ -0,0 +1,153 @@ +#ifndef Py_INTERNAL_FREELIST_H +#define Py_INTERNAL_FREELIST_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +// PyTuple_MAXSAVESIZE - largest tuple to save on free list +// PyTuple_MAXFREELIST - maximum number of tuples of each size to save + +#ifdef WITH_FREELISTS +// with freelists +# define PyTuple_MAXSAVESIZE 20 +# define PyTuple_NFREELISTS PyTuple_MAXSAVESIZE +# define PyTuple_MAXFREELIST 2000 +# define PyList_MAXFREELIST 80 +# define PyDict_MAXFREELIST 80 +# define PyFloat_MAXFREELIST 100 +# define PyContext_MAXFREELIST 255 +# define _PyAsyncGen_MAXFREELIST 80 +# define _PyObjectStackChunk_MAXFREELIST 4 +#else +# define PyTuple_NFREELISTS 0 +# define PyTuple_MAXFREELIST 0 +# define PyList_MAXFREELIST 0 +# define PyDict_MAXFREELIST 0 +# define PyFloat_MAXFREELIST 0 +# define PyContext_MAXFREELIST 0 +# define _PyAsyncGen_MAXFREELIST 0 +# define _PyObjectStackChunk_MAXFREELIST 0 +#endif + +struct _Py_list_freelist { +#ifdef WITH_FREELISTS + PyListObject *items[PyList_MAXFREELIST]; + int numfree; +#endif +}; + +struct _Py_tuple_freelist { +#if WITH_FREELISTS + /* There is one freelist for each size from 1 to PyTuple_MAXSAVESIZE. + The empty tuple is handled separately. + + Each tuple stored in the array is the head of the linked list + (and the next available tuple) for that size. The actual tuple + object is used as the linked list node, with its first item + (ob_item[0]) pointing to the next node (i.e. the previous head). + Each linked list is initially NULL. */ + PyTupleObject *items[PyTuple_NFREELISTS]; + int numfree[PyTuple_NFREELISTS]; +#else + char _unused; // Empty structs are not allowed. +#endif +}; + +struct _Py_float_freelist { +#ifdef WITH_FREELISTS + /* Special free list + free_list is a singly-linked list of available PyFloatObjects, + linked via abuse of their ob_type members. */ + int numfree; + PyFloatObject *items; +#endif +}; + +struct _Py_dict_freelist { +#ifdef WITH_FREELISTS + /* Dictionary reuse scheme to save calls to malloc and free */ + PyDictObject *items[PyDict_MAXFREELIST]; + int numfree; +#endif +}; + +struct _Py_dictkeys_freelist { +#ifdef WITH_FREELISTS + /* Dictionary keys reuse scheme to save calls to malloc and free */ + PyDictKeysObject *items[PyDict_MAXFREELIST]; + int numfree; +#endif +}; + +struct _Py_slice_freelist { +#ifdef WITH_FREELISTS + /* Using a cache is very effective since typically only a single slice is + created and then deleted again. */ + PySliceObject *slice_cache; +#endif +}; + +struct _Py_context_freelist { +#ifdef WITH_FREELISTS + // List of free PyContext objects + PyContext *items; + int numfree; +#endif +}; + +struct _Py_async_gen_freelist { +#ifdef WITH_FREELISTS + /* Freelists boost performance 6-10%; they also reduce memory + fragmentation, as _PyAsyncGenWrappedValue and PyAsyncGenASend + are short-living objects that are instantiated for every + __anext__() call. */ + struct _PyAsyncGenWrappedValue* items[_PyAsyncGen_MAXFREELIST]; + int numfree; +#endif +}; + +struct _Py_async_gen_asend_freelist { +#ifdef WITH_FREELISTS + struct PyAsyncGenASend* items[_PyAsyncGen_MAXFREELIST]; + int numfree; +#endif +}; + +struct _PyObjectStackChunk; + +struct _Py_object_stack_freelist { + struct _PyObjectStackChunk *items; + Py_ssize_t numfree; +}; + +struct _Py_object_freelists { + struct _Py_float_freelist floats; + struct _Py_tuple_freelist tuples; + struct _Py_list_freelist lists; + struct _Py_dict_freelist dicts; + struct _Py_dictkeys_freelist dictkeys; + struct _Py_slice_freelist slices; + struct _Py_context_freelist contexts; + struct _Py_async_gen_freelist async_gens; + struct _Py_async_gen_asend_freelist async_gen_asends; + struct _Py_object_stack_freelist object_stacks; +}; + +extern void _PyObject_ClearFreeLists(struct _Py_object_freelists *freelists, int is_finalization); +extern void _PyTuple_ClearFreeList(struct _Py_object_freelists *freelists, int is_finalization); +extern void _PyFloat_ClearFreeList(struct _Py_object_freelists *freelists, int is_finalization); +extern void _PyList_ClearFreeList(struct _Py_object_freelists *freelists, int is_finalization); +extern void _PySlice_ClearFreeList(struct _Py_object_freelists *freelists, int is_finalization); +extern void _PyDict_ClearFreeList(struct _Py_object_freelists *freelists, int is_finalization); +extern void _PyAsyncGen_ClearFreeLists(struct _Py_object_freelists *freelists, int is_finalization); +extern void _PyContext_ClearFreeList(struct _Py_object_freelists *freelists, int is_finalization); +extern void _PyObjectStackChunk_ClearFreeList(struct _Py_object_freelists *freelists, int is_finalization); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_FREELIST_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_function.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_function.h new file mode 100644 index 000000000..6d44e933e --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_function.h @@ -0,0 +1,55 @@ +#ifndef Py_INTERNAL_FUNCTION_H +#define Py_INTERNAL_FUNCTION_H +#ifdef __cplusplus +extern "C" { +#endif + +#include "pycore_lock.h" + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +extern PyObject* _PyFunction_Vectorcall( + PyObject *func, + PyObject *const *stack, + size_t nargsf, + PyObject *kwnames); + +#define FUNC_MAX_WATCHERS 8 + +#define FUNC_VERSION_CACHE_SIZE (1<<12) /* Must be a power of 2 */ + +struct _func_version_cache_item { + PyFunctionObject *func; + PyObject *code; +}; + +struct _py_func_state { +#ifdef Py_GIL_DISABLED + // Protects next_version + PyMutex mutex; +#endif + + uint32_t next_version; + // Borrowed references to function and code objects whose + // func_version % FUNC_VERSION_CACHE_SIZE + // once was equal to the index in the table. + // They are cleared when the function or code object is deallocated. + struct _func_version_cache_item func_version_cache[FUNC_VERSION_CACHE_SIZE]; +}; + +extern PyFunctionObject* _PyFunction_FromConstructor(PyFrameConstructor *constr); + +extern uint32_t _PyFunction_GetVersionForCurrentState(PyFunctionObject *func); +PyAPI_FUNC(void) _PyFunction_SetVersion(PyFunctionObject *func, uint32_t version); +void _PyFunction_ClearCodeByVersion(uint32_t version); +PyFunctionObject *_PyFunction_LookupByVersion(uint32_t version, PyObject **p_code); + +extern PyObject *_Py_set_function_type_params( + PyThreadState* unused, PyObject *func, PyObject *type_params); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_FUNCTION_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_gc.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_gc.h new file mode 100644 index 000000000..357177bcd --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_gc.h @@ -0,0 +1,365 @@ +#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 + +#include "pycore_freelist.h" // _PyFreeListState + +/* 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 _PyGC_Head_UNUSED PyGC_Head + + +/* Get an object's GC head */ +static inline PyGC_Head* _Py_AS_GC(PyObject *op) { + char *gc = ((char*)op) - sizeof(PyGC_Head); + return (PyGC_Head*)gc; +} + +/* Get the object given the GC head */ +static inline PyObject* _Py_FROM_GC(PyGC_Head *gc) { + char *op = ((char *)gc) + sizeof(PyGC_Head); + return (PyObject *)op; +} + + +/* Bit flags for ob_gc_bits (in Py_GIL_DISABLED builds) + * + * Setting the bits requires a relaxed store. The per-object lock must also be + * held, except when the object is only visible to a single thread (e.g. during + * object initialization or destruction). + * + * Reading the bits requires using a relaxed load, but does not require holding + * the per-object lock. + */ +#ifdef Py_GIL_DISABLED +# define _PyGC_BITS_TRACKED (1) // Tracked by the GC +# define _PyGC_BITS_FINALIZED (2) // tp_finalize was called +# define _PyGC_BITS_UNREACHABLE (4) +# define _PyGC_BITS_FROZEN (8) +# define _PyGC_BITS_SHARED (16) +# define _PyGC_BITS_SHARED_INLINE (32) +# define _PyGC_BITS_DEFERRED (64) // Use deferred reference counting +#endif + +#ifdef Py_GIL_DISABLED + +static inline void +_PyObject_SET_GC_BITS(PyObject *op, uint8_t new_bits) +{ + uint8_t bits = _Py_atomic_load_uint8_relaxed(&op->ob_gc_bits); + _Py_atomic_store_uint8_relaxed(&op->ob_gc_bits, bits | new_bits); +} + +static inline int +_PyObject_HAS_GC_BITS(PyObject *op, uint8_t bits) +{ + return (_Py_atomic_load_uint8_relaxed(&op->ob_gc_bits) & bits) != 0; +} + +static inline void +_PyObject_CLEAR_GC_BITS(PyObject *op, uint8_t bits_to_clear) +{ + uint8_t bits = _Py_atomic_load_uint8_relaxed(&op->ob_gc_bits); + _Py_atomic_store_uint8_relaxed(&op->ob_gc_bits, bits & ~bits_to_clear); +} + +#endif + +/* True if the object is currently tracked by the GC. */ +static inline int _PyObject_GC_IS_TRACKED(PyObject *op) { +#ifdef Py_GIL_DISABLED + return _PyObject_HAS_GC_BITS(op, _PyGC_BITS_TRACKED); +#else + PyGC_Head *gc = _Py_AS_GC(op); + return (gc->_gc_next != 0); +#endif +} +#define _PyObject_GC_IS_TRACKED(op) _PyObject_GC_IS_TRACKED(_Py_CAST(PyObject*, op)) + +/* True if the object may be tracked by the GC in the future, or already is. + This can be useful to implement some optimizations. */ +static inline int _PyObject_GC_MAY_BE_TRACKED(PyObject *obj) { + if (!PyObject_IS_GC(obj)) { + return 0; + } + if (PyTuple_CheckExact(obj)) { + return _PyObject_GC_IS_TRACKED(obj); + } + return 1; +} + +#ifdef Py_GIL_DISABLED + +/* True if memory the object references is shared between + * multiple threads and needs special purpose when freeing + * those references due to the possibility of in-flight + * lock-free reads occurring. The object is responsible + * for calling _PyMem_FreeDelayed on the referenced + * memory. */ +static inline int _PyObject_GC_IS_SHARED(PyObject *op) { + return _PyObject_HAS_GC_BITS(op, _PyGC_BITS_SHARED); +} +#define _PyObject_GC_IS_SHARED(op) _PyObject_GC_IS_SHARED(_Py_CAST(PyObject*, op)) + +static inline void _PyObject_GC_SET_SHARED(PyObject *op) { + _PyObject_SET_GC_BITS(op, _PyGC_BITS_SHARED); +} +#define _PyObject_GC_SET_SHARED(op) _PyObject_GC_SET_SHARED(_Py_CAST(PyObject*, op)) + +/* True if the memory of the object is shared between multiple + * threads and needs special purpose when freeing due to + * the possibility of in-flight lock-free reads occurring. + * Objects with this bit that are GC objects will automatically + * delay-freed by PyObject_GC_Del. */ +static inline int _PyObject_GC_IS_SHARED_INLINE(PyObject *op) { + return _PyObject_HAS_GC_BITS(op, _PyGC_BITS_SHARED_INLINE); +} +#define _PyObject_GC_IS_SHARED_INLINE(op) \ + _PyObject_GC_IS_SHARED_INLINE(_Py_CAST(PyObject*, op)) + +static inline void _PyObject_GC_SET_SHARED_INLINE(PyObject *op) { + _PyObject_SET_GC_BITS(op, _PyGC_BITS_SHARED_INLINE); +} +#define _PyObject_GC_SET_SHARED_INLINE(op) \ + _PyObject_GC_SET_SHARED_INLINE(_Py_CAST(PyObject*, op)) + +#endif + +/* 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) + +/* set for debugging information */ +#define _PyGC_DEBUG_STATS (1<<0) /* print collection statistics */ +#define _PyGC_DEBUG_COLLECTABLE (1<<1) /* print collectable objects */ +#define _PyGC_DEBUG_UNCOLLECTABLE (1<<2) /* print uncollectable objects */ +#define _PyGC_DEBUG_SAVEALL (1<<5) /* save all garbage in gc.garbage */ +#define _PyGC_DEBUG_LEAK _PyGC_DEBUG_COLLECTABLE | \ + _PyGC_DEBUG_UNCOLLECTABLE | \ + _PyGC_DEBUG_SAVEALL + +typedef enum { + // GC was triggered by heap allocation + _Py_GC_REASON_HEAP, + + // GC was called during shutdown + _Py_GC_REASON_SHUTDOWN, + + // GC was called by gc.collect() or PyGC_Collect() + _Py_GC_REASON_MANUAL +} _PyGC_Reason; + +// Lowest bit of _gc_next is used for flags only in GC. +// But it is always 0 for normal code. +static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { + uintptr_t next = gc->_gc_next; + return (PyGC_Head*)next; +} +static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { + gc->_gc_next = (uintptr_t)next; +} + +// Lowest two bits of _gc_prev is used for _PyGC_PREV_MASK_* flags. +static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { + uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); + return (PyGC_Head*)prev; +} +static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { + uintptr_t uprev = (uintptr_t)prev; + assert((uprev & ~_PyGC_PREV_MASK) == 0); + gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); +} + +static inline int _PyGC_FINALIZED(PyObject *op) { +#ifdef Py_GIL_DISABLED + return _PyObject_HAS_GC_BITS(op, _PyGC_BITS_FINALIZED); +#else + PyGC_Head *gc = _Py_AS_GC(op); + return ((gc->_gc_prev & _PyGC_PREV_MASK_FINALIZED) != 0); +#endif +} +static inline void _PyGC_SET_FINALIZED(PyObject *op) { +#ifdef Py_GIL_DISABLED + _PyObject_SET_GC_BITS(op, _PyGC_BITS_FINALIZED); +#else + PyGC_Head *gc = _Py_AS_GC(op); + gc->_gc_prev |= _PyGC_PREV_MASK_FINALIZED; +#endif +} +static inline void _PyGC_CLEAR_FINALIZED(PyObject *op) { +#ifdef Py_GIL_DISABLED + _PyObject_CLEAR_GC_BITS(op, _PyGC_BITS_FINALIZED); +#else + PyGC_Head *gc = _Py_AS_GC(op); + gc->_gc_prev &= ~_PyGC_PREV_MASK_FINALIZED; +#endif +} + + +/* 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; + + /* Is automatic collection enabled? */ + 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; + +#ifdef Py_GIL_DISABLED + /* gh-117783: Deferred reference counting is not fully implemented yet, so + as a temporary measure we treat objects using deferred reference + counting as immortal. The value may be zero, one, or a negative number: + 0: immortalize deferred RC objects once the first thread is created + 1: immortalize all deferred RC objects immediately + <0: suppressed; don't immortalize objects */ + int immortalize; +#endif +}; + +#ifdef Py_GIL_DISABLED +struct _gc_thread_state { + /* Thread-local allocation count. */ + Py_ssize_t alloc_count; +}; +#endif + + +extern void _PyGC_InitState(struct _gc_runtime_state *); + +extern Py_ssize_t _PyGC_Collect(PyThreadState *tstate, int generation, + _PyGC_Reason reason); +extern void _PyGC_CollectNoFail(PyThreadState *tstate); + +/* Freeze objects tracked by the GC and ignore them in future collections. */ +extern void _PyGC_Freeze(PyInterpreterState *interp); +/* Unfreezes objects placing them in the oldest generation */ +extern void _PyGC_Unfreeze(PyInterpreterState *interp); +/* Number of frozen objects */ +extern Py_ssize_t _PyGC_GetFreezeCount(PyInterpreterState *interp); + +extern PyObject *_PyGC_GetObjects(PyInterpreterState *interp, int generation); +extern PyObject *_PyGC_GetReferrers(PyInterpreterState *interp, PyObject *objs); + +// Functions to clear types free lists +extern void _PyGC_ClearAllFreeLists(PyInterpreterState *interp); +extern void _Py_ScheduleGC(PyThreadState *tstate); +extern void _Py_RunGC(PyThreadState *tstate); + +#ifdef Py_GIL_DISABLED +// gh-117783: Immortalize objects that use deferred reference counting +extern void _PyGC_ImmortalizeDeferredObjects(PyInterpreterState *interp); +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_GC_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_genobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_genobject.h new file mode 100644 index 000000000..9463c822a --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_genobject.h @@ -0,0 +1,32 @@ +#ifndef Py_INTERNAL_GENOBJECT_H +#define Py_INTERNAL_GENOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_freelist.h" + +PyAPI_FUNC(PyObject *)_PyGen_yf(PyGenObject *); +extern void _PyGen_Finalize(PyObject *self); + +// Export for '_asyncio' shared extension +PyAPI_FUNC(int) _PyGen_SetStopIterationValue(PyObject *); + +// Export for '_asyncio' shared extension +PyAPI_FUNC(int) _PyGen_FetchStopIterationValue(PyObject **); + +PyAPI_FUNC(PyObject *)_PyCoro_GetAwaitableIter(PyObject *o); +extern PyObject *_PyAsyncGenValueWrapperNew(PyThreadState *state, PyObject *); + +extern PyTypeObject _PyCoroWrapper_Type; +extern PyTypeObject _PyAsyncGenWrappedValue_Type; +extern PyTypeObject _PyAsyncGenAThrow_Type; + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_GENOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_getopt.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_getopt.h new file mode 100644 index 000000000..7f0dd13ae --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_getopt.h @@ -0,0 +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 */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_gil.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_gil.h new file mode 100644 index 000000000..a2de50773 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_gil.h @@ -0,0 +1,66 @@ +#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_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 { +#ifdef Py_GIL_DISABLED + /* If this GIL is disabled, enabled == 0. + + If this GIL is enabled transiently (most likely to initialize a module + of unknown safety), enabled indicates the number of active transient + requests. + + If this GIL is enabled permanently, enabled == INT_MAX. + + It must not be modified directly; use _PyEval_EnableGILTransiently(), + _PyEval_EnableGILPermanently(), and _PyEval_DisableGIL() + + It is always read and written atomically, but a thread can assume its + value will be stable as long as that thread is attached or knows that no + other threads are attached (e.g., during a stop-the-world.). */ + int enabled; +#endif + /* 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. */ + PyThreadState* 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. */ + 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/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_global_objects.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_global_objects.h new file mode 100644 index 000000000..327fcc24c --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_global_objects.h @@ -0,0 +1,105 @@ +#ifndef Py_INTERNAL_GLOBAL_OBJECTS_H +#define Py_INTERNAL_GLOBAL_OBJECTS_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_context.h" // _PyContextTokenMissing +#include "pycore_gc.h" // _PyGC_Head_UNUSED +#include "pycore_global_strings.h" // struct _Py_global_strings +#include "pycore_hamt.h" // PyHamtNode_Bitmap +#include "pycore_hashtable.h" // _Py_hashtable_t +#include "pycore_typeobject.h" // pytype_slotdef + + +// These would be in pycore_long.h if it weren't for an include cycle. +#define _PY_NSMALLPOSINTS 257 +#define _PY_NSMALLNEGINTS 5 + + +// Only immutable objects should be considered runtime-global. +// All others must be per-interpreter. + +#define _Py_GLOBAL_OBJECT(NAME) \ + _PyRuntime.static_objects.NAME +#define _Py_SINGLETON(NAME) \ + _Py_GLOBAL_OBJECT(singletons.NAME) + +struct _Py_cached_objects { + // XXX We could statically allocate the hashtable. + _Py_hashtable_t *interned_strings; +}; + +struct _Py_static_objects { + struct { + /* 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 (exclusive). + */ + PyLongObject small_ints[_PY_NSMALLNEGINTS + _PY_NSMALLPOSINTS]; + + PyBytesObject bytes_empty; + struct { + PyBytesObject ob; + char eos; + } bytes_characters[256]; + + struct _Py_global_strings strings; + + _PyGC_Head_UNUSED _tuple_empty_gc_not_used; + PyTupleObject tuple_empty; + + _PyGC_Head_UNUSED _hamt_bitmap_node_empty_gc_not_used; + PyHamtNode_Bitmap hamt_bitmap_node_empty; + _PyContextTokenMissing context_token_missing; + } singletons; +}; + +#define _Py_INTERP_CACHED_OBJECT(interp, NAME) \ + (interp)->cached_objects.NAME + +struct _Py_interp_cached_objects { + PyObject *interned_strings; + + /* AST */ + PyObject *str_replace_inf; + + /* object.__reduce__ */ + PyObject *objreduce; + PyObject *type_slots_pname; + pytype_slotdef *type_slots_ptrs[MAX_EQUIV]; + + /* TypeVar and related types */ + PyTypeObject *generic_type; + PyTypeObject *typevar_type; + PyTypeObject *typevartuple_type; + PyTypeObject *paramspec_type; + PyTypeObject *paramspecargs_type; + PyTypeObject *paramspeckwargs_type; +}; + +#define _Py_INTERP_STATIC_OBJECT(interp, NAME) \ + (interp)->static_objects.NAME +#define _Py_INTERP_SINGLETON(interp, NAME) \ + _Py_INTERP_STATIC_OBJECT(interp, singletons.NAME) + +struct _Py_interp_static_objects { + struct { + int _not_used; + // hamt_empty is here instead of global because of its weakreflist. + _PyGC_Head_UNUSED _hamt_empty_gc_not_used; + PyHamtObject hamt_empty; + PyBaseExceptionObject last_resort_memory_error; + } singletons; +}; + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_GLOBAL_OBJECTS_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_global_objects_fini_generated.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_global_objects_fini_generated.h new file mode 100644 index 000000000..006dd911b --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_global_objects_fini_generated.h @@ -0,0 +1,1553 @@ +#ifndef Py_INTERNAL_GLOBAL_OBJECTS_FINI_GENERATED_INIT_H +#define Py_INTERNAL_GLOBAL_OBJECTS_FINI_GENERATED_INIT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#ifdef Py_DEBUG +static inline void +_PyStaticObject_CheckRefcnt(PyObject *obj) { + if (Py_REFCNT(obj) < _Py_IMMORTAL_REFCNT) { + fprintf(stderr, "Immortal Object has less refcnt than expected.\n"); + _PyObject_Dump(obj); + } +} +#endif + +/* The following is auto-generated by Tools/build/generate_global_objects.py. */ +#ifdef Py_DEBUG +static inline void +_PyStaticObjects_CheckRefcnt(PyInterpreterState *interp) { + /* generated runtime-global */ + // (see pycore_runtime_init_generated.h) + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -5]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -4]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -3]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -2]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -1]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 0]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 1]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 2]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 3]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 4]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 5]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 6]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 7]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 8]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 9]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 10]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 11]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 12]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 13]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 14]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 15]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 16]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 17]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 18]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 19]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 20]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 21]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 22]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 23]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 24]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 25]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 26]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 27]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 28]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 29]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 30]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 31]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 32]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 33]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 34]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 35]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 36]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 37]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 38]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 39]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 40]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 41]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 42]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 43]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 44]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 45]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 46]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 47]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 48]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 49]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 50]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 51]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 52]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 53]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 54]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 55]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 56]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 57]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 58]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 59]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 60]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 61]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 62]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 63]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 64]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 65]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 66]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 67]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 68]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 69]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 70]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 71]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 72]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 73]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 74]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 75]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 76]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 77]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 78]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 79]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 80]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 81]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 82]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 83]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 84]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 85]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 86]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 87]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 88]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 89]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 90]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 91]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 92]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 93]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 94]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 95]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 96]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 97]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 98]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 99]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 100]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 101]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 102]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 103]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 104]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 105]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 106]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 107]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 108]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 109]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 110]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 111]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 112]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 113]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 114]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 115]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 116]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 117]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 118]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 119]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 120]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 121]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 122]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 123]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 124]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 125]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 126]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 127]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 129]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 130]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 131]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 132]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 133]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 134]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 135]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 136]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 137]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 138]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 139]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 140]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 141]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 142]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 143]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 144]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 145]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 146]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 147]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 148]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 149]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 150]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 151]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 152]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 153]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 154]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 155]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 156]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 157]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 158]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 159]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 160]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 161]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 162]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 163]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 164]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 165]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 166]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 167]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 168]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 169]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 170]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 171]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 172]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 173]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 174]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 175]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 176]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 177]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 178]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 179]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 180]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 181]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 182]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 183]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 184]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 185]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 186]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 187]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 188]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 189]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 190]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 191]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 192]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 193]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 194]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 195]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 196]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 197]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 198]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 199]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 200]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 201]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 202]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 203]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 204]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 205]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 206]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 207]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 208]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 209]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 210]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 211]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 212]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 213]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 214]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 215]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 216]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 217]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 218]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 219]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 220]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 221]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 222]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 223]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 224]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 225]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 226]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 227]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 228]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 229]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 230]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 231]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 232]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 233]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 234]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 235]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 236]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 237]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 238]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 239]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 240]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 241]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 242]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 243]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 244]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 245]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 246]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 247]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 248]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 249]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 250]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 251]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 252]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 253]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 254]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 255]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 256]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[0]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[1]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[2]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[3]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[4]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[5]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[6]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[7]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[8]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[9]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[10]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[11]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[12]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[13]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[14]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[15]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[16]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[17]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[18]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[19]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[20]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[21]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[22]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[23]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[24]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[25]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[26]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[27]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[28]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[29]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[30]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[31]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[32]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[33]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[34]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[35]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[36]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[37]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[38]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[39]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[40]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[41]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[42]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[43]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[44]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[45]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[46]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[47]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[48]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[49]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[50]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[51]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[52]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[53]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[54]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[55]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[56]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[57]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[58]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[59]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[60]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[61]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[62]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[63]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[64]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[65]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[66]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[67]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[68]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[69]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[70]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[71]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[72]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[73]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[74]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[75]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[76]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[77]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[78]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[79]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[80]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[81]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[82]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[83]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[84]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[85]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[86]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[87]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[88]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[89]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[90]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[91]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[92]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[93]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[94]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[95]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[96]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[97]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[98]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[99]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[100]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[101]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[102]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[103]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[104]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[105]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[106]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[107]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[108]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[109]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[110]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[111]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[112]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[113]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[114]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[115]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[116]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[117]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[118]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[119]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[120]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[121]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[122]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[123]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[124]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[125]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[126]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[127]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[129]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[130]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[131]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[132]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[133]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[134]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[135]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[136]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[137]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[138]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[139]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[140]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[141]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[142]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[143]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[144]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[145]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[146]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[147]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[148]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[149]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[150]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[151]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[152]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[153]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[154]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[155]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[156]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[157]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[158]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[159]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[160]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[161]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[162]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[163]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[164]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[165]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[166]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[167]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[168]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[169]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[170]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[171]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[172]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[173]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[174]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[175]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[176]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[177]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[178]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[179]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[180]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[181]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[182]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[183]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[184]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[185]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[186]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[187]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[188]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[189]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[190]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[191]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[192]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[193]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[194]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[195]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[196]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[197]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[198]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[199]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[200]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[201]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[202]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[203]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[204]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[205]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[206]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[207]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[208]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[209]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[210]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[211]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[212]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[213]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[214]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[215]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[216]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[217]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[218]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[219]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[220]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[221]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[222]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[223]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[224]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[225]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[226]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[227]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[228]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[229]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[230]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[231]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[232]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[233]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[234]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[235]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[236]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[237]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[238]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[239]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[240]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[241]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[242]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[243]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[244]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[245]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[246]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[247]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[248]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[249]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[250]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[251]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[252]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[253]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[254]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[255]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(anon_dictcomp)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(anon_genexpr)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(anon_lambda)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(anon_listcomp)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(anon_module)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(anon_null)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(anon_setcomp)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(anon_string)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(anon_unknown)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(dbl_close_br)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(dbl_open_br)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(dbl_percent)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(defaults)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(dot_locals)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(empty)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(generic_base)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(json_decoder)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(kwdefaults)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(list_err)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(type_params)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(utf_8)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(CANCELLED)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(FINISHED)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(False)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(JSONDecodeError)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(PENDING)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(Py_Repr)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(TextIOWrapper)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(True)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(WarningMessage)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_WindowsConsoleIO)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__IOBase_closed)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__abc_tpflags__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__abs__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__abstractmethods__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__add__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__aenter__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__aexit__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__aiter__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__all__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__and__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__anext__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__annotations__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__args__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__await__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__bases__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__bool__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__buffer__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__build_class__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__builtins__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__bytes__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__call__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__cantrace__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__class__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__class_getitem__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__classcell__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__classdict__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__classdictcell__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__complex__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__contains__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__copy__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__ctypes_from_outparam__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__del__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__delattr__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__delete__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__delitem__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__dict__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__dictoffset__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__dir__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__divmod__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__doc__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__enter__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__eq__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__exit__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__file__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__firstlineno__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__float__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__floordiv__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__format__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__fspath__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__ge__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__get__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__getattr__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__getattribute__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__getinitargs__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__getitem__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__getnewargs__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__getnewargs_ex__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__getstate__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__gt__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__hash__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__iadd__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__iand__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__ifloordiv__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__ilshift__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__imatmul__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__imod__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__import__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__imul__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__index__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__init__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__init_subclass__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__instancecheck__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__int__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__invert__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__ior__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__ipow__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__irshift__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__isabstractmethod__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__isub__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__iter__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__itruediv__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__ixor__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__le__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__len__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__length_hint__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__lltrace__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__loader__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__lshift__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__lt__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__main__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__match_args__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__matmul__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__missing__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__mod__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__module__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__mro_entries__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__mul__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__name__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__ne__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__neg__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__new__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__newobj__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__newobj_ex__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__next__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__notes__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__or__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__orig_class__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__origin__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__package__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__parameters__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__path__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__pos__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__pow__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__prepare__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__qualname__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__radd__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rand__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rdivmod__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__reduce__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__reduce_ex__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__release_buffer__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__repr__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__reversed__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rfloordiv__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rlshift__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rmatmul__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rmod__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rmul__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__ror__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__round__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rpow__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rrshift__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rshift__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rsub__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rtruediv__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rxor__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__set__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__set_name__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__setattr__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__setitem__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__setstate__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__sizeof__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__slotnames__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__slots__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__spec__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__static_attributes__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__str__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__sub__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__subclasscheck__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__subclasshook__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__truediv__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__trunc__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__type_params__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__typing_is_unpacked_typevartuple__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__typing_prepare_subst__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__typing_subst__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__typing_unpacked_tuple_args__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__warningregistry__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__weaklistoffset__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__weakref__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__xor__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_abc_impl)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_abstract_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_active)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_align_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_annotation)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_anonymous_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_argtypes_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_as_parameter_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_asyncio_future_blocking)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_blksize)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_bootstrap)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_check_retval_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_dealloc_warn)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_feature_version)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_field_types)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_fields_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_finalizing)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_find_and_load)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_fix_up_module)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_flags_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_get_sourcefile)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_handle_fromlist)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_initializing)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_io)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_is_text_encoding)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_length_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_limbo)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_lock_unlock_module)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_loop)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_needs_com_addref_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_only_immortal)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_pack_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_restype_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_showwarnmsg)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_shutdown)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_slotnames)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_strptime)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_strptime_datetime)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_swappedbytes_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_type_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_uninitialized_submodules)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_warn_unawaited_coroutine)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_xoptions)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(abs_tol)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(access)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(aclose)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(add)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(add_done_callback)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(after_in_child)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(after_in_parent)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(aggregate_class)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(alias)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(allow_code)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(append)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(arg)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(argdefs)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(args)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(arguments)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(argv)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(as_integer_ratio)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(asend)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(ast)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(athrow)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(attribute)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(authorizer_callback)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(autocommit)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(backtick)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(base)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(before)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(big)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(binary_form)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(block)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(bound)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(buffer)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(buffer_callback)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(buffer_size)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(buffering)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(buffers)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(bufsize)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(builtins)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(byteorder)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(bytes)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(bytes_per_sep)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(c_call)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(c_exception)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(c_return)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(cached_datetime_module)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(cached_statements)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(cadata)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(cafile)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(call)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(call_exception_handler)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(call_soon)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(callback)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(cancel)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(capath)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(category)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(cb_type)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(certfile)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(check_same_thread)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(clear)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(close)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(closed)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(closefd)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(closure)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_argcount)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_cellvars)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_code)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_consts)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_exceptiontable)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_filename)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_firstlineno)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_flags)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_freevars)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_kwonlyargcount)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_linetable)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_name)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_names)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_nlocals)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_posonlyargcount)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_qualname)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_stacksize)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_varnames)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(code)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(col_offset)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(command)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(comment_factory)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(compile_mode)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(consts)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(context)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(contravariant)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(cookie)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(copy)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(copyreg)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(coro)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(count)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(covariant)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(cwd)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(data)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(database)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(day)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(decode)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(decoder)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(default)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(defaultaction)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(delete)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(depth)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(desired_access)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(detect_types)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(deterministic)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(device)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(dict)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(dictcomp)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(difference_update)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(digest)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(digest_size)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(digestmod)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(dir_fd)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(discard)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(dispatch_table)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(displayhook)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(dklen)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(doc)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(dont_inherit)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(dst)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(dst_dir_fd)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(eager_start)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(effective_ids)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(element_factory)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(encode)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(encoding)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(end)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(end_col_offset)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(end_lineno)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(end_offset)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(endpos)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(entrypoint)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(env)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(errors)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(event)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(eventmask)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(exc_type)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(exc_value)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(excepthook)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(exception)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(existing_file_name)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(exp)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(extend)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(extra_tokens)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(facility)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(factory)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(false)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(family)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fanout)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fd)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fd2)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fdel)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fget)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(file)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(file_actions)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(filename)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fileno)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(filepath)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fillvalue)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(filter)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(filters)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(final)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(find_class)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fix_imports)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(flags)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(flush)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fold)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(follow_symlinks)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(format)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(from_param)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fromlist)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fromtimestamp)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fromutc)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fset)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(func)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(future)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(generation)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(genexpr)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(get)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(get_debug)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(get_event_loop)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(get_loop)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(get_source)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(getattr)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(getstate)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(gid)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(globals)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(groupindex)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(groups)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(handle)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(handle_seq)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(has_location)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(hash_name)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(header)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(headers)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(hi)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(hook)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(hour)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(ident)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(identity_hint)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(ignore)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(imag)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(importlib)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(in_fd)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(incoming)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(indexgroup)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(inf)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(infer_variance)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(inherit_handle)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(inheritable)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(initial)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(initial_bytes)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(initial_owner)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(initial_state)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(initial_value)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(initval)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(inner_size)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(input)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(insert_comments)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(insert_pis)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(instructions)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(intern)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(intersection)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(interval)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(is_running)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(isatty)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(isinstance)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(isoformat)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(isolation_level)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(istext)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(item)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(items)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(iter)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(iterable)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(iterations)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(join)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(jump)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(keepends)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(key)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(keyfile)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(keys)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(kind)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(kw)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(kw1)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(kw2)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(kwdefaults)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(label)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(lambda)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(last)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(last_exc)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(last_node)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(last_traceback)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(last_type)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(last_value)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(latin1)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(leaf_size)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(len)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(length)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(level)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(limit)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(line)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(line_buffering)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(lineno)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(listcomp)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(little)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(lo)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(locale)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(locals)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(logoption)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(loop)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(manual_reset)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(mapping)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(match)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(max_length)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(maxdigits)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(maxevents)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(maxlen)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(maxmem)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(maxsplit)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(maxvalue)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(memLevel)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(memlimit)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(message)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(metaclass)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(metadata)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(method)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(microsecond)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(milliseconds)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(minute)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(mod)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(mode)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(module)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(module_globals)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(modules)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(month)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(mro)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(msg)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(mutex)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(mycmp)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(n_arg)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(n_fields)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(n_sequence_fields)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(n_unnamed_fields)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(name)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(name_from)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(namespace_separator)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(namespaces)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(narg)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(ndigits)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(nested)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(new_file_name)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(new_limit)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(newline)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(newlines)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(next)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(nlocals)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(node_depth)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(node_offset)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(ns)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(nstype)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(nt)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(null)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(number)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(obj)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(object)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(offset)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(offset_dst)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(offset_src)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(on_type_read)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(onceregistry)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(only_keys)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(oparg)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(opcode)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(open)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(opener)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(operation)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(optimize)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(options)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(order)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(origin)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(out_fd)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(outgoing)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(overlapped)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(owner)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(pages)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(parent)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(password)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(path)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(pattern)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(peek)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(persistent_id)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(persistent_load)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(person)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(pi_factory)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(pid)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(policy)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(pos)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(pos1)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(pos2)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(posix)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(print_file_and_line)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(priority)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(progress)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(progress_handler)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(progress_routine)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(proto)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(protocol)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(ps1)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(ps2)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(query)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(quotetabs)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(raw)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(read)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(read1)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(readable)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(readall)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(readinto)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(readinto1)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(readline)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(readonly)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(real)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(reducer_override)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(registry)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(rel_tol)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(release)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(reload)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(repl)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(replace)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(reserved)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(reset)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(resetids)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(return)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(reverse)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(reversed)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(salt)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(sched_priority)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(scheduler)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(second)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(security_attributes)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(seek)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(seekable)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(selectors)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(self)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(send)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(sep)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(sequence)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(server_hostname)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(server_side)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(session)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(setcomp)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(setpgroup)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(setsid)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(setsigdef)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(setsigmask)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(setstate)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(shape)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(show_cmd)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(signed)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(size)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(sizehint)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(skip_file_prefixes)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(sleep)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(sock)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(sort)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(source)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(source_traceback)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(spam)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(src)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(src_dir_fd)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(stacklevel)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(start)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(statement)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(status)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(stderr)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(stdin)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(stdout)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(step)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(steps)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(store_name)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(strategy)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(strftime)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(strict)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(strict_mode)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(string)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(sub_key)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(symmetric_difference_update)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(tabsize)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(tag)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(target)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(target_is_directory)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(task)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(tb_frame)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(tb_lasti)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(tb_lineno)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(tb_next)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(tell)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(template)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(term)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(text)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(threading)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(throw)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(timeout)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(times)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(timetuple)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(top)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(trace_callback)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(traceback)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(trailers)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(translate)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(true)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(truncate)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(twice)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(txt)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(type)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(type_params)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(tz)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(tzinfo)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(tzname)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(uid)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(unlink)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(unraisablehook)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(uri)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(usedforsecurity)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(value)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(values)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(version)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(volume)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(wait_all)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(warn_on_full_buffer)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(warnings)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(warnoptions)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(wbits)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(week)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(weekday)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(which)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(who)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(withdata)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(writable)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(write)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(write_through)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(year)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(zdict)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[0]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[1]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[2]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[3]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[4]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[5]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[6]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[7]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[8]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[9]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[10]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[11]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[12]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[13]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[14]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[15]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[16]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[17]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[18]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[19]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[20]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[21]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[22]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[23]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[24]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[25]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[26]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[27]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[28]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[29]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[30]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[31]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[32]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[33]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[34]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[35]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[36]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[37]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[38]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[39]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[40]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[41]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[42]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[43]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[44]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[45]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[46]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[47]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[48]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[49]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[50]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[51]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[52]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[53]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[54]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[55]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[56]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[57]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[58]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[59]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[60]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[61]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[62]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[63]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[64]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[65]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[66]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[67]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[68]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[69]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[70]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[71]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[72]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[73]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[74]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[75]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[76]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[77]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[78]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[79]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[80]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[81]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[82]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[83]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[84]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[85]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[86]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[87]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[88]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[89]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[90]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[91]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[92]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[93]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[94]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[95]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[96]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[97]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[98]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[99]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[100]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[101]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[102]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[103]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[104]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[105]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[106]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[107]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[108]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[109]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[110]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[111]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[112]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[113]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[114]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[115]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[116]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[117]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[118]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[119]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[120]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[121]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[122]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[123]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[124]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[125]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[126]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[127]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[128 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[129 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[130 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[131 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[132 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[133 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[134 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[135 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[136 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[137 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[138 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[139 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[140 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[141 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[142 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[143 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[144 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[145 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[146 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[147 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[148 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[149 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[150 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[151 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[152 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[153 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[154 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[155 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[156 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[157 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[158 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[159 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[160 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[161 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[162 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[163 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[164 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[165 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[166 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[167 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[168 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[169 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[170 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[171 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[172 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[173 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[174 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[175 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[176 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[177 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[178 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[179 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[180 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[181 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[182 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[183 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[184 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[185 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[186 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[187 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[188 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[189 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[190 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[191 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[192 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[193 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[194 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[195 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[196 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[197 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[198 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[199 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[200 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[201 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[202 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[203 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[204 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[205 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[206 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[207 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[208 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[209 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[210 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[211 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[212 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[213 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[214 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[215 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[216 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[217 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[218 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[219 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[220 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[221 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[222 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[223 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[224 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[225 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[226 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[227 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[228 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[229 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[230 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[231 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[232 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[233 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[234 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[235 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[236 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[237 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[238 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[239 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[240 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[241 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[242 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[243 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[244 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[245 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[246 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[247 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[248 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[249 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[250 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[251 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[252 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[253 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[254 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[255 - 128]); + /* non-generated */ + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_empty)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(tuple_empty)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(hamt_bitmap_node_empty)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_INTERP_SINGLETON(interp, hamt_empty)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(context_token_missing)); +} +#endif // Py_DEBUG +/* End auto-generated code */ + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_GLOBAL_OBJECTS_FINI_GENERATED_INIT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_global_strings.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_global_strings.h new file mode 100644 index 000000000..a5436b6d6 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_global_strings.h @@ -0,0 +1,813 @@ +#ifndef Py_INTERNAL_GLOBAL_STRINGS_H +#define Py_INTERNAL_GLOBAL_STRINGS_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +// The data structure & init here are inspired by Tools/build/deepfreeze.py. + +// All field names generated by ASCII_STR() have a common prefix, +// to help avoid collisions with keywords, macros, etc. + +#define STRUCT_FOR_ASCII_STR(LITERAL) \ + struct { \ + PyASCIIObject _ascii; \ + uint8_t _data[sizeof(LITERAL)]; \ + } +#define STRUCT_FOR_STR(NAME, LITERAL) \ + STRUCT_FOR_ASCII_STR(LITERAL) _py_ ## NAME; +#define STRUCT_FOR_ID(NAME) \ + STRUCT_FOR_ASCII_STR(#NAME) _py_ ## NAME; + +// XXX Order by frequency of use? + +/* The following is auto-generated by Tools/build/generate_global_objects.py. */ +struct _Py_global_strings { + struct { + STRUCT_FOR_STR(anon_dictcomp, "") + STRUCT_FOR_STR(anon_genexpr, "") + STRUCT_FOR_STR(anon_lambda, "") + STRUCT_FOR_STR(anon_listcomp, "") + STRUCT_FOR_STR(anon_module, "") + STRUCT_FOR_STR(anon_null, "") + STRUCT_FOR_STR(anon_setcomp, "") + STRUCT_FOR_STR(anon_string, "") + STRUCT_FOR_STR(anon_unknown, "") + STRUCT_FOR_STR(dbl_close_br, "}}") + STRUCT_FOR_STR(dbl_open_br, "{{") + STRUCT_FOR_STR(dbl_percent, "%%") + STRUCT_FOR_STR(defaults, ".defaults") + STRUCT_FOR_STR(dot_locals, ".") + STRUCT_FOR_STR(empty, "") + STRUCT_FOR_STR(generic_base, ".generic_base") + STRUCT_FOR_STR(json_decoder, "json.decoder") + STRUCT_FOR_STR(kwdefaults, ".kwdefaults") + STRUCT_FOR_STR(list_err, "list index out of range") + STRUCT_FOR_STR(type_params, ".type_params") + STRUCT_FOR_STR(utf_8, "utf-8") + } literals; + + struct { + STRUCT_FOR_ID(CANCELLED) + STRUCT_FOR_ID(FINISHED) + STRUCT_FOR_ID(False) + STRUCT_FOR_ID(JSONDecodeError) + STRUCT_FOR_ID(PENDING) + STRUCT_FOR_ID(Py_Repr) + STRUCT_FOR_ID(TextIOWrapper) + STRUCT_FOR_ID(True) + STRUCT_FOR_ID(WarningMessage) + STRUCT_FOR_ID(_WindowsConsoleIO) + STRUCT_FOR_ID(__IOBase_closed) + STRUCT_FOR_ID(__abc_tpflags__) + STRUCT_FOR_ID(__abs__) + STRUCT_FOR_ID(__abstractmethods__) + STRUCT_FOR_ID(__add__) + STRUCT_FOR_ID(__aenter__) + STRUCT_FOR_ID(__aexit__) + STRUCT_FOR_ID(__aiter__) + STRUCT_FOR_ID(__all__) + STRUCT_FOR_ID(__and__) + STRUCT_FOR_ID(__anext__) + STRUCT_FOR_ID(__annotations__) + STRUCT_FOR_ID(__args__) + STRUCT_FOR_ID(__await__) + STRUCT_FOR_ID(__bases__) + STRUCT_FOR_ID(__bool__) + STRUCT_FOR_ID(__buffer__) + STRUCT_FOR_ID(__build_class__) + STRUCT_FOR_ID(__builtins__) + STRUCT_FOR_ID(__bytes__) + STRUCT_FOR_ID(__call__) + STRUCT_FOR_ID(__cantrace__) + STRUCT_FOR_ID(__class__) + STRUCT_FOR_ID(__class_getitem__) + STRUCT_FOR_ID(__classcell__) + STRUCT_FOR_ID(__classdict__) + STRUCT_FOR_ID(__classdictcell__) + STRUCT_FOR_ID(__complex__) + STRUCT_FOR_ID(__contains__) + STRUCT_FOR_ID(__copy__) + STRUCT_FOR_ID(__ctypes_from_outparam__) + STRUCT_FOR_ID(__del__) + STRUCT_FOR_ID(__delattr__) + STRUCT_FOR_ID(__delete__) + STRUCT_FOR_ID(__delitem__) + STRUCT_FOR_ID(__dict__) + STRUCT_FOR_ID(__dictoffset__) + STRUCT_FOR_ID(__dir__) + STRUCT_FOR_ID(__divmod__) + STRUCT_FOR_ID(__doc__) + STRUCT_FOR_ID(__enter__) + STRUCT_FOR_ID(__eq__) + STRUCT_FOR_ID(__exit__) + STRUCT_FOR_ID(__file__) + STRUCT_FOR_ID(__firstlineno__) + STRUCT_FOR_ID(__float__) + STRUCT_FOR_ID(__floordiv__) + STRUCT_FOR_ID(__format__) + STRUCT_FOR_ID(__fspath__) + STRUCT_FOR_ID(__ge__) + STRUCT_FOR_ID(__get__) + STRUCT_FOR_ID(__getattr__) + STRUCT_FOR_ID(__getattribute__) + STRUCT_FOR_ID(__getinitargs__) + STRUCT_FOR_ID(__getitem__) + STRUCT_FOR_ID(__getnewargs__) + STRUCT_FOR_ID(__getnewargs_ex__) + STRUCT_FOR_ID(__getstate__) + STRUCT_FOR_ID(__gt__) + STRUCT_FOR_ID(__hash__) + STRUCT_FOR_ID(__iadd__) + STRUCT_FOR_ID(__iand__) + STRUCT_FOR_ID(__ifloordiv__) + STRUCT_FOR_ID(__ilshift__) + STRUCT_FOR_ID(__imatmul__) + STRUCT_FOR_ID(__imod__) + STRUCT_FOR_ID(__import__) + STRUCT_FOR_ID(__imul__) + STRUCT_FOR_ID(__index__) + STRUCT_FOR_ID(__init__) + STRUCT_FOR_ID(__init_subclass__) + STRUCT_FOR_ID(__instancecheck__) + STRUCT_FOR_ID(__int__) + STRUCT_FOR_ID(__invert__) + STRUCT_FOR_ID(__ior__) + STRUCT_FOR_ID(__ipow__) + STRUCT_FOR_ID(__irshift__) + STRUCT_FOR_ID(__isabstractmethod__) + STRUCT_FOR_ID(__isub__) + STRUCT_FOR_ID(__iter__) + STRUCT_FOR_ID(__itruediv__) + STRUCT_FOR_ID(__ixor__) + STRUCT_FOR_ID(__le__) + STRUCT_FOR_ID(__len__) + STRUCT_FOR_ID(__length_hint__) + STRUCT_FOR_ID(__lltrace__) + STRUCT_FOR_ID(__loader__) + STRUCT_FOR_ID(__lshift__) + STRUCT_FOR_ID(__lt__) + STRUCT_FOR_ID(__main__) + STRUCT_FOR_ID(__match_args__) + STRUCT_FOR_ID(__matmul__) + STRUCT_FOR_ID(__missing__) + STRUCT_FOR_ID(__mod__) + STRUCT_FOR_ID(__module__) + STRUCT_FOR_ID(__mro_entries__) + STRUCT_FOR_ID(__mul__) + STRUCT_FOR_ID(__name__) + STRUCT_FOR_ID(__ne__) + STRUCT_FOR_ID(__neg__) + STRUCT_FOR_ID(__new__) + STRUCT_FOR_ID(__newobj__) + STRUCT_FOR_ID(__newobj_ex__) + STRUCT_FOR_ID(__next__) + STRUCT_FOR_ID(__notes__) + STRUCT_FOR_ID(__or__) + STRUCT_FOR_ID(__orig_class__) + STRUCT_FOR_ID(__origin__) + STRUCT_FOR_ID(__package__) + STRUCT_FOR_ID(__parameters__) + STRUCT_FOR_ID(__path__) + STRUCT_FOR_ID(__pos__) + STRUCT_FOR_ID(__pow__) + STRUCT_FOR_ID(__prepare__) + STRUCT_FOR_ID(__qualname__) + STRUCT_FOR_ID(__radd__) + STRUCT_FOR_ID(__rand__) + STRUCT_FOR_ID(__rdivmod__) + STRUCT_FOR_ID(__reduce__) + STRUCT_FOR_ID(__reduce_ex__) + STRUCT_FOR_ID(__release_buffer__) + STRUCT_FOR_ID(__repr__) + STRUCT_FOR_ID(__reversed__) + STRUCT_FOR_ID(__rfloordiv__) + STRUCT_FOR_ID(__rlshift__) + STRUCT_FOR_ID(__rmatmul__) + STRUCT_FOR_ID(__rmod__) + STRUCT_FOR_ID(__rmul__) + STRUCT_FOR_ID(__ror__) + STRUCT_FOR_ID(__round__) + STRUCT_FOR_ID(__rpow__) + STRUCT_FOR_ID(__rrshift__) + STRUCT_FOR_ID(__rshift__) + STRUCT_FOR_ID(__rsub__) + STRUCT_FOR_ID(__rtruediv__) + STRUCT_FOR_ID(__rxor__) + STRUCT_FOR_ID(__set__) + STRUCT_FOR_ID(__set_name__) + STRUCT_FOR_ID(__setattr__) + STRUCT_FOR_ID(__setitem__) + STRUCT_FOR_ID(__setstate__) + STRUCT_FOR_ID(__sizeof__) + STRUCT_FOR_ID(__slotnames__) + STRUCT_FOR_ID(__slots__) + STRUCT_FOR_ID(__spec__) + STRUCT_FOR_ID(__static_attributes__) + STRUCT_FOR_ID(__str__) + STRUCT_FOR_ID(__sub__) + STRUCT_FOR_ID(__subclasscheck__) + STRUCT_FOR_ID(__subclasshook__) + STRUCT_FOR_ID(__truediv__) + STRUCT_FOR_ID(__trunc__) + STRUCT_FOR_ID(__type_params__) + STRUCT_FOR_ID(__typing_is_unpacked_typevartuple__) + STRUCT_FOR_ID(__typing_prepare_subst__) + STRUCT_FOR_ID(__typing_subst__) + STRUCT_FOR_ID(__typing_unpacked_tuple_args__) + STRUCT_FOR_ID(__warningregistry__) + STRUCT_FOR_ID(__weaklistoffset__) + STRUCT_FOR_ID(__weakref__) + STRUCT_FOR_ID(__xor__) + STRUCT_FOR_ID(_abc_impl) + STRUCT_FOR_ID(_abstract_) + STRUCT_FOR_ID(_active) + STRUCT_FOR_ID(_align_) + STRUCT_FOR_ID(_annotation) + STRUCT_FOR_ID(_anonymous_) + STRUCT_FOR_ID(_argtypes_) + STRUCT_FOR_ID(_as_parameter_) + STRUCT_FOR_ID(_asyncio_future_blocking) + STRUCT_FOR_ID(_blksize) + STRUCT_FOR_ID(_bootstrap) + STRUCT_FOR_ID(_check_retval_) + STRUCT_FOR_ID(_dealloc_warn) + STRUCT_FOR_ID(_feature_version) + STRUCT_FOR_ID(_field_types) + STRUCT_FOR_ID(_fields_) + STRUCT_FOR_ID(_finalizing) + STRUCT_FOR_ID(_find_and_load) + STRUCT_FOR_ID(_fix_up_module) + STRUCT_FOR_ID(_flags_) + STRUCT_FOR_ID(_get_sourcefile) + STRUCT_FOR_ID(_handle_fromlist) + STRUCT_FOR_ID(_initializing) + STRUCT_FOR_ID(_io) + STRUCT_FOR_ID(_is_text_encoding) + STRUCT_FOR_ID(_length_) + STRUCT_FOR_ID(_limbo) + STRUCT_FOR_ID(_lock_unlock_module) + STRUCT_FOR_ID(_loop) + STRUCT_FOR_ID(_needs_com_addref_) + STRUCT_FOR_ID(_only_immortal) + STRUCT_FOR_ID(_pack_) + STRUCT_FOR_ID(_restype_) + STRUCT_FOR_ID(_showwarnmsg) + STRUCT_FOR_ID(_shutdown) + STRUCT_FOR_ID(_slotnames) + STRUCT_FOR_ID(_strptime) + STRUCT_FOR_ID(_strptime_datetime) + STRUCT_FOR_ID(_swappedbytes_) + STRUCT_FOR_ID(_type_) + STRUCT_FOR_ID(_uninitialized_submodules) + STRUCT_FOR_ID(_warn_unawaited_coroutine) + STRUCT_FOR_ID(_xoptions) + STRUCT_FOR_ID(abs_tol) + STRUCT_FOR_ID(access) + STRUCT_FOR_ID(aclose) + STRUCT_FOR_ID(add) + STRUCT_FOR_ID(add_done_callback) + STRUCT_FOR_ID(after_in_child) + STRUCT_FOR_ID(after_in_parent) + STRUCT_FOR_ID(aggregate_class) + STRUCT_FOR_ID(alias) + STRUCT_FOR_ID(allow_code) + STRUCT_FOR_ID(append) + STRUCT_FOR_ID(arg) + STRUCT_FOR_ID(argdefs) + STRUCT_FOR_ID(args) + STRUCT_FOR_ID(arguments) + STRUCT_FOR_ID(argv) + STRUCT_FOR_ID(as_integer_ratio) + STRUCT_FOR_ID(asend) + STRUCT_FOR_ID(ast) + STRUCT_FOR_ID(athrow) + STRUCT_FOR_ID(attribute) + STRUCT_FOR_ID(authorizer_callback) + STRUCT_FOR_ID(autocommit) + STRUCT_FOR_ID(backtick) + STRUCT_FOR_ID(base) + STRUCT_FOR_ID(before) + STRUCT_FOR_ID(big) + STRUCT_FOR_ID(binary_form) + STRUCT_FOR_ID(block) + STRUCT_FOR_ID(bound) + STRUCT_FOR_ID(buffer) + STRUCT_FOR_ID(buffer_callback) + STRUCT_FOR_ID(buffer_size) + STRUCT_FOR_ID(buffering) + STRUCT_FOR_ID(buffers) + STRUCT_FOR_ID(bufsize) + STRUCT_FOR_ID(builtins) + STRUCT_FOR_ID(byteorder) + STRUCT_FOR_ID(bytes) + STRUCT_FOR_ID(bytes_per_sep) + STRUCT_FOR_ID(c_call) + STRUCT_FOR_ID(c_exception) + STRUCT_FOR_ID(c_return) + STRUCT_FOR_ID(cached_datetime_module) + STRUCT_FOR_ID(cached_statements) + STRUCT_FOR_ID(cadata) + STRUCT_FOR_ID(cafile) + STRUCT_FOR_ID(call) + STRUCT_FOR_ID(call_exception_handler) + STRUCT_FOR_ID(call_soon) + STRUCT_FOR_ID(callback) + STRUCT_FOR_ID(cancel) + STRUCT_FOR_ID(capath) + STRUCT_FOR_ID(category) + STRUCT_FOR_ID(cb_type) + STRUCT_FOR_ID(certfile) + STRUCT_FOR_ID(check_same_thread) + STRUCT_FOR_ID(clear) + STRUCT_FOR_ID(close) + STRUCT_FOR_ID(closed) + STRUCT_FOR_ID(closefd) + STRUCT_FOR_ID(closure) + STRUCT_FOR_ID(co_argcount) + STRUCT_FOR_ID(co_cellvars) + STRUCT_FOR_ID(co_code) + STRUCT_FOR_ID(co_consts) + STRUCT_FOR_ID(co_exceptiontable) + STRUCT_FOR_ID(co_filename) + STRUCT_FOR_ID(co_firstlineno) + STRUCT_FOR_ID(co_flags) + STRUCT_FOR_ID(co_freevars) + STRUCT_FOR_ID(co_kwonlyargcount) + STRUCT_FOR_ID(co_linetable) + STRUCT_FOR_ID(co_name) + STRUCT_FOR_ID(co_names) + STRUCT_FOR_ID(co_nlocals) + STRUCT_FOR_ID(co_posonlyargcount) + STRUCT_FOR_ID(co_qualname) + STRUCT_FOR_ID(co_stacksize) + STRUCT_FOR_ID(co_varnames) + STRUCT_FOR_ID(code) + STRUCT_FOR_ID(col_offset) + STRUCT_FOR_ID(command) + STRUCT_FOR_ID(comment_factory) + STRUCT_FOR_ID(compile_mode) + STRUCT_FOR_ID(consts) + STRUCT_FOR_ID(context) + STRUCT_FOR_ID(contravariant) + STRUCT_FOR_ID(cookie) + STRUCT_FOR_ID(copy) + STRUCT_FOR_ID(copyreg) + STRUCT_FOR_ID(coro) + STRUCT_FOR_ID(count) + STRUCT_FOR_ID(covariant) + STRUCT_FOR_ID(cwd) + STRUCT_FOR_ID(data) + STRUCT_FOR_ID(database) + STRUCT_FOR_ID(day) + STRUCT_FOR_ID(decode) + STRUCT_FOR_ID(decoder) + STRUCT_FOR_ID(default) + STRUCT_FOR_ID(defaultaction) + STRUCT_FOR_ID(delete) + STRUCT_FOR_ID(depth) + STRUCT_FOR_ID(desired_access) + STRUCT_FOR_ID(detect_types) + STRUCT_FOR_ID(deterministic) + STRUCT_FOR_ID(device) + STRUCT_FOR_ID(dict) + STRUCT_FOR_ID(dictcomp) + STRUCT_FOR_ID(difference_update) + STRUCT_FOR_ID(digest) + STRUCT_FOR_ID(digest_size) + STRUCT_FOR_ID(digestmod) + STRUCT_FOR_ID(dir_fd) + STRUCT_FOR_ID(discard) + STRUCT_FOR_ID(dispatch_table) + STRUCT_FOR_ID(displayhook) + STRUCT_FOR_ID(dklen) + STRUCT_FOR_ID(doc) + STRUCT_FOR_ID(dont_inherit) + STRUCT_FOR_ID(dst) + STRUCT_FOR_ID(dst_dir_fd) + STRUCT_FOR_ID(eager_start) + STRUCT_FOR_ID(effective_ids) + STRUCT_FOR_ID(element_factory) + STRUCT_FOR_ID(encode) + STRUCT_FOR_ID(encoding) + STRUCT_FOR_ID(end) + STRUCT_FOR_ID(end_col_offset) + STRUCT_FOR_ID(end_lineno) + STRUCT_FOR_ID(end_offset) + STRUCT_FOR_ID(endpos) + STRUCT_FOR_ID(entrypoint) + STRUCT_FOR_ID(env) + STRUCT_FOR_ID(errors) + STRUCT_FOR_ID(event) + STRUCT_FOR_ID(eventmask) + STRUCT_FOR_ID(exc_type) + STRUCT_FOR_ID(exc_value) + STRUCT_FOR_ID(excepthook) + STRUCT_FOR_ID(exception) + STRUCT_FOR_ID(existing_file_name) + STRUCT_FOR_ID(exp) + STRUCT_FOR_ID(extend) + STRUCT_FOR_ID(extra_tokens) + STRUCT_FOR_ID(facility) + STRUCT_FOR_ID(factory) + STRUCT_FOR_ID(false) + STRUCT_FOR_ID(family) + STRUCT_FOR_ID(fanout) + STRUCT_FOR_ID(fd) + STRUCT_FOR_ID(fd2) + STRUCT_FOR_ID(fdel) + STRUCT_FOR_ID(fget) + STRUCT_FOR_ID(file) + STRUCT_FOR_ID(file_actions) + STRUCT_FOR_ID(filename) + STRUCT_FOR_ID(fileno) + STRUCT_FOR_ID(filepath) + STRUCT_FOR_ID(fillvalue) + STRUCT_FOR_ID(filter) + STRUCT_FOR_ID(filters) + STRUCT_FOR_ID(final) + STRUCT_FOR_ID(find_class) + STRUCT_FOR_ID(fix_imports) + STRUCT_FOR_ID(flags) + STRUCT_FOR_ID(flush) + STRUCT_FOR_ID(fold) + STRUCT_FOR_ID(follow_symlinks) + STRUCT_FOR_ID(format) + STRUCT_FOR_ID(from_param) + STRUCT_FOR_ID(fromlist) + STRUCT_FOR_ID(fromtimestamp) + STRUCT_FOR_ID(fromutc) + STRUCT_FOR_ID(fset) + STRUCT_FOR_ID(func) + STRUCT_FOR_ID(future) + STRUCT_FOR_ID(generation) + STRUCT_FOR_ID(genexpr) + STRUCT_FOR_ID(get) + STRUCT_FOR_ID(get_debug) + STRUCT_FOR_ID(get_event_loop) + STRUCT_FOR_ID(get_loop) + STRUCT_FOR_ID(get_source) + STRUCT_FOR_ID(getattr) + STRUCT_FOR_ID(getstate) + STRUCT_FOR_ID(gid) + STRUCT_FOR_ID(globals) + STRUCT_FOR_ID(groupindex) + STRUCT_FOR_ID(groups) + STRUCT_FOR_ID(handle) + STRUCT_FOR_ID(handle_seq) + STRUCT_FOR_ID(has_location) + STRUCT_FOR_ID(hash_name) + STRUCT_FOR_ID(header) + STRUCT_FOR_ID(headers) + STRUCT_FOR_ID(hi) + STRUCT_FOR_ID(hook) + STRUCT_FOR_ID(hour) + STRUCT_FOR_ID(ident) + STRUCT_FOR_ID(identity_hint) + STRUCT_FOR_ID(ignore) + STRUCT_FOR_ID(imag) + STRUCT_FOR_ID(importlib) + STRUCT_FOR_ID(in_fd) + STRUCT_FOR_ID(incoming) + STRUCT_FOR_ID(indexgroup) + STRUCT_FOR_ID(inf) + STRUCT_FOR_ID(infer_variance) + STRUCT_FOR_ID(inherit_handle) + STRUCT_FOR_ID(inheritable) + STRUCT_FOR_ID(initial) + STRUCT_FOR_ID(initial_bytes) + STRUCT_FOR_ID(initial_owner) + STRUCT_FOR_ID(initial_state) + STRUCT_FOR_ID(initial_value) + STRUCT_FOR_ID(initval) + STRUCT_FOR_ID(inner_size) + STRUCT_FOR_ID(input) + STRUCT_FOR_ID(insert_comments) + STRUCT_FOR_ID(insert_pis) + STRUCT_FOR_ID(instructions) + STRUCT_FOR_ID(intern) + STRUCT_FOR_ID(intersection) + STRUCT_FOR_ID(interval) + STRUCT_FOR_ID(is_running) + STRUCT_FOR_ID(isatty) + STRUCT_FOR_ID(isinstance) + STRUCT_FOR_ID(isoformat) + STRUCT_FOR_ID(isolation_level) + STRUCT_FOR_ID(istext) + STRUCT_FOR_ID(item) + STRUCT_FOR_ID(items) + STRUCT_FOR_ID(iter) + STRUCT_FOR_ID(iterable) + STRUCT_FOR_ID(iterations) + STRUCT_FOR_ID(join) + STRUCT_FOR_ID(jump) + STRUCT_FOR_ID(keepends) + STRUCT_FOR_ID(key) + STRUCT_FOR_ID(keyfile) + STRUCT_FOR_ID(keys) + STRUCT_FOR_ID(kind) + STRUCT_FOR_ID(kw) + STRUCT_FOR_ID(kw1) + STRUCT_FOR_ID(kw2) + STRUCT_FOR_ID(kwdefaults) + STRUCT_FOR_ID(label) + STRUCT_FOR_ID(lambda) + STRUCT_FOR_ID(last) + STRUCT_FOR_ID(last_exc) + STRUCT_FOR_ID(last_node) + STRUCT_FOR_ID(last_traceback) + STRUCT_FOR_ID(last_type) + STRUCT_FOR_ID(last_value) + STRUCT_FOR_ID(latin1) + STRUCT_FOR_ID(leaf_size) + STRUCT_FOR_ID(len) + STRUCT_FOR_ID(length) + STRUCT_FOR_ID(level) + STRUCT_FOR_ID(limit) + STRUCT_FOR_ID(line) + STRUCT_FOR_ID(line_buffering) + STRUCT_FOR_ID(lineno) + STRUCT_FOR_ID(listcomp) + STRUCT_FOR_ID(little) + STRUCT_FOR_ID(lo) + STRUCT_FOR_ID(locale) + STRUCT_FOR_ID(locals) + STRUCT_FOR_ID(logoption) + STRUCT_FOR_ID(loop) + STRUCT_FOR_ID(manual_reset) + STRUCT_FOR_ID(mapping) + STRUCT_FOR_ID(match) + STRUCT_FOR_ID(max_length) + STRUCT_FOR_ID(maxdigits) + STRUCT_FOR_ID(maxevents) + STRUCT_FOR_ID(maxlen) + STRUCT_FOR_ID(maxmem) + STRUCT_FOR_ID(maxsplit) + STRUCT_FOR_ID(maxvalue) + STRUCT_FOR_ID(memLevel) + STRUCT_FOR_ID(memlimit) + STRUCT_FOR_ID(message) + STRUCT_FOR_ID(metaclass) + STRUCT_FOR_ID(metadata) + STRUCT_FOR_ID(method) + STRUCT_FOR_ID(microsecond) + STRUCT_FOR_ID(milliseconds) + STRUCT_FOR_ID(minute) + STRUCT_FOR_ID(mod) + STRUCT_FOR_ID(mode) + STRUCT_FOR_ID(module) + STRUCT_FOR_ID(module_globals) + STRUCT_FOR_ID(modules) + STRUCT_FOR_ID(month) + STRUCT_FOR_ID(mro) + STRUCT_FOR_ID(msg) + STRUCT_FOR_ID(mutex) + STRUCT_FOR_ID(mycmp) + STRUCT_FOR_ID(n_arg) + STRUCT_FOR_ID(n_fields) + STRUCT_FOR_ID(n_sequence_fields) + STRUCT_FOR_ID(n_unnamed_fields) + STRUCT_FOR_ID(name) + STRUCT_FOR_ID(name_from) + STRUCT_FOR_ID(namespace_separator) + STRUCT_FOR_ID(namespaces) + STRUCT_FOR_ID(narg) + STRUCT_FOR_ID(ndigits) + STRUCT_FOR_ID(nested) + STRUCT_FOR_ID(new_file_name) + STRUCT_FOR_ID(new_limit) + STRUCT_FOR_ID(newline) + STRUCT_FOR_ID(newlines) + STRUCT_FOR_ID(next) + STRUCT_FOR_ID(nlocals) + STRUCT_FOR_ID(node_depth) + STRUCT_FOR_ID(node_offset) + STRUCT_FOR_ID(ns) + STRUCT_FOR_ID(nstype) + STRUCT_FOR_ID(nt) + STRUCT_FOR_ID(null) + STRUCT_FOR_ID(number) + STRUCT_FOR_ID(obj) + STRUCT_FOR_ID(object) + STRUCT_FOR_ID(offset) + STRUCT_FOR_ID(offset_dst) + STRUCT_FOR_ID(offset_src) + STRUCT_FOR_ID(on_type_read) + STRUCT_FOR_ID(onceregistry) + STRUCT_FOR_ID(only_keys) + STRUCT_FOR_ID(oparg) + STRUCT_FOR_ID(opcode) + STRUCT_FOR_ID(open) + STRUCT_FOR_ID(opener) + STRUCT_FOR_ID(operation) + STRUCT_FOR_ID(optimize) + STRUCT_FOR_ID(options) + STRUCT_FOR_ID(order) + STRUCT_FOR_ID(origin) + STRUCT_FOR_ID(out_fd) + STRUCT_FOR_ID(outgoing) + STRUCT_FOR_ID(overlapped) + STRUCT_FOR_ID(owner) + STRUCT_FOR_ID(pages) + STRUCT_FOR_ID(parent) + STRUCT_FOR_ID(password) + STRUCT_FOR_ID(path) + STRUCT_FOR_ID(pattern) + STRUCT_FOR_ID(peek) + STRUCT_FOR_ID(persistent_id) + STRUCT_FOR_ID(persistent_load) + STRUCT_FOR_ID(person) + STRUCT_FOR_ID(pi_factory) + STRUCT_FOR_ID(pid) + STRUCT_FOR_ID(policy) + STRUCT_FOR_ID(pos) + STRUCT_FOR_ID(pos1) + STRUCT_FOR_ID(pos2) + STRUCT_FOR_ID(posix) + STRUCT_FOR_ID(print_file_and_line) + STRUCT_FOR_ID(priority) + STRUCT_FOR_ID(progress) + STRUCT_FOR_ID(progress_handler) + STRUCT_FOR_ID(progress_routine) + STRUCT_FOR_ID(proto) + STRUCT_FOR_ID(protocol) + STRUCT_FOR_ID(ps1) + STRUCT_FOR_ID(ps2) + STRUCT_FOR_ID(query) + STRUCT_FOR_ID(quotetabs) + STRUCT_FOR_ID(raw) + STRUCT_FOR_ID(read) + STRUCT_FOR_ID(read1) + STRUCT_FOR_ID(readable) + STRUCT_FOR_ID(readall) + STRUCT_FOR_ID(readinto) + STRUCT_FOR_ID(readinto1) + STRUCT_FOR_ID(readline) + STRUCT_FOR_ID(readonly) + STRUCT_FOR_ID(real) + STRUCT_FOR_ID(reducer_override) + STRUCT_FOR_ID(registry) + STRUCT_FOR_ID(rel_tol) + STRUCT_FOR_ID(release) + STRUCT_FOR_ID(reload) + STRUCT_FOR_ID(repl) + STRUCT_FOR_ID(replace) + STRUCT_FOR_ID(reserved) + STRUCT_FOR_ID(reset) + STRUCT_FOR_ID(resetids) + STRUCT_FOR_ID(return) + STRUCT_FOR_ID(reverse) + STRUCT_FOR_ID(reversed) + STRUCT_FOR_ID(salt) + STRUCT_FOR_ID(sched_priority) + STRUCT_FOR_ID(scheduler) + STRUCT_FOR_ID(second) + STRUCT_FOR_ID(security_attributes) + STRUCT_FOR_ID(seek) + STRUCT_FOR_ID(seekable) + STRUCT_FOR_ID(selectors) + STRUCT_FOR_ID(self) + STRUCT_FOR_ID(send) + STRUCT_FOR_ID(sep) + STRUCT_FOR_ID(sequence) + STRUCT_FOR_ID(server_hostname) + STRUCT_FOR_ID(server_side) + STRUCT_FOR_ID(session) + STRUCT_FOR_ID(setcomp) + STRUCT_FOR_ID(setpgroup) + STRUCT_FOR_ID(setsid) + STRUCT_FOR_ID(setsigdef) + STRUCT_FOR_ID(setsigmask) + STRUCT_FOR_ID(setstate) + STRUCT_FOR_ID(shape) + STRUCT_FOR_ID(show_cmd) + STRUCT_FOR_ID(signed) + STRUCT_FOR_ID(size) + STRUCT_FOR_ID(sizehint) + STRUCT_FOR_ID(skip_file_prefixes) + STRUCT_FOR_ID(sleep) + STRUCT_FOR_ID(sock) + STRUCT_FOR_ID(sort) + STRUCT_FOR_ID(source) + STRUCT_FOR_ID(source_traceback) + STRUCT_FOR_ID(spam) + STRUCT_FOR_ID(src) + STRUCT_FOR_ID(src_dir_fd) + STRUCT_FOR_ID(stacklevel) + STRUCT_FOR_ID(start) + STRUCT_FOR_ID(statement) + STRUCT_FOR_ID(status) + STRUCT_FOR_ID(stderr) + STRUCT_FOR_ID(stdin) + STRUCT_FOR_ID(stdout) + STRUCT_FOR_ID(step) + STRUCT_FOR_ID(steps) + STRUCT_FOR_ID(store_name) + STRUCT_FOR_ID(strategy) + STRUCT_FOR_ID(strftime) + STRUCT_FOR_ID(strict) + STRUCT_FOR_ID(strict_mode) + STRUCT_FOR_ID(string) + STRUCT_FOR_ID(sub_key) + STRUCT_FOR_ID(symmetric_difference_update) + STRUCT_FOR_ID(tabsize) + STRUCT_FOR_ID(tag) + STRUCT_FOR_ID(target) + STRUCT_FOR_ID(target_is_directory) + STRUCT_FOR_ID(task) + STRUCT_FOR_ID(tb_frame) + STRUCT_FOR_ID(tb_lasti) + STRUCT_FOR_ID(tb_lineno) + STRUCT_FOR_ID(tb_next) + STRUCT_FOR_ID(tell) + STRUCT_FOR_ID(template) + STRUCT_FOR_ID(term) + STRUCT_FOR_ID(text) + STRUCT_FOR_ID(threading) + STRUCT_FOR_ID(throw) + STRUCT_FOR_ID(timeout) + STRUCT_FOR_ID(times) + STRUCT_FOR_ID(timetuple) + STRUCT_FOR_ID(top) + STRUCT_FOR_ID(trace_callback) + STRUCT_FOR_ID(traceback) + STRUCT_FOR_ID(trailers) + STRUCT_FOR_ID(translate) + STRUCT_FOR_ID(true) + STRUCT_FOR_ID(truncate) + STRUCT_FOR_ID(twice) + STRUCT_FOR_ID(txt) + STRUCT_FOR_ID(type) + STRUCT_FOR_ID(type_params) + STRUCT_FOR_ID(tz) + STRUCT_FOR_ID(tzinfo) + STRUCT_FOR_ID(tzname) + STRUCT_FOR_ID(uid) + STRUCT_FOR_ID(unlink) + STRUCT_FOR_ID(unraisablehook) + STRUCT_FOR_ID(uri) + STRUCT_FOR_ID(usedforsecurity) + STRUCT_FOR_ID(value) + STRUCT_FOR_ID(values) + STRUCT_FOR_ID(version) + STRUCT_FOR_ID(volume) + STRUCT_FOR_ID(wait_all) + STRUCT_FOR_ID(warn_on_full_buffer) + STRUCT_FOR_ID(warnings) + STRUCT_FOR_ID(warnoptions) + STRUCT_FOR_ID(wbits) + STRUCT_FOR_ID(week) + STRUCT_FOR_ID(weekday) + STRUCT_FOR_ID(which) + STRUCT_FOR_ID(who) + STRUCT_FOR_ID(withdata) + STRUCT_FOR_ID(writable) + STRUCT_FOR_ID(write) + STRUCT_FOR_ID(write_through) + STRUCT_FOR_ID(year) + STRUCT_FOR_ID(zdict) + } identifiers; + struct { + PyASCIIObject _ascii; + uint8_t _data[2]; + } ascii[128]; + struct { + PyCompactUnicodeObject _latin1; + uint8_t _data[2]; + } latin1[128]; +}; +/* End auto-generated code */ + +#undef ID +#undef STR + + +#define _Py_ID(NAME) \ + (_Py_SINGLETON(strings.identifiers._py_ ## NAME._ascii.ob_base)) +#define _Py_STR(NAME) \ + (_Py_SINGLETON(strings.literals._py_ ## NAME._ascii.ob_base)) +#define _Py_LATIN1_CHR(CH) \ + ((CH) < 128 \ + ? (PyObject*)&_Py_SINGLETON(strings).ascii[(CH)] \ + : (PyObject*)&_Py_SINGLETON(strings).latin1[(CH) - 128]) + +/* _Py_DECLARE_STR() should precede all uses of _Py_STR() in a function. + + This is true even if the same string has already been declared + elsewhere, even in the same file. Mismatched duplicates are detected + by Tools/scripts/generate-global-objects.py. + + Pairing _Py_DECLARE_STR() with every use of _Py_STR() makes sure the + string keeps working even if the declaration is removed somewhere + else. It also makes it clear what the actual string is at every + place it is being used. */ +#define _Py_DECLARE_STR(name, str) + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_GLOBAL_STRINGS_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_hamt.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_hamt.h new file mode 100644 index 000000000..d8742c7cb --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_hamt.h @@ -0,0 +1,134 @@ +#ifndef Py_INTERNAL_HAMT_H +#define Py_INTERNAL_HAMT_H + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +/* +HAMT tree is shaped by hashes of keys. Every group of 5 bits of a hash denotes +the exact position of the key in one level of the tree. Since we're using +32 bit hashes, we can have at most 7 such levels. Although if there are +two distinct keys with equal hashes, they will have to occupy the same +cell in the 7th level of the tree -- so we'd put them in a "collision" node. +Which brings the total possible tree depth to 8. Read more about the actual +layout of the HAMT tree in `hamt.c`. + +This constant is used to define a datastucture for storing iteration state. +*/ +#define _Py_HAMT_MAX_TREE_DEPTH 8 + + +extern PyTypeObject _PyHamt_Type; +extern PyTypeObject _PyHamt_ArrayNode_Type; +extern PyTypeObject _PyHamt_BitmapNode_Type; +extern PyTypeObject _PyHamt_CollisionNode_Type; +extern PyTypeObject _PyHamtKeys_Type; +extern PyTypeObject _PyHamtValues_Type; +extern PyTypeObject _PyHamtItems_Type; + + +/* other API */ + +#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; + + +typedef struct { + PyObject_VAR_HEAD + uint32_t b_bitmap; + PyObject *b_array[1]; +} PyHamtNode_Bitmap; + + +/* 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; + + +/* 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); + +#endif /* !Py_INTERNAL_HAMT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_hashtable.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_hashtable.h new file mode 100644 index 000000000..369d49c42 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_hashtable.h @@ -0,0 +1,150 @@ +#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_RVALUE(((_Py_slist_item_t *)(ITEM))->next) + +#define _Py_SLIST_HEAD(SLIST) _Py_RVALUE(((_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; +}; + +// Export _Py_hashtable functions for '_testinternalcapi' shared extension +PyAPI_FUNC(_Py_hashtable_t *) _Py_hashtable_new( + _Py_hashtable_hash_func hash_func, + _Py_hashtable_compare_func compare_func); + +/* 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_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); +PyAPI_FUNC(size_t) _Py_hashtable_len(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/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_identifier.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_identifier.h new file mode 100644 index 000000000..cda28810a --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_identifier.h @@ -0,0 +1,20 @@ +/* String Literals: _Py_Identifier API */ + +#ifndef Py_INTERNAL_IDENTIFIER_H +#define Py_INTERNAL_IDENTIFIER_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +extern PyObject* _PyType_LookupId(PyTypeObject *, _Py_Identifier *); +extern PyObject* _PyObject_LookupSpecialId(PyObject *, _Py_Identifier *); +extern int _PyObject_SetAttrId(PyObject *, _Py_Identifier *, PyObject *); + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_IDENTIFIER_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_import.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_import.h new file mode 100644 index 000000000..3806e0d3c --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_import.h @@ -0,0 +1,212 @@ +#ifndef Py_LIMITED_API +#ifndef Py_INTERNAL_IMPORT_H +#define Py_INTERNAL_IMPORT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_lock.h" // PyMutex +#include "pycore_hashtable.h" // _Py_hashtable_t + +extern int _PyImport_IsInitialized(PyInterpreterState *); + +// Export for 'pyexpat' shared extension +PyAPI_FUNC(int) _PyImport_SetModule(PyObject *name, PyObject *module); + +extern int _PyImport_SetModuleString(const char *name, PyObject* module); + +extern void _PyImport_AcquireLock(PyInterpreterState *interp); +extern void _PyImport_ReleaseLock(PyInterpreterState *interp); + +// This is used exclusively for the sys and builtins modules: +extern int _PyImport_FixupBuiltin( + PyThreadState *tstate, + PyObject *mod, + const char *name, /* UTF-8 encoded string */ + PyObject *modules + ); + +// Export for many shared extensions, like '_json' +PyAPI_FUNC(PyObject*) _PyImport_GetModuleAttr(PyObject *, PyObject *); + +// Export for many shared extensions, like '_datetime' +PyAPI_FUNC(PyObject*) _PyImport_GetModuleAttrString(const char *, const char *); + + +struct _import_runtime_state { + /* The builtin modules (defined in config.c). */ + struct _inittab *inittab; + /* The most recent value assigned to a PyModuleDef.m_base.m_index. + This is incremented each time PyModuleDef_Init() is called, + which is just about every time an extension module is imported. + See PyInterpreterState.modules_by_index for more info. */ + Py_ssize_t last_module_index; + struct { + /* A lock to guard the cache. */ + PyMutex mutex; + /* The actual cache of (filename, name, PyModuleDef) for modules. + Only legacy (single-phase init) extension modules are added + and only if they support multiple initialization (m_size >- 0) + or are imported in the main interpreter. + This is initialized lazily in fix_up_extension() in import.c. + Modules are added there and looked up in _imp.find_extension(). */ + _Py_hashtable_t *hashtable; + } extensions; + /* Package context -- the full module name for package imports */ + const char * pkgcontext; +}; + +struct _import_state { + /* cached sys.modules dictionary */ + PyObject *modules; + /* This is the list of module objects for all legacy (single-phase init) + extension modules ever loaded in this process (i.e. imported + in this interpreter or in any other). Py_None stands in for + modules that haven't actually been imported in this interpreter. + + A module's index (PyModuleDef.m_base.m_index) is used to look up + the corresponding module object for this interpreter, if any. + (See PyState_FindModule().) When any extension module + is initialized during import, its moduledef gets initialized by + PyModuleDef_Init(), and the first time that happens for each + PyModuleDef, its index gets set to the current value of + a global counter (see _PyRuntimeState.imports.last_module_index). + The entry for that index in this interpreter remains unset until + the module is actually imported here. (Py_None is used as + a placeholder.) Note that multi-phase init modules always get + an index for which there will never be a module set. + + This is initialized lazily in PyState_AddModule(), which is also + where modules get added. */ + PyObject *modules_by_index; + /* importlib module._bootstrap */ + PyObject *importlib; + /* override for config->use_frozen_modules (for tests) + (-1: "off", 1: "on", 0: no override) */ + int override_frozen_modules; + int override_multi_interp_extensions_check; +#ifdef HAVE_DLOPEN + int dlopenflags; +#endif + PyObject *import_func; + /* The global import lock. */ + _PyRecursiveMutex lock; + /* diagnostic info in PyImport_ImportModuleLevelObject() */ + struct { + int import_level; + PyTime_t accumulated; + int header; + } find_and_load; +}; + +#ifdef HAVE_DLOPEN +# include // RTLD_NOW, RTLD_LAZY +# if HAVE_DECL_RTLD_NOW +# define _Py_DLOPEN_FLAGS RTLD_NOW +# else +# define _Py_DLOPEN_FLAGS RTLD_LAZY +# endif +# define DLOPENFLAGS_INIT .dlopenflags = _Py_DLOPEN_FLAGS, +#else +# define _Py_DLOPEN_FLAGS 0 +# define DLOPENFLAGS_INIT +#endif + +#define IMPORTS_INIT \ + { \ + DLOPENFLAGS_INIT \ + .find_and_load = { \ + .header = 1, \ + }, \ + } + +extern void _PyImport_ClearCore(PyInterpreterState *interp); + +extern Py_ssize_t _PyImport_GetNextModuleIndex(void); +extern const char * _PyImport_ResolveNameWithPackageContext(const char *name); +extern const char * _PyImport_SwapPackageContext(const char *newcontext); + +extern int _PyImport_GetDLOpenFlags(PyInterpreterState *interp); +extern void _PyImport_SetDLOpenFlags(PyInterpreterState *interp, int new_val); + +extern PyObject * _PyImport_InitModules(PyInterpreterState *interp); +extern PyObject * _PyImport_GetModules(PyInterpreterState *interp); +extern void _PyImport_ClearModules(PyInterpreterState *interp); + +extern void _PyImport_ClearModulesByIndex(PyInterpreterState *interp); + +extern int _PyImport_InitDefaultImportFunc(PyInterpreterState *interp); +extern int _PyImport_IsDefaultImportFunc( + PyInterpreterState *interp, + PyObject *func); + +extern PyObject * _PyImport_GetImportlibLoader( + PyInterpreterState *interp, + const char *loader_name); +extern PyObject * _PyImport_GetImportlibExternalLoader( + PyInterpreterState *interp, + const char *loader_name); +extern PyObject * _PyImport_BlessMyLoader( + PyInterpreterState *interp, + PyObject *module_globals); +extern PyObject * _PyImport_ImportlibModuleRepr( + PyInterpreterState *interp, + PyObject *module); + + +extern PyStatus _PyImport_Init(void); +extern void _PyImport_Fini(void); +extern void _PyImport_Fini2(void); + +extern PyStatus _PyImport_InitCore( + PyThreadState *tstate, + PyObject *sysmod, + int importlib); +extern PyStatus _PyImport_InitExternal(PyThreadState *tstate); +extern void _PyImport_FiniCore(PyInterpreterState *interp); +extern void _PyImport_FiniExternal(PyInterpreterState *interp); + + +extern PyObject* _PyImport_GetBuiltinModuleNames(void); + +struct _module_alias { + const char *name; /* ASCII encoded string */ + const char *orig; /* ASCII encoded string */ +}; + +// Export these 3 symbols for test_ctypes +PyAPI_DATA(const struct _frozen*) _PyImport_FrozenBootstrap; +PyAPI_DATA(const struct _frozen*) _PyImport_FrozenStdlib; +PyAPI_DATA(const struct _frozen*) _PyImport_FrozenTest; + +extern const struct _module_alias * _PyImport_FrozenAliases; + +extern int _PyImport_CheckSubinterpIncompatibleExtensionAllowed( + const char *name); + + +// Export for '_testinternalcapi' shared extension +PyAPI_FUNC(int) _PyImport_ClearExtension(PyObject *name, PyObject *filename); + +#ifdef Py_GIL_DISABLED +// Assuming that the GIL is enabled from a call to +// _PyEval_EnableGILTransient(), resolve the transient request depending on the +// state of the module argument: +// - If module is NULL or a PyModuleObject with md_gil == Py_MOD_GIL_NOT_USED, +// call _PyEval_DisableGIL(). +// - Otherwise, call _PyEval_EnableGILPermanent(). If the GIL was not already +// enabled permanently, issue a warning referencing the module's name. +// +// This function may raise an exception. +extern int _PyImport_CheckGILForModule(PyObject *module, PyObject *module_name); +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_IMPORT_H */ +#endif /* !Py_LIMITED_API */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_importdl.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_importdl.h new file mode 100644 index 000000000..e5f222b37 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_importdl.h @@ -0,0 +1,135 @@ +#ifndef Py_INTERNAL_IMPORTDL_H +#define Py_INTERNAL_IMPORTDL_H + +#include "patchlevel.h" // PY_MAJOR_VERSION + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +extern const char *_PyImport_DynLoadFiletab[]; + + +typedef enum ext_module_kind { + _Py_ext_module_kind_UNKNOWN = 0, + _Py_ext_module_kind_SINGLEPHASE = 1, + _Py_ext_module_kind_MULTIPHASE = 2, + _Py_ext_module_kind_INVALID = 3, +} _Py_ext_module_kind; + +typedef enum ext_module_origin { + _Py_ext_module_origin_CORE = 1, + _Py_ext_module_origin_BUILTIN = 2, + _Py_ext_module_origin_DYNAMIC = 3, +} _Py_ext_module_origin; + +/* Input for loading an extension module. */ +struct _Py_ext_module_loader_info { + PyObject *filename; +#ifndef MS_WINDOWS + PyObject *filename_encoded; +#endif + PyObject *name; + PyObject *name_encoded; + /* path is always a borrowed ref of name or filename, + * depending on if it's builtin or not. */ + PyObject *path; + _Py_ext_module_origin origin; + const char *hook_prefix; + const char *newcontext; +}; +extern void _Py_ext_module_loader_info_clear( + struct _Py_ext_module_loader_info *info); +extern int _Py_ext_module_loader_info_init( + struct _Py_ext_module_loader_info *info, + PyObject *name, + PyObject *filename, + _Py_ext_module_origin origin); +extern int _Py_ext_module_loader_info_init_for_core( + struct _Py_ext_module_loader_info *p_info, + PyObject *name); +extern int _Py_ext_module_loader_info_init_for_builtin( + struct _Py_ext_module_loader_info *p_info, + PyObject *name); +extern int _Py_ext_module_loader_info_init_from_spec( + struct _Py_ext_module_loader_info *info, + PyObject *spec); + +/* The result from running an extension module's init function. */ +struct _Py_ext_module_loader_result { + PyModuleDef *def; + PyObject *module; + _Py_ext_module_kind kind; + struct _Py_ext_module_loader_result_error *err; + struct _Py_ext_module_loader_result_error { + enum _Py_ext_module_loader_result_error_kind { + _Py_ext_module_loader_result_EXCEPTION = 0, + _Py_ext_module_loader_result_ERR_MISSING = 1, + _Py_ext_module_loader_result_ERR_UNREPORTED_EXC = 2, + _Py_ext_module_loader_result_ERR_UNINITIALIZED = 3, + _Py_ext_module_loader_result_ERR_NONASCII_NOT_MULTIPHASE = 4, + _Py_ext_module_loader_result_ERR_NOT_MODULE = 5, + _Py_ext_module_loader_result_ERR_MISSING_DEF = 6, + } kind; + PyObject *exc; + } _err; +}; +extern void _Py_ext_module_loader_result_clear( + struct _Py_ext_module_loader_result *res); +extern void _Py_ext_module_loader_result_apply_error( + struct _Py_ext_module_loader_result *res, + const char *name); + +/* The module init function. */ +typedef PyObject *(*PyModInitFunction)(void); +extern PyModInitFunction _PyImport_GetModInitFunc( + struct _Py_ext_module_loader_info *info, + FILE *fp); +extern int _PyImport_RunModInitFunc( + PyModInitFunction p0, + struct _Py_ext_module_loader_info *info, + struct _Py_ext_module_loader_result *p_res); + + +/* Max length of module suffix searched for -- accommodates "module.slb" */ +#define MAXSUFFIXSIZE 12 + +#ifdef MS_WINDOWS +#include +typedef FARPROC dl_funcptr; + +#ifdef _DEBUG +# define PYD_DEBUG_SUFFIX "_d" +#else +# define PYD_DEBUG_SUFFIX "" +#endif + +#ifdef Py_GIL_DISABLED +# define PYD_THREADING_TAG "t" +#else +# define PYD_THREADING_TAG "" +#endif + +#ifdef PYD_PLATFORM_TAG +# define PYD_SOABI "cp" Py_STRINGIFY(PY_MAJOR_VERSION) Py_STRINGIFY(PY_MINOR_VERSION) PYD_THREADING_TAG "-" PYD_PLATFORM_TAG +#else +# define PYD_SOABI "cp" Py_STRINGIFY(PY_MAJOR_VERSION) Py_STRINGIFY(PY_MINOR_VERSION) PYD_THREADING_TAG +#endif + +#define PYD_TAGGED_SUFFIX PYD_DEBUG_SUFFIX "." PYD_SOABI ".pyd" +#define PYD_UNTAGGED_SUFFIX PYD_DEBUG_SUFFIX ".pyd" + +#else +typedef void (*dl_funcptr)(void); +#endif + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_IMPORTDL_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_initconfig.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_initconfig.h new file mode 100644 index 000000000..1c6816134 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_initconfig.h @@ -0,0 +1,200 @@ +#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_ERRMSG "memory allocation failed" +#define _PyStatus_NO_MEMORY() _PyStatus_ERR(_PyStatus_NO_MEMORY_ERRMSG) +#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) + +// Export for '_testinternalcapi' shared extension +PyAPI_FUNC(void) _PyErr_SetFromPyStatus(PyStatus status); + + +/* --- PyWideStringList ------------------------------------------------ */ + +#define _PyWideStringList_INIT (PyWideStringList){.length = 0, .items = NULL} + +#ifndef NDEBUG +extern int _PyWideStringList_CheckConsistency(const PyWideStringList *list); +#endif +extern void _PyWideStringList_Clear(PyWideStringList *list); +extern int _PyWideStringList_Copy(PyWideStringList *list, + const PyWideStringList *list2); +extern PyStatus _PyWideStringList_Extend(PyWideStringList *list, + const PyWideStringList *list2); +extern 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; + +extern PyStatus _PyArgv_AsWstrList(const _PyArgv *args, + PyWideStringList *list); + + +/* --- Helper functions ------------------------------------------- */ + +extern int _Py_str_to_int( + const char *str, + int *result); +extern const wchar_t* _Py_get_xoption( + const PyWideStringList *xoptions, + const wchar_t *name); +extern const char* _Py_GetEnv( + int use_environment, + const char *name); +extern void _Py_get_env_flag( + int use_environment, + int *flag, + const char *name); + +/* Py_GetArgcArgv() helper */ +extern 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 */ + int warn_default_encoding; /* -X warn_default_encoding and PYTHONWARNDEFAULTENCODING */ +} _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 ----------------------------------------------- */ + +// Export for '_testembed' program +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; + +typedef enum { + /* For now, this means the GIL is enabled. + + gh-116329: This will eventually change to "the GIL is disabled but can + be reenabled by loading an incompatible extension module." */ + _PyConfig_GIL_DEFAULT = -1, + + /* The GIL has been forced off or on, and will not be affected by module loading. */ + _PyConfig_GIL_DISABLE = 0, + _PyConfig_GIL_ENABLE = 1, +} _PyConfigGILEnum; + +// Export for '_testembed' program +PyAPI_FUNC(void) _PyConfig_InitCompatConfig(PyConfig *config); + +extern PyStatus _PyConfig_Copy( + PyConfig *config, + const PyConfig *config2); +extern PyStatus _PyConfig_InitPathConfig( + PyConfig *config, + int compute_path_config); +extern PyStatus _PyConfig_InitImportConfig(PyConfig *config); +extern PyStatus _PyConfig_Read(PyConfig *config, int compute_path_config); +extern PyStatus _PyConfig_Write(const PyConfig *config, + struct pyruntimestate *runtime); +extern PyStatus _PyConfig_SetPyArgv( + PyConfig *config, + const _PyArgv *args); + + +extern void _Py_DumpPathConfig(PyThreadState *tstate); + + +/* --- Function used for testing ---------------------------------- */ + +// Export these functions for '_testinternalcapi' shared extension +PyAPI_FUNC(PyObject*) _PyConfig_AsDict(const PyConfig *config); +PyAPI_FUNC(int) _PyConfig_FromDict(PyConfig *config, PyObject *dict); +PyAPI_FUNC(PyObject*) _Py_Get_Getpath_CodeObject(void); +PyAPI_FUNC(PyObject*) _Py_GetConfigsAsDict(void); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_CORECONFIG_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_instruction_sequence.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_instruction_sequence.h new file mode 100644 index 000000000..d6a79616d --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_instruction_sequence.h @@ -0,0 +1,73 @@ +#ifndef Py_INTERNAL_INSTRUCTION_SEQUENCE_H +#define Py_INTERNAL_INSTRUCTION_SEQUENCE_H + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_symtable.h" + +#ifdef __cplusplus +extern "C" { +#endif + + +typedef struct { + int h_label; + int h_startdepth; + int h_preserve_lasti; +} _PyExceptHandlerInfo; + +typedef struct { + int i_opcode; + int i_oparg; + _Py_SourceLocation i_loc; + _PyExceptHandlerInfo i_except_handler_info; + + /* Temporary fields, used by the assembler and in instr_sequence_to_cfg */ + int i_target; + int i_offset; +} _PyInstruction; + +typedef struct instruction_sequence { + PyObject_HEAD + _PyInstruction *s_instrs; + int s_allocated; + int s_used; + + int s_next_free_label; /* next free label id */ + + /* Map of a label id to instruction offset (index into s_instrs). + * If s_labelmap is NULL, then each label id is the offset itself. + */ + int *s_labelmap; + int s_labelmap_size; + + /* PyList of instruction sequences of nested functions */ + PyObject *s_nested; +} _PyInstructionSequence; + +typedef struct { + int id; +} _PyJumpTargetLabel; + +PyAPI_FUNC(PyObject*)_PyInstructionSequence_New(void); + +int _PyInstructionSequence_UseLabel(_PyInstructionSequence *seq, int lbl); +int _PyInstructionSequence_Addop(_PyInstructionSequence *seq, + int opcode, int oparg, + _Py_SourceLocation loc); +_PyJumpTargetLabel _PyInstructionSequence_NewLabel(_PyInstructionSequence *seq); +int _PyInstructionSequence_ApplyLabelMap(_PyInstructionSequence *seq); +int _PyInstructionSequence_InsertInstruction(_PyInstructionSequence *seq, int pos, + int opcode, int oparg, _Py_SourceLocation loc); +int _PyInstructionSequence_AddNested(_PyInstructionSequence *seq, _PyInstructionSequence *nested); +void PyInstructionSequence_Fini(_PyInstructionSequence *seq); + +extern PyTypeObject _PyInstructionSequence_Type; +#define _PyInstructionSequence_Check(v) Py_IS_TYPE((v), &_PyInstructionSequence_Type) + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_INSTRUCTION_SEQUENCE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_instruments.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_instruments.h new file mode 100644 index 000000000..c98e82c8b --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_instruments.h @@ -0,0 +1,75 @@ +#ifndef Py_INTERNAL_INSTRUMENT_H +#define Py_INTERNAL_INSTRUMENT_H + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_frame.h" // _PyInterpreterFrame + +#ifdef __cplusplus +extern "C" { +#endif + +#define PY_MONITORING_TOOL_IDS 8 + +typedef uint32_t _PyMonitoringEventSet; + +/* Tool IDs */ + +/* These are defined in PEP 669 for convenience to avoid clashes */ +#define PY_MONITORING_DEBUGGER_ID 0 +#define PY_MONITORING_COVERAGE_ID 1 +#define PY_MONITORING_PROFILER_ID 2 +#define PY_MONITORING_OPTIMIZER_ID 5 + +/* Internal IDs used to suuport sys.setprofile() and sys.settrace() */ +#define PY_MONITORING_SYS_PROFILE_ID 6 +#define PY_MONITORING_SYS_TRACE_ID 7 + + +PyObject *_PyMonitoring_RegisterCallback(int tool_id, int event_id, PyObject *obj); + +int _PyMonitoring_SetEvents(int tool_id, _PyMonitoringEventSet events); +int _PyMonitoring_SetLocalEvents(PyCodeObject *code, int tool_id, _PyMonitoringEventSet events); +int _PyMonitoring_GetLocalEvents(PyCodeObject *code, int tool_id, _PyMonitoringEventSet *events); + +extern int +_Py_call_instrumentation(PyThreadState *tstate, int event, + _PyInterpreterFrame *frame, _Py_CODEUNIT *instr); + +extern int +_Py_call_instrumentation_line(PyThreadState *tstate, _PyInterpreterFrame* frame, + _Py_CODEUNIT *instr, _Py_CODEUNIT *prev); + +extern int +_Py_call_instrumentation_instruction( + PyThreadState *tstate, _PyInterpreterFrame* frame, _Py_CODEUNIT *instr); + +_Py_CODEUNIT * +_Py_call_instrumentation_jump( + PyThreadState *tstate, int event, + _PyInterpreterFrame *frame, _Py_CODEUNIT *instr, _Py_CODEUNIT *target); + +extern int +_Py_call_instrumentation_arg(PyThreadState *tstate, int event, + _PyInterpreterFrame *frame, _Py_CODEUNIT *instr, PyObject *arg); + +extern int +_Py_call_instrumentation_2args(PyThreadState *tstate, int event, + _PyInterpreterFrame *frame, _Py_CODEUNIT *instr, PyObject *arg0, PyObject *arg1); + +extern void +_Py_call_instrumentation_exc2(PyThreadState *tstate, int event, + _PyInterpreterFrame *frame, _Py_CODEUNIT *instr, PyObject *arg0, PyObject *arg1); + +extern int +_Py_Instrumentation_GetLine(PyCodeObject *code, int index); + +extern PyObject _PyInstrumentation_MISSING; +extern PyObject _PyInstrumentation_DISABLE; + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_INSTRUMENT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_interp.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_interp.h new file mode 100644 index 000000000..45d85b2ba --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_interp.h @@ -0,0 +1,421 @@ +#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 // bool + +#include "pycore_ast_state.h" // struct ast_state +#include "pycore_atexit.h" // struct atexit_state +#include "pycore_ceval_state.h" // struct _ceval_state +#include "pycore_code.h" // struct callable_cache +#include "pycore_codecs.h" // struct codecs_state +#include "pycore_context.h" // struct _Py_context_state +#include "pycore_crossinterp.h" // struct _xidregistry +#include "pycore_dict_state.h" // struct _Py_dict_state +#include "pycore_dtoa.h" // struct _dtoa_state +#include "pycore_exceptions.h" // struct _Py_exc_state +#include "pycore_floatobject.h" // struct _Py_float_state +#include "pycore_function.h" // FUNC_MAX_WATCHERS +#include "pycore_gc.h" // struct _gc_runtime_state +#include "pycore_genobject.h" // struct _Py_async_gen_state +#include "pycore_global_objects.h"// struct _Py_interp_cached_objects +#include "pycore_import.h" // struct _import_state +#include "pycore_instruments.h" // _PY_MONITORING_EVENTS +#include "pycore_list.h" // struct _Py_list_state +#include "pycore_mimalloc.h" // struct _mimalloc_interp_state +#include "pycore_object_state.h" // struct _py_object_state +#include "pycore_optimizer.h" // _PyOptimizerObject +#include "pycore_obmalloc.h" // struct _obmalloc_state +#include "pycore_qsbr.h" // struct _qsbr_state +#include "pycore_tstate.h" // _PyThreadStateImpl +#include "pycore_tuple.h" // struct _Py_tuple_state +#include "pycore_typeobject.h" // struct types_state +#include "pycore_unicodeobject.h" // struct _Py_unicode_state +#include "pycore_warnings.h" // struct _warnings_runtime_state + + +struct _Py_long_state { + int max_str_digits; +}; + +// Support for stop-the-world events. This exists in both the PyRuntime struct +// for global pauses and in each PyInterpreterState for per-interpreter pauses. +struct _stoptheworld_state { + PyMutex mutex; // Serializes stop-the-world attempts. + + // NOTE: The below fields are protected by HEAD_LOCK(runtime), not by the + // above mutex. + bool requested; // Set when a pause is requested. + bool world_stopped; // Set when the world is stopped. + bool is_global; // Set when contained in PyRuntime struct. + + PyEvent stop_event; // Set when thread_countdown reaches zero. + Py_ssize_t thread_countdown; // Number of threads that must pause. + + PyThreadState *requester; // Thread that requested the pause (may be NULL). +}; + +#ifdef Py_GIL_DISABLED +// This should be prime but otherwise the choice is arbitrary. A larger value +// increases concurrency at the expense of memory. +# define NUM_WEAKREF_LIST_LOCKS 127 +#endif + +/* cross-interpreter data registry */ + +/* Tracks some rare events per-interpreter, used by the optimizer to turn on/off + specific optimizations. */ +typedef struct _rare_events { + /* Setting an object's class, obj.__class__ = ... */ + uint8_t set_class; + /* Setting the bases of a class, cls.__bases__ = ... */ + uint8_t set_bases; + /* Setting the PEP 523 frame eval function, _PyInterpreterState_SetFrameEvalFunc() */ + uint8_t set_eval_frame_func; + /* Modifying the builtins, __builtins__.__dict__[var] = ... */ + uint8_t builtin_dict; + /* Modifying a function, e.g. func.__defaults__ = ..., etc. */ + uint8_t func_modification; +} _rare_events; + +/* interpreter state */ + +/* PyInterpreterState holds the global state for one of the runtime's + interpreters. Typically the initial (main) interpreter is the only one. + + The PyInterpreterState typedef is in Include/pytypedefs.h. + */ +struct _is { + + /* This struct contains the eval_breaker, + * which is by far the hottest field in this struct + * and should be placed at the beginning. */ + struct _ceval_state ceval; + + PyInterpreterState *next; + + int64_t id; + int64_t id_refcount; + int requires_idref; + PyThread_type_lock id_mutex; + +#define _PyInterpreterState_WHENCE_NOTSET -1 +#define _PyInterpreterState_WHENCE_UNKNOWN 0 +#define _PyInterpreterState_WHENCE_RUNTIME 1 +#define _PyInterpreterState_WHENCE_LEGACY_CAPI 2 +#define _PyInterpreterState_WHENCE_CAPI 3 +#define _PyInterpreterState_WHENCE_XI 4 +#define _PyInterpreterState_WHENCE_STDLIB 5 +#define _PyInterpreterState_WHENCE_MAX 5 + long _whence; + + /* Has been initialized to a safe state. + + In order to be effective, this must be set to 0 during or right + after allocation. */ + int _initialized; + /* Has been fully initialized via pylifecycle.c. */ + int _ready; + int finalizing; + + uintptr_t last_restart_version; + struct pythreads { + uint64_t next_unique_id; + /* The linked list of threads, newest first. */ + PyThreadState *head; + /* The thread currently executing in the __main__ module, if any. */ + PyThreadState *main; + /* Used in Modules/_threadmodule.c. */ + Py_ssize_t count; + /* 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 stacksize; + } threads; + + /* 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; + + /* Set by Py_EndInterpreter(). + + Use _PyInterpreterState_GetFinalizing() + and _PyInterpreterState_SetFinalizing() + to access it, don't access it directly. */ + PyThreadState* _finalizing; + /* The ID of the OS thread in which we are finalizing. */ + unsigned long _finalizing_id; + + struct _gc_runtime_state gc; + + /* The following fields are here to avoid allocation during init. + The data is exposed through PyInterpreterState pointer fields. + These fields should not be accessed directly outside of init. + + All other PyInterpreterState pointer fields are populated when + needed and default to NULL. + + For now there are some exceptions to that rule, which require + allocation during init. These will be addressed on a case-by-case + basis. Also see _PyRuntimeState regarding the various mutex fields. + */ + + // Dictionary of the sys module + PyObject *sysdict; + + // Dictionary of the builtins module + PyObject *builtins; + + struct _import_state imports; + + /* The per-interpreter GIL, which might not be used. */ + struct _gil_runtime_state _gil; + + /* ---------- IMPORTANT --------------------------- + The fields above this line are declared as early as + possible to facilitate out-of-process observability + tools. */ + + struct codecs_state codecs; + + PyConfig config; + unsigned long feature_flags; + + PyObject *dict; /* Stores per-interpreter state */ + + PyObject *sysdict_copy; + PyObject *builtins_copy; + // Initialized to _PyEval_EvalFrameDefault(). + _PyFrameEvalFunction eval_frame; + + PyFunction_WatchCallback func_watchers[FUNC_MAX_WATCHERS]; + // One bit is set for each non-NULL entry in func_watchers + uint8_t active_func_watchers; + + Py_ssize_t co_extra_user_count; + freefunc co_extra_freefuncs[MAX_CO_EXTRA_USERS]; + + /* cross-interpreter data and utils */ + struct _xi_state xi; + +#ifdef HAVE_FORK + PyObject *before_forkers; + PyObject *after_forkers_parent; + PyObject *after_forkers_child; +#endif + + struct _warnings_runtime_state warnings; + struct atexit_state atexit; + struct _stoptheworld_state stoptheworld; + struct _qsbr_shared qsbr; + +#if defined(Py_GIL_DISABLED) + struct _mimalloc_interp_state mimalloc; + struct _brc_state brc; // biased reference counting state + PyMutex weakref_locks[NUM_WEAKREF_LIST_LOCKS]; +#endif + + // Per-interpreter state for the obmalloc allocator. For the main + // interpreter and for all interpreters that don't have their + // own obmalloc state, this points to the static structure in + // obmalloc.c obmalloc_state_main. For other interpreters, it is + // heap allocated by _PyMem_init_obmalloc() and freed when the + // interpreter structure is freed. In the case of a heap allocated + // obmalloc state, it is not safe to hold on to or use memory after + // the interpreter is freed. The obmalloc state corresponding to + // that allocated memory is gone. See free_obmalloc_arenas() for + // more comments. + struct _obmalloc_state *obmalloc; + + PyObject *audit_hooks; + PyType_WatchCallback type_watchers[TYPE_MAX_WATCHERS]; + PyCode_WatchCallback code_watchers[CODE_MAX_WATCHERS]; + // One bit is set for each non-NULL entry in code_watchers + uint8_t active_code_watchers; + + struct _py_object_state object_state; + struct _Py_unicode_state unicode; + struct _Py_long_state long_state; + struct _dtoa_state dtoa; + struct _py_func_state func_state; + struct _py_code_state code_state; + + struct _Py_dict_state dict_state; + struct _Py_exc_state exc_state; + struct _Py_mem_interp_free_queue mem_free_queue; + + struct ast_state ast; + struct types_state types; + struct callable_cache callable_cache; + _PyOptimizerObject *optimizer; + _PyExecutorObject *executor_list_head; + + _rare_events rare_events; + PyDict_WatchCallback builtins_dict_watcher; + + _Py_GlobalMonitors monitors; + bool sys_profile_initialized; + bool sys_trace_initialized; + Py_ssize_t sys_profiling_threads; /* Count of threads with c_profilefunc set */ + Py_ssize_t sys_tracing_threads; /* Count of threads with c_tracefunc set */ + PyObject *monitoring_callables[PY_MONITORING_TOOL_IDS][_PY_MONITORING_EVENTS]; + PyObject *monitoring_tool_names[PY_MONITORING_TOOL_IDS]; + + struct _Py_interp_cached_objects cached_objects; + struct _Py_interp_static_objects static_objects; + + /* the initial PyInterpreterState.threads.head */ + _PyThreadStateImpl _initial_thread; + Py_ssize_t _interactive_src_count; +}; + + +/* other API */ + +extern void _PyInterpreterState_Clear(PyThreadState *tstate); + + +static inline PyThreadState* +_PyInterpreterState_GetFinalizing(PyInterpreterState *interp) { + return (PyThreadState*)_Py_atomic_load_ptr_relaxed(&interp->_finalizing); +} + +static inline unsigned long +_PyInterpreterState_GetFinalizingID(PyInterpreterState *interp) { + return _Py_atomic_load_ulong_relaxed(&interp->_finalizing_id); +} + +static inline void +_PyInterpreterState_SetFinalizing(PyInterpreterState *interp, PyThreadState *tstate) { + _Py_atomic_store_ptr_relaxed(&interp->_finalizing, tstate); + if (tstate == NULL) { + _Py_atomic_store_ulong_relaxed(&interp->_finalizing_id, 0); + } + else { + // XXX Re-enable this assert once gh-109860 is fixed. + //assert(tstate->thread_id == PyThread_get_thread_ident()); + _Py_atomic_store_ulong_relaxed(&interp->_finalizing_id, + tstate->thread_id); + } +} + + + +// Exports for the _testinternalcapi module. +PyAPI_FUNC(int64_t) _PyInterpreterState_ObjectToID(PyObject *); +PyAPI_FUNC(PyInterpreterState *) _PyInterpreterState_LookUpID(int64_t); +PyAPI_FUNC(PyInterpreterState *) _PyInterpreterState_LookUpIDObject(PyObject *); +PyAPI_FUNC(int) _PyInterpreterState_IDInitref(PyInterpreterState *); +PyAPI_FUNC(int) _PyInterpreterState_IDIncref(PyInterpreterState *); +PyAPI_FUNC(void) _PyInterpreterState_IDDecref(PyInterpreterState *); + +PyAPI_FUNC(int) _PyInterpreterState_IsReady(PyInterpreterState *interp); + +PyAPI_FUNC(long) _PyInterpreterState_GetWhence(PyInterpreterState *interp); +extern void _PyInterpreterState_SetWhence( + PyInterpreterState *interp, + long whence); + +extern const PyConfig* _PyInterpreterState_GetConfig(PyInterpreterState *interp); + +// Get a copy of the current interpreter configuration. +// +// Return 0 on success. Raise an exception and return -1 on error. +// +// The caller must initialize 'config', using PyConfig_InitPythonConfig() +// for example. +// +// Python must be preinitialized to call this method. +// The caller must hold the GIL. +// +// Once done with the configuration, PyConfig_Clear() must be called to clear +// it. +// +// Export for '_testinternalcapi' shared extension. +PyAPI_FUNC(int) _PyInterpreterState_GetConfigCopy( + struct PyConfig *config); + +// Set the configuration of the current interpreter. +// +// This function should be called during or just after the Python +// initialization. +// +// Update the sys module with the new configuration. If the sys module was +// modified directly after the Python initialization, these changes are lost. +// +// Some configuration like faulthandler or warnoptions can be updated in the +// configuration, but don't reconfigure Python (don't enable/disable +// faulthandler and don't reconfigure warnings filters). +// +// Return 0 on success. Raise an exception and return -1 on error. +// +// The configuration should come from _PyInterpreterState_GetConfigCopy(). +// +// Export for '_testinternalcapi' shared extension. +PyAPI_FUNC(int) _PyInterpreterState_SetConfig( + const struct PyConfig *config); + + +/* +Runtime Feature Flags + +Each flag indicate whether or not a specific runtime feature +is available in a given context. For example, forking the process +might not be allowed in the current interpreter (i.e. os.fork() would fail). +*/ + +/* Set if the interpreter share obmalloc runtime state + with the main interpreter. */ +#define Py_RTFLAGS_USE_MAIN_OBMALLOC (1UL << 5) + +/* Set if import should check a module for subinterpreter support. */ +#define Py_RTFLAGS_MULTI_INTERP_EXTENSIONS (1UL << 8) + +/* Set if threads are allowed. */ +#define Py_RTFLAGS_THREADS (1UL << 10) + +/* Set if daemon threads are allowed. */ +#define Py_RTFLAGS_DAEMON_THREADS (1UL << 11) + +/* Set if os.fork() is allowed. */ +#define Py_RTFLAGS_FORK (1UL << 15) + +/* Set if os.exec*() is allowed. */ +#define Py_RTFLAGS_EXEC (1UL << 16) + +extern int _PyInterpreterState_HasFeature(PyInterpreterState *interp, + unsigned long feature); + +PyAPI_FUNC(PyStatus) _PyInterpreterState_New( + PyThreadState *tstate, + PyInterpreterState **pinterp); + + +#define RARE_EVENT_INTERP_INC(interp, name) \ + do { \ + /* saturating add */ \ + int val = FT_ATOMIC_LOAD_UINT8_RELAXED(interp->rare_events.name); \ + if (val < UINT8_MAX) { \ + FT_ATOMIC_STORE_UINT8(interp->rare_events.name, val + 1); \ + } \ + RARE_EVENT_STAT_INC(name); \ + } while (0); \ + +#define RARE_EVENT_INC(name) \ + do { \ + PyInterpreterState *interp = PyInterpreterState_Get(); \ + RARE_EVENT_INTERP_INC(interp, name); \ + } while (0); \ + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_INTERP_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_intrinsics.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_intrinsics.h new file mode 100644 index 000000000..39c2a30f6 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_intrinsics.h @@ -0,0 +1,51 @@ +#ifndef Py_INTERNAL_INTRINSIC_H +#define Py_INTERNAL_INTRINSIC_H + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +/* Unary Functions: */ +#define INTRINSIC_1_INVALID 0 +#define INTRINSIC_PRINT 1 +#define INTRINSIC_IMPORT_STAR 2 +#define INTRINSIC_STOPITERATION_ERROR 3 +#define INTRINSIC_ASYNC_GEN_WRAP 4 +#define INTRINSIC_UNARY_POSITIVE 5 +#define INTRINSIC_LIST_TO_TUPLE 6 +#define INTRINSIC_TYPEVAR 7 +#define INTRINSIC_PARAMSPEC 8 +#define INTRINSIC_TYPEVARTUPLE 9 +#define INTRINSIC_SUBSCRIPT_GENERIC 10 +#define INTRINSIC_TYPEALIAS 11 + +#define MAX_INTRINSIC_1 11 + + +/* Binary Functions: */ +#define INTRINSIC_2_INVALID 0 +#define INTRINSIC_PREP_RERAISE_STAR 1 +#define INTRINSIC_TYPEVAR_WITH_BOUND 2 +#define INTRINSIC_TYPEVAR_WITH_CONSTRAINTS 3 +#define INTRINSIC_SET_FUNCTION_TYPE_PARAMS 4 +#define INTRINSIC_SET_TYPEPARAM_DEFAULT 5 + +#define MAX_INTRINSIC_2 5 + +typedef PyObject *(*intrinsic_func1)(PyThreadState* tstate, PyObject *value); +typedef PyObject *(*intrinsic_func2)(PyThreadState* tstate, PyObject *value1, PyObject *value2); + +typedef struct { + intrinsic_func1 func; + const char *name; +} intrinsic_func1_info; + +typedef struct { + intrinsic_func2 func; + const char *name; +} intrinsic_func2_info; + +PyAPI_DATA(const intrinsic_func1_info) _PyIntrinsics_UnaryFunctions[]; +PyAPI_DATA(const intrinsic_func2_info) _PyIntrinsics_BinaryFunctions[]; + +#endif // !Py_INTERNAL_INTRINSIC_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_jit.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_jit.h new file mode 100644 index 000000000..17bd23f07 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_jit.h @@ -0,0 +1,25 @@ +#ifndef Py_INTERNAL_JIT_H +#define Py_INTERNAL_JIT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#ifdef _Py_JIT + +typedef _Py_CODEUNIT *(*jit_func)(_PyInterpreterFrame *frame, PyObject **stack_pointer, PyThreadState *tstate); + +int _PyJIT_Compile(_PyExecutorObject *executor, const _PyUOpInstruction *trace, size_t length); +void _PyJIT_Free(_PyExecutorObject *executor); + +#endif // _Py_JIT + +#ifdef __cplusplus +} +#endif + +#endif // !Py_INTERNAL_JIT_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_list.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_list.h new file mode 100644 index 000000000..73695d10e --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_list.h @@ -0,0 +1,66 @@ +#ifndef Py_INTERNAL_LIST_H +#define Py_INTERNAL_LIST_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_freelist.h" // _PyFreeListState + +PyAPI_FUNC(PyObject*) _PyList_Extend(PyListObject *, PyObject *); +extern void _PyList_DebugMallocStats(FILE *out); + +#define _PyList_ITEMS(op) _Py_RVALUE(_PyList_CAST(op)->ob_item) + +PyAPI_FUNC(int) +_PyList_AppendTakeRefListResize(PyListObject *self, PyObject *newitem); + +// In free-threaded build: self should be locked by the caller, if it should be thread-safe. +static inline int +_PyList_AppendTakeRef(PyListObject *self, PyObject *newitem) +{ + assert(self != NULL && newitem != NULL); + assert(PyList_Check(self)); + Py_ssize_t len = Py_SIZE(self); + Py_ssize_t allocated = self->allocated; + assert((size_t)len + 1 < PY_SSIZE_T_MAX); + if (allocated > len) { +#ifdef Py_GIL_DISABLED + _Py_atomic_store_ptr_release(&self->ob_item[len], newitem); +#else + PyList_SET_ITEM(self, len, newitem); +#endif + Py_SET_SIZE(self, len + 1); + return 0; + } + return _PyList_AppendTakeRefListResize(self, newitem); +} + +// Repeat the bytes of a buffer in place +static inline void +_Py_memory_repeat(char* dest, Py_ssize_t len_dest, Py_ssize_t len_src) +{ + assert(len_src > 0); + Py_ssize_t copied = len_src; + while (copied < len_dest) { + Py_ssize_t bytes_to_copy = Py_MIN(copied, len_dest - copied); + memcpy(dest + copied, dest, bytes_to_copy); + copied += bytes_to_copy; + } +} + +typedef struct { + PyObject_HEAD + Py_ssize_t it_index; + PyListObject *it_seq; /* Set to NULL when iterator is exhausted */ +} _PyListIterObject; + +PyAPI_FUNC(PyObject *)_PyList_FromArraySteal(PyObject *const *src, Py_ssize_t n); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_LIST_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_llist.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_llist.h new file mode 100644 index 000000000..f629902fd --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_llist.h @@ -0,0 +1,106 @@ +// A doubly-linked list that can be embedded in a struct. +// +// Usage: +// struct llist_node head = LLIST_INIT(head); +// typedef struct { +// ... +// struct llist_node node; +// ... +// } MyObj; +// +// llist_insert_tail(&head, &obj->node); +// llist_remove(&obj->node); +// +// struct llist_node *node; +// llist_for_each(node, &head) { +// MyObj *obj = llist_data(node, MyObj, node); +// ... +// } +// + +#ifndef Py_INTERNAL_LLIST_H +#define Py_INTERNAL_LLIST_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "Py_BUILD_CORE must be defined to include this header" +#endif + +struct llist_node { + struct llist_node *next; + struct llist_node *prev; +}; + +// Get the struct containing a node. +#define llist_data(node, type, member) (_Py_CONTAINER_OF(node, type, member)) + +// Iterate over a list. +#define llist_for_each(node, head) \ + for (node = (head)->next; node != (head); node = node->next) + +// Iterate over a list, but allow removal of the current node. +#define llist_for_each_safe(node, head) \ + for (struct llist_node *_next = (node = (head)->next, node->next); \ + node != (head); node = _next, _next = node->next) + +#define LLIST_INIT(head) { &head, &head } + +static inline void +llist_init(struct llist_node *head) +{ + head->next = head; + head->prev = head; +} + +// Returns 1 if the list is empty, 0 otherwise. +static inline int +llist_empty(struct llist_node *head) +{ + return head->next == head; +} + +// Appends to the tail of the list. +static inline void +llist_insert_tail(struct llist_node *head, struct llist_node *node) +{ + node->prev = head->prev; + node->next = head; + head->prev->next = node; + head->prev = node; +} + +// Remove a node from the list. +static inline void +llist_remove(struct llist_node *node) +{ + struct llist_node *prev = node->prev; + struct llist_node *next = node->next; + prev->next = next; + next->prev = prev; + node->prev = NULL; + node->next = NULL; +} + +// Append all nodes from head2 onto head1. head2 is left empty. +static inline void +llist_concat(struct llist_node *head1, struct llist_node *head2) +{ + if (!llist_empty(head2)) { + head1->prev->next = head2->next; + head2->next->prev = head1->prev; + + head1->prev = head2->prev; + head2->prev->next = head1; + llist_init(head2); + } +} + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_LLIST_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_lock.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_lock.h new file mode 100644 index 000000000..2a18bb764 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_lock.h @@ -0,0 +1,241 @@ +// Lightweight locks and other synchronization mechanisms. +// +// These implementations are based on WebKit's WTF::Lock. See +// https://webkit.org/blog/6161/locking-in-webkit/ for a description of the +// design. +#ifndef Py_INTERNAL_LOCK_H +#define Py_INTERNAL_LOCK_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +//_Py_UNLOCKED is defined as 0 and _Py_LOCKED as 1 in Include/cpython/lock.h +#define _Py_HAS_PARKED 2 +#define _Py_ONCE_INITIALIZED 4 + +static inline int +PyMutex_LockFast(uint8_t *lock_bits) +{ + uint8_t expected = _Py_UNLOCKED; + return _Py_atomic_compare_exchange_uint8(lock_bits, &expected, _Py_LOCKED); +} + +// Checks if the mutex is currently locked. +static inline int +PyMutex_IsLocked(PyMutex *m) +{ + return (_Py_atomic_load_uint8(&m->_bits) & _Py_LOCKED) != 0; +} + +// Re-initializes the mutex after a fork to the unlocked state. +static inline void +_PyMutex_at_fork_reinit(PyMutex *m) +{ + memset(m, 0, sizeof(*m)); +} + +typedef enum _PyLockFlags { + // Do not detach/release the GIL when waiting on the lock. + _Py_LOCK_DONT_DETACH = 0, + + // Detach/release the GIL while waiting on the lock. + _PY_LOCK_DETACH = 1, + + // Handle signals if interrupted while waiting on the lock. + _PY_LOCK_HANDLE_SIGNALS = 2, +} _PyLockFlags; + +// Lock a mutex with an optional timeout and additional options. See +// _PyLockFlags for details. +extern PyLockStatus +_PyMutex_LockTimed(PyMutex *m, PyTime_t timeout_ns, _PyLockFlags flags); + +// Lock a mutex with aditional options. See _PyLockFlags for details. +static inline void +PyMutex_LockFlags(PyMutex *m, _PyLockFlags flags) +{ + uint8_t expected = _Py_UNLOCKED; + if (!_Py_atomic_compare_exchange_uint8(&m->_bits, &expected, _Py_LOCKED)) { + _PyMutex_LockTimed(m, -1, flags); + } +} + +// Unlock a mutex, returns 0 if the mutex is not locked (used for improved +// error messages). +extern int _PyMutex_TryUnlock(PyMutex *m); + + +// PyEvent is a one-time event notification +typedef struct { + uint8_t v; +} PyEvent; + +// Check if the event is set without blocking. Returns 1 if the event is set or +// 0 otherwise. +PyAPI_FUNC(int) _PyEvent_IsSet(PyEvent *evt); + +// Set the event and notify any waiting threads. +// Export for '_testinternalcapi' shared extension +PyAPI_FUNC(void) _PyEvent_Notify(PyEvent *evt); + +// Wait for the event to be set. If the event is already set, then this returns +// immediately. +PyAPI_FUNC(void) PyEvent_Wait(PyEvent *evt); + +// Wait for the event to be set, or until the timeout expires. If the event is +// already set, then this returns immediately. Returns 1 if the event was set, +// and 0 if the timeout expired or thread was interrupted. If `detach` is +// true, then the thread will detach/release the GIL while waiting. +PyAPI_FUNC(int) +PyEvent_WaitTimed(PyEvent *evt, PyTime_t timeout_ns, int detach); + +// _PyRawMutex implements a word-sized mutex that that does not depend on the +// parking lot API, and therefore can be used in the parking lot +// implementation. +// +// The mutex uses a packed representation: the least significant bit is used to +// indicate whether the mutex is locked or not. The remaining bits are either +// zero or a pointer to a `struct raw_mutex_entry` (see lock.c). +typedef struct { + uintptr_t v; +} _PyRawMutex; + +// Slow paths for lock/unlock +extern void _PyRawMutex_LockSlow(_PyRawMutex *m); +extern void _PyRawMutex_UnlockSlow(_PyRawMutex *m); + +static inline void +_PyRawMutex_Lock(_PyRawMutex *m) +{ + uintptr_t unlocked = _Py_UNLOCKED; + if (_Py_atomic_compare_exchange_uintptr(&m->v, &unlocked, _Py_LOCKED)) { + return; + } + _PyRawMutex_LockSlow(m); +} + +static inline void +_PyRawMutex_Unlock(_PyRawMutex *m) +{ + uintptr_t locked = _Py_LOCKED; + if (_Py_atomic_compare_exchange_uintptr(&m->v, &locked, _Py_UNLOCKED)) { + return; + } + _PyRawMutex_UnlockSlow(m); +} + +// Type signature for one-time initialization functions. The function should +// return 0 on success and -1 on failure. +typedef int _Py_once_fn_t(void *arg); + +// (private) slow path for one time initialization +PyAPI_FUNC(int) +_PyOnceFlag_CallOnceSlow(_PyOnceFlag *flag, _Py_once_fn_t *fn, void *arg); + +// Calls `fn` once using `flag`. The `arg` is passed to the call to `fn`. +// +// Returns 0 on success and -1 on failure. +// +// If `fn` returns 0 (success), then subsequent calls immediately return 0. +// If `fn` returns -1 (failure), then subsequent calls will retry the call. +static inline int +_PyOnceFlag_CallOnce(_PyOnceFlag *flag, _Py_once_fn_t *fn, void *arg) +{ + if (_Py_atomic_load_uint8(&flag->v) == _Py_ONCE_INITIALIZED) { + return 0; + } + return _PyOnceFlag_CallOnceSlow(flag, fn, arg); +} + +// A recursive mutex. The mutex should zero-initialized. +typedef struct { + PyMutex mutex; + unsigned long long thread; // i.e., PyThread_get_thread_ident_ex() + size_t level; +} _PyRecursiveMutex; + +PyAPI_FUNC(int) _PyRecursiveMutex_IsLockedByCurrentThread(_PyRecursiveMutex *m); +PyAPI_FUNC(void) _PyRecursiveMutex_Lock(_PyRecursiveMutex *m); +PyAPI_FUNC(void) _PyRecursiveMutex_Unlock(_PyRecursiveMutex *m); + + +// A readers-writer (RW) lock. The lock supports multiple concurrent readers or +// a single writer. The lock is write-preferring: if a writer is waiting while +// the lock is read-locked then, new readers will be blocked. This avoids +// starvation of writers. +// +// In C++, the equivalent synchronization primitive is std::shared_mutex +// with shared ("read") and exclusive ("write") locking. +// +// The two least significant bits are used to indicate if the lock is +// write-locked and if there are parked threads (either readers or writers) +// waiting to acquire the lock. The remaining bits are used to indicate the +// number of readers holding the lock. +// +// 0b000..00000: unlocked +// 0bnnn..nnn00: nnn..nnn readers holding the lock +// 0bnnn..nnn10: nnn..nnn readers holding the lock and a writer is waiting +// 0b00000..010: unlocked with awoken writer about to acquire lock +// 0b00000..001: write-locked +// 0b00000..011: write-locked and readers or other writers are waiting +// +// Note that reader_count must be zero if the lock is held by a writer, and +// vice versa. The lock can only be held by readers or a writer, but not both. +// +// The design is optimized for simplicity of the implementation. The lock is +// not fair: if fairness is desired, use an additional PyMutex to serialize +// writers. The lock is also not reentrant. +typedef struct { + uintptr_t bits; +} _PyRWMutex; + +// Read lock (i.e., shared lock) +PyAPI_FUNC(void) _PyRWMutex_RLock(_PyRWMutex *rwmutex); +PyAPI_FUNC(void) _PyRWMutex_RUnlock(_PyRWMutex *rwmutex); + +// Write lock (i.e., exclusive lock) +PyAPI_FUNC(void) _PyRWMutex_Lock(_PyRWMutex *rwmutex); +PyAPI_FUNC(void) _PyRWMutex_Unlock(_PyRWMutex *rwmutex); + +// Similar to linux seqlock: https://en.wikipedia.org/wiki/Seqlock +// We use a sequence number to lock the writer, an even sequence means we're unlocked, an odd +// sequence means we're locked. Readers will read the sequence before attempting to read the +// underlying data and then read the sequence number again after reading the data. If the +// sequence has not changed the data is valid. +// +// Differs a little bit in that we use CAS on sequence as the lock, instead of a separate spin lock. +// The writer can also detect that the undelering data has not changed and abandon the write +// and restore the previous sequence. +typedef struct { + uint32_t sequence; +} _PySeqLock; + +// Lock the sequence lock for the writer +PyAPI_FUNC(void) _PySeqLock_LockWrite(_PySeqLock *seqlock); + +// Unlock the sequence lock and move to the next sequence number. +PyAPI_FUNC(void) _PySeqLock_UnlockWrite(_PySeqLock *seqlock); + +// Abandon the current update indicating that no mutations have occurred +// and restore the previous sequence value. +PyAPI_FUNC(void) _PySeqLock_AbandonWrite(_PySeqLock *seqlock); + +// Begin a read operation and return the current sequence number. +PyAPI_FUNC(uint32_t) _PySeqLock_BeginRead(_PySeqLock *seqlock); + +// End the read operation and confirm that the sequence number has not changed. +// Returns 1 if the read was successful or 0 if the read should be retried. +PyAPI_FUNC(int) _PySeqLock_EndRead(_PySeqLock *seqlock, uint32_t previous); + +// Check if the lock was held during a fork and clear the lock. Returns 1 +// if the lock was held and any associated data should be cleared. +PyAPI_FUNC(int) _PySeqLock_AfterFork(_PySeqLock *seqlock); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_LOCK_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_long.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_long.h new file mode 100644 index 000000000..ff7d9afc0 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_long.h @@ -0,0 +1,310 @@ +#ifndef Py_INTERNAL_LONG_H +#define Py_INTERNAL_LONG_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_bytesobject.h" // _PyBytesWriter +#include "pycore_global_objects.h"// _PY_NSMALLNEGINTS +#include "pycore_runtime.h" // _PyRuntime + +/* + * Default int base conversion size limitation: Denial of Service prevention. + * + * Chosen such that this isn't wildly slow on modern hardware and so that + * everyone's existing deployed numpy test suite passes before + * https://github.com/numpy/numpy/issues/22098 is widely available. + * + * $ python -m timeit -s 's = "1"*4300' 'int(s)' + * 2000 loops, best of 5: 125 usec per loop + * $ python -m timeit -s 's = "1"*4300; v = int(s)' 'str(v)' + * 1000 loops, best of 5: 311 usec per loop + * (zen2 cloud VM) + * + * 4300 decimal digits fits a ~14284 bit number. + */ +#define _PY_LONG_DEFAULT_MAX_STR_DIGITS 4300 +/* + * Threshold for max digits check. For performance reasons int() and + * int.__str__() don't checks values that are smaller than this + * threshold. Acts as a guaranteed minimum size limit for bignums that + * applications can expect from CPython. + * + * % python -m timeit -s 's = "1"*640; v = int(s)' 'str(int(s))' + * 20000 loops, best of 5: 12 usec per loop + * + * "640 digits should be enough for anyone." - gps + * fits a ~2126 bit decimal number. + */ +#define _PY_LONG_MAX_STR_DIGITS_THRESHOLD 640 + +#if ((_PY_LONG_DEFAULT_MAX_STR_DIGITS != 0) && \ + (_PY_LONG_DEFAULT_MAX_STR_DIGITS < _PY_LONG_MAX_STR_DIGITS_THRESHOLD)) +# error "_PY_LONG_DEFAULT_MAX_STR_DIGITS smaller than threshold." +#endif + +/* runtime lifecycle */ + +extern PyStatus _PyLong_InitTypes(PyInterpreterState *); +extern void _PyLong_FiniTypes(PyInterpreterState *interp); + + +/* other API */ + +#define _PyLong_SMALL_INTS _Py_SINGLETON(small_ints) + +// _PyLong_GetZero() and _PyLong_GetOne() must always be available +// _PyLong_FromUnsignedChar must always be available +#if _PY_NSMALLPOSINTS < 257 +# error "_PY_NSMALLPOSINTS must be greater than or equal to 257" +#endif + +// Return a reference to the immortal zero singleton. +// The function cannot return NULL. +static inline PyObject* _PyLong_GetZero(void) +{ return (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS]; } + +// Return a reference to the immortal one singleton. +// The function cannot return NULL. +static inline PyObject* _PyLong_GetOne(void) +{ return (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS+1]; } + +static inline PyObject* _PyLong_FromUnsignedChar(unsigned char i) +{ + return (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS+i]; +} + +// _PyLong_Frexp returns a double x and an exponent e such that the +// true value is approximately equal to x * 2**e. e is >= 0. x is +// 0.0 if and only if the input is 0 (in which case, e and x are both +// zeroes); otherwise, 0.5 <= abs(x) < 1.0. On overflow, which is +// possible if the number of bits doesn't fit into a Py_ssize_t, sets +// OverflowError and returns -1.0 for x, 0 for e. +// +// Export for 'math' shared extension +PyAPI_DATA(double) _PyLong_Frexp(PyLongObject *a, Py_ssize_t *e); + +extern PyObject* _PyLong_FromBytes(const char *, Py_ssize_t, int); + +// _PyLong_DivmodNear. Given integers a and b, compute the nearest +// integer q to the exact quotient a / b, rounding to the nearest even integer +// in the case of a tie. Return (q, r), where r = a - q*b. The remainder r +// will satisfy abs(r) <= abs(b)/2, with equality possible only if q is +// even. +// +// Export for '_datetime' shared extension. +PyAPI_DATA(PyObject*) _PyLong_DivmodNear(PyObject *, 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. +// Export for '_tkinter' shared extension. +PyAPI_DATA(PyObject*) _PyLong_Format(PyObject *obj, int base); + +// Export for 'math' shared extension +PyAPI_DATA(PyObject*) _PyLong_Rshift(PyObject *, size_t); + +// Export for 'math' shared extension +PyAPI_DATA(PyObject*) _PyLong_Lshift(PyObject *, size_t); + +PyAPI_FUNC(PyObject*) _PyLong_Add(PyLongObject *left, PyLongObject *right); +PyAPI_FUNC(PyObject*) _PyLong_Multiply(PyLongObject *left, PyLongObject *right); +PyAPI_FUNC(PyObject*) _PyLong_Subtract(PyLongObject *left, PyLongObject *right); + +// Export for 'binascii' shared extension. +PyAPI_DATA(unsigned char) _PyLong_DigitValue[256]; + +/* Format the object based on the format_spec, as defined in PEP 3101 + (Advanced String Formatting). */ +extern int _PyLong_FormatAdvancedWriter( + _PyUnicodeWriter *writer, + PyObject *obj, + PyObject *format_spec, + Py_ssize_t start, + Py_ssize_t end); + +extern int _PyLong_FormatWriter( + _PyUnicodeWriter *writer, + PyObject *obj, + int base, + int alternate); + +extern char* _PyLong_FormatBytesWriter( + _PyBytesWriter *writer, + char *str, + PyObject *obj, + int base, + int alternate); + +// Argument converters used by Argument Clinic + +// Export for 'select' shared extension (Argument Clinic code) +PyAPI_FUNC(int) _PyLong_UnsignedShort_Converter(PyObject *, void *); + +// Export for '_testclinic' shared extension (Argument Clinic code) +PyAPI_FUNC(int) _PyLong_UnsignedInt_Converter(PyObject *, void *); + +// Export for '_blake2' shared extension (Argument Clinic code) +PyAPI_FUNC(int) _PyLong_UnsignedLong_Converter(PyObject *, void *); + +// Export for '_blake2' shared extension (Argument Clinic code) +PyAPI_FUNC(int) _PyLong_UnsignedLongLong_Converter(PyObject *, void *); + +// Export for '_testclinic' shared extension (Argument Clinic code) +PyAPI_FUNC(int) _PyLong_Size_t_Converter(PyObject *, void *); + +/* Long value tag bits: + * 0-1: Sign bits value = (1-sign), ie. negative=2, positive=0, zero=1. + * 2: Reserved for immortality bit + * 3+ Unsigned digit count + */ +#define SIGN_MASK 3 +#define SIGN_ZERO 1 +#define SIGN_NEGATIVE 2 +#define NON_SIZE_BITS 3 + +/* The functions _PyLong_IsCompact and _PyLong_CompactValue are defined + * in Include/cpython/longobject.h, since they need to be inline. + * + * "Compact" values have at least one bit to spare, + * so that addition and subtraction can be performed on the values + * without risk of overflow. + * + * The inline functions need tag bits. + * For readability, rather than do `#define SIGN_MASK _PyLong_SIGN_MASK` + * we define them to the numbers in both places and then assert that + * they're the same. + */ +#if SIGN_MASK != _PyLong_SIGN_MASK +# error "SIGN_MASK does not match _PyLong_SIGN_MASK" +#endif +#if NON_SIZE_BITS != _PyLong_NON_SIZE_BITS +# error "NON_SIZE_BITS does not match _PyLong_NON_SIZE_BITS" +#endif + +/* All *compact" values are guaranteed to fit into + * a Py_ssize_t with at least one bit to spare. + * In other words, for 64 bit machines, compact + * will be signed 63 (or fewer) bit values + */ + +/* Return 1 if the argument is compact int */ +static inline int +_PyLong_IsNonNegativeCompact(const PyLongObject* op) { + assert(PyLong_Check(op)); + return op->long_value.lv_tag <= (1 << NON_SIZE_BITS); +} + + +static inline int +_PyLong_BothAreCompact(const PyLongObject* a, const PyLongObject* b) { + assert(PyLong_Check(a)); + assert(PyLong_Check(b)); + return (a->long_value.lv_tag | b->long_value.lv_tag) < (2 << NON_SIZE_BITS); +} + +static inline bool +_PyLong_IsZero(const PyLongObject *op) +{ + return (op->long_value.lv_tag & SIGN_MASK) == SIGN_ZERO; +} + +static inline bool +_PyLong_IsNegative(const PyLongObject *op) +{ + return (op->long_value.lv_tag & SIGN_MASK) == SIGN_NEGATIVE; +} + +static inline bool +_PyLong_IsPositive(const PyLongObject *op) +{ + return (op->long_value.lv_tag & SIGN_MASK) == 0; +} + +static inline Py_ssize_t +_PyLong_DigitCount(const PyLongObject *op) +{ + assert(PyLong_Check(op)); + return op->long_value.lv_tag >> NON_SIZE_BITS; +} + +/* Equivalent to _PyLong_DigitCount(op) * _PyLong_NonCompactSign(op) */ +static inline Py_ssize_t +_PyLong_SignedDigitCount(const PyLongObject *op) +{ + assert(PyLong_Check(op)); + Py_ssize_t sign = 1 - (op->long_value.lv_tag & SIGN_MASK); + return sign * (Py_ssize_t)(op->long_value.lv_tag >> NON_SIZE_BITS); +} + +static inline int +_PyLong_CompactSign(const PyLongObject *op) +{ + assert(PyLong_Check(op)); + assert(_PyLong_IsCompact(op)); + return 1 - (op->long_value.lv_tag & SIGN_MASK); +} + +static inline int +_PyLong_NonCompactSign(const PyLongObject *op) +{ + assert(PyLong_Check(op)); + assert(!_PyLong_IsCompact(op)); + return 1 - (op->long_value.lv_tag & SIGN_MASK); +} + +/* Do a and b have the same sign? */ +static inline int +_PyLong_SameSign(const PyLongObject *a, const PyLongObject *b) +{ + return (a->long_value.lv_tag & SIGN_MASK) == (b->long_value.lv_tag & SIGN_MASK); +} + +#define TAG_FROM_SIGN_AND_SIZE(sign, size) ((1 - (sign)) | ((size) << NON_SIZE_BITS)) + +static inline void +_PyLong_SetSignAndDigitCount(PyLongObject *op, int sign, Py_ssize_t size) +{ + assert(size >= 0); + assert(-1 <= sign && sign <= 1); + assert(sign != 0 || size == 0); + op->long_value.lv_tag = TAG_FROM_SIGN_AND_SIZE(sign, (size_t)size); +} + +static inline void +_PyLong_SetDigitCount(PyLongObject *op, Py_ssize_t size) +{ + assert(size >= 0); + op->long_value.lv_tag = (((size_t)size) << NON_SIZE_BITS) | (op->long_value.lv_tag & SIGN_MASK); +} + +#define NON_SIZE_MASK ~((1 << NON_SIZE_BITS) - 1) + +static inline void +_PyLong_FlipSign(PyLongObject *op) { + unsigned int flipped_sign = 2 - (op->long_value.lv_tag & SIGN_MASK); + op->long_value.lv_tag &= NON_SIZE_MASK; + op->long_value.lv_tag |= flipped_sign; +} + +#define _PyLong_DIGIT_INIT(val) \ + { \ + .ob_base = _PyObject_HEAD_INIT(&PyLong_Type), \ + .long_value = { \ + .lv_tag = TAG_FROM_SIGN_AND_SIZE( \ + (val) == 0 ? 0 : ((val) < 0 ? -1 : 1), \ + (val) == 0 ? 0 : 1), \ + { ((val) >= 0 ? (val) : -(val)) }, \ + } \ + } + +#define _PyLong_FALSE_TAG TAG_FROM_SIGN_AND_SIZE(0, 0) +#define _PyLong_TRUE_TAG TAG_FROM_SIGN_AND_SIZE(1, 1) + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_LONG_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_memoryobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_memoryobject.h new file mode 100644 index 000000000..62e204fcb --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_memoryobject.h @@ -0,0 +1,20 @@ +#ifndef Py_INTERNAL_MEMORYOBJECT_H +#define Py_INTERNAL_MEMORYOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +extern PyTypeObject _PyManagedBuffer_Type; + +PyObject * +_PyMemoryView_FromBufferProc(PyObject *v, int flags, + getbufferproc bufferproc); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_MEMORYOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_mimalloc.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_mimalloc.h new file mode 100644 index 000000000..d870d01be --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_mimalloc.h @@ -0,0 +1,69 @@ +#ifndef Py_INTERNAL_MIMALLOC_H +#define Py_INTERNAL_MIMALLOC_H + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#if defined(MIMALLOC_H) || defined(MIMALLOC_TYPES_H) +# error "pycore_mimalloc.h must be included before mimalloc.h" +#endif + +typedef enum { + _Py_MIMALLOC_HEAP_MEM = 0, // PyMem_Malloc() and friends + _Py_MIMALLOC_HEAP_OBJECT = 1, // non-GC objects + _Py_MIMALLOC_HEAP_GC = 2, // GC objects without pre-header + _Py_MIMALLOC_HEAP_GC_PRE = 3, // GC objects with pre-header + _Py_MIMALLOC_HEAP_COUNT +} _Py_mimalloc_heap_id; + +#include "pycore_pymem.h" + +#ifdef WITH_MIMALLOC +# ifdef Py_GIL_DISABLED +# define MI_PRIM_THREAD_ID _Py_ThreadId +# endif +# define MI_DEBUG_UNINIT PYMEM_CLEANBYTE +# define MI_DEBUG_FREED PYMEM_DEADBYTE +# define MI_DEBUG_PADDING PYMEM_FORBIDDENBYTE +#ifdef Py_DEBUG +# define MI_DEBUG 2 +#else +# define MI_DEBUG 0 +#endif + +#ifdef _Py_THREAD_SANITIZER +# define MI_TSAN 1 +#endif + +#ifdef __cplusplus +extern "C++" { +#endif + +#include "mimalloc/mimalloc.h" +#include "mimalloc/mimalloc/types.h" +#include "mimalloc/mimalloc/internal.h" + +#ifdef __cplusplus +} +#endif + +#endif + +#ifdef Py_GIL_DISABLED +struct _mimalloc_interp_state { + // When exiting, threads place any segments with live blocks in this + // shared pool for other threads to claim and reuse. + mi_abandoned_pool_t abandoned_pool; +}; + +struct _mimalloc_thread_state { + mi_heap_t *current_object_heap; + mi_heap_t heaps[_Py_MIMALLOC_HEAP_COUNT]; + mi_tld_t tld; + int initialized; + struct llist_node page_list; +}; +#endif + +#endif // Py_INTERNAL_MIMALLOC_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_modsupport.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_modsupport.h new file mode 100644 index 000000000..11fde8148 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_modsupport.h @@ -0,0 +1,107 @@ +#ifndef Py_INTERNAL_MODSUPPORT_H +#define Py_INTERNAL_MODSUPPORT_H + +#include "pycore_lock.h" // _PyOnceFlag + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +extern int _PyArg_NoKwnames(const char *funcname, PyObject *kwnames); +#define _PyArg_NoKwnames(funcname, kwnames) \ + ((kwnames) == NULL || _PyArg_NoKwnames((funcname), (kwnames))) + +// Export for '_bz2' shared extension +PyAPI_FUNC(int) _PyArg_NoPositional(const char *funcname, PyObject *args); +#define _PyArg_NoPositional(funcname, args) \ + ((args) == NULL || _PyArg_NoPositional((funcname), (args))) + +// Export for '_asyncio' shared extension +PyAPI_FUNC(int) _PyArg_NoKeywords(const char *funcname, PyObject *kwargs); +#define _PyArg_NoKeywords(funcname, kwargs) \ + ((kwargs) == NULL || _PyArg_NoKeywords((funcname), (kwargs))) + +// Export for 'zlib' shared extension +PyAPI_FUNC(int) _PyArg_CheckPositional(const char *, Py_ssize_t, + Py_ssize_t, Py_ssize_t); +#define _Py_ANY_VARARGS(n) ((n) == PY_SSIZE_T_MAX) +#define _PyArg_CheckPositional(funcname, nargs, min, max) \ + ((!_Py_ANY_VARARGS(max) && (min) <= (nargs) && (nargs) <= (max)) \ + || _PyArg_CheckPositional((funcname), (nargs), (min), (max))) + +extern PyObject ** _Py_VaBuildStack( + PyObject **small_stack, + Py_ssize_t small_stack_len, + const char *format, + va_list va, + Py_ssize_t *p_nargs); + +extern PyObject* _PyModule_CreateInitialized(PyModuleDef*, int apiver); + +// Export for '_curses' shared extension +PyAPI_FUNC(int) _PyArg_ParseStack( + PyObject *const *args, + Py_ssize_t nargs, + const char *format, + ...); + +extern int _PyArg_UnpackStack( + PyObject *const *args, + Py_ssize_t nargs, + const char *name, + Py_ssize_t min, + Py_ssize_t max, + ...); + +// Export for '_heapq' shared extension +PyAPI_FUNC(void) _PyArg_BadArgument( + const char *fname, + const char *displayname, + const char *expected, + PyObject *arg); + +// --- _PyArg_Parser API --------------------------------------------------- + +// Export for '_dbm' shared extension +PyAPI_FUNC(int) _PyArg_ParseStackAndKeywords( + PyObject *const *args, + Py_ssize_t nargs, + PyObject *kwnames, + struct _PyArg_Parser *, + ...); + +// Export for 'math' shared extension +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))) + +// Export for '_testclinic' shared extension +PyAPI_FUNC(PyObject * const *) _PyArg_UnpackKeywordsWithVararg( + PyObject *const *args, Py_ssize_t nargs, + PyObject *kwargs, PyObject *kwnames, + struct _PyArg_Parser *parser, + int minpos, int maxpos, int minkw, + int vararg, PyObject **buf); + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_MODSUPPORT_H + diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_moduleobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_moduleobject.h new file mode 100644 index 000000000..049677b29 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_moduleobject.h @@ -0,0 +1,54 @@ +#ifndef Py_INTERNAL_MODULEOBJECT_H +#define Py_INTERNAL_MODULEOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +extern void _PyModule_Clear(PyObject *); +extern void _PyModule_ClearDict(PyObject *); +extern int _PyModuleSpec_IsInitializing(PyObject *); + +extern int _PyModule_IsExtension(PyObject *obj); + +typedef struct { + PyObject_HEAD + PyObject *md_dict; + PyModuleDef *md_def; + void *md_state; + PyObject *md_weaklist; + // for logging purposes after md_dict is cleared + PyObject *md_name; +#ifdef Py_GIL_DISABLED + void *md_gil; +#endif +} PyModuleObject; + +static inline PyModuleDef* _PyModule_GetDef(PyObject *mod) { + assert(PyModule_Check(mod)); + return ((PyModuleObject *)mod)->md_def; +} + +static inline void* _PyModule_GetState(PyObject* mod) { + assert(PyModule_Check(mod)); + return ((PyModuleObject *)mod)->md_state; +} + +static inline PyObject* _PyModule_GetDict(PyObject *mod) { + assert(PyModule_Check(mod)); + PyObject *dict = ((PyModuleObject *)mod) -> md_dict; + // _PyModule_GetDict(mod) must not be used after calling module_clear(mod) + assert(dict != NULL); + return dict; // borrowed reference +} + +PyObject* _Py_module_getattro_impl(PyModuleObject *m, PyObject *name, int suppress); +PyObject* _Py_module_getattro(PyModuleObject *m, PyObject *name); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_MODULEOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_namespace.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_namespace.h new file mode 100644 index 000000000..f165cf153 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_namespace.h @@ -0,0 +1,21 @@ +// Simple namespace object interface + +#ifndef Py_INTERNAL_NAMESPACE_H +#define Py_INTERNAL_NAMESPACE_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +extern PyTypeObject _PyNamespace_Type; + +// Export for '_testmultiphase' shared extension +PyAPI_FUNC(PyObject*) _PyNamespace_New(PyObject *kwds); + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_NAMESPACE_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_object.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_object.h new file mode 100644 index 000000000..39f5600f7 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_object.h @@ -0,0 +1,793 @@ +#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 +#include "pycore_gc.h" // _PyObject_GC_IS_TRACKED() +#include "pycore_emscripten_trampoline.h" // _PyCFunction_TrampolineCall() +#include "pycore_interp.h" // PyInterpreterState.gc +#include "pycore_pyatomic_ft_wrappers.h" // FT_ATOMIC_STORE_PTR_RELAXED +#include "pycore_pystate.h" // _PyInterpreterState_GET() + + +#define _Py_IMMORTAL_REFCNT_LOOSE ((_Py_IMMORTAL_REFCNT >> 1) + 1) + +// gh-121528, gh-118997: Similar to _Py_IsImmortal() but be more loose when +// comparing the reference count to stay compatible with C extensions built +// with the stable ABI 3.11 or older. Such extensions implement INCREF/DECREF +// as refcnt++ and refcnt-- without taking in account immortal objects. For +// example, the reference count of an immortal object can change from +// _Py_IMMORTAL_REFCNT to _Py_IMMORTAL_REFCNT+1 (INCREF) or +// _Py_IMMORTAL_REFCNT-1 (DECREF). +// +// This function should only be used in assertions. Otherwise, _Py_IsImmortal() +// must be used instead. +static inline int _Py_IsImmortalLoose(PyObject *op) +{ +#if defined(Py_GIL_DISABLED) + return _Py_IsImmortal(op); +#else + return (op->ob_refcnt >= _Py_IMMORTAL_REFCNT_LOOSE); +#endif +} +#define _Py_IsImmortalLoose(op) _Py_IsImmortalLoose(_PyObject_CAST(op)) + + +/* 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)); */ +extern int _PyObject_CheckConsistency(PyObject *op, int check_content); + +extern void _PyDebugAllocatorStats(FILE *out, const char *block_name, + int num_blocks, size_t sizeof_block); + +extern void _PyObject_DebugTypeStats(FILE *out); + +#ifdef Py_TRACE_REFS +// Forget a reference registered by _Py_NewReference(). Function called by +// _Py_Dealloc(). +// +// On a free list, the function can be used before modifying an object to +// remove the object from traced objects. Then _Py_NewReference() or +// _Py_NewReferenceNoTotal() should be called again on the object to trace +// it again. +extern void _Py_ForgetReference(PyObject *); +#endif + +// Export for shared _testinternalcapi extension +PyAPI_FUNC(int) _PyObject_IsFreed(PyObject *); + +/* We need to maintain an internal copy of Py{Var}Object_HEAD_INIT to avoid + designated initializer conflicts in C++20. If we use the deinition in + object.h, we will be mixing designated and non-designated initializers in + pycore objects which is forbiddent in C++20. However, if we then use + designated initializers in object.h then Extensions without designated break. + Furthermore, we can't use designated initializers in Extensions since these + are not supported pre-C++20. Thus, keeping an internal copy here is the most + backwards compatible solution */ +#if defined(Py_GIL_DISABLED) +#define _PyObject_HEAD_INIT(type) \ + { \ + .ob_ref_local = _Py_IMMORTAL_REFCNT_LOCAL, \ + .ob_type = (type) \ + } +#else +#define _PyObject_HEAD_INIT(type) \ + { \ + .ob_refcnt = _Py_IMMORTAL_REFCNT, \ + .ob_type = (type) \ + } +#endif +#define _PyVarObject_HEAD_INIT(type, size) \ + { \ + .ob_base = _PyObject_HEAD_INIT(type), \ + .ob_size = size \ + } + +PyAPI_FUNC(void) _Py_NO_RETURN _Py_FatalRefcountErrorFunc( + const char *func, + const char *message); + +#define _Py_FatalRefcountError(message) \ + _Py_FatalRefcountErrorFunc(__func__, (message)) + + +#ifdef Py_REF_DEBUG +/* The symbol is only exposed in the API for the sake of extensions + built against the pre-3.12 stable ABI. */ +PyAPI_DATA(Py_ssize_t) _Py_RefTotal; + +extern void _Py_AddRefTotal(PyThreadState *, Py_ssize_t); +extern void _Py_IncRefTotal(PyThreadState *); +extern void _Py_DecRefTotal(PyThreadState *); + +# define _Py_DEC_REFTOTAL(interp) \ + interp->object_state.reftotal-- +#endif + +// Increment reference count by n +static inline void _Py_RefcntAdd(PyObject* op, Py_ssize_t n) +{ + if (_Py_IsImmortal(op)) { + return; + } +#ifdef Py_REF_DEBUG + _Py_AddRefTotal(_PyThreadState_GET(), n); +#endif +#if !defined(Py_GIL_DISABLED) + op->ob_refcnt += n; +#else + if (_Py_IsOwnedByCurrentThread(op)) { + uint32_t local = op->ob_ref_local; + Py_ssize_t refcnt = (Py_ssize_t)local + n; +# if PY_SSIZE_T_MAX > UINT32_MAX + if (refcnt > (Py_ssize_t)UINT32_MAX) { + // Make the object immortal if the 32-bit local reference count + // would overflow. + refcnt = _Py_IMMORTAL_REFCNT_LOCAL; + } +# endif + _Py_atomic_store_uint32_relaxed(&op->ob_ref_local, (uint32_t)refcnt); + } + else { + _Py_atomic_add_ssize(&op->ob_ref_shared, (n << _Py_REF_SHARED_SHIFT)); + } +#endif +} +#define _Py_RefcntAdd(op, n) _Py_RefcntAdd(_PyObject_CAST(op), n) + +extern void _Py_SetImmortal(PyObject *op); +extern void _Py_SetImmortalUntracked(PyObject *op); + +// Makes an immortal object mortal again with the specified refcnt. Should only +// be used during runtime finalization. +static inline void _Py_SetMortal(PyObject *op, Py_ssize_t refcnt) +{ + if (op) { + assert(_Py_IsImmortalLoose(op)); +#ifdef Py_GIL_DISABLED + op->ob_tid = _Py_UNOWNED_TID; + op->ob_ref_local = 0; + op->ob_ref_shared = _Py_REF_SHARED(refcnt, _Py_REF_MERGED); +#else + op->ob_refcnt = refcnt; +#endif + } +} + +/* _Py_ClearImmortal() should only be used during runtime finalization. */ +static inline void _Py_ClearImmortal(PyObject *op) +{ + if (op) { + _Py_SetMortal(op, 1); + Py_DECREF(op); + } +} +#define _Py_ClearImmortal(op) \ + do { \ + _Py_ClearImmortal(_PyObject_CAST(op)); \ + op = NULL; \ + } while (0) + +// Mark an object as supporting deferred reference counting. This is a no-op +// in the default (with GIL) build. Objects that use deferred reference +// counting should be tracked by the GC so that they are eventually collected. +extern void _PyObject_SetDeferredRefcount(PyObject *op); + +static inline int +_PyObject_HasDeferredRefcount(PyObject *op) +{ +#ifdef Py_GIL_DISABLED + return _PyObject_HAS_GC_BITS(op, _PyGC_BITS_DEFERRED); +#else + return 0; +#endif +} + +#if !defined(Py_GIL_DISABLED) +static inline void +_Py_DECREF_SPECIALIZED(PyObject *op, const destructor destruct) +{ + if (_Py_IsImmortal(op)) { + return; + } + _Py_DECREF_STAT_INC(); +#ifdef Py_REF_DEBUG + _Py_DEC_REFTOTAL(PyInterpreterState_Get()); +#endif + if (--op->ob_refcnt != 0) { + assert(op->ob_refcnt > 0); + } + else { +#ifdef Py_TRACE_REFS + _Py_ForgetReference(op); +#endif + destruct(op); + } +} + +static inline void +_Py_DECREF_NO_DEALLOC(PyObject *op) +{ + if (_Py_IsImmortal(op)) { + return; + } + _Py_DECREF_STAT_INC(); +#ifdef Py_REF_DEBUG + _Py_DEC_REFTOTAL(PyInterpreterState_Get()); +#endif + op->ob_refcnt--; +#ifdef Py_DEBUG + if (op->ob_refcnt <= 0) { + _Py_FatalRefcountError("Expected a positive remaining refcount"); + } +#endif +} + +#else +// TODO: implement Py_DECREF specializations for Py_GIL_DISABLED build +static inline void +_Py_DECREF_SPECIALIZED(PyObject *op, const destructor destruct) +{ + Py_DECREF(op); +} + +static inline void +_Py_DECREF_NO_DEALLOC(PyObject *op) +{ + Py_DECREF(op); +} + +static inline int +_Py_REF_IS_MERGED(Py_ssize_t ob_ref_shared) +{ + return (ob_ref_shared & _Py_REF_SHARED_FLAG_MASK) == _Py_REF_MERGED; +} + +static inline int +_Py_REF_IS_QUEUED(Py_ssize_t ob_ref_shared) +{ + return (ob_ref_shared & _Py_REF_SHARED_FLAG_MASK) == _Py_REF_QUEUED; +} + +// Merge the local and shared reference count fields and add `extra` to the +// refcount when merging. +Py_ssize_t _Py_ExplicitMergeRefcount(PyObject *op, Py_ssize_t extra); +#endif // !defined(Py_GIL_DISABLED) + +#ifdef Py_REF_DEBUG +# undef _Py_DEC_REFTOTAL +#endif + + +extern int _PyType_CheckConsistency(PyTypeObject *type); +extern int _PyDict_CheckConsistency(PyObject *mp, int check_content); + +/* Update the Python traceback of an object. This function must be called + when a memory block is reused from a free list. + + Internal function called by _Py_NewReference(). */ +extern int _PyTraceMalloc_TraceRef(PyObject *op, PyRefTracerEvent event, void*); + +// Fast inlined version of PyType_HasFeature() +static inline int +_PyType_HasFeature(PyTypeObject *type, unsigned long feature) { + return ((FT_ATOMIC_LOAD_ULONG_RELAXED(type->tp_flags) & feature) != 0); +} + +extern void _PyType_InitCache(PyInterpreterState *interp); + +extern PyStatus _PyObject_InitState(PyInterpreterState *interp); +extern void _PyObject_FiniState(PyInterpreterState *interp); +extern bool _PyRefchain_IsTraced(PyInterpreterState *interp, PyObject *obj); + +/* Inline functions trading binary compatibility for speed: + _PyObject_Init() is the fast version of PyObject_Init(), and + _PyObject_InitVar() is the fast version of PyObject_InitVar(). + + These inline functions must not be called with op=NULL. */ +static inline void +_PyObject_Init(PyObject *op, PyTypeObject *typeobj) +{ + assert(op != NULL); + Py_SET_TYPE(op, typeobj); + assert(_PyType_HasFeature(typeobj, Py_TPFLAGS_HEAPTYPE) || _Py_IsImmortalLoose(typeobj)); + Py_INCREF(typeobj); + _Py_NewReference(op); +} + +static inline void +_PyObject_InitVar(PyVarObject *op, PyTypeObject *typeobj, Py_ssize_t size) +{ + assert(op != NULL); + assert(typeobj != &PyLong_Type); + _PyObject_Init((PyObject *)op, typeobj); + Py_SET_SIZE(op, size); +} + + +/* Tell the GC to track this object. + * + * The object must not be tracked by the GC. + * + * 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. + * + * See also the public PyObject_GC_Track() function. + */ +static inline void _PyObject_GC_TRACK( +// The preprocessor removes _PyObject_ASSERT_FROM() calls if NDEBUG is defined +#ifndef NDEBUG + const char *filename, int lineno, +#endif + PyObject *op) +{ + _PyObject_ASSERT_FROM(op, !_PyObject_GC_IS_TRACKED(op), + "object already tracked by the garbage collector", + filename, lineno, __func__); +#ifdef Py_GIL_DISABLED + _PyObject_SET_GC_BITS(op, _PyGC_BITS_TRACKED); +#else + 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, __func__); + + PyInterpreterState *interp = _PyInterpreterState_GET(); + PyGC_Head *generation0 = 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; +#endif +} + +/* 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. + * + * See also the public PyObject_GC_UnTrack() which accept an object which is + * not tracked. + */ +static inline void _PyObject_GC_UNTRACK( +// The preprocessor removes _PyObject_ASSERT_FROM() calls if NDEBUG is defined +#ifndef NDEBUG + const char *filename, int lineno, +#endif + PyObject *op) +{ + _PyObject_ASSERT_FROM(op, _PyObject_GC_IS_TRACKED(op), + "object not tracked by the garbage collector", + filename, lineno, __func__); + +#ifdef Py_GIL_DISABLED + _PyObject_CLEAR_GC_BITS(op, _PyGC_BITS_TRACKED); +#else + 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; +#endif +} + +// Macros to accept any type for the parameter, and to automatically pass +// the filename and the filename (if NDEBUG is not defined) where the macro +// is called. +#ifdef NDEBUG +# define _PyObject_GC_TRACK(op) \ + _PyObject_GC_TRACK(_PyObject_CAST(op)) +# define _PyObject_GC_UNTRACK(op) \ + _PyObject_GC_UNTRACK(_PyObject_CAST(op)) +#else +# define _PyObject_GC_TRACK(op) \ + _PyObject_GC_TRACK(__FILE__, __LINE__, _PyObject_CAST(op)) +# define _PyObject_GC_UNTRACK(op) \ + _PyObject_GC_UNTRACK(__FILE__, __LINE__, _PyObject_CAST(op)) +#endif + +#ifdef Py_GIL_DISABLED + +/* Tries to increment an object's reference count + * + * This is a specialized version of _Py_TryIncref that only succeeds if the + * object is immortal or local to this thread. It does not handle the case + * where the reference count modification requires an atomic operation. This + * allows call sites to specialize for the immortal/local case. + */ +static inline int +_Py_TryIncrefFast(PyObject *op) { + uint32_t local = _Py_atomic_load_uint32_relaxed(&op->ob_ref_local); + local += 1; + if (local == 0) { + // immortal + return 1; + } + if (_Py_IsOwnedByCurrentThread(op)) { + _Py_INCREF_STAT_INC(); + _Py_atomic_store_uint32_relaxed(&op->ob_ref_local, local); +#ifdef Py_REF_DEBUG + _Py_IncRefTotal(_PyThreadState_GET()); +#endif + return 1; + } + return 0; +} + +static inline int +_Py_TryIncRefShared(PyObject *op) +{ + Py_ssize_t shared = _Py_atomic_load_ssize_relaxed(&op->ob_ref_shared); + for (;;) { + // If the shared refcount is zero and the object is either merged + // or may not have weak references, then we cannot incref it. + if (shared == 0 || shared == _Py_REF_MERGED) { + return 0; + } + + if (_Py_atomic_compare_exchange_ssize( + &op->ob_ref_shared, + &shared, + shared + (1 << _Py_REF_SHARED_SHIFT))) { +#ifdef Py_REF_DEBUG + _Py_IncRefTotal(_PyThreadState_GET()); +#endif + _Py_INCREF_STAT_INC(); + return 1; + } + } +} + +/* Tries to incref the object op and ensures that *src still points to it. */ +static inline int +_Py_TryIncrefCompare(PyObject **src, PyObject *op) +{ + if (_Py_TryIncrefFast(op)) { + return 1; + } + if (!_Py_TryIncRefShared(op)) { + return 0; + } + if (op != _Py_atomic_load_ptr(src)) { + Py_DECREF(op); + return 0; + } + return 1; +} + +/* Loads and increfs an object from ptr, which may contain a NULL value. + Safe with concurrent (atomic) updates to ptr. + NOTE: The writer must set maybe-weakref on the stored object! */ +static inline PyObject * +_Py_XGetRef(PyObject **ptr) +{ + for (;;) { + PyObject *value = _Py_atomic_load_ptr(ptr); + if (value == NULL) { + return value; + } + if (_Py_TryIncrefCompare(ptr, value)) { + return value; + } + } +} + +/* Attempts to loads and increfs an object from ptr. Returns NULL + on failure, which may be due to a NULL value or a concurrent update. */ +static inline PyObject * +_Py_TryXGetRef(PyObject **ptr) +{ + PyObject *value = _Py_atomic_load_ptr(ptr); + if (value == NULL) { + return value; + } + if (_Py_TryIncrefCompare(ptr, value)) { + return value; + } + return NULL; +} + +/* Like Py_NewRef but also optimistically sets _Py_REF_MAYBE_WEAKREF + on objects owned by a different thread. */ +static inline PyObject * +_Py_NewRefWithLock(PyObject *op) +{ + if (_Py_TryIncrefFast(op)) { + return op; + } +#ifdef Py_REF_DEBUG + _Py_IncRefTotal(_PyThreadState_GET()); +#endif + _Py_INCREF_STAT_INC(); + for (;;) { + Py_ssize_t shared = _Py_atomic_load_ssize_relaxed(&op->ob_ref_shared); + Py_ssize_t new_shared = shared + (1 << _Py_REF_SHARED_SHIFT); + if ((shared & _Py_REF_SHARED_FLAG_MASK) == 0) { + new_shared |= _Py_REF_MAYBE_WEAKREF; + } + if (_Py_atomic_compare_exchange_ssize( + &op->ob_ref_shared, + &shared, + new_shared)) { + return op; + } + } +} + +static inline PyObject * +_Py_XNewRefWithLock(PyObject *obj) +{ + if (obj == NULL) { + return NULL; + } + return _Py_NewRefWithLock(obj); +} + +static inline void +_PyObject_SetMaybeWeakref(PyObject *op) +{ + if (_Py_IsImmortal(op)) { + return; + } + for (;;) { + Py_ssize_t shared = _Py_atomic_load_ssize_relaxed(&op->ob_ref_shared); + if ((shared & _Py_REF_SHARED_FLAG_MASK) != 0) { + // Nothing to do if it's in WEAKREFS, QUEUED, or MERGED states. + return; + } + if (_Py_atomic_compare_exchange_ssize( + &op->ob_ref_shared, &shared, shared | _Py_REF_MAYBE_WEAKREF)) { + return; + } + } +} + +#endif + +/* Tries to incref op and returns 1 if successful or 0 otherwise. */ +static inline int +_Py_TryIncref(PyObject *op) +{ +#ifdef Py_GIL_DISABLED + return _Py_TryIncrefFast(op) || _Py_TryIncRefShared(op); +#else + if (Py_REFCNT(op) > 0) { + Py_INCREF(op); + return 1; + } + return 0; +#endif +} + +#ifdef Py_REF_DEBUG +extern void _PyInterpreterState_FinalizeRefTotal(PyInterpreterState *); +extern void _Py_FinalizeRefTotal(_PyRuntimeState *); +extern void _PyDebug_PrintTotalRefs(void); +#endif + +#ifdef Py_TRACE_REFS +extern void _Py_AddToAllObjects(PyObject *op); +extern void _Py_PrintReferences(PyInterpreterState *, FILE *); +extern void _Py_PrintReferenceAddresses(PyInterpreterState *, FILE *); +#endif + + +/* Return the *address* of the object's weaklist. The address may be + * dereferenced to get the current head of the weaklist. This is useful + * for iterating over the linked list of weakrefs, especially when the + * list is being modified externally (e.g. refs getting removed). + * + * The returned pointer should not be used to change the head of the list + * nor should it be used to add, remove, or swap any refs in the list. + * That is the sole responsibility of the code in weakrefobject.c. + */ +static inline PyObject ** +_PyObject_GET_WEAKREFS_LISTPTR(PyObject *op) +{ + if (PyType_Check(op) && + ((PyTypeObject *)op)->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN) { + PyInterpreterState *interp = _PyInterpreterState_GET(); + managed_static_type_state *state = _PyStaticType_GetState( + interp, (PyTypeObject *)op); + return _PyStaticType_GET_WEAKREFS_LISTPTR(state); + } + // Essentially _PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET(): + Py_ssize_t offset = Py_TYPE(op)->tp_weaklistoffset; + return (PyObject **)((char *)op + offset); +} + +/* This is a special case of _PyObject_GET_WEAKREFS_LISTPTR(). + * Only the most fundamental lookup path is used. + * Consequently, static types should not be used. + * + * For static builtin types the returned pointer will always point + * to a NULL tp_weaklist. This is fine for any deallocation cases, + * since static types are never deallocated and static builtin types + * are only finalized at the end of runtime finalization. + * + * If the weaklist for static types is actually needed then use + * _PyObject_GET_WEAKREFS_LISTPTR(). + */ +static inline PyWeakReference ** +_PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET(PyObject *op) +{ + assert(!PyType_Check(op) || + ((PyTypeObject *)op)->tp_flags & Py_TPFLAGS_HEAPTYPE); + Py_ssize_t offset = Py_TYPE(op)->tp_weaklistoffset; + return (PyWeakReference **)((char *)op + offset); +} + +// Fast inlined version of PyObject_IS_GC() +static inline int +_PyObject_IS_GC(PyObject *obj) +{ + PyTypeObject *type = Py_TYPE(obj); + return (PyType_IS_GC(type) + && (type->tp_is_gc == NULL || type->tp_is_gc(obj))); +} + +// Fast inlined version of PyObject_Hash() +static inline Py_hash_t +_PyObject_HashFast(PyObject *op) +{ + if (PyUnicode_CheckExact(op)) { + Py_hash_t hash = FT_ATOMIC_LOAD_SSIZE_RELAXED( + _PyASCIIObject_CAST(op)->hash); + if (hash != -1) { + return hash; + } + } + return PyObject_Hash(op); +} + +// Fast inlined version of PyType_IS_GC() +#define _PyType_IS_GC(t) _PyType_HasFeature((t), Py_TPFLAGS_HAVE_GC) + +static inline size_t +_PyType_PreHeaderSize(PyTypeObject *tp) +{ + return ( +#ifndef Py_GIL_DISABLED + _PyType_IS_GC(tp) * sizeof(PyGC_Head) + +#endif + _PyType_HasFeature(tp, Py_TPFLAGS_PREHEADER) * 2 * sizeof(PyObject *) + ); +} + +void _PyObject_GC_Link(PyObject *op); + +// Usage: assert(_Py_CheckSlotResult(obj, "__getitem__", result != NULL)); +extern int _Py_CheckSlotResult( + PyObject *obj, + const char *slot_name, + int success); + +// Test if a type supports weak references +static inline int _PyType_SUPPORTS_WEAKREFS(PyTypeObject *type) { + return (type->tp_weaklistoffset != 0); +} + +extern PyObject* _PyType_AllocNoTrack(PyTypeObject *type, Py_ssize_t nitems); +extern PyObject *_PyType_NewManagedObject(PyTypeObject *type); + +extern PyTypeObject* _PyType_CalculateMetaclass(PyTypeObject *, PyObject *); +extern PyObject* _PyType_GetDocFromInternalDoc(const char *, const char *); +extern PyObject* _PyType_GetTextSignatureFromInternalDoc(const char *, const char *, int); +extern int _PyObject_SetAttributeErrorContext(PyObject *v, PyObject* name); + +void _PyObject_InitInlineValues(PyObject *obj, PyTypeObject *tp); +extern int _PyObject_StoreInstanceAttribute(PyObject *obj, + PyObject *name, PyObject *value); +extern bool _PyObject_TryGetInstanceAttribute(PyObject *obj, PyObject *name, + PyObject **attr); + +#ifdef Py_GIL_DISABLED +# define MANAGED_DICT_OFFSET (((Py_ssize_t)sizeof(PyObject *))*-1) +# define MANAGED_WEAKREF_OFFSET (((Py_ssize_t)sizeof(PyObject *))*-2) +#else +# define MANAGED_DICT_OFFSET (((Py_ssize_t)sizeof(PyObject *))*-3) +# define MANAGED_WEAKREF_OFFSET (((Py_ssize_t)sizeof(PyObject *))*-4) +#endif + +typedef union { + PyDictObject *dict; +} PyManagedDictPointer; + +static inline PyManagedDictPointer * +_PyObject_ManagedDictPointer(PyObject *obj) +{ + assert(Py_TYPE(obj)->tp_flags & Py_TPFLAGS_MANAGED_DICT); + return (PyManagedDictPointer *)((char *)obj + MANAGED_DICT_OFFSET); +} + +static inline PyDictObject * +_PyObject_GetManagedDict(PyObject *obj) +{ + PyManagedDictPointer *dorv = _PyObject_ManagedDictPointer(obj); + return (PyDictObject *)FT_ATOMIC_LOAD_PTR_ACQUIRE(dorv->dict); +} + +static inline PyDictValues * +_PyObject_InlineValues(PyObject *obj) +{ + assert(Py_TYPE(obj)->tp_flags & Py_TPFLAGS_INLINE_VALUES); + assert(Py_TYPE(obj)->tp_flags & Py_TPFLAGS_MANAGED_DICT); + assert(Py_TYPE(obj)->tp_basicsize == sizeof(PyObject)); + return (PyDictValues *)((char *)obj + sizeof(PyObject)); +} + +extern PyObject ** _PyObject_ComputedDictPointer(PyObject *); +extern int _PyObject_IsInstanceDictEmpty(PyObject *); + +// Export for 'math' shared extension +PyAPI_FUNC(PyObject*) _PyObject_LookupSpecial(PyObject *, PyObject *); + +extern int _PyObject_IsAbstract(PyObject *); + +PyAPI_FUNC(int) _PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method); +extern PyObject* _PyObject_NextNotImplemented(PyObject *); + +// Pickle support. +// Export for '_datetime' shared extension +PyAPI_FUNC(PyObject*) _PyObject_GetState(PyObject *); + +/* C function call trampolines to mitigate bad function pointer casts. + * + * Typical native ABIs ignore additional arguments or fill in missing + * values with 0/NULL in function pointer cast. Compilers do not show + * warnings when a function pointer is explicitly casted to an + * incompatible type. + * + * Bad fpcasts are an issue in WebAssembly. WASM's indirect_call has strict + * function signature checks. Argument count, types, and return type must + * match. + * + * Third party code unintentionally rely on problematic fpcasts. The call + * trampoline mitigates common occurrences of bad fpcasts on Emscripten. + */ +#if !(defined(__EMSCRIPTEN__) && defined(PY_CALL_TRAMPOLINE)) +#define _PyCFunction_TrampolineCall(meth, self, args) \ + (meth)((self), (args)) +#define _PyCFunctionWithKeywords_TrampolineCall(meth, self, args, kw) \ + (meth)((self), (args), (kw)) +#endif // __EMSCRIPTEN__ && PY_CALL_TRAMPOLINE + +// Export these 2 symbols for '_pickle' shared extension +PyAPI_DATA(PyTypeObject) _PyNone_Type; +PyAPI_DATA(PyTypeObject) _PyNotImplemented_Type; + +// Maps Py_LT to Py_GT, ..., Py_GE to Py_LE. +// Export for the stable ABI. +PyAPI_DATA(int) _Py_SwappedOp[]; + +extern void _Py_GetConstant_Init(void); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_OBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_object_alloc.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_object_alloc.h new file mode 100644 index 000000000..8cc7a444b --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_object_alloc.h @@ -0,0 +1,71 @@ +#ifndef Py_INTERNAL_OBJECT_ALLOC_H +#define Py_INTERNAL_OBJECT_ALLOC_H + +#include "pycore_object.h" // _PyType_HasFeature() +#include "pycore_pystate.h" // _PyThreadState_GET() +#include "pycore_tstate.h" // _PyThreadStateImpl + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#ifdef Py_GIL_DISABLED +static inline mi_heap_t * +_PyObject_GetAllocationHeap(_PyThreadStateImpl *tstate, PyTypeObject *tp) +{ + struct _mimalloc_thread_state *m = &tstate->mimalloc; + if (_PyType_HasFeature(tp, Py_TPFLAGS_PREHEADER)) { + return &m->heaps[_Py_MIMALLOC_HEAP_GC_PRE]; + } + else if (_PyType_IS_GC(tp)) { + return &m->heaps[_Py_MIMALLOC_HEAP_GC]; + } + else { + return &m->heaps[_Py_MIMALLOC_HEAP_OBJECT]; + } +} +#endif + +// Sets the heap used for PyObject_Malloc(), PyObject_Realloc(), etc. calls in +// Py_GIL_DISABLED builds. We use different heaps depending on if the object +// supports GC and if it has a pre-header. We smuggle the choice of heap +// through the _mimalloc_thread_state. In the default build, this simply +// calls PyObject_Malloc(). +static inline void * +_PyObject_MallocWithType(PyTypeObject *tp, size_t size) +{ +#ifdef Py_GIL_DISABLED + _PyThreadStateImpl *tstate = (_PyThreadStateImpl *)_PyThreadState_GET(); + struct _mimalloc_thread_state *m = &tstate->mimalloc; + m->current_object_heap = _PyObject_GetAllocationHeap(tstate, tp); +#endif + void *mem = PyObject_Malloc(size); +#ifdef Py_GIL_DISABLED + m->current_object_heap = &m->heaps[_Py_MIMALLOC_HEAP_OBJECT]; +#endif + return mem; +} + +static inline void * +_PyObject_ReallocWithType(PyTypeObject *tp, void *ptr, size_t size) +{ +#ifdef Py_GIL_DISABLED + _PyThreadStateImpl *tstate = (_PyThreadStateImpl *)_PyThreadState_GET(); + struct _mimalloc_thread_state *m = &tstate->mimalloc; + m->current_object_heap = _PyObject_GetAllocationHeap(tstate, tp); +#endif + void *mem = PyObject_Realloc(ptr, size); +#ifdef Py_GIL_DISABLED + m->current_object_heap = &m->heaps[_Py_MIMALLOC_HEAP_OBJECT]; +#endif + return mem; +} + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_OBJECT_ALLOC_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_object_stack.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_object_stack.h new file mode 100644 index 000000000..fc130b1e9 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_object_stack.h @@ -0,0 +1,87 @@ +#ifndef Py_INTERNAL_OBJECT_STACK_H +#define Py_INTERNAL_OBJECT_STACK_H + +#include "pycore_freelist.h" // _PyFreeListState + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +// _PyObjectStack is a stack of Python objects implemented as a linked list of +// fixed size buffers. + +// Chosen so that _PyObjectStackChunk is a power-of-two size. +#define _Py_OBJECT_STACK_CHUNK_SIZE 254 + +typedef struct _PyObjectStackChunk { + struct _PyObjectStackChunk *prev; + Py_ssize_t n; + PyObject *objs[_Py_OBJECT_STACK_CHUNK_SIZE]; +} _PyObjectStackChunk; + +typedef struct _PyObjectStack { + _PyObjectStackChunk *head; +} _PyObjectStack; + + +extern _PyObjectStackChunk * +_PyObjectStackChunk_New(void); + +extern void +_PyObjectStackChunk_Free(_PyObjectStackChunk *); + +// Push an item onto the stack. Return -1 on allocation failure, 0 on success. +static inline int +_PyObjectStack_Push(_PyObjectStack *stack, PyObject *obj) +{ + _PyObjectStackChunk *buf = stack->head; + if (buf == NULL || buf->n == _Py_OBJECT_STACK_CHUNK_SIZE) { + buf = _PyObjectStackChunk_New(); + if (buf == NULL) { + return -1; + } + buf->prev = stack->head; + buf->n = 0; + stack->head = buf; + } + + assert(buf->n >= 0 && buf->n < _Py_OBJECT_STACK_CHUNK_SIZE); + buf->objs[buf->n] = obj; + buf->n++; + return 0; +} + +// Pop the top item from the stack. Return NULL if the stack is empty. +static inline PyObject * +_PyObjectStack_Pop(_PyObjectStack *stack) +{ + _PyObjectStackChunk *buf = stack->head; + if (buf == NULL) { + return NULL; + } + assert(buf->n > 0 && buf->n <= _Py_OBJECT_STACK_CHUNK_SIZE); + buf->n--; + PyObject *obj = buf->objs[buf->n]; + if (buf->n == 0) { + stack->head = buf->prev; + _PyObjectStackChunk_Free(buf); + } + return obj; +} + +// Merge src into dst, leaving src empty +extern void +_PyObjectStack_Merge(_PyObjectStack *dst, _PyObjectStack *src); + +// Remove all items from the stack +extern void +_PyObjectStack_Clear(_PyObjectStack *stack); + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_OBJECT_STACK_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_object_state.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_object_state.h new file mode 100644 index 000000000..cd7c9335b --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_object_state.h @@ -0,0 +1,41 @@ +#ifndef Py_INTERNAL_OBJECT_STATE_H +#define Py_INTERNAL_OBJECT_STATE_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_freelist.h" // _PyObject_freelists +#include "pycore_hashtable.h" // _Py_hashtable_t + +struct _py_object_runtime_state { +#ifdef Py_REF_DEBUG + Py_ssize_t interpreter_leaks; +#endif + int _not_used; +}; + +struct _py_object_state { +#if !defined(Py_GIL_DISABLED) + struct _Py_object_freelists freelists; +#endif +#ifdef Py_REF_DEBUG + Py_ssize_t reftotal; +#endif +#ifdef Py_TRACE_REFS + // Hash table storing all objects. The key is the object pointer + // (PyObject*) and the value is always the number 1 (as uintptr_t). + // See _PyRefchain_IsTraced() and _PyRefchain_Trace() functions. + _Py_hashtable_t *refchain; +#endif + int _not_used; +}; + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_OBJECT_STATE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_obmalloc.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_obmalloc.h new file mode 100644 index 000000000..9140d8f08 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_obmalloc.h @@ -0,0 +1,702 @@ +#ifndef Py_INTERNAL_OBMALLOC_H +#define Py_INTERNAL_OBMALLOC_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +typedef unsigned int pymem_uint; /* assuming >= 16 bits */ + +#undef uint +#define uint pymem_uint + + +/* An object allocator for Python. + + Here is an introduction to the layers of the Python memory architecture, + showing where the object allocator is actually used (layer +2), It is + called for every object allocation and deallocation (PyObject_New/Del), + unless the object-specific allocators implement a proprietary allocation + scheme (ex.: ints use a simple free list). This is also the place where + the cyclic garbage collector operates selectively on container objects. + + + Object-specific allocators + _____ ______ ______ ________ + [ int ] [ dict ] [ list ] ... [ string ] Python core | ++3 | <----- Object-specific memory -----> | <-- Non-object memory --> | + _______________________________ | | + [ Python's object allocator ] | | ++2 | ####### Object memory ####### | <------ Internal buffers ------> | + ______________________________________________________________ | + [ Python's raw memory allocator (PyMem_ API) ] | ++1 | <----- Python memory (under PyMem manager's control) ------> | | + __________________________________________________________________ + [ Underlying general-purpose allocator (ex: C library malloc) ] + 0 | <------ Virtual memory allocated for the python process -------> | + + ========================================================================= + _______________________________________________________________________ + [ OS-specific Virtual Memory Manager (VMM) ] +-1 | <--- Kernel dynamic storage allocation & management (page-based) ---> | + __________________________________ __________________________________ + [ ] [ ] +-2 | <-- Physical memory: ROM/RAM --> | | <-- Secondary storage (swap) --> | + +*/ +/*==========================================================================*/ + +/* A fast, special-purpose memory allocator for small blocks, to be used + on top of a general-purpose malloc -- heavily based on previous art. */ + +/* Vladimir Marangozov -- August 2000 */ + +/* + * "Memory management is where the rubber meets the road -- if we do the wrong + * thing at any level, the results will not be good. And if we don't make the + * levels work well together, we are in serious trouble." (1) + * + * (1) Paul R. Wilson, Mark S. Johnstone, Michael Neely, and David Boles, + * "Dynamic Storage Allocation: A Survey and Critical Review", + * in Proc. 1995 Int'l. Workshop on Memory Management, September 1995. + */ + +/* #undef WITH_MEMORY_LIMITS */ /* disable mem limit checks */ + +/*==========================================================================*/ + +/* + * Allocation strategy abstract: + * + * For small requests, the allocator sub-allocates blocks of memory. + * Requests greater than SMALL_REQUEST_THRESHOLD bytes are routed to the + * system's allocator. + * + * Small requests are grouped in size classes spaced 8 bytes apart, due + * to the required valid alignment of the returned address. Requests of + * a particular size are serviced from memory pools of 4K (one VMM page). + * Pools are fragmented on demand and contain free lists of blocks of one + * particular size class. In other words, there is a fixed-size allocator + * for each size class. Free pools are shared by the different allocators + * thus minimizing the space reserved for a particular size class. + * + * This allocation strategy is a variant of what is known as "simple + * segregated storage based on array of free lists". The main drawback of + * simple segregated storage is that we might end up with lot of reserved + * memory for the different free lists, which degenerate in time. To avoid + * this, we partition each free list in pools and we share dynamically the + * reserved space between all free lists. This technique is quite efficient + * for memory intensive programs which allocate mainly small-sized blocks. + * + * For small requests we have the following table: + * + * Request in bytes Size of allocated block Size class idx + * ---------------------------------------------------------------- + * 1-8 8 0 + * 9-16 16 1 + * 17-24 24 2 + * 25-32 32 3 + * 33-40 40 4 + * 41-48 48 5 + * 49-56 56 6 + * 57-64 64 7 + * 65-72 72 8 + * ... ... ... + * 497-504 504 62 + * 505-512 512 63 + * + * 0, SMALL_REQUEST_THRESHOLD + 1 and up: routed to the underlying + * allocator. + */ + +/*==========================================================================*/ + +/* + * -- Main tunable settings section -- + */ + +/* + * Alignment of addresses returned to the user. 8-bytes alignment works + * 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 +#define ALIGNMENT 8 /* must be 2^N */ +#define ALIGNMENT_SHIFT 3 +#endif + +/* Return the number of bytes in size class I, as a uint. */ +#define INDEX2SIZE(I) (((pymem_uint)(I) + 1) << ALIGNMENT_SHIFT) + +/* + * Max size threshold below which malloc requests are considered to be + * small enough in order to use preallocated memory pools. You can tune + * this value according to your application behaviour and memory needs. + * + * Note: a size threshold of 512 guarantees that newly created dictionaries + * will be allocated from preallocated memory pools on 64-bit. + * + * The following invariants must hold: + * 1) ALIGNMENT <= SMALL_REQUEST_THRESHOLD <= 512 + * 2) SMALL_REQUEST_THRESHOLD is evenly divisible by ALIGNMENT + * + * Although not required, for better performance and space efficiency, + * it is recommended that SMALL_REQUEST_THRESHOLD is set to a power of 2. + */ +#define SMALL_REQUEST_THRESHOLD 512 +#define NB_SMALL_SIZE_CLASSES (SMALL_REQUEST_THRESHOLD / ALIGNMENT) + +/* + * The system's VMM page size can be obtained on most unices with a + * getpagesize() call or deduced from various header files. To make + * things simpler, we assume that it is 4K, which is OK for most systems. + * It is probably better if this is the native page size, but it doesn't + * have to be. In theory, if SYSTEM_PAGE_SIZE is larger than the native page + * size, then `POOL_ADDR(p)->arenaindex' could rarely cause a segmentation + * violation fault. 4K is apparently OK for all the platforms that python + * currently targets. + */ +#define SYSTEM_PAGE_SIZE (4 * 1024) + +/* + * Maximum amount of memory managed by the allocator for small requests. + */ +#ifdef WITH_MEMORY_LIMITS +#ifndef SMALL_MEMORY_LIMIT +#define SMALL_MEMORY_LIMIT (64 * 1024 * 1024) /* 64 MB -- more? */ +#endif +#endif + +#if !defined(WITH_PYMALLOC_RADIX_TREE) +/* Use radix-tree to track arena memory regions, for address_in_range(). + * Enable by default since it allows larger pool sizes. Can be disabled + * using -DWITH_PYMALLOC_RADIX_TREE=0 */ +#define WITH_PYMALLOC_RADIX_TREE 1 +#endif + +#if SIZEOF_VOID_P > 4 +/* on 64-bit platforms use larger pools and arenas if we can */ +#define USE_LARGE_ARENAS +#if WITH_PYMALLOC_RADIX_TREE +/* large pools only supported if radix-tree is enabled */ +#define USE_LARGE_POOLS +#endif +#endif + +/* + * The allocator sub-allocates blocks of memory (called arenas) aligned + * on a page boundary. This is a reserved virtual address space for the + * current process (obtained through a malloc()/mmap() call). In no way this + * means that the memory arenas will be used entirely. A malloc() is + * usually an address range reservation for bytes, unless all pages within + * this space are referenced subsequently. So malloc'ing big blocks and not + * using them does not mean "wasting memory". It's an addressable range + * wastage... + * + * Arenas are allocated with mmap() on systems supporting anonymous memory + * mappings to reduce heap fragmentation. + */ +#ifdef USE_LARGE_ARENAS +#define ARENA_BITS 20 /* 1 MiB */ +#else +#define ARENA_BITS 18 /* 256 KiB */ +#endif +#define ARENA_SIZE (1 << ARENA_BITS) +#define ARENA_SIZE_MASK (ARENA_SIZE - 1) + +#ifdef WITH_MEMORY_LIMITS +#define MAX_ARENAS (SMALL_MEMORY_LIMIT / ARENA_SIZE) +#endif + +/* + * Size of the pools used for small blocks. Must be a power of 2. + */ +#ifdef USE_LARGE_POOLS +#define POOL_BITS 14 /* 16 KiB */ +#else +#define POOL_BITS 12 /* 4 KiB */ +#endif +#define POOL_SIZE (1 << POOL_BITS) +#define POOL_SIZE_MASK (POOL_SIZE - 1) + +#if !WITH_PYMALLOC_RADIX_TREE +#if POOL_SIZE != SYSTEM_PAGE_SIZE +# error "pool size must be equal to system page size" +#endif +#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 -- + */ + +/*==========================================================================*/ + +/* When you say memory, my mind reasons in terms of (pointers to) blocks */ +typedef uint8_t pymem_block; + +/* Pool for small blocks. */ +struct pool_header { + union { pymem_block *_padding; + uint count; } ref; /* number of allocated blocks */ + pymem_block *freeblock; /* pool's free list head */ + struct pool_header *nextpool; /* next pool of this size class */ + struct pool_header *prevpool; /* previous pool "" */ + uint arenaindex; /* index into arenas of base adr */ + uint szidx; /* block size class index */ + uint nextoffset; /* bytes to virgin block */ + uint maxnextoffset; /* largest valid nextoffset */ +}; + +typedef struct pool_header *poolp; + +/* Record keeping for arenas. */ +struct arena_object { + /* The address of the arena, as returned by malloc. Note that 0 + * will never be returned by a successful malloc, and is used + * here to mark an arena_object that doesn't correspond to an + * allocated arena. + */ + uintptr_t address; + + /* Pool-aligned pointer to the next pool to be carved off. */ + pymem_block* pool_address; + + /* The number of available pools in the arena: free pools + never- + * allocated pools. + */ + uint nfreepools; + + /* The total number of pools in the arena, whether or not available. */ + uint ntotalpools; + + /* Singly-linked list of available pools. */ + struct pool_header* freepools; + + /* Whenever this arena_object is not associated with an allocated + * arena, the nextarena member is used to link all unassociated + * arena_objects in the singly-linked `unused_arena_objects` list. + * The prevarena member is unused in this case. + * + * When this arena_object is associated with an allocated arena + * with at least one available pool, both members are used in the + * doubly-linked `usable_arenas` list, which is maintained in + * increasing order of `nfreepools` values. + * + * Else this arena_object is associated with an allocated arena + * all of whose pools are in use. `nextarena` and `prevarena` + * are both meaningless in this case. + */ + struct arena_object* nextarena; + struct arena_object* prevarena; +}; + +#define POOL_OVERHEAD _Py_SIZE_ROUND_UP(sizeof(struct pool_header), ALIGNMENT) + +#define DUMMY_SIZE_IDX 0xffff /* size class of newly cached pools */ + +/* Round pointer P down to the closest pool-aligned address <= P, as a poolp */ +#define POOL_ADDR(P) ((poolp)_Py_ALIGN_DOWN((P), POOL_SIZE)) + +/* Return total number of blocks in pool of size index I, as a uint. */ +#define NUMBLOCKS(I) ((pymem_uint)(POOL_SIZE - POOL_OVERHEAD) / INDEX2SIZE(I)) + +/*==========================================================================*/ + +/* + * Pool table -- headed, circular, doubly-linked lists of partially used pools. + +This is involved. For an index i, usedpools[i+i] is the header for a list of +all partially used pools holding small blocks with "size class idx" i. So +usedpools[0] corresponds to blocks of size 8, usedpools[2] to blocks of size +16, and so on: index 2*i <-> blocks of size (i+1)<freeblock points to +the start of a singly-linked list of free blocks within the pool. When a +block is freed, it's inserted at the front of its pool's freeblock list. Note +that the available blocks in a pool are *not* linked all together when a pool +is initialized. Instead only "the first two" (lowest addresses) blocks are +set up, returning the first such block, and setting pool->freeblock to a +one-block list holding the second such block. This is consistent with that +pymalloc strives at all levels (arena, pool, and block) never to touch a piece +of memory until it's actually needed. + +So long as a pool is in the used state, we're certain there *is* a block +available for allocating, and pool->freeblock is not NULL. If pool->freeblock +points to the end of the free list before we've carved the entire pool into +blocks, that means we simply haven't yet gotten to one of the higher-address +blocks. The offset from the pool_header to the start of "the next" virgin +block is stored in the pool_header nextoffset member, and the largest value +of nextoffset that makes sense is stored in the maxnextoffset member when a +pool is initialized. All the blocks in a pool have been passed out at least +once when and only when nextoffset > maxnextoffset. + + +Major obscurity: While the usedpools vector is declared to have poolp +entries, it doesn't really. It really contains two pointers per (conceptual) +poolp entry, the nextpool and prevpool members of a pool_header. The +excruciating initialization code below fools C so that + + usedpool[i+i] + +"acts like" a genuine poolp, but only so long as you only reference its +nextpool and prevpool members. The "- 2*sizeof(pymem_block *)" gibberish is +compensating for that a pool_header's nextpool and prevpool members +immediately follow a pool_header's first two members: + + union { pymem_block *_padding; + uint count; } ref; + pymem_block *freeblock; + +each of which consume sizeof(pymem_block *) bytes. So what usedpools[i+i] really +contains is a fudged-up pointer p such that *if* C believes it's a poolp +pointer, then p->nextpool and p->prevpool are both p (meaning that the headed +circular list is empty). + +It's unclear why the usedpools setup is so convoluted. It could be to +minimize the amount of cache required to hold this heavily-referenced table +(which only *needs* the two interpool pointer members of a pool_header). OTOH, +referencing code has to remember to "double the index" and doing so isn't +free, usedpools[0] isn't a strictly legal pointer, and we're crucially relying +on that C doesn't insert any padding anywhere in a pool_header at or before +the prevpool member. +**************************************************************************** */ + +#define OBMALLOC_USED_POOLS_SIZE (2 * ((NB_SMALL_SIZE_CLASSES + 7) / 8) * 8) + +struct _obmalloc_pools { + poolp used[OBMALLOC_USED_POOLS_SIZE]; +}; + + +/*========================================================================== +Arena management. + +`arenas` is a vector of arena_objects. It contains maxarenas entries, some of +which may not be currently used (== they're arena_objects that aren't +currently associated with an allocated arena). Note that arenas proper are +separately malloc'ed. + +Prior to Python 2.5, arenas were never free()'ed. Starting with Python 2.5, +we do try to free() arenas, and use some mild heuristic strategies to increase +the likelihood that arenas eventually can be freed. + +unused_arena_objects + + This is a singly-linked list of the arena_objects that are currently not + being used (no arena is associated with them). Objects are taken off the + head of the list in new_arena(), and are pushed on the head of the list in + PyObject_Free() when the arena is empty. Key invariant: an arena_object + is on this list if and only if its .address member is 0. + +usable_arenas + + This is a doubly-linked list of the arena_objects associated with arenas + that have pools available. These pools are either waiting to be reused, + or have not been used before. The list is sorted to have the most- + allocated arenas first (ascending order based on the nfreepools member). + This means that the next allocation will come from a heavily used arena, + which gives the nearly empty arenas a chance to be returned to the system. + In my unscientific tests this dramatically improved the number of arenas + that could be freed. + +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. +*/ + +/* How many arena_objects do we initially allocate? + * 16 = can allocate 16 arenas = 16 * ARENA_SIZE = 4MB before growing the + * `arenas` vector. + */ +#define INITIAL_ARENA_OBJECTS 16 + +struct _obmalloc_mgmt { + /* Array of objects used to track chunks of memory (arenas). */ + struct arena_object* arenas; + /* Number of slots currently allocated in the `arenas` vector. */ + uint maxarenas; + + /* The head of the singly-linked, NULL-terminated list of available + * arena_objects. + */ + struct arena_object* unused_arena_objects; + + /* The head of the doubly-linked, NULL-terminated at each end, list of + * arena_objects associated with arenas that have pools available. + */ + struct arena_object* usable_arenas; + + /* nfp2lasta[nfp] is the last arena in usable_arenas with nfp free pools */ + struct arena_object* nfp2lasta[MAX_POOLS_IN_ARENA + 1]; + + /* Number of arenas allocated that haven't been free()'d. */ + size_t narenas_currently_allocated; + + /* Total number of times malloc() called to allocate an arena. */ + size_t ntimes_arena_allocated; + /* High water mark (max value ever seen) for narenas_currently_allocated. */ + size_t narenas_highwater; + + Py_ssize_t raw_allocated_blocks; +}; + + +#if WITH_PYMALLOC_RADIX_TREE +/*==========================================================================*/ +/* radix tree for tracking arena usage. If enabled, used to implement + address_in_range(). + + memory address bit allocation for keys + + 64-bit pointers, IGNORE_BITS=0 and 2^20 arena size: + 15 -> MAP_TOP_BITS + 15 -> MAP_MID_BITS + 14 -> MAP_BOT_BITS + 20 -> ideal aligned arena + ---- + 64 + + 64-bit pointers, IGNORE_BITS=16, and 2^20 arena size: + 16 -> IGNORE_BITS + 10 -> MAP_TOP_BITS + 10 -> MAP_MID_BITS + 8 -> MAP_BOT_BITS + 20 -> ideal aligned arena + ---- + 64 + + 32-bit pointers and 2^18 arena size: + 14 -> MAP_BOT_BITS + 18 -> ideal aligned arena + ---- + 32 + +*/ + +#if SIZEOF_VOID_P == 8 + +/* number of bits in a pointer */ +#define POINTER_BITS 64 + +/* High bits of memory addresses that will be ignored when indexing into the + * radix tree. Setting this to zero is the safe default. For most 64-bit + * machines, setting this to 16 would be safe. The kernel would not give + * user-space virtual memory addresses that have significant information in + * those high bits. The main advantage to setting IGNORE_BITS > 0 is that less + * virtual memory will be used for the top and middle radix tree arrays. Those + * arrays are allocated in the BSS segment and so will typically consume real + * memory only if actually accessed. + */ +#define IGNORE_BITS 0 + +/* use the top and mid layers of the radix tree */ +#define USE_INTERIOR_NODES + +#elif SIZEOF_VOID_P == 4 + +#define POINTER_BITS 32 +#define IGNORE_BITS 0 + +#else + + /* Currently this code works for 64-bit or 32-bit pointers only. */ +#error "obmalloc radix tree requires 64-bit or 32-bit pointers." + +#endif /* SIZEOF_VOID_P */ + +/* arena_coverage_t members require this to be true */ +#if ARENA_BITS >= 32 +# error "arena size must be < 2^32" +#endif + +/* the lower bits of the address that are not ignored */ +#define ADDRESS_BITS (POINTER_BITS - IGNORE_BITS) + +#ifdef USE_INTERIOR_NODES +/* number of bits used for MAP_TOP and MAP_MID nodes */ +#define INTERIOR_BITS ((ADDRESS_BITS - ARENA_BITS + 2) / 3) +#else +#define INTERIOR_BITS 0 +#endif + +#define MAP_TOP_BITS INTERIOR_BITS +#define MAP_TOP_LENGTH (1 << MAP_TOP_BITS) +#define MAP_TOP_MASK (MAP_TOP_LENGTH - 1) + +#define MAP_MID_BITS INTERIOR_BITS +#define MAP_MID_LENGTH (1 << MAP_MID_BITS) +#define MAP_MID_MASK (MAP_MID_LENGTH - 1) + +#define MAP_BOT_BITS (ADDRESS_BITS - ARENA_BITS - 2*INTERIOR_BITS) +#define MAP_BOT_LENGTH (1 << MAP_BOT_BITS) +#define MAP_BOT_MASK (MAP_BOT_LENGTH - 1) + +#define MAP_BOT_SHIFT ARENA_BITS +#define MAP_MID_SHIFT (MAP_BOT_BITS + MAP_BOT_SHIFT) +#define MAP_TOP_SHIFT (MAP_MID_BITS + MAP_MID_SHIFT) + +#define AS_UINT(p) ((uintptr_t)(p)) +#define MAP_BOT_INDEX(p) ((AS_UINT(p) >> MAP_BOT_SHIFT) & MAP_BOT_MASK) +#define MAP_MID_INDEX(p) ((AS_UINT(p) >> MAP_MID_SHIFT) & MAP_MID_MASK) +#define MAP_TOP_INDEX(p) ((AS_UINT(p) >> MAP_TOP_SHIFT) & MAP_TOP_MASK) + +#if IGNORE_BITS > 0 +/* Return the ignored part of the pointer address. Those bits should be same + * for all valid pointers if IGNORE_BITS is set correctly. + */ +#define HIGH_BITS(p) (AS_UINT(p) >> ADDRESS_BITS) +#else +#define HIGH_BITS(p) 0 +#endif + + +/* This is the leaf of the radix tree. See arena_map_mark_used() for the + * meaning of these members. */ +typedef struct { + int32_t tail_hi; + int32_t tail_lo; +} arena_coverage_t; + +typedef struct arena_map_bot { + /* The members tail_hi and tail_lo are accessed together. So, it + * better to have them as an array of structs, rather than two + * arrays. + */ + arena_coverage_t arenas[MAP_BOT_LENGTH]; +} arena_map_bot_t; + +#ifdef USE_INTERIOR_NODES +typedef struct arena_map_mid { + struct arena_map_bot *ptrs[MAP_MID_LENGTH]; +} arena_map_mid_t; + +typedef struct arena_map_top { + struct arena_map_mid *ptrs[MAP_TOP_LENGTH]; +} arena_map_top_t; +#endif + +struct _obmalloc_usage { + /* The root of radix tree. Note that by initializing like this, the memory + * should be in the BSS. The OS will only memory map pages as the MAP_MID + * nodes get used (OS pages are demand loaded as needed). + */ +#ifdef USE_INTERIOR_NODES + arena_map_top_t arena_map_root; + /* accounting for number of used interior nodes */ + int arena_map_mid_count; + int arena_map_bot_count; +#else + arena_map_bot_t arena_map_root; +#endif +}; + +#endif /* WITH_PYMALLOC_RADIX_TREE */ + + +struct _obmalloc_global_state { + int dump_debug_stats; + Py_ssize_t interpreter_leaks; +}; + +struct _obmalloc_state { + struct _obmalloc_pools pools; + struct _obmalloc_mgmt mgmt; +#if WITH_PYMALLOC_RADIX_TREE + struct _obmalloc_usage usage; +#endif +}; + + +#undef uint + + +/* Allocate memory directly from the O/S virtual memory system, + * where supported. Otherwise fallback on malloc */ +void *_PyObject_VirtualAlloc(size_t size); +void _PyObject_VirtualFree(void *, size_t size); + + +/* This function returns the number of allocated memory blocks, regardless of size */ +extern Py_ssize_t _Py_GetGlobalAllocatedBlocks(void); +#define _Py_GetAllocatedBlocks() \ + _Py_GetGlobalAllocatedBlocks() +extern Py_ssize_t _PyInterpreterState_GetAllocatedBlocks(PyInterpreterState *); +extern void _PyInterpreterState_FinalizeAllocatedBlocks(PyInterpreterState *); +extern int _PyMem_init_obmalloc(PyInterpreterState *interp); +extern bool _PyMem_obmalloc_state_on_heap(PyInterpreterState *interp); + + +#ifdef WITH_PYMALLOC +// Export the symbol for the 3rd party 'guppy3' project +PyAPI_FUNC(int) _PyObject_DebugMallocStats(FILE *out); +#endif + + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_OBMALLOC_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_obmalloc_init.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_obmalloc_init.h new file mode 100644 index 000000000..e6811b7ae --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_obmalloc_init.h @@ -0,0 +1,66 @@ +#ifndef Py_INTERNAL_OBMALLOC_INIT_H +#define Py_INTERNAL_OBMALLOC_INIT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +/****************************************************/ +/* the default object allocator's state initializer */ + +#define PTA(pools, x) \ + ((poolp )((uint8_t *)&(pools.used[2*(x)]) - 2*sizeof(pymem_block *))) +#define PT(p, x) PTA(p, x), PTA(p, x) + +#define PT_8(p, start) \ + PT(p, start), \ + PT(p, start+1), \ + PT(p, start+2), \ + PT(p, start+3), \ + PT(p, start+4), \ + PT(p, start+5), \ + PT(p, start+6), \ + PT(p, start+7) + +#if NB_SMALL_SIZE_CLASSES <= 8 +# define _obmalloc_pools_INIT(p) \ + { PT_8(p, 0) } +#elif NB_SMALL_SIZE_CLASSES <= 16 +# define _obmalloc_pools_INIT(p) \ + { PT_8(p, 0), PT_8(p, 8) } +#elif NB_SMALL_SIZE_CLASSES <= 24 +# define _obmalloc_pools_INIT(p) \ + { PT_8(p, 0), PT_8(p, 8), PT_8(p, 16) } +#elif NB_SMALL_SIZE_CLASSES <= 32 +# define _obmalloc_pools_INIT(p) \ + { PT_8(p, 0), PT_8(p, 8), PT_8(p, 16), PT_8(p, 24) } +#elif NB_SMALL_SIZE_CLASSES <= 40 +# define _obmalloc_pools_INIT(p) \ + { PT_8(p, 0), PT_8(p, 8), PT_8(p, 16), PT_8(p, 24), PT_8(p, 32) } +#elif NB_SMALL_SIZE_CLASSES <= 48 +# define _obmalloc_pools_INIT(p) \ + { PT_8(p, 0), PT_8(p, 8), PT_8(p, 16), PT_8(p, 24), PT_8(p, 32), PT_8(p, 40) } +#elif NB_SMALL_SIZE_CLASSES <= 56 +# define _obmalloc_pools_INIT(p) \ + { PT_8(p, 0), PT_8(p, 8), PT_8(p, 16), PT_8(p, 24), PT_8(p, 32), PT_8(p, 40), PT_8(p, 48) } +#elif NB_SMALL_SIZE_CLASSES <= 64 +# define _obmalloc_pools_INIT(p) \ + { PT_8(p, 0), PT_8(p, 8), PT_8(p, 16), PT_8(p, 24), PT_8(p, 32), PT_8(p, 40), PT_8(p, 48), PT_8(p, 56) } +#else +# error "NB_SMALL_SIZE_CLASSES should be less than 64" +#endif + +#define _obmalloc_global_state_INIT \ + { \ + .dump_debug_stats = -1, \ + } + + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_OBMALLOC_INIT_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_opcode_metadata.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_opcode_metadata.h new file mode 100644 index 000000000..bbba0bbbf --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_opcode_metadata.h @@ -0,0 +1,1922 @@ +// This file is generated by Tools/cases_generator/opcode_metadata_generator.py +// from: +// Python/bytecodes.c +// Do not edit! + +#ifndef Py_CORE_OPCODE_METADATA_H +#define Py_CORE_OPCODE_METADATA_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include // bool +#include "opcode_ids.h" + + +#define IS_PSEUDO_INSTR(OP) ( \ + ((OP) == LOAD_CLOSURE) || \ + ((OP) == STORE_FAST_MAYBE_NULL) || \ + ((OP) == LOAD_SUPER_METHOD) || \ + ((OP) == LOAD_ZERO_SUPER_METHOD) || \ + ((OP) == LOAD_ZERO_SUPER_ATTR) || \ + ((OP) == LOAD_METHOD) || \ + ((OP) == JUMP) || \ + ((OP) == JUMP_NO_INTERRUPT) || \ + ((OP) == SETUP_FINALLY) || \ + ((OP) == SETUP_CLEANUP) || \ + ((OP) == SETUP_WITH) || \ + ((OP) == POP_BLOCK) || \ + 0) + +#include "pycore_uop_ids.h" +extern int _PyOpcode_num_popped(int opcode, int oparg); +#ifdef NEED_OPCODE_METADATA +int _PyOpcode_num_popped(int opcode, int oparg) { + switch(opcode) { + case BEFORE_ASYNC_WITH: + return 1; + case BEFORE_WITH: + return 1; + case BINARY_OP: + return 2; + case BINARY_OP_ADD_FLOAT: + return 2; + case BINARY_OP_ADD_INT: + return 2; + case BINARY_OP_ADD_UNICODE: + return 2; + case BINARY_OP_INPLACE_ADD_UNICODE: + return 2; + case BINARY_OP_MULTIPLY_FLOAT: + return 2; + case BINARY_OP_MULTIPLY_INT: + return 2; + case BINARY_OP_SUBTRACT_FLOAT: + return 2; + case BINARY_OP_SUBTRACT_INT: + return 2; + case BINARY_SLICE: + return 3; + case BINARY_SUBSCR: + return 2; + case BINARY_SUBSCR_DICT: + return 2; + case BINARY_SUBSCR_GETITEM: + return 2; + case BINARY_SUBSCR_LIST_INT: + return 2; + case BINARY_SUBSCR_STR_INT: + return 2; + case BINARY_SUBSCR_TUPLE_INT: + return 2; + case BUILD_CONST_KEY_MAP: + return 1 + oparg; + case BUILD_LIST: + return oparg; + case BUILD_MAP: + return oparg*2; + case BUILD_SET: + return oparg; + case BUILD_SLICE: + return 2 + ((oparg == 3) ? 1 : 0); + case BUILD_STRING: + return oparg; + case BUILD_TUPLE: + return oparg; + case CACHE: + return 0; + case CALL: + return 2 + oparg; + case CALL_ALLOC_AND_ENTER_INIT: + return 2 + oparg; + case CALL_BOUND_METHOD_EXACT_ARGS: + return 2 + oparg; + case CALL_BOUND_METHOD_GENERAL: + return 2 + oparg; + case CALL_BUILTIN_CLASS: + return 2 + oparg; + case CALL_BUILTIN_FAST: + return 2 + oparg; + case CALL_BUILTIN_FAST_WITH_KEYWORDS: + return 2 + oparg; + case CALL_BUILTIN_O: + return 2 + oparg; + case CALL_FUNCTION_EX: + return 3 + (oparg & 1); + case CALL_INTRINSIC_1: + return 1; + case CALL_INTRINSIC_2: + return 2; + case CALL_ISINSTANCE: + return 2 + oparg; + case CALL_KW: + return 3 + oparg; + case CALL_LEN: + return 2 + oparg; + case CALL_LIST_APPEND: + return 3; + case CALL_METHOD_DESCRIPTOR_FAST: + return 2 + oparg; + case CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS: + return 2 + oparg; + case CALL_METHOD_DESCRIPTOR_NOARGS: + return 2 + oparg; + case CALL_METHOD_DESCRIPTOR_O: + return 2 + oparg; + case CALL_NON_PY_GENERAL: + return 2 + oparg; + case CALL_PY_EXACT_ARGS: + return 2 + oparg; + case CALL_PY_GENERAL: + return 2 + oparg; + case CALL_STR_1: + return 3; + case CALL_TUPLE_1: + return 3; + case CALL_TYPE_1: + return 3; + case CHECK_EG_MATCH: + return 2; + case CHECK_EXC_MATCH: + return 2; + case CLEANUP_THROW: + return 3; + case COMPARE_OP: + return 2; + case COMPARE_OP_FLOAT: + return 2; + case COMPARE_OP_INT: + return 2; + case COMPARE_OP_STR: + return 2; + case CONTAINS_OP: + return 2; + case CONTAINS_OP_DICT: + return 2; + case CONTAINS_OP_SET: + return 2; + case CONVERT_VALUE: + return 1; + case COPY: + return 1 + (oparg-1); + case COPY_FREE_VARS: + return 0; + case DELETE_ATTR: + return 1; + case DELETE_DEREF: + return 0; + case DELETE_FAST: + return 0; + case DELETE_GLOBAL: + return 0; + case DELETE_NAME: + return 0; + case DELETE_SUBSCR: + return 2; + case DICT_MERGE: + return 5 + (oparg - 1); + case DICT_UPDATE: + return 2 + (oparg - 1); + case END_ASYNC_FOR: + return 2; + case END_FOR: + return 1; + case END_SEND: + return 2; + case ENTER_EXECUTOR: + return 0; + case EXIT_INIT_CHECK: + return 1; + case EXTENDED_ARG: + return 0; + case FORMAT_SIMPLE: + return 1; + case FORMAT_WITH_SPEC: + return 2; + case FOR_ITER: + return 1; + case FOR_ITER_GEN: + return 1; + case FOR_ITER_LIST: + return 1; + case FOR_ITER_RANGE: + return 1; + case FOR_ITER_TUPLE: + return 1; + case GET_AITER: + return 1; + case GET_ANEXT: + return 1; + case GET_AWAITABLE: + return 1; + case GET_ITER: + return 1; + case GET_LEN: + return 1; + case GET_YIELD_FROM_ITER: + return 1; + case IMPORT_FROM: + return 1; + case IMPORT_NAME: + return 2; + case INSTRUMENTED_CALL: + return 0; + case INSTRUMENTED_CALL_FUNCTION_EX: + return 0; + case INSTRUMENTED_CALL_KW: + return 0; + case INSTRUMENTED_END_FOR: + return 2; + case INSTRUMENTED_END_SEND: + return 2; + case INSTRUMENTED_FOR_ITER: + return 0; + case INSTRUMENTED_INSTRUCTION: + return 0; + case INSTRUMENTED_JUMP_BACKWARD: + return 0; + case INSTRUMENTED_JUMP_FORWARD: + return 0; + case INSTRUMENTED_LOAD_SUPER_ATTR: + return 3; + case INSTRUMENTED_POP_JUMP_IF_FALSE: + return 0; + case INSTRUMENTED_POP_JUMP_IF_NONE: + return 0; + case INSTRUMENTED_POP_JUMP_IF_NOT_NONE: + return 0; + case INSTRUMENTED_POP_JUMP_IF_TRUE: + return 0; + case INSTRUMENTED_RESUME: + return 0; + case INSTRUMENTED_RETURN_CONST: + return 0; + case INSTRUMENTED_RETURN_VALUE: + return 1; + case INSTRUMENTED_YIELD_VALUE: + return 1; + case INTERPRETER_EXIT: + return 1; + case IS_OP: + return 2; + case JUMP_BACKWARD: + return 0; + case JUMP_BACKWARD_NO_INTERRUPT: + return 0; + case JUMP_FORWARD: + return 0; + case LIST_APPEND: + return 2 + (oparg-1); + case LIST_EXTEND: + return 2 + (oparg-1); + case LOAD_ASSERTION_ERROR: + return 0; + case LOAD_ATTR: + return 1; + case LOAD_ATTR_CLASS: + return 1; + case LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN: + return 1; + case LOAD_ATTR_INSTANCE_VALUE: + return 1; + case LOAD_ATTR_METHOD_LAZY_DICT: + return 1; + case LOAD_ATTR_METHOD_NO_DICT: + return 1; + case LOAD_ATTR_METHOD_WITH_VALUES: + return 1; + case LOAD_ATTR_MODULE: + return 1; + case LOAD_ATTR_NONDESCRIPTOR_NO_DICT: + return 1; + case LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES: + return 1; + case LOAD_ATTR_PROPERTY: + return 1; + case LOAD_ATTR_SLOT: + return 1; + case LOAD_ATTR_WITH_HINT: + return 1; + case LOAD_BUILD_CLASS: + return 0; + case LOAD_CONST: + return 0; + case LOAD_DEREF: + return 0; + case LOAD_FAST: + return 0; + case LOAD_FAST_AND_CLEAR: + return 0; + case LOAD_FAST_CHECK: + return 0; + case LOAD_FAST_LOAD_FAST: + return 0; + case LOAD_FROM_DICT_OR_DEREF: + return 1; + case LOAD_FROM_DICT_OR_GLOBALS: + return 1; + case LOAD_GLOBAL: + return 0; + case LOAD_GLOBAL_BUILTIN: + return 0; + case LOAD_GLOBAL_MODULE: + return 0; + case LOAD_LOCALS: + return 0; + case LOAD_NAME: + return 0; + case LOAD_SUPER_ATTR: + return 3; + case LOAD_SUPER_ATTR_ATTR: + return 3; + case LOAD_SUPER_ATTR_METHOD: + return 3; + case MAKE_CELL: + return 0; + case MAKE_FUNCTION: + return 1; + case MAP_ADD: + return 3 + (oparg - 1); + case MATCH_CLASS: + return 3; + case MATCH_KEYS: + return 2; + case MATCH_MAPPING: + return 1; + case MATCH_SEQUENCE: + return 1; + case NOP: + return 0; + case POP_EXCEPT: + return 1; + case POP_JUMP_IF_FALSE: + return 1; + case POP_JUMP_IF_NONE: + return 1; + case POP_JUMP_IF_NOT_NONE: + return 1; + case POP_JUMP_IF_TRUE: + return 1; + case POP_TOP: + return 1; + case PUSH_EXC_INFO: + return 1; + case PUSH_NULL: + return 0; + case RAISE_VARARGS: + return oparg; + case RERAISE: + return 1 + oparg; + case RESERVED: + return 0; + case RESUME: + return 0; + case RESUME_CHECK: + return 0; + case RETURN_CONST: + return 0; + case RETURN_GENERATOR: + return 0; + case RETURN_VALUE: + return 1; + case SEND: + return 2; + case SEND_GEN: + return 2; + case SETUP_ANNOTATIONS: + return 0; + case SET_ADD: + return 2 + (oparg-1); + case SET_FUNCTION_ATTRIBUTE: + return 2; + case SET_UPDATE: + return 2 + (oparg-1); + case STORE_ATTR: + return 2; + case STORE_ATTR_INSTANCE_VALUE: + return 2; + case STORE_ATTR_SLOT: + return 2; + case STORE_ATTR_WITH_HINT: + return 2; + case STORE_DEREF: + return 1; + case STORE_FAST: + return 1; + case STORE_FAST_LOAD_FAST: + return 1; + case STORE_FAST_STORE_FAST: + return 2; + case STORE_GLOBAL: + return 1; + case STORE_NAME: + return 1; + case STORE_SLICE: + return 4; + case STORE_SUBSCR: + return 3; + case STORE_SUBSCR_DICT: + return 3; + case STORE_SUBSCR_LIST_INT: + return 3; + case SWAP: + return 2 + (oparg-2); + case TO_BOOL: + return 1; + case TO_BOOL_ALWAYS_TRUE: + return 1; + case TO_BOOL_BOOL: + return 1; + case TO_BOOL_INT: + return 1; + case TO_BOOL_LIST: + return 1; + case TO_BOOL_NONE: + return 1; + case TO_BOOL_STR: + return 1; + case UNARY_INVERT: + return 1; + case UNARY_NEGATIVE: + return 1; + case UNARY_NOT: + return 1; + case UNPACK_EX: + return 1; + case UNPACK_SEQUENCE: + return 1; + case UNPACK_SEQUENCE_LIST: + return 1; + case UNPACK_SEQUENCE_TUPLE: + return 1; + case UNPACK_SEQUENCE_TWO_TUPLE: + return 1; + case WITH_EXCEPT_START: + return 4; + case YIELD_VALUE: + return 1; + default: + return -1; + } +} + +#endif + +extern int _PyOpcode_num_pushed(int opcode, int oparg); +#ifdef NEED_OPCODE_METADATA +int _PyOpcode_num_pushed(int opcode, int oparg) { + switch(opcode) { + case BEFORE_ASYNC_WITH: + return 2; + case BEFORE_WITH: + return 2; + case BINARY_OP: + return 1; + case BINARY_OP_ADD_FLOAT: + return 1; + case BINARY_OP_ADD_INT: + return 1; + case BINARY_OP_ADD_UNICODE: + return 1; + case BINARY_OP_INPLACE_ADD_UNICODE: + return 0; + case BINARY_OP_MULTIPLY_FLOAT: + return 1; + case BINARY_OP_MULTIPLY_INT: + return 1; + case BINARY_OP_SUBTRACT_FLOAT: + return 1; + case BINARY_OP_SUBTRACT_INT: + return 1; + case BINARY_SLICE: + return 1; + case BINARY_SUBSCR: + return 1; + case BINARY_SUBSCR_DICT: + return 1; + case BINARY_SUBSCR_GETITEM: + return 1; + case BINARY_SUBSCR_LIST_INT: + return 1; + case BINARY_SUBSCR_STR_INT: + return 1; + case BINARY_SUBSCR_TUPLE_INT: + return 1; + case BUILD_CONST_KEY_MAP: + return 1; + case BUILD_LIST: + return 1; + case BUILD_MAP: + return 1; + case BUILD_SET: + return 1; + case BUILD_SLICE: + return 1; + case BUILD_STRING: + return 1; + case BUILD_TUPLE: + return 1; + case CACHE: + return 0; + case CALL: + return 1; + case CALL_ALLOC_AND_ENTER_INIT: + return 1; + case CALL_BOUND_METHOD_EXACT_ARGS: + return 0; + case CALL_BOUND_METHOD_GENERAL: + return 0; + case CALL_BUILTIN_CLASS: + return 1; + case CALL_BUILTIN_FAST: + return 1; + case CALL_BUILTIN_FAST_WITH_KEYWORDS: + return 1; + case CALL_BUILTIN_O: + return 1; + case CALL_FUNCTION_EX: + return 1; + case CALL_INTRINSIC_1: + return 1; + case CALL_INTRINSIC_2: + return 1; + case CALL_ISINSTANCE: + return 1; + case CALL_KW: + return 1; + case CALL_LEN: + return 1; + case CALL_LIST_APPEND: + return 1; + case CALL_METHOD_DESCRIPTOR_FAST: + return 1; + case CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS: + return 1; + case CALL_METHOD_DESCRIPTOR_NOARGS: + return 1; + case CALL_METHOD_DESCRIPTOR_O: + return 1; + case CALL_NON_PY_GENERAL: + return 1; + case CALL_PY_EXACT_ARGS: + return 0; + case CALL_PY_GENERAL: + return 0; + case CALL_STR_1: + return 1; + case CALL_TUPLE_1: + return 1; + case CALL_TYPE_1: + return 1; + case CHECK_EG_MATCH: + return 2; + case CHECK_EXC_MATCH: + return 2; + case CLEANUP_THROW: + return 2; + case COMPARE_OP: + return 1; + case COMPARE_OP_FLOAT: + return 1; + case COMPARE_OP_INT: + return 1; + case COMPARE_OP_STR: + return 1; + case CONTAINS_OP: + return 1; + case CONTAINS_OP_DICT: + return 1; + case CONTAINS_OP_SET: + return 1; + case CONVERT_VALUE: + return 1; + case COPY: + return 2 + (oparg-1); + case COPY_FREE_VARS: + return 0; + case DELETE_ATTR: + return 0; + case DELETE_DEREF: + return 0; + case DELETE_FAST: + return 0; + case DELETE_GLOBAL: + return 0; + case DELETE_NAME: + return 0; + case DELETE_SUBSCR: + return 0; + case DICT_MERGE: + return 4 + (oparg - 1); + case DICT_UPDATE: + return 1 + (oparg - 1); + case END_ASYNC_FOR: + return 0; + case END_FOR: + return 0; + case END_SEND: + return 1; + case ENTER_EXECUTOR: + return 0; + case EXIT_INIT_CHECK: + return 0; + case EXTENDED_ARG: + return 0; + case FORMAT_SIMPLE: + return 1; + case FORMAT_WITH_SPEC: + return 1; + case FOR_ITER: + return 2; + case FOR_ITER_GEN: + return 1; + case FOR_ITER_LIST: + return 2; + case FOR_ITER_RANGE: + return 2; + case FOR_ITER_TUPLE: + return 2; + case GET_AITER: + return 1; + case GET_ANEXT: + return 2; + case GET_AWAITABLE: + return 1; + case GET_ITER: + return 1; + case GET_LEN: + return 2; + case GET_YIELD_FROM_ITER: + return 1; + case IMPORT_FROM: + return 2; + case IMPORT_NAME: + return 1; + case INSTRUMENTED_CALL: + return 0; + case INSTRUMENTED_CALL_FUNCTION_EX: + return 0; + case INSTRUMENTED_CALL_KW: + return 0; + case INSTRUMENTED_END_FOR: + return 1; + case INSTRUMENTED_END_SEND: + return 1; + case INSTRUMENTED_FOR_ITER: + return 0; + case INSTRUMENTED_INSTRUCTION: + return 0; + case INSTRUMENTED_JUMP_BACKWARD: + return 0; + case INSTRUMENTED_JUMP_FORWARD: + return 0; + case INSTRUMENTED_LOAD_SUPER_ATTR: + return 1 + (oparg & 1); + case INSTRUMENTED_POP_JUMP_IF_FALSE: + return 0; + case INSTRUMENTED_POP_JUMP_IF_NONE: + return 0; + case INSTRUMENTED_POP_JUMP_IF_NOT_NONE: + return 0; + case INSTRUMENTED_POP_JUMP_IF_TRUE: + return 0; + case INSTRUMENTED_RESUME: + return 0; + case INSTRUMENTED_RETURN_CONST: + return 0; + case INSTRUMENTED_RETURN_VALUE: + return 0; + case INSTRUMENTED_YIELD_VALUE: + return 1; + case INTERPRETER_EXIT: + return 0; + case IS_OP: + return 1; + case JUMP_BACKWARD: + return 0; + case JUMP_BACKWARD_NO_INTERRUPT: + return 0; + case JUMP_FORWARD: + return 0; + case LIST_APPEND: + return 1 + (oparg-1); + case LIST_EXTEND: + return 1 + (oparg-1); + case LOAD_ASSERTION_ERROR: + return 1; + case LOAD_ATTR: + return 1 + (oparg & 1); + case LOAD_ATTR_CLASS: + return 1 + (oparg & 1); + case LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN: + return 1; + case LOAD_ATTR_INSTANCE_VALUE: + return 1 + (oparg & 1); + case LOAD_ATTR_METHOD_LAZY_DICT: + return 2; + case LOAD_ATTR_METHOD_NO_DICT: + return 2; + case LOAD_ATTR_METHOD_WITH_VALUES: + return 2; + case LOAD_ATTR_MODULE: + return 1 + (oparg & 1); + case LOAD_ATTR_NONDESCRIPTOR_NO_DICT: + return 1; + case LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES: + return 1; + case LOAD_ATTR_PROPERTY: + return 1; + case LOAD_ATTR_SLOT: + return 1 + (oparg & 1); + case LOAD_ATTR_WITH_HINT: + return 1 + (oparg & 1); + case LOAD_BUILD_CLASS: + return 1; + case LOAD_CONST: + return 1; + case LOAD_DEREF: + return 1; + case LOAD_FAST: + return 1; + case LOAD_FAST_AND_CLEAR: + return 1; + case LOAD_FAST_CHECK: + return 1; + case LOAD_FAST_LOAD_FAST: + return 2; + case LOAD_FROM_DICT_OR_DEREF: + return 1; + case LOAD_FROM_DICT_OR_GLOBALS: + return 1; + case LOAD_GLOBAL: + return 1 + (oparg & 1); + case LOAD_GLOBAL_BUILTIN: + return 1 + (oparg & 1); + case LOAD_GLOBAL_MODULE: + return 1 + (oparg & 1); + case LOAD_LOCALS: + return 1; + case LOAD_NAME: + return 1; + case LOAD_SUPER_ATTR: + return 1 + (oparg & 1); + case LOAD_SUPER_ATTR_ATTR: + return 1; + case LOAD_SUPER_ATTR_METHOD: + return 2; + case MAKE_CELL: + return 0; + case MAKE_FUNCTION: + return 1; + case MAP_ADD: + return 1 + (oparg - 1); + case MATCH_CLASS: + return 1; + case MATCH_KEYS: + return 3; + case MATCH_MAPPING: + return 2; + case MATCH_SEQUENCE: + return 2; + case NOP: + return 0; + case POP_EXCEPT: + return 0; + case POP_JUMP_IF_FALSE: + return 0; + case POP_JUMP_IF_NONE: + return 0; + case POP_JUMP_IF_NOT_NONE: + return 0; + case POP_JUMP_IF_TRUE: + return 0; + case POP_TOP: + return 0; + case PUSH_EXC_INFO: + return 2; + case PUSH_NULL: + return 1; + case RAISE_VARARGS: + return 0; + case RERAISE: + return oparg; + case RESERVED: + return 0; + case RESUME: + return 0; + case RESUME_CHECK: + return 0; + case RETURN_CONST: + return 0; + case RETURN_GENERATOR: + return 1; + case RETURN_VALUE: + return 0; + case SEND: + return 2; + case SEND_GEN: + return 2; + case SETUP_ANNOTATIONS: + return 0; + case SET_ADD: + return 1 + (oparg-1); + case SET_FUNCTION_ATTRIBUTE: + return 1; + case SET_UPDATE: + return 1 + (oparg-1); + case STORE_ATTR: + return 0; + case STORE_ATTR_INSTANCE_VALUE: + return 0; + case STORE_ATTR_SLOT: + return 0; + case STORE_ATTR_WITH_HINT: + return 0; + case STORE_DEREF: + return 0; + case STORE_FAST: + return 0; + case STORE_FAST_LOAD_FAST: + return 1; + case STORE_FAST_STORE_FAST: + return 0; + case STORE_GLOBAL: + return 0; + case STORE_NAME: + return 0; + case STORE_SLICE: + return 0; + case STORE_SUBSCR: + return 0; + case STORE_SUBSCR_DICT: + return 0; + case STORE_SUBSCR_LIST_INT: + return 0; + case SWAP: + return 2 + (oparg-2); + case TO_BOOL: + return 1; + case TO_BOOL_ALWAYS_TRUE: + return 1; + case TO_BOOL_BOOL: + return 1; + case TO_BOOL_INT: + return 1; + case TO_BOOL_LIST: + return 1; + case TO_BOOL_NONE: + return 1; + case TO_BOOL_STR: + return 1; + case UNARY_INVERT: + return 1; + case UNARY_NEGATIVE: + return 1; + case UNARY_NOT: + return 1; + case UNPACK_EX: + return 1 + (oparg >> 8) + (oparg & 0xFF); + case UNPACK_SEQUENCE: + return oparg; + case UNPACK_SEQUENCE_LIST: + return oparg; + case UNPACK_SEQUENCE_TUPLE: + return oparg; + case UNPACK_SEQUENCE_TWO_TUPLE: + return 2; + case WITH_EXCEPT_START: + return 5; + case YIELD_VALUE: + return 1; + default: + return -1; + } +} + +#endif + +enum InstructionFormat { + INSTR_FMT_IB = 1, + INSTR_FMT_IBC = 2, + INSTR_FMT_IBC00 = 3, + INSTR_FMT_IBC000 = 4, + INSTR_FMT_IBC00000000 = 5, + INSTR_FMT_IX = 6, + INSTR_FMT_IXC = 7, + INSTR_FMT_IXC00 = 8, + INSTR_FMT_IXC000 = 9, +}; + +#define IS_VALID_OPCODE(OP) \ + (((OP) >= 0) && ((OP) < 268) && \ + (_PyOpcode_opcode_metadata[(OP)].valid_entry)) + +#define HAS_ARG_FLAG (1) +#define HAS_CONST_FLAG (2) +#define HAS_NAME_FLAG (4) +#define HAS_JUMP_FLAG (8) +#define HAS_FREE_FLAG (16) +#define HAS_LOCAL_FLAG (32) +#define HAS_EVAL_BREAK_FLAG (64) +#define HAS_DEOPT_FLAG (128) +#define HAS_ERROR_FLAG (256) +#define HAS_ESCAPES_FLAG (512) +#define HAS_EXIT_FLAG (1024) +#define HAS_PURE_FLAG (2048) +#define HAS_PASSTHROUGH_FLAG (4096) +#define HAS_OPARG_AND_1_FLAG (8192) +#define HAS_ERROR_NO_POP_FLAG (16384) +#define OPCODE_HAS_ARG(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_ARG_FLAG)) +#define OPCODE_HAS_CONST(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_CONST_FLAG)) +#define OPCODE_HAS_NAME(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_NAME_FLAG)) +#define OPCODE_HAS_JUMP(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_JUMP_FLAG)) +#define OPCODE_HAS_FREE(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_FREE_FLAG)) +#define OPCODE_HAS_LOCAL(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_LOCAL_FLAG)) +#define OPCODE_HAS_EVAL_BREAK(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_EVAL_BREAK_FLAG)) +#define OPCODE_HAS_DEOPT(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_DEOPT_FLAG)) +#define OPCODE_HAS_ERROR(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_ERROR_FLAG)) +#define OPCODE_HAS_ESCAPES(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_ESCAPES_FLAG)) +#define OPCODE_HAS_EXIT(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_EXIT_FLAG)) +#define OPCODE_HAS_PURE(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_PURE_FLAG)) +#define OPCODE_HAS_PASSTHROUGH(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_PASSTHROUGH_FLAG)) +#define OPCODE_HAS_OPARG_AND_1(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_OPARG_AND_1_FLAG)) +#define OPCODE_HAS_ERROR_NO_POP(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_ERROR_NO_POP_FLAG)) + +#define OPARG_FULL 0 +#define OPARG_CACHE_1 1 +#define OPARG_CACHE_2 2 +#define OPARG_CACHE_4 4 +#define OPARG_TOP 5 +#define OPARG_BOTTOM 6 +#define OPARG_SAVE_RETURN_OFFSET 7 +#define OPARG_REPLACED 9 + +struct opcode_metadata { + uint8_t valid_entry; + int8_t instr_format; + int16_t flags; +}; + +extern const struct opcode_metadata _PyOpcode_opcode_metadata[268]; +#ifdef NEED_OPCODE_METADATA +const struct opcode_metadata _PyOpcode_opcode_metadata[268] = { + [BEFORE_ASYNC_WITH] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [BEFORE_WITH] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [BINARY_OP] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [BINARY_OP_ADD_FLOAT] = { true, INSTR_FMT_IXC, HAS_EXIT_FLAG }, + [BINARY_OP_ADD_INT] = { true, INSTR_FMT_IXC, HAS_EXIT_FLAG | HAS_ERROR_FLAG }, + [BINARY_OP_ADD_UNICODE] = { true, INSTR_FMT_IXC, HAS_EXIT_FLAG | HAS_ERROR_FLAG }, + [BINARY_OP_INPLACE_ADD_UNICODE] = { true, INSTR_FMT_IXC, HAS_LOCAL_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [BINARY_OP_MULTIPLY_FLOAT] = { true, INSTR_FMT_IXC, HAS_EXIT_FLAG }, + [BINARY_OP_MULTIPLY_INT] = { true, INSTR_FMT_IXC, HAS_EXIT_FLAG | HAS_ERROR_FLAG }, + [BINARY_OP_SUBTRACT_FLOAT] = { true, INSTR_FMT_IXC, HAS_EXIT_FLAG }, + [BINARY_OP_SUBTRACT_INT] = { true, INSTR_FMT_IXC, HAS_EXIT_FLAG | HAS_ERROR_FLAG }, + [BINARY_SLICE] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [BINARY_SUBSCR] = { true, INSTR_FMT_IXC, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [BINARY_SUBSCR_DICT] = { true, INSTR_FMT_IXC, HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [BINARY_SUBSCR_GETITEM] = { true, INSTR_FMT_IXC, HAS_DEOPT_FLAG | HAS_ESCAPES_FLAG }, + [BINARY_SUBSCR_LIST_INT] = { true, INSTR_FMT_IXC, HAS_DEOPT_FLAG }, + [BINARY_SUBSCR_STR_INT] = { true, INSTR_FMT_IXC, HAS_DEOPT_FLAG }, + [BINARY_SUBSCR_TUPLE_INT] = { true, INSTR_FMT_IXC, HAS_DEOPT_FLAG }, + [BUILD_CONST_KEY_MAP] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [BUILD_LIST] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG }, + [BUILD_MAP] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [BUILD_SET] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [BUILD_SLICE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG }, + [BUILD_STRING] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG }, + [BUILD_TUPLE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG }, + [CACHE] = { true, INSTR_FMT_IX, 0 }, + [CALL] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [CALL_ALLOC_AND_ENTER_INIT] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [CALL_BOUND_METHOD_EXACT_ARGS] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG }, + [CALL_BOUND_METHOD_GENERAL] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [CALL_BUILTIN_CLASS] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CALL_BUILTIN_FAST] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CALL_BUILTIN_FAST_WITH_KEYWORDS] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CALL_BUILTIN_O] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CALL_FUNCTION_EX] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [CALL_INTRINSIC_1] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CALL_INTRINSIC_2] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CALL_ISINSTANCE] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [CALL_KW] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [CALL_LEN] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [CALL_LIST_APPEND] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG }, + [CALL_METHOD_DESCRIPTOR_FAST] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CALL_METHOD_DESCRIPTOR_NOARGS] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CALL_METHOD_DESCRIPTOR_O] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CALL_NON_PY_GENERAL] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_EXIT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CALL_PY_EXACT_ARGS] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG }, + [CALL_PY_GENERAL] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [CALL_STR_1] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CALL_TUPLE_1] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CALL_TYPE_1] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_DEOPT_FLAG }, + [CHECK_EG_MATCH] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CHECK_EXC_MATCH] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CLEANUP_THROW] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [COMPARE_OP] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [COMPARE_OP_FLOAT] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_EXIT_FLAG }, + [COMPARE_OP_INT] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG }, + [COMPARE_OP_STR] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_EXIT_FLAG }, + [CONTAINS_OP] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CONTAINS_OP_DICT] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CONTAINS_OP_SET] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CONVERT_VALUE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG }, + [COPY] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_PURE_FLAG }, + [COPY_FREE_VARS] = { true, INSTR_FMT_IB, HAS_ARG_FLAG }, + [DELETE_ATTR] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [DELETE_DEREF] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [DELETE_FAST] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_LOCAL_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [DELETE_GLOBAL] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [DELETE_NAME] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [DELETE_SUBSCR] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [DICT_MERGE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [DICT_UPDATE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [END_ASYNC_FOR] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [END_FOR] = { true, INSTR_FMT_IX, HAS_PURE_FLAG }, + [END_SEND] = { true, INSTR_FMT_IX, HAS_PURE_FLAG }, + [ENTER_EXECUTOR] = { true, INSTR_FMT_IB, HAS_ARG_FLAG }, + [EXIT_INIT_CHECK] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [EXTENDED_ARG] = { true, INSTR_FMT_IB, HAS_ARG_FLAG }, + [FORMAT_SIMPLE] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [FORMAT_WITH_SPEC] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [FOR_ITER] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_JUMP_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [FOR_ITER_GEN] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_DEOPT_FLAG }, + [FOR_ITER_LIST] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_JUMP_FLAG | HAS_EXIT_FLAG }, + [FOR_ITER_RANGE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_JUMP_FLAG | HAS_EXIT_FLAG | HAS_ERROR_FLAG }, + [FOR_ITER_TUPLE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_JUMP_FLAG | HAS_EXIT_FLAG }, + [GET_AITER] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [GET_ANEXT] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [GET_AWAITABLE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [GET_ITER] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [GET_LEN] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [GET_YIELD_FROM_ITER] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [IMPORT_FROM] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [IMPORT_NAME] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [INSTRUMENTED_CALL] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [INSTRUMENTED_CALL_FUNCTION_EX] = { true, INSTR_FMT_IX, 0 }, + [INSTRUMENTED_CALL_KW] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [INSTRUMENTED_END_FOR] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG }, + [INSTRUMENTED_END_SEND] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG }, + [INSTRUMENTED_FOR_ITER] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [INSTRUMENTED_INSTRUCTION] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [INSTRUMENTED_JUMP_BACKWARD] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG }, + [INSTRUMENTED_JUMP_FORWARD] = { true, INSTR_FMT_IB, HAS_ARG_FLAG }, + [INSTRUMENTED_LOAD_SUPER_ATTR] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG }, + [INSTRUMENTED_POP_JUMP_IF_FALSE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG }, + [INSTRUMENTED_POP_JUMP_IF_NONE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG }, + [INSTRUMENTED_POP_JUMP_IF_NOT_NONE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG }, + [INSTRUMENTED_POP_JUMP_IF_TRUE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG }, + [INSTRUMENTED_RESUME] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [INSTRUMENTED_RETURN_CONST] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_CONST_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [INSTRUMENTED_RETURN_VALUE] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [INSTRUMENTED_YIELD_VALUE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [INTERPRETER_EXIT] = { true, INSTR_FMT_IX, HAS_ESCAPES_FLAG }, + [IS_OP] = { true, INSTR_FMT_IB, HAS_ARG_FLAG }, + [JUMP_BACKWARD] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_JUMP_FLAG | HAS_EVAL_BREAK_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [JUMP_BACKWARD_NO_INTERRUPT] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_JUMP_FLAG }, + [JUMP_FORWARD] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_JUMP_FLAG }, + [LIST_APPEND] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG }, + [LIST_EXTEND] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_ASSERTION_ERROR] = { true, INSTR_FMT_IX, 0 }, + [LOAD_ATTR] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_ATTR_CLASS] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_DEOPT_FLAG }, + [LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_ATTR_INSTANCE_VALUE] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG }, + [LOAD_ATTR_METHOD_LAZY_DICT] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG }, + [LOAD_ATTR_METHOD_NO_DICT] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_EXIT_FLAG }, + [LOAD_ATTR_METHOD_WITH_VALUES] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG }, + [LOAD_ATTR_MODULE] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_DEOPT_FLAG }, + [LOAD_ATTR_NONDESCRIPTOR_NO_DICT] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_EXIT_FLAG }, + [LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG }, + [LOAD_ATTR_PROPERTY] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_ATTR_SLOT] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG }, + [LOAD_ATTR_WITH_HINT] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG }, + [LOAD_BUILD_CLASS] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_CONST] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_CONST_FLAG | HAS_PURE_FLAG }, + [LOAD_DEREF] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_FAST] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_LOCAL_FLAG | HAS_PURE_FLAG }, + [LOAD_FAST_AND_CLEAR] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_LOCAL_FLAG }, + [LOAD_FAST_CHECK] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_LOCAL_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_FAST_LOAD_FAST] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_LOCAL_FLAG }, + [LOAD_FROM_DICT_OR_DEREF] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_FROM_DICT_OR_GLOBALS] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_GLOBAL] = { true, INSTR_FMT_IBC000, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_GLOBAL_BUILTIN] = { true, INSTR_FMT_IBC000, HAS_ARG_FLAG | HAS_DEOPT_FLAG }, + [LOAD_GLOBAL_MODULE] = { true, INSTR_FMT_IBC000, HAS_ARG_FLAG | HAS_DEOPT_FLAG }, + [LOAD_LOCALS] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_NAME] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_SUPER_ATTR] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_SUPER_ATTR_ATTR] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_SUPER_ATTR_METHOD] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [MAKE_CELL] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG }, + [MAKE_FUNCTION] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [MAP_ADD] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [MATCH_CLASS] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [MATCH_KEYS] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [MATCH_MAPPING] = { true, INSTR_FMT_IX, 0 }, + [MATCH_SEQUENCE] = { true, INSTR_FMT_IX, 0 }, + [NOP] = { true, INSTR_FMT_IX, HAS_PURE_FLAG }, + [POP_EXCEPT] = { true, INSTR_FMT_IX, HAS_ESCAPES_FLAG }, + [POP_JUMP_IF_FALSE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_JUMP_FLAG }, + [POP_JUMP_IF_NONE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_JUMP_FLAG }, + [POP_JUMP_IF_NOT_NONE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_JUMP_FLAG }, + [POP_JUMP_IF_TRUE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_JUMP_FLAG }, + [POP_TOP] = { true, INSTR_FMT_IX, HAS_PURE_FLAG }, + [PUSH_EXC_INFO] = { true, INSTR_FMT_IX, 0 }, + [PUSH_NULL] = { true, INSTR_FMT_IX, HAS_PURE_FLAG }, + [RAISE_VARARGS] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [RERAISE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [RESERVED] = { true, INSTR_FMT_IX, 0 }, + [RESUME] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [RESUME_CHECK] = { true, INSTR_FMT_IX, HAS_DEOPT_FLAG }, + [RETURN_CONST] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_CONST_FLAG }, + [RETURN_GENERATOR] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [RETURN_VALUE] = { true, INSTR_FMT_IX, 0 }, + [SEND] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_JUMP_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [SEND_GEN] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_DEOPT_FLAG }, + [SETUP_ANNOTATIONS] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [SET_ADD] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [SET_FUNCTION_ATTRIBUTE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ESCAPES_FLAG }, + [SET_UPDATE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [STORE_ATTR] = { true, INSTR_FMT_IBC000, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [STORE_ATTR_INSTANCE_VALUE] = { true, INSTR_FMT_IXC000, HAS_DEOPT_FLAG | HAS_EXIT_FLAG }, + [STORE_ATTR_SLOT] = { true, INSTR_FMT_IXC000, HAS_EXIT_FLAG }, + [STORE_ATTR_WITH_HINT] = { true, INSTR_FMT_IBC000, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ESCAPES_FLAG }, + [STORE_DEREF] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ESCAPES_FLAG }, + [STORE_FAST] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_LOCAL_FLAG }, + [STORE_FAST_LOAD_FAST] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_LOCAL_FLAG }, + [STORE_FAST_STORE_FAST] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_LOCAL_FLAG }, + [STORE_GLOBAL] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [STORE_NAME] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [STORE_SLICE] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [STORE_SUBSCR] = { true, INSTR_FMT_IXC, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [STORE_SUBSCR_DICT] = { true, INSTR_FMT_IXC, HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [STORE_SUBSCR_LIST_INT] = { true, INSTR_FMT_IXC, HAS_DEOPT_FLAG }, + [SWAP] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_PURE_FLAG }, + [TO_BOOL] = { true, INSTR_FMT_IXC00, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [TO_BOOL_ALWAYS_TRUE] = { true, INSTR_FMT_IXC00, HAS_EXIT_FLAG }, + [TO_BOOL_BOOL] = { true, INSTR_FMT_IXC00, HAS_EXIT_FLAG }, + [TO_BOOL_INT] = { true, INSTR_FMT_IXC00, HAS_EXIT_FLAG | HAS_ESCAPES_FLAG }, + [TO_BOOL_LIST] = { true, INSTR_FMT_IXC00, HAS_EXIT_FLAG }, + [TO_BOOL_NONE] = { true, INSTR_FMT_IXC00, HAS_EXIT_FLAG }, + [TO_BOOL_STR] = { true, INSTR_FMT_IXC00, HAS_EXIT_FLAG | HAS_ESCAPES_FLAG }, + [UNARY_INVERT] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [UNARY_NEGATIVE] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [UNARY_NOT] = { true, INSTR_FMT_IX, HAS_PURE_FLAG }, + [UNPACK_EX] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [UNPACK_SEQUENCE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [UNPACK_SEQUENCE_LIST] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_DEOPT_FLAG }, + [UNPACK_SEQUENCE_TUPLE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_DEOPT_FLAG }, + [UNPACK_SEQUENCE_TWO_TUPLE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_DEOPT_FLAG }, + [WITH_EXCEPT_START] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [YIELD_VALUE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ESCAPES_FLAG }, + [JUMP] = { true, -1, HAS_ARG_FLAG | HAS_JUMP_FLAG | HAS_EVAL_BREAK_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [JUMP_NO_INTERRUPT] = { true, -1, HAS_ARG_FLAG | HAS_JUMP_FLAG }, + [LOAD_CLOSURE] = { true, -1, HAS_ARG_FLAG | HAS_LOCAL_FLAG | HAS_PURE_FLAG }, + [LOAD_METHOD] = { true, -1, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_SUPER_METHOD] = { true, -1, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_ZERO_SUPER_ATTR] = { true, -1, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_ZERO_SUPER_METHOD] = { true, -1, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [POP_BLOCK] = { true, -1, HAS_PURE_FLAG }, + [SETUP_CLEANUP] = { true, -1, HAS_PURE_FLAG | HAS_ARG_FLAG }, + [SETUP_FINALLY] = { true, -1, HAS_PURE_FLAG | HAS_ARG_FLAG }, + [SETUP_WITH] = { true, -1, HAS_PURE_FLAG | HAS_ARG_FLAG }, + [STORE_FAST_MAYBE_NULL] = { true, -1, HAS_ARG_FLAG | HAS_LOCAL_FLAG }, +}; +#endif + +#define MAX_UOP_PER_EXPANSION 8 +struct opcode_macro_expansion { + int nuops; + struct { int16_t uop; int8_t size; int8_t offset; } uops[MAX_UOP_PER_EXPANSION]; +}; +extern const struct opcode_macro_expansion _PyOpcode_macro_expansion[256]; + +#ifdef NEED_OPCODE_METADATA +const struct opcode_macro_expansion +_PyOpcode_macro_expansion[256] = { + [BINARY_OP] = { .nuops = 1, .uops = { { _BINARY_OP, 0, 0 } } }, + [BINARY_OP_ADD_FLOAT] = { .nuops = 2, .uops = { { _GUARD_BOTH_FLOAT, 0, 0 }, { _BINARY_OP_ADD_FLOAT, 0, 0 } } }, + [BINARY_OP_ADD_INT] = { .nuops = 2, .uops = { { _GUARD_BOTH_INT, 0, 0 }, { _BINARY_OP_ADD_INT, 0, 0 } } }, + [BINARY_OP_ADD_UNICODE] = { .nuops = 2, .uops = { { _GUARD_BOTH_UNICODE, 0, 0 }, { _BINARY_OP_ADD_UNICODE, 0, 0 } } }, + [BINARY_OP_MULTIPLY_FLOAT] = { .nuops = 2, .uops = { { _GUARD_BOTH_FLOAT, 0, 0 }, { _BINARY_OP_MULTIPLY_FLOAT, 0, 0 } } }, + [BINARY_OP_MULTIPLY_INT] = { .nuops = 2, .uops = { { _GUARD_BOTH_INT, 0, 0 }, { _BINARY_OP_MULTIPLY_INT, 0, 0 } } }, + [BINARY_OP_SUBTRACT_FLOAT] = { .nuops = 2, .uops = { { _GUARD_BOTH_FLOAT, 0, 0 }, { _BINARY_OP_SUBTRACT_FLOAT, 0, 0 } } }, + [BINARY_OP_SUBTRACT_INT] = { .nuops = 2, .uops = { { _GUARD_BOTH_INT, 0, 0 }, { _BINARY_OP_SUBTRACT_INT, 0, 0 } } }, + [BINARY_SLICE] = { .nuops = 1, .uops = { { _BINARY_SLICE, 0, 0 } } }, + [BINARY_SUBSCR] = { .nuops = 1, .uops = { { _BINARY_SUBSCR, 0, 0 } } }, + [BINARY_SUBSCR_DICT] = { .nuops = 1, .uops = { { _BINARY_SUBSCR_DICT, 0, 0 } } }, + [BINARY_SUBSCR_LIST_INT] = { .nuops = 1, .uops = { { _BINARY_SUBSCR_LIST_INT, 0, 0 } } }, + [BINARY_SUBSCR_STR_INT] = { .nuops = 1, .uops = { { _BINARY_SUBSCR_STR_INT, 0, 0 } } }, + [BINARY_SUBSCR_TUPLE_INT] = { .nuops = 1, .uops = { { _BINARY_SUBSCR_TUPLE_INT, 0, 0 } } }, + [BUILD_CONST_KEY_MAP] = { .nuops = 1, .uops = { { _BUILD_CONST_KEY_MAP, 0, 0 } } }, + [BUILD_LIST] = { .nuops = 1, .uops = { { _BUILD_LIST, 0, 0 } } }, + [BUILD_MAP] = { .nuops = 1, .uops = { { _BUILD_MAP, 0, 0 } } }, + [BUILD_SLICE] = { .nuops = 1, .uops = { { _BUILD_SLICE, 0, 0 } } }, + [BUILD_STRING] = { .nuops = 1, .uops = { { _BUILD_STRING, 0, 0 } } }, + [BUILD_TUPLE] = { .nuops = 1, .uops = { { _BUILD_TUPLE, 0, 0 } } }, + [CALL_BOUND_METHOD_EXACT_ARGS] = { .nuops = 8, .uops = { { _CHECK_PEP_523, 0, 0 }, { _CHECK_CALL_BOUND_METHOD_EXACT_ARGS, 0, 0 }, { _INIT_CALL_BOUND_METHOD_EXACT_ARGS, 0, 0 }, { _CHECK_FUNCTION_EXACT_ARGS, 2, 1 }, { _CHECK_STACK_SPACE, 0, 0 }, { _INIT_CALL_PY_EXACT_ARGS, 0, 0 }, { _SAVE_RETURN_OFFSET, 7, 3 }, { _PUSH_FRAME, 0, 0 } } }, + [CALL_BOUND_METHOD_GENERAL] = { .nuops = 6, .uops = { { _CHECK_PEP_523, 0, 0 }, { _CHECK_METHOD_VERSION, 2, 1 }, { _EXPAND_METHOD, 0, 0 }, { _PY_FRAME_GENERAL, 0, 0 }, { _SAVE_RETURN_OFFSET, 7, 3 }, { _PUSH_FRAME, 0, 0 } } }, + [CALL_BUILTIN_CLASS] = { .nuops = 2, .uops = { { _CALL_BUILTIN_CLASS, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } }, + [CALL_BUILTIN_FAST] = { .nuops = 2, .uops = { { _CALL_BUILTIN_FAST, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } }, + [CALL_BUILTIN_FAST_WITH_KEYWORDS] = { .nuops = 2, .uops = { { _CALL_BUILTIN_FAST_WITH_KEYWORDS, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } }, + [CALL_BUILTIN_O] = { .nuops = 2, .uops = { { _CALL_BUILTIN_O, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } }, + [CALL_INTRINSIC_1] = { .nuops = 1, .uops = { { _CALL_INTRINSIC_1, 0, 0 } } }, + [CALL_INTRINSIC_2] = { .nuops = 1, .uops = { { _CALL_INTRINSIC_2, 0, 0 } } }, + [CALL_ISINSTANCE] = { .nuops = 1, .uops = { { _CALL_ISINSTANCE, 0, 0 } } }, + [CALL_LEN] = { .nuops = 1, .uops = { { _CALL_LEN, 0, 0 } } }, + [CALL_METHOD_DESCRIPTOR_FAST] = { .nuops = 2, .uops = { { _CALL_METHOD_DESCRIPTOR_FAST, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } }, + [CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = { .nuops = 2, .uops = { { _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } }, + [CALL_METHOD_DESCRIPTOR_NOARGS] = { .nuops = 2, .uops = { { _CALL_METHOD_DESCRIPTOR_NOARGS, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } }, + [CALL_METHOD_DESCRIPTOR_O] = { .nuops = 2, .uops = { { _CALL_METHOD_DESCRIPTOR_O, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } }, + [CALL_NON_PY_GENERAL] = { .nuops = 3, .uops = { { _CHECK_IS_NOT_PY_CALLABLE, 0, 0 }, { _CALL_NON_PY_GENERAL, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } }, + [CALL_PY_EXACT_ARGS] = { .nuops = 6, .uops = { { _CHECK_PEP_523, 0, 0 }, { _CHECK_FUNCTION_EXACT_ARGS, 2, 1 }, { _CHECK_STACK_SPACE, 0, 0 }, { _INIT_CALL_PY_EXACT_ARGS, 0, 0 }, { _SAVE_RETURN_OFFSET, 7, 3 }, { _PUSH_FRAME, 0, 0 } } }, + [CALL_PY_GENERAL] = { .nuops = 5, .uops = { { _CHECK_PEP_523, 0, 0 }, { _CHECK_FUNCTION_VERSION, 2, 1 }, { _PY_FRAME_GENERAL, 0, 0 }, { _SAVE_RETURN_OFFSET, 7, 3 }, { _PUSH_FRAME, 0, 0 } } }, + [CALL_STR_1] = { .nuops = 2, .uops = { { _CALL_STR_1, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } }, + [CALL_TUPLE_1] = { .nuops = 2, .uops = { { _CALL_TUPLE_1, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } }, + [CALL_TYPE_1] = { .nuops = 1, .uops = { { _CALL_TYPE_1, 0, 0 } } }, + [CHECK_EG_MATCH] = { .nuops = 1, .uops = { { _CHECK_EG_MATCH, 0, 0 } } }, + [CHECK_EXC_MATCH] = { .nuops = 1, .uops = { { _CHECK_EXC_MATCH, 0, 0 } } }, + [COMPARE_OP] = { .nuops = 1, .uops = { { _COMPARE_OP, 0, 0 } } }, + [COMPARE_OP_FLOAT] = { .nuops = 2, .uops = { { _GUARD_BOTH_FLOAT, 0, 0 }, { _COMPARE_OP_FLOAT, 0, 0 } } }, + [COMPARE_OP_INT] = { .nuops = 2, .uops = { { _GUARD_BOTH_INT, 0, 0 }, { _COMPARE_OP_INT, 0, 0 } } }, + [COMPARE_OP_STR] = { .nuops = 2, .uops = { { _GUARD_BOTH_UNICODE, 0, 0 }, { _COMPARE_OP_STR, 0, 0 } } }, + [CONTAINS_OP] = { .nuops = 1, .uops = { { _CONTAINS_OP, 0, 0 } } }, + [CONTAINS_OP_DICT] = { .nuops = 1, .uops = { { _CONTAINS_OP_DICT, 0, 0 } } }, + [CONTAINS_OP_SET] = { .nuops = 1, .uops = { { _CONTAINS_OP_SET, 0, 0 } } }, + [CONVERT_VALUE] = { .nuops = 1, .uops = { { _CONVERT_VALUE, 0, 0 } } }, + [COPY] = { .nuops = 1, .uops = { { _COPY, 0, 0 } } }, + [COPY_FREE_VARS] = { .nuops = 1, .uops = { { _COPY_FREE_VARS, 0, 0 } } }, + [DELETE_ATTR] = { .nuops = 1, .uops = { { _DELETE_ATTR, 0, 0 } } }, + [DELETE_DEREF] = { .nuops = 1, .uops = { { _DELETE_DEREF, 0, 0 } } }, + [DELETE_FAST] = { .nuops = 1, .uops = { { _DELETE_FAST, 0, 0 } } }, + [DELETE_GLOBAL] = { .nuops = 1, .uops = { { _DELETE_GLOBAL, 0, 0 } } }, + [DELETE_NAME] = { .nuops = 1, .uops = { { _DELETE_NAME, 0, 0 } } }, + [DELETE_SUBSCR] = { .nuops = 1, .uops = { { _DELETE_SUBSCR, 0, 0 } } }, + [DICT_MERGE] = { .nuops = 1, .uops = { { _DICT_MERGE, 0, 0 } } }, + [DICT_UPDATE] = { .nuops = 1, .uops = { { _DICT_UPDATE, 0, 0 } } }, + [END_FOR] = { .nuops = 1, .uops = { { _POP_TOP, 0, 0 } } }, + [END_SEND] = { .nuops = 1, .uops = { { _END_SEND, 0, 0 } } }, + [EXIT_INIT_CHECK] = { .nuops = 1, .uops = { { _EXIT_INIT_CHECK, 0, 0 } } }, + [FORMAT_SIMPLE] = { .nuops = 1, .uops = { { _FORMAT_SIMPLE, 0, 0 } } }, + [FORMAT_WITH_SPEC] = { .nuops = 1, .uops = { { _FORMAT_WITH_SPEC, 0, 0 } } }, + [FOR_ITER] = { .nuops = 1, .uops = { { _FOR_ITER, 9, 0 } } }, + [FOR_ITER_GEN] = { .nuops = 3, .uops = { { _CHECK_PEP_523, 0, 0 }, { _FOR_ITER_GEN_FRAME, 0, 0 }, { _PUSH_FRAME, 0, 0 } } }, + [FOR_ITER_LIST] = { .nuops = 3, .uops = { { _ITER_CHECK_LIST, 0, 0 }, { _ITER_JUMP_LIST, 9, 1 }, { _ITER_NEXT_LIST, 0, 0 } } }, + [FOR_ITER_RANGE] = { .nuops = 3, .uops = { { _ITER_CHECK_RANGE, 0, 0 }, { _ITER_JUMP_RANGE, 9, 1 }, { _ITER_NEXT_RANGE, 0, 0 } } }, + [FOR_ITER_TUPLE] = { .nuops = 3, .uops = { { _ITER_CHECK_TUPLE, 0, 0 }, { _ITER_JUMP_TUPLE, 9, 1 }, { _ITER_NEXT_TUPLE, 0, 0 } } }, + [GET_AITER] = { .nuops = 1, .uops = { { _GET_AITER, 0, 0 } } }, + [GET_ANEXT] = { .nuops = 1, .uops = { { _GET_ANEXT, 0, 0 } } }, + [GET_AWAITABLE] = { .nuops = 1, .uops = { { _GET_AWAITABLE, 0, 0 } } }, + [GET_ITER] = { .nuops = 1, .uops = { { _GET_ITER, 0, 0 } } }, + [GET_LEN] = { .nuops = 1, .uops = { { _GET_LEN, 0, 0 } } }, + [GET_YIELD_FROM_ITER] = { .nuops = 1, .uops = { { _GET_YIELD_FROM_ITER, 0, 0 } } }, + [IS_OP] = { .nuops = 1, .uops = { { _IS_OP, 0, 0 } } }, + [LIST_APPEND] = { .nuops = 1, .uops = { { _LIST_APPEND, 0, 0 } } }, + [LIST_EXTEND] = { .nuops = 1, .uops = { { _LIST_EXTEND, 0, 0 } } }, + [LOAD_ASSERTION_ERROR] = { .nuops = 1, .uops = { { _LOAD_ASSERTION_ERROR, 0, 0 } } }, + [LOAD_ATTR] = { .nuops = 1, .uops = { { _LOAD_ATTR, 0, 0 } } }, + [LOAD_ATTR_CLASS] = { .nuops = 2, .uops = { { _CHECK_ATTR_CLASS, 2, 1 }, { _LOAD_ATTR_CLASS, 4, 5 } } }, + [LOAD_ATTR_INSTANCE_VALUE] = { .nuops = 3, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _CHECK_MANAGED_OBJECT_HAS_VALUES, 0, 0 }, { _LOAD_ATTR_INSTANCE_VALUE, 1, 3 } } }, + [LOAD_ATTR_METHOD_LAZY_DICT] = { .nuops = 3, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _CHECK_ATTR_METHOD_LAZY_DICT, 1, 3 }, { _LOAD_ATTR_METHOD_LAZY_DICT, 4, 5 } } }, + [LOAD_ATTR_METHOD_NO_DICT] = { .nuops = 2, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _LOAD_ATTR_METHOD_NO_DICT, 4, 5 } } }, + [LOAD_ATTR_METHOD_WITH_VALUES] = { .nuops = 4, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT, 0, 0 }, { _GUARD_KEYS_VERSION, 2, 3 }, { _LOAD_ATTR_METHOD_WITH_VALUES, 4, 5 } } }, + [LOAD_ATTR_MODULE] = { .nuops = 2, .uops = { { _CHECK_ATTR_MODULE, 2, 1 }, { _LOAD_ATTR_MODULE, 1, 3 } } }, + [LOAD_ATTR_NONDESCRIPTOR_NO_DICT] = { .nuops = 2, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _LOAD_ATTR_NONDESCRIPTOR_NO_DICT, 4, 5 } } }, + [LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES] = { .nuops = 4, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT, 0, 0 }, { _GUARD_KEYS_VERSION, 2, 3 }, { _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES, 4, 5 } } }, + [LOAD_ATTR_SLOT] = { .nuops = 2, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _LOAD_ATTR_SLOT, 1, 3 } } }, + [LOAD_ATTR_WITH_HINT] = { .nuops = 3, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _CHECK_ATTR_WITH_HINT, 0, 0 }, { _LOAD_ATTR_WITH_HINT, 1, 3 } } }, + [LOAD_BUILD_CLASS] = { .nuops = 1, .uops = { { _LOAD_BUILD_CLASS, 0, 0 } } }, + [LOAD_CONST] = { .nuops = 1, .uops = { { _LOAD_CONST, 0, 0 } } }, + [LOAD_DEREF] = { .nuops = 1, .uops = { { _LOAD_DEREF, 0, 0 } } }, + [LOAD_FAST] = { .nuops = 1, .uops = { { _LOAD_FAST, 0, 0 } } }, + [LOAD_FAST_AND_CLEAR] = { .nuops = 1, .uops = { { _LOAD_FAST_AND_CLEAR, 0, 0 } } }, + [LOAD_FAST_CHECK] = { .nuops = 1, .uops = { { _LOAD_FAST_CHECK, 0, 0 } } }, + [LOAD_FAST_LOAD_FAST] = { .nuops = 2, .uops = { { _LOAD_FAST, 5, 0 }, { _LOAD_FAST, 6, 0 } } }, + [LOAD_FROM_DICT_OR_DEREF] = { .nuops = 1, .uops = { { _LOAD_FROM_DICT_OR_DEREF, 0, 0 } } }, + [LOAD_GLOBAL] = { .nuops = 1, .uops = { { _LOAD_GLOBAL, 0, 0 } } }, + [LOAD_GLOBAL_BUILTIN] = { .nuops = 3, .uops = { { _GUARD_GLOBALS_VERSION, 1, 1 }, { _GUARD_BUILTINS_VERSION, 1, 2 }, { _LOAD_GLOBAL_BUILTINS, 1, 3 } } }, + [LOAD_GLOBAL_MODULE] = { .nuops = 2, .uops = { { _GUARD_GLOBALS_VERSION, 1, 1 }, { _LOAD_GLOBAL_MODULE, 1, 3 } } }, + [LOAD_LOCALS] = { .nuops = 1, .uops = { { _LOAD_LOCALS, 0, 0 } } }, + [LOAD_SUPER_ATTR_ATTR] = { .nuops = 1, .uops = { { _LOAD_SUPER_ATTR_ATTR, 0, 0 } } }, + [LOAD_SUPER_ATTR_METHOD] = { .nuops = 1, .uops = { { _LOAD_SUPER_ATTR_METHOD, 0, 0 } } }, + [MAKE_CELL] = { .nuops = 1, .uops = { { _MAKE_CELL, 0, 0 } } }, + [MAKE_FUNCTION] = { .nuops = 1, .uops = { { _MAKE_FUNCTION, 0, 0 } } }, + [MAP_ADD] = { .nuops = 1, .uops = { { _MAP_ADD, 0, 0 } } }, + [MATCH_CLASS] = { .nuops = 1, .uops = { { _MATCH_CLASS, 0, 0 } } }, + [MATCH_KEYS] = { .nuops = 1, .uops = { { _MATCH_KEYS, 0, 0 } } }, + [MATCH_MAPPING] = { .nuops = 1, .uops = { { _MATCH_MAPPING, 0, 0 } } }, + [MATCH_SEQUENCE] = { .nuops = 1, .uops = { { _MATCH_SEQUENCE, 0, 0 } } }, + [NOP] = { .nuops = 1, .uops = { { _NOP, 0, 0 } } }, + [POP_EXCEPT] = { .nuops = 1, .uops = { { _POP_EXCEPT, 0, 0 } } }, + [POP_JUMP_IF_FALSE] = { .nuops = 1, .uops = { { _POP_JUMP_IF_FALSE, 9, 1 } } }, + [POP_JUMP_IF_NONE] = { .nuops = 2, .uops = { { _IS_NONE, 0, 0 }, { _POP_JUMP_IF_TRUE, 9, 1 } } }, + [POP_JUMP_IF_NOT_NONE] = { .nuops = 2, .uops = { { _IS_NONE, 0, 0 }, { _POP_JUMP_IF_FALSE, 9, 1 } } }, + [POP_JUMP_IF_TRUE] = { .nuops = 1, .uops = { { _POP_JUMP_IF_TRUE, 9, 1 } } }, + [POP_TOP] = { .nuops = 1, .uops = { { _POP_TOP, 0, 0 } } }, + [PUSH_EXC_INFO] = { .nuops = 1, .uops = { { _PUSH_EXC_INFO, 0, 0 } } }, + [PUSH_NULL] = { .nuops = 1, .uops = { { _PUSH_NULL, 0, 0 } } }, + [RESUME_CHECK] = { .nuops = 1, .uops = { { _RESUME_CHECK, 0, 0 } } }, + [RETURN_CONST] = { .nuops = 2, .uops = { { _LOAD_CONST, 0, 0 }, { _POP_FRAME, 0, 0 } } }, + [RETURN_GENERATOR] = { .nuops = 1, .uops = { { _RETURN_GENERATOR, 0, 0 } } }, + [RETURN_VALUE] = { .nuops = 1, .uops = { { _POP_FRAME, 0, 0 } } }, + [SETUP_ANNOTATIONS] = { .nuops = 1, .uops = { { _SETUP_ANNOTATIONS, 0, 0 } } }, + [SET_ADD] = { .nuops = 1, .uops = { { _SET_ADD, 0, 0 } } }, + [SET_FUNCTION_ATTRIBUTE] = { .nuops = 1, .uops = { { _SET_FUNCTION_ATTRIBUTE, 0, 0 } } }, + [SET_UPDATE] = { .nuops = 1, .uops = { { _SET_UPDATE, 0, 0 } } }, + [STORE_ATTR] = { .nuops = 1, .uops = { { _STORE_ATTR, 0, 0 } } }, + [STORE_ATTR_INSTANCE_VALUE] = { .nuops = 3, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _GUARD_DORV_NO_DICT, 0, 0 }, { _STORE_ATTR_INSTANCE_VALUE, 1, 3 } } }, + [STORE_ATTR_SLOT] = { .nuops = 2, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _STORE_ATTR_SLOT, 1, 3 } } }, + [STORE_DEREF] = { .nuops = 1, .uops = { { _STORE_DEREF, 0, 0 } } }, + [STORE_FAST] = { .nuops = 1, .uops = { { _STORE_FAST, 0, 0 } } }, + [STORE_FAST_LOAD_FAST] = { .nuops = 2, .uops = { { _STORE_FAST, 5, 0 }, { _LOAD_FAST, 6, 0 } } }, + [STORE_FAST_STORE_FAST] = { .nuops = 2, .uops = { { _STORE_FAST, 5, 0 }, { _STORE_FAST, 6, 0 } } }, + [STORE_GLOBAL] = { .nuops = 1, .uops = { { _STORE_GLOBAL, 0, 0 } } }, + [STORE_NAME] = { .nuops = 1, .uops = { { _STORE_NAME, 0, 0 } } }, + [STORE_SLICE] = { .nuops = 1, .uops = { { _STORE_SLICE, 0, 0 } } }, + [STORE_SUBSCR] = { .nuops = 1, .uops = { { _STORE_SUBSCR, 0, 0 } } }, + [STORE_SUBSCR_DICT] = { .nuops = 1, .uops = { { _STORE_SUBSCR_DICT, 0, 0 } } }, + [STORE_SUBSCR_LIST_INT] = { .nuops = 1, .uops = { { _STORE_SUBSCR_LIST_INT, 0, 0 } } }, + [SWAP] = { .nuops = 1, .uops = { { _SWAP, 0, 0 } } }, + [TO_BOOL] = { .nuops = 1, .uops = { { _TO_BOOL, 0, 0 } } }, + [TO_BOOL_ALWAYS_TRUE] = { .nuops = 2, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _REPLACE_WITH_TRUE, 0, 0 } } }, + [TO_BOOL_BOOL] = { .nuops = 1, .uops = { { _TO_BOOL_BOOL, 0, 0 } } }, + [TO_BOOL_INT] = { .nuops = 1, .uops = { { _TO_BOOL_INT, 0, 0 } } }, + [TO_BOOL_LIST] = { .nuops = 1, .uops = { { _TO_BOOL_LIST, 0, 0 } } }, + [TO_BOOL_NONE] = { .nuops = 1, .uops = { { _TO_BOOL_NONE, 0, 0 } } }, + [TO_BOOL_STR] = { .nuops = 1, .uops = { { _TO_BOOL_STR, 0, 0 } } }, + [UNARY_INVERT] = { .nuops = 1, .uops = { { _UNARY_INVERT, 0, 0 } } }, + [UNARY_NEGATIVE] = { .nuops = 1, .uops = { { _UNARY_NEGATIVE, 0, 0 } } }, + [UNARY_NOT] = { .nuops = 1, .uops = { { _UNARY_NOT, 0, 0 } } }, + [UNPACK_EX] = { .nuops = 1, .uops = { { _UNPACK_EX, 0, 0 } } }, + [UNPACK_SEQUENCE] = { .nuops = 1, .uops = { { _UNPACK_SEQUENCE, 0, 0 } } }, + [UNPACK_SEQUENCE_LIST] = { .nuops = 1, .uops = { { _UNPACK_SEQUENCE_LIST, 0, 0 } } }, + [UNPACK_SEQUENCE_TUPLE] = { .nuops = 1, .uops = { { _UNPACK_SEQUENCE_TUPLE, 0, 0 } } }, + [UNPACK_SEQUENCE_TWO_TUPLE] = { .nuops = 1, .uops = { { _UNPACK_SEQUENCE_TWO_TUPLE, 0, 0 } } }, + [WITH_EXCEPT_START] = { .nuops = 1, .uops = { { _WITH_EXCEPT_START, 0, 0 } } }, + [YIELD_VALUE] = { .nuops = 1, .uops = { { _YIELD_VALUE, 0, 0 } } }, +}; +#endif // NEED_OPCODE_METADATA + +extern const char *_PyOpcode_OpName[268]; +#ifdef NEED_OPCODE_METADATA +const char *_PyOpcode_OpName[268] = { + [BEFORE_ASYNC_WITH] = "BEFORE_ASYNC_WITH", + [BEFORE_WITH] = "BEFORE_WITH", + [BINARY_OP] = "BINARY_OP", + [BINARY_OP_ADD_FLOAT] = "BINARY_OP_ADD_FLOAT", + [BINARY_OP_ADD_INT] = "BINARY_OP_ADD_INT", + [BINARY_OP_ADD_UNICODE] = "BINARY_OP_ADD_UNICODE", + [BINARY_OP_INPLACE_ADD_UNICODE] = "BINARY_OP_INPLACE_ADD_UNICODE", + [BINARY_OP_MULTIPLY_FLOAT] = "BINARY_OP_MULTIPLY_FLOAT", + [BINARY_OP_MULTIPLY_INT] = "BINARY_OP_MULTIPLY_INT", + [BINARY_OP_SUBTRACT_FLOAT] = "BINARY_OP_SUBTRACT_FLOAT", + [BINARY_OP_SUBTRACT_INT] = "BINARY_OP_SUBTRACT_INT", + [BINARY_SLICE] = "BINARY_SLICE", + [BINARY_SUBSCR] = "BINARY_SUBSCR", + [BINARY_SUBSCR_DICT] = "BINARY_SUBSCR_DICT", + [BINARY_SUBSCR_GETITEM] = "BINARY_SUBSCR_GETITEM", + [BINARY_SUBSCR_LIST_INT] = "BINARY_SUBSCR_LIST_INT", + [BINARY_SUBSCR_STR_INT] = "BINARY_SUBSCR_STR_INT", + [BINARY_SUBSCR_TUPLE_INT] = "BINARY_SUBSCR_TUPLE_INT", + [BUILD_CONST_KEY_MAP] = "BUILD_CONST_KEY_MAP", + [BUILD_LIST] = "BUILD_LIST", + [BUILD_MAP] = "BUILD_MAP", + [BUILD_SET] = "BUILD_SET", + [BUILD_SLICE] = "BUILD_SLICE", + [BUILD_STRING] = "BUILD_STRING", + [BUILD_TUPLE] = "BUILD_TUPLE", + [CACHE] = "CACHE", + [CALL] = "CALL", + [CALL_ALLOC_AND_ENTER_INIT] = "CALL_ALLOC_AND_ENTER_INIT", + [CALL_BOUND_METHOD_EXACT_ARGS] = "CALL_BOUND_METHOD_EXACT_ARGS", + [CALL_BOUND_METHOD_GENERAL] = "CALL_BOUND_METHOD_GENERAL", + [CALL_BUILTIN_CLASS] = "CALL_BUILTIN_CLASS", + [CALL_BUILTIN_FAST] = "CALL_BUILTIN_FAST", + [CALL_BUILTIN_FAST_WITH_KEYWORDS] = "CALL_BUILTIN_FAST_WITH_KEYWORDS", + [CALL_BUILTIN_O] = "CALL_BUILTIN_O", + [CALL_FUNCTION_EX] = "CALL_FUNCTION_EX", + [CALL_INTRINSIC_1] = "CALL_INTRINSIC_1", + [CALL_INTRINSIC_2] = "CALL_INTRINSIC_2", + [CALL_ISINSTANCE] = "CALL_ISINSTANCE", + [CALL_KW] = "CALL_KW", + [CALL_LEN] = "CALL_LEN", + [CALL_LIST_APPEND] = "CALL_LIST_APPEND", + [CALL_METHOD_DESCRIPTOR_FAST] = "CALL_METHOD_DESCRIPTOR_FAST", + [CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = "CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS", + [CALL_METHOD_DESCRIPTOR_NOARGS] = "CALL_METHOD_DESCRIPTOR_NOARGS", + [CALL_METHOD_DESCRIPTOR_O] = "CALL_METHOD_DESCRIPTOR_O", + [CALL_NON_PY_GENERAL] = "CALL_NON_PY_GENERAL", + [CALL_PY_EXACT_ARGS] = "CALL_PY_EXACT_ARGS", + [CALL_PY_GENERAL] = "CALL_PY_GENERAL", + [CALL_STR_1] = "CALL_STR_1", + [CALL_TUPLE_1] = "CALL_TUPLE_1", + [CALL_TYPE_1] = "CALL_TYPE_1", + [CHECK_EG_MATCH] = "CHECK_EG_MATCH", + [CHECK_EXC_MATCH] = "CHECK_EXC_MATCH", + [CLEANUP_THROW] = "CLEANUP_THROW", + [COMPARE_OP] = "COMPARE_OP", + [COMPARE_OP_FLOAT] = "COMPARE_OP_FLOAT", + [COMPARE_OP_INT] = "COMPARE_OP_INT", + [COMPARE_OP_STR] = "COMPARE_OP_STR", + [CONTAINS_OP] = "CONTAINS_OP", + [CONTAINS_OP_DICT] = "CONTAINS_OP_DICT", + [CONTAINS_OP_SET] = "CONTAINS_OP_SET", + [CONVERT_VALUE] = "CONVERT_VALUE", + [COPY] = "COPY", + [COPY_FREE_VARS] = "COPY_FREE_VARS", + [DELETE_ATTR] = "DELETE_ATTR", + [DELETE_DEREF] = "DELETE_DEREF", + [DELETE_FAST] = "DELETE_FAST", + [DELETE_GLOBAL] = "DELETE_GLOBAL", + [DELETE_NAME] = "DELETE_NAME", + [DELETE_SUBSCR] = "DELETE_SUBSCR", + [DICT_MERGE] = "DICT_MERGE", + [DICT_UPDATE] = "DICT_UPDATE", + [END_ASYNC_FOR] = "END_ASYNC_FOR", + [END_FOR] = "END_FOR", + [END_SEND] = "END_SEND", + [ENTER_EXECUTOR] = "ENTER_EXECUTOR", + [EXIT_INIT_CHECK] = "EXIT_INIT_CHECK", + [EXTENDED_ARG] = "EXTENDED_ARG", + [FORMAT_SIMPLE] = "FORMAT_SIMPLE", + [FORMAT_WITH_SPEC] = "FORMAT_WITH_SPEC", + [FOR_ITER] = "FOR_ITER", + [FOR_ITER_GEN] = "FOR_ITER_GEN", + [FOR_ITER_LIST] = "FOR_ITER_LIST", + [FOR_ITER_RANGE] = "FOR_ITER_RANGE", + [FOR_ITER_TUPLE] = "FOR_ITER_TUPLE", + [GET_AITER] = "GET_AITER", + [GET_ANEXT] = "GET_ANEXT", + [GET_AWAITABLE] = "GET_AWAITABLE", + [GET_ITER] = "GET_ITER", + [GET_LEN] = "GET_LEN", + [GET_YIELD_FROM_ITER] = "GET_YIELD_FROM_ITER", + [IMPORT_FROM] = "IMPORT_FROM", + [IMPORT_NAME] = "IMPORT_NAME", + [INSTRUMENTED_CALL] = "INSTRUMENTED_CALL", + [INSTRUMENTED_CALL_FUNCTION_EX] = "INSTRUMENTED_CALL_FUNCTION_EX", + [INSTRUMENTED_CALL_KW] = "INSTRUMENTED_CALL_KW", + [INSTRUMENTED_END_FOR] = "INSTRUMENTED_END_FOR", + [INSTRUMENTED_END_SEND] = "INSTRUMENTED_END_SEND", + [INSTRUMENTED_FOR_ITER] = "INSTRUMENTED_FOR_ITER", + [INSTRUMENTED_INSTRUCTION] = "INSTRUMENTED_INSTRUCTION", + [INSTRUMENTED_JUMP_BACKWARD] = "INSTRUMENTED_JUMP_BACKWARD", + [INSTRUMENTED_JUMP_FORWARD] = "INSTRUMENTED_JUMP_FORWARD", + [INSTRUMENTED_LINE] = "INSTRUMENTED_LINE", + [INSTRUMENTED_LOAD_SUPER_ATTR] = "INSTRUMENTED_LOAD_SUPER_ATTR", + [INSTRUMENTED_POP_JUMP_IF_FALSE] = "INSTRUMENTED_POP_JUMP_IF_FALSE", + [INSTRUMENTED_POP_JUMP_IF_NONE] = "INSTRUMENTED_POP_JUMP_IF_NONE", + [INSTRUMENTED_POP_JUMP_IF_NOT_NONE] = "INSTRUMENTED_POP_JUMP_IF_NOT_NONE", + [INSTRUMENTED_POP_JUMP_IF_TRUE] = "INSTRUMENTED_POP_JUMP_IF_TRUE", + [INSTRUMENTED_RESUME] = "INSTRUMENTED_RESUME", + [INSTRUMENTED_RETURN_CONST] = "INSTRUMENTED_RETURN_CONST", + [INSTRUMENTED_RETURN_VALUE] = "INSTRUMENTED_RETURN_VALUE", + [INSTRUMENTED_YIELD_VALUE] = "INSTRUMENTED_YIELD_VALUE", + [INTERPRETER_EXIT] = "INTERPRETER_EXIT", + [IS_OP] = "IS_OP", + [JUMP] = "JUMP", + [JUMP_BACKWARD] = "JUMP_BACKWARD", + [JUMP_BACKWARD_NO_INTERRUPT] = "JUMP_BACKWARD_NO_INTERRUPT", + [JUMP_FORWARD] = "JUMP_FORWARD", + [JUMP_NO_INTERRUPT] = "JUMP_NO_INTERRUPT", + [LIST_APPEND] = "LIST_APPEND", + [LIST_EXTEND] = "LIST_EXTEND", + [LOAD_ASSERTION_ERROR] = "LOAD_ASSERTION_ERROR", + [LOAD_ATTR] = "LOAD_ATTR", + [LOAD_ATTR_CLASS] = "LOAD_ATTR_CLASS", + [LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN] = "LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN", + [LOAD_ATTR_INSTANCE_VALUE] = "LOAD_ATTR_INSTANCE_VALUE", + [LOAD_ATTR_METHOD_LAZY_DICT] = "LOAD_ATTR_METHOD_LAZY_DICT", + [LOAD_ATTR_METHOD_NO_DICT] = "LOAD_ATTR_METHOD_NO_DICT", + [LOAD_ATTR_METHOD_WITH_VALUES] = "LOAD_ATTR_METHOD_WITH_VALUES", + [LOAD_ATTR_MODULE] = "LOAD_ATTR_MODULE", + [LOAD_ATTR_NONDESCRIPTOR_NO_DICT] = "LOAD_ATTR_NONDESCRIPTOR_NO_DICT", + [LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES] = "LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES", + [LOAD_ATTR_PROPERTY] = "LOAD_ATTR_PROPERTY", + [LOAD_ATTR_SLOT] = "LOAD_ATTR_SLOT", + [LOAD_ATTR_WITH_HINT] = "LOAD_ATTR_WITH_HINT", + [LOAD_BUILD_CLASS] = "LOAD_BUILD_CLASS", + [LOAD_CLOSURE] = "LOAD_CLOSURE", + [LOAD_CONST] = "LOAD_CONST", + [LOAD_DEREF] = "LOAD_DEREF", + [LOAD_FAST] = "LOAD_FAST", + [LOAD_FAST_AND_CLEAR] = "LOAD_FAST_AND_CLEAR", + [LOAD_FAST_CHECK] = "LOAD_FAST_CHECK", + [LOAD_FAST_LOAD_FAST] = "LOAD_FAST_LOAD_FAST", + [LOAD_FROM_DICT_OR_DEREF] = "LOAD_FROM_DICT_OR_DEREF", + [LOAD_FROM_DICT_OR_GLOBALS] = "LOAD_FROM_DICT_OR_GLOBALS", + [LOAD_GLOBAL] = "LOAD_GLOBAL", + [LOAD_GLOBAL_BUILTIN] = "LOAD_GLOBAL_BUILTIN", + [LOAD_GLOBAL_MODULE] = "LOAD_GLOBAL_MODULE", + [LOAD_LOCALS] = "LOAD_LOCALS", + [LOAD_METHOD] = "LOAD_METHOD", + [LOAD_NAME] = "LOAD_NAME", + [LOAD_SUPER_ATTR] = "LOAD_SUPER_ATTR", + [LOAD_SUPER_ATTR_ATTR] = "LOAD_SUPER_ATTR_ATTR", + [LOAD_SUPER_ATTR_METHOD] = "LOAD_SUPER_ATTR_METHOD", + [LOAD_SUPER_METHOD] = "LOAD_SUPER_METHOD", + [LOAD_ZERO_SUPER_ATTR] = "LOAD_ZERO_SUPER_ATTR", + [LOAD_ZERO_SUPER_METHOD] = "LOAD_ZERO_SUPER_METHOD", + [MAKE_CELL] = "MAKE_CELL", + [MAKE_FUNCTION] = "MAKE_FUNCTION", + [MAP_ADD] = "MAP_ADD", + [MATCH_CLASS] = "MATCH_CLASS", + [MATCH_KEYS] = "MATCH_KEYS", + [MATCH_MAPPING] = "MATCH_MAPPING", + [MATCH_SEQUENCE] = "MATCH_SEQUENCE", + [NOP] = "NOP", + [POP_BLOCK] = "POP_BLOCK", + [POP_EXCEPT] = "POP_EXCEPT", + [POP_JUMP_IF_FALSE] = "POP_JUMP_IF_FALSE", + [POP_JUMP_IF_NONE] = "POP_JUMP_IF_NONE", + [POP_JUMP_IF_NOT_NONE] = "POP_JUMP_IF_NOT_NONE", + [POP_JUMP_IF_TRUE] = "POP_JUMP_IF_TRUE", + [POP_TOP] = "POP_TOP", + [PUSH_EXC_INFO] = "PUSH_EXC_INFO", + [PUSH_NULL] = "PUSH_NULL", + [RAISE_VARARGS] = "RAISE_VARARGS", + [RERAISE] = "RERAISE", + [RESERVED] = "RESERVED", + [RESUME] = "RESUME", + [RESUME_CHECK] = "RESUME_CHECK", + [RETURN_CONST] = "RETURN_CONST", + [RETURN_GENERATOR] = "RETURN_GENERATOR", + [RETURN_VALUE] = "RETURN_VALUE", + [SEND] = "SEND", + [SEND_GEN] = "SEND_GEN", + [SETUP_ANNOTATIONS] = "SETUP_ANNOTATIONS", + [SETUP_CLEANUP] = "SETUP_CLEANUP", + [SETUP_FINALLY] = "SETUP_FINALLY", + [SETUP_WITH] = "SETUP_WITH", + [SET_ADD] = "SET_ADD", + [SET_FUNCTION_ATTRIBUTE] = "SET_FUNCTION_ATTRIBUTE", + [SET_UPDATE] = "SET_UPDATE", + [STORE_ATTR] = "STORE_ATTR", + [STORE_ATTR_INSTANCE_VALUE] = "STORE_ATTR_INSTANCE_VALUE", + [STORE_ATTR_SLOT] = "STORE_ATTR_SLOT", + [STORE_ATTR_WITH_HINT] = "STORE_ATTR_WITH_HINT", + [STORE_DEREF] = "STORE_DEREF", + [STORE_FAST] = "STORE_FAST", + [STORE_FAST_LOAD_FAST] = "STORE_FAST_LOAD_FAST", + [STORE_FAST_MAYBE_NULL] = "STORE_FAST_MAYBE_NULL", + [STORE_FAST_STORE_FAST] = "STORE_FAST_STORE_FAST", + [STORE_GLOBAL] = "STORE_GLOBAL", + [STORE_NAME] = "STORE_NAME", + [STORE_SLICE] = "STORE_SLICE", + [STORE_SUBSCR] = "STORE_SUBSCR", + [STORE_SUBSCR_DICT] = "STORE_SUBSCR_DICT", + [STORE_SUBSCR_LIST_INT] = "STORE_SUBSCR_LIST_INT", + [SWAP] = "SWAP", + [TO_BOOL] = "TO_BOOL", + [TO_BOOL_ALWAYS_TRUE] = "TO_BOOL_ALWAYS_TRUE", + [TO_BOOL_BOOL] = "TO_BOOL_BOOL", + [TO_BOOL_INT] = "TO_BOOL_INT", + [TO_BOOL_LIST] = "TO_BOOL_LIST", + [TO_BOOL_NONE] = "TO_BOOL_NONE", + [TO_BOOL_STR] = "TO_BOOL_STR", + [UNARY_INVERT] = "UNARY_INVERT", + [UNARY_NEGATIVE] = "UNARY_NEGATIVE", + [UNARY_NOT] = "UNARY_NOT", + [UNPACK_EX] = "UNPACK_EX", + [UNPACK_SEQUENCE] = "UNPACK_SEQUENCE", + [UNPACK_SEQUENCE_LIST] = "UNPACK_SEQUENCE_LIST", + [UNPACK_SEQUENCE_TUPLE] = "UNPACK_SEQUENCE_TUPLE", + [UNPACK_SEQUENCE_TWO_TUPLE] = "UNPACK_SEQUENCE_TWO_TUPLE", + [WITH_EXCEPT_START] = "WITH_EXCEPT_START", + [YIELD_VALUE] = "YIELD_VALUE", +}; +#endif + +extern const uint8_t _PyOpcode_Caches[256]; +#ifdef NEED_OPCODE_METADATA +const uint8_t _PyOpcode_Caches[256] = { + [JUMP_BACKWARD] = 1, + [TO_BOOL] = 3, + [BINARY_SUBSCR] = 1, + [STORE_SUBSCR] = 1, + [SEND] = 1, + [UNPACK_SEQUENCE] = 1, + [STORE_ATTR] = 4, + [LOAD_GLOBAL] = 4, + [LOAD_SUPER_ATTR] = 1, + [LOAD_ATTR] = 9, + [COMPARE_OP] = 1, + [CONTAINS_OP] = 1, + [POP_JUMP_IF_TRUE] = 1, + [POP_JUMP_IF_FALSE] = 1, + [POP_JUMP_IF_NONE] = 1, + [POP_JUMP_IF_NOT_NONE] = 1, + [FOR_ITER] = 1, + [CALL] = 3, + [BINARY_OP] = 1, +}; +#endif + +extern const uint8_t _PyOpcode_Deopt[256]; +#ifdef NEED_OPCODE_METADATA +const uint8_t _PyOpcode_Deopt[256] = { + [BEFORE_ASYNC_WITH] = BEFORE_ASYNC_WITH, + [BEFORE_WITH] = BEFORE_WITH, + [BINARY_OP] = BINARY_OP, + [BINARY_OP_ADD_FLOAT] = BINARY_OP, + [BINARY_OP_ADD_INT] = BINARY_OP, + [BINARY_OP_ADD_UNICODE] = BINARY_OP, + [BINARY_OP_INPLACE_ADD_UNICODE] = BINARY_OP, + [BINARY_OP_MULTIPLY_FLOAT] = BINARY_OP, + [BINARY_OP_MULTIPLY_INT] = BINARY_OP, + [BINARY_OP_SUBTRACT_FLOAT] = BINARY_OP, + [BINARY_OP_SUBTRACT_INT] = BINARY_OP, + [BINARY_SLICE] = BINARY_SLICE, + [BINARY_SUBSCR] = BINARY_SUBSCR, + [BINARY_SUBSCR_DICT] = BINARY_SUBSCR, + [BINARY_SUBSCR_GETITEM] = BINARY_SUBSCR, + [BINARY_SUBSCR_LIST_INT] = BINARY_SUBSCR, + [BINARY_SUBSCR_STR_INT] = BINARY_SUBSCR, + [BINARY_SUBSCR_TUPLE_INT] = BINARY_SUBSCR, + [BUILD_CONST_KEY_MAP] = BUILD_CONST_KEY_MAP, + [BUILD_LIST] = BUILD_LIST, + [BUILD_MAP] = BUILD_MAP, + [BUILD_SET] = BUILD_SET, + [BUILD_SLICE] = BUILD_SLICE, + [BUILD_STRING] = BUILD_STRING, + [BUILD_TUPLE] = BUILD_TUPLE, + [CACHE] = CACHE, + [CALL] = CALL, + [CALL_ALLOC_AND_ENTER_INIT] = CALL, + [CALL_BOUND_METHOD_EXACT_ARGS] = CALL, + [CALL_BOUND_METHOD_GENERAL] = CALL, + [CALL_BUILTIN_CLASS] = CALL, + [CALL_BUILTIN_FAST] = CALL, + [CALL_BUILTIN_FAST_WITH_KEYWORDS] = CALL, + [CALL_BUILTIN_O] = CALL, + [CALL_FUNCTION_EX] = CALL_FUNCTION_EX, + [CALL_INTRINSIC_1] = CALL_INTRINSIC_1, + [CALL_INTRINSIC_2] = CALL_INTRINSIC_2, + [CALL_ISINSTANCE] = CALL, + [CALL_KW] = CALL_KW, + [CALL_LEN] = CALL, + [CALL_LIST_APPEND] = CALL, + [CALL_METHOD_DESCRIPTOR_FAST] = CALL, + [CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = CALL, + [CALL_METHOD_DESCRIPTOR_NOARGS] = CALL, + [CALL_METHOD_DESCRIPTOR_O] = CALL, + [CALL_NON_PY_GENERAL] = CALL, + [CALL_PY_EXACT_ARGS] = CALL, + [CALL_PY_GENERAL] = CALL, + [CALL_STR_1] = CALL, + [CALL_TUPLE_1] = CALL, + [CALL_TYPE_1] = CALL, + [CHECK_EG_MATCH] = CHECK_EG_MATCH, + [CHECK_EXC_MATCH] = CHECK_EXC_MATCH, + [CLEANUP_THROW] = CLEANUP_THROW, + [COMPARE_OP] = COMPARE_OP, + [COMPARE_OP_FLOAT] = COMPARE_OP, + [COMPARE_OP_INT] = COMPARE_OP, + [COMPARE_OP_STR] = COMPARE_OP, + [CONTAINS_OP] = CONTAINS_OP, + [CONTAINS_OP_DICT] = CONTAINS_OP, + [CONTAINS_OP_SET] = CONTAINS_OP, + [CONVERT_VALUE] = CONVERT_VALUE, + [COPY] = COPY, + [COPY_FREE_VARS] = COPY_FREE_VARS, + [DELETE_ATTR] = DELETE_ATTR, + [DELETE_DEREF] = DELETE_DEREF, + [DELETE_FAST] = DELETE_FAST, + [DELETE_GLOBAL] = DELETE_GLOBAL, + [DELETE_NAME] = DELETE_NAME, + [DELETE_SUBSCR] = DELETE_SUBSCR, + [DICT_MERGE] = DICT_MERGE, + [DICT_UPDATE] = DICT_UPDATE, + [END_ASYNC_FOR] = END_ASYNC_FOR, + [END_FOR] = END_FOR, + [END_SEND] = END_SEND, + [ENTER_EXECUTOR] = ENTER_EXECUTOR, + [EXIT_INIT_CHECK] = EXIT_INIT_CHECK, + [EXTENDED_ARG] = EXTENDED_ARG, + [FORMAT_SIMPLE] = FORMAT_SIMPLE, + [FORMAT_WITH_SPEC] = FORMAT_WITH_SPEC, + [FOR_ITER] = FOR_ITER, + [FOR_ITER_GEN] = FOR_ITER, + [FOR_ITER_LIST] = FOR_ITER, + [FOR_ITER_RANGE] = FOR_ITER, + [FOR_ITER_TUPLE] = FOR_ITER, + [GET_AITER] = GET_AITER, + [GET_ANEXT] = GET_ANEXT, + [GET_AWAITABLE] = GET_AWAITABLE, + [GET_ITER] = GET_ITER, + [GET_LEN] = GET_LEN, + [GET_YIELD_FROM_ITER] = GET_YIELD_FROM_ITER, + [IMPORT_FROM] = IMPORT_FROM, + [IMPORT_NAME] = IMPORT_NAME, + [INSTRUMENTED_CALL] = INSTRUMENTED_CALL, + [INSTRUMENTED_CALL_FUNCTION_EX] = INSTRUMENTED_CALL_FUNCTION_EX, + [INSTRUMENTED_CALL_KW] = INSTRUMENTED_CALL_KW, + [INSTRUMENTED_END_FOR] = INSTRUMENTED_END_FOR, + [INSTRUMENTED_END_SEND] = INSTRUMENTED_END_SEND, + [INSTRUMENTED_FOR_ITER] = INSTRUMENTED_FOR_ITER, + [INSTRUMENTED_INSTRUCTION] = INSTRUMENTED_INSTRUCTION, + [INSTRUMENTED_JUMP_BACKWARD] = INSTRUMENTED_JUMP_BACKWARD, + [INSTRUMENTED_JUMP_FORWARD] = INSTRUMENTED_JUMP_FORWARD, + [INSTRUMENTED_LINE] = INSTRUMENTED_LINE, + [INSTRUMENTED_LOAD_SUPER_ATTR] = INSTRUMENTED_LOAD_SUPER_ATTR, + [INSTRUMENTED_POP_JUMP_IF_FALSE] = INSTRUMENTED_POP_JUMP_IF_FALSE, + [INSTRUMENTED_POP_JUMP_IF_NONE] = INSTRUMENTED_POP_JUMP_IF_NONE, + [INSTRUMENTED_POP_JUMP_IF_NOT_NONE] = INSTRUMENTED_POP_JUMP_IF_NOT_NONE, + [INSTRUMENTED_POP_JUMP_IF_TRUE] = INSTRUMENTED_POP_JUMP_IF_TRUE, + [INSTRUMENTED_RESUME] = INSTRUMENTED_RESUME, + [INSTRUMENTED_RETURN_CONST] = INSTRUMENTED_RETURN_CONST, + [INSTRUMENTED_RETURN_VALUE] = INSTRUMENTED_RETURN_VALUE, + [INSTRUMENTED_YIELD_VALUE] = INSTRUMENTED_YIELD_VALUE, + [INTERPRETER_EXIT] = INTERPRETER_EXIT, + [IS_OP] = IS_OP, + [JUMP_BACKWARD] = JUMP_BACKWARD, + [JUMP_BACKWARD_NO_INTERRUPT] = JUMP_BACKWARD_NO_INTERRUPT, + [JUMP_FORWARD] = JUMP_FORWARD, + [LIST_APPEND] = LIST_APPEND, + [LIST_EXTEND] = LIST_EXTEND, + [LOAD_ASSERTION_ERROR] = LOAD_ASSERTION_ERROR, + [LOAD_ATTR] = LOAD_ATTR, + [LOAD_ATTR_CLASS] = LOAD_ATTR, + [LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN] = LOAD_ATTR, + [LOAD_ATTR_INSTANCE_VALUE] = LOAD_ATTR, + [LOAD_ATTR_METHOD_LAZY_DICT] = LOAD_ATTR, + [LOAD_ATTR_METHOD_NO_DICT] = LOAD_ATTR, + [LOAD_ATTR_METHOD_WITH_VALUES] = LOAD_ATTR, + [LOAD_ATTR_MODULE] = LOAD_ATTR, + [LOAD_ATTR_NONDESCRIPTOR_NO_DICT] = LOAD_ATTR, + [LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES] = LOAD_ATTR, + [LOAD_ATTR_PROPERTY] = LOAD_ATTR, + [LOAD_ATTR_SLOT] = LOAD_ATTR, + [LOAD_ATTR_WITH_HINT] = LOAD_ATTR, + [LOAD_BUILD_CLASS] = LOAD_BUILD_CLASS, + [LOAD_CONST] = LOAD_CONST, + [LOAD_DEREF] = LOAD_DEREF, + [LOAD_FAST] = LOAD_FAST, + [LOAD_FAST_AND_CLEAR] = LOAD_FAST_AND_CLEAR, + [LOAD_FAST_CHECK] = LOAD_FAST_CHECK, + [LOAD_FAST_LOAD_FAST] = LOAD_FAST_LOAD_FAST, + [LOAD_FROM_DICT_OR_DEREF] = LOAD_FROM_DICT_OR_DEREF, + [LOAD_FROM_DICT_OR_GLOBALS] = LOAD_FROM_DICT_OR_GLOBALS, + [LOAD_GLOBAL] = LOAD_GLOBAL, + [LOAD_GLOBAL_BUILTIN] = LOAD_GLOBAL, + [LOAD_GLOBAL_MODULE] = LOAD_GLOBAL, + [LOAD_LOCALS] = LOAD_LOCALS, + [LOAD_NAME] = LOAD_NAME, + [LOAD_SUPER_ATTR] = LOAD_SUPER_ATTR, + [LOAD_SUPER_ATTR_ATTR] = LOAD_SUPER_ATTR, + [LOAD_SUPER_ATTR_METHOD] = LOAD_SUPER_ATTR, + [MAKE_CELL] = MAKE_CELL, + [MAKE_FUNCTION] = MAKE_FUNCTION, + [MAP_ADD] = MAP_ADD, + [MATCH_CLASS] = MATCH_CLASS, + [MATCH_KEYS] = MATCH_KEYS, + [MATCH_MAPPING] = MATCH_MAPPING, + [MATCH_SEQUENCE] = MATCH_SEQUENCE, + [NOP] = NOP, + [POP_EXCEPT] = POP_EXCEPT, + [POP_JUMP_IF_FALSE] = POP_JUMP_IF_FALSE, + [POP_JUMP_IF_NONE] = POP_JUMP_IF_NONE, + [POP_JUMP_IF_NOT_NONE] = POP_JUMP_IF_NOT_NONE, + [POP_JUMP_IF_TRUE] = POP_JUMP_IF_TRUE, + [POP_TOP] = POP_TOP, + [PUSH_EXC_INFO] = PUSH_EXC_INFO, + [PUSH_NULL] = PUSH_NULL, + [RAISE_VARARGS] = RAISE_VARARGS, + [RERAISE] = RERAISE, + [RESERVED] = RESERVED, + [RESUME] = RESUME, + [RESUME_CHECK] = RESUME, + [RETURN_CONST] = RETURN_CONST, + [RETURN_GENERATOR] = RETURN_GENERATOR, + [RETURN_VALUE] = RETURN_VALUE, + [SEND] = SEND, + [SEND_GEN] = SEND, + [SETUP_ANNOTATIONS] = SETUP_ANNOTATIONS, + [SET_ADD] = SET_ADD, + [SET_FUNCTION_ATTRIBUTE] = SET_FUNCTION_ATTRIBUTE, + [SET_UPDATE] = SET_UPDATE, + [STORE_ATTR] = STORE_ATTR, + [STORE_ATTR_INSTANCE_VALUE] = STORE_ATTR, + [STORE_ATTR_SLOT] = STORE_ATTR, + [STORE_ATTR_WITH_HINT] = STORE_ATTR, + [STORE_DEREF] = STORE_DEREF, + [STORE_FAST] = STORE_FAST, + [STORE_FAST_LOAD_FAST] = STORE_FAST_LOAD_FAST, + [STORE_FAST_STORE_FAST] = STORE_FAST_STORE_FAST, + [STORE_GLOBAL] = STORE_GLOBAL, + [STORE_NAME] = STORE_NAME, + [STORE_SLICE] = STORE_SLICE, + [STORE_SUBSCR] = STORE_SUBSCR, + [STORE_SUBSCR_DICT] = STORE_SUBSCR, + [STORE_SUBSCR_LIST_INT] = STORE_SUBSCR, + [SWAP] = SWAP, + [TO_BOOL] = TO_BOOL, + [TO_BOOL_ALWAYS_TRUE] = TO_BOOL, + [TO_BOOL_BOOL] = TO_BOOL, + [TO_BOOL_INT] = TO_BOOL, + [TO_BOOL_LIST] = TO_BOOL, + [TO_BOOL_NONE] = TO_BOOL, + [TO_BOOL_STR] = TO_BOOL, + [UNARY_INVERT] = UNARY_INVERT, + [UNARY_NEGATIVE] = UNARY_NEGATIVE, + [UNARY_NOT] = UNARY_NOT, + [UNPACK_EX] = UNPACK_EX, + [UNPACK_SEQUENCE] = UNPACK_SEQUENCE, + [UNPACK_SEQUENCE_LIST] = UNPACK_SEQUENCE, + [UNPACK_SEQUENCE_TUPLE] = UNPACK_SEQUENCE, + [UNPACK_SEQUENCE_TWO_TUPLE] = UNPACK_SEQUENCE, + [WITH_EXCEPT_START] = WITH_EXCEPT_START, + [YIELD_VALUE] = YIELD_VALUE, +}; + +#endif // NEED_OPCODE_METADATA + +#define EXTRA_CASES \ + case 119: \ + case 120: \ + case 121: \ + case 122: \ + case 123: \ + case 124: \ + case 125: \ + case 126: \ + case 127: \ + case 128: \ + case 129: \ + case 130: \ + case 131: \ + case 132: \ + case 133: \ + case 134: \ + case 135: \ + case 136: \ + case 137: \ + case 138: \ + case 139: \ + case 140: \ + case 141: \ + case 142: \ + case 143: \ + case 144: \ + case 145: \ + case 146: \ + case 147: \ + case 148: \ + case 223: \ + case 224: \ + case 225: \ + case 226: \ + case 227: \ + case 228: \ + case 229: \ + case 230: \ + case 231: \ + case 232: \ + case 233: \ + case 234: \ + case 235: \ + case 255: \ + ; +struct pseudo_targets { + uint8_t targets[3]; +}; +extern const struct pseudo_targets _PyOpcode_PseudoTargets[12]; +#ifdef NEED_OPCODE_METADATA +const struct pseudo_targets _PyOpcode_PseudoTargets[12] = { + [LOAD_CLOSURE-256] = { { LOAD_FAST, 0, 0 } }, + [STORE_FAST_MAYBE_NULL-256] = { { STORE_FAST, 0, 0 } }, + [LOAD_SUPER_METHOD-256] = { { LOAD_SUPER_ATTR, 0, 0 } }, + [LOAD_ZERO_SUPER_METHOD-256] = { { LOAD_SUPER_ATTR, 0, 0 } }, + [LOAD_ZERO_SUPER_ATTR-256] = { { LOAD_SUPER_ATTR, 0, 0 } }, + [LOAD_METHOD-256] = { { LOAD_ATTR, 0, 0 } }, + [JUMP-256] = { { JUMP_FORWARD, JUMP_BACKWARD, 0 } }, + [JUMP_NO_INTERRUPT-256] = { { JUMP_FORWARD, JUMP_BACKWARD_NO_INTERRUPT, 0 } }, + [SETUP_FINALLY-256] = { { NOP, 0, 0 } }, + [SETUP_CLEANUP-256] = { { NOP, 0, 0 } }, + [SETUP_WITH-256] = { { NOP, 0, 0 } }, + [POP_BLOCK-256] = { { NOP, 0, 0 } }, +}; + +#endif // NEED_OPCODE_METADATA +static inline bool +is_pseudo_target(int pseudo, int target) { + if (pseudo < 256 || pseudo >= 268) { + return false; + } + for (int i = 0; _PyOpcode_PseudoTargets[pseudo-256].targets[i]; i++) { + if (_PyOpcode_PseudoTargets[pseudo-256].targets[i] == target) return true; + } + return false; +} + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_CORE_OPCODE_METADATA_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_opcode_utils.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_opcode_utils.h new file mode 100644 index 000000000..208bfb2f7 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_opcode_utils.h @@ -0,0 +1,73 @@ +#ifndef Py_INTERNAL_OPCODE_UTILS_H +#define Py_INTERNAL_OPCODE_UTILS_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "opcode_ids.h" + +#define MAX_REAL_OPCODE 254 + +#define IS_WITHIN_OPCODE_RANGE(opcode) \ + (((opcode) >= 0 && (opcode) <= MAX_REAL_OPCODE) || \ + IS_PSEUDO_INSTR(opcode)) + +#define IS_BLOCK_PUSH_OPCODE(opcode) \ + ((opcode) == SETUP_FINALLY || \ + (opcode) == SETUP_WITH || \ + (opcode) == SETUP_CLEANUP) + +#define HAS_TARGET(opcode) \ + (OPCODE_HAS_JUMP(opcode) || IS_BLOCK_PUSH_OPCODE(opcode)) + +/* opcodes that must be last in the basicblock */ +#define IS_TERMINATOR_OPCODE(opcode) \ + (OPCODE_HAS_JUMP(opcode) || IS_SCOPE_EXIT_OPCODE(opcode)) + +/* opcodes which are not emitted in codegen stage, only by the assembler */ +#define IS_ASSEMBLER_OPCODE(opcode) \ + ((opcode) == JUMP_FORWARD || \ + (opcode) == JUMP_BACKWARD || \ + (opcode) == JUMP_BACKWARD_NO_INTERRUPT) + +#define IS_BACKWARDS_JUMP_OPCODE(opcode) \ + ((opcode) == JUMP_BACKWARD || \ + (opcode) == JUMP_BACKWARD_NO_INTERRUPT) + +#define IS_UNCONDITIONAL_JUMP_OPCODE(opcode) \ + ((opcode) == JUMP || \ + (opcode) == JUMP_NO_INTERRUPT || \ + (opcode) == JUMP_FORWARD || \ + (opcode) == JUMP_BACKWARD || \ + (opcode) == JUMP_BACKWARD_NO_INTERRUPT) + +#define IS_SCOPE_EXIT_OPCODE(opcode) \ + ((opcode) == RETURN_VALUE || \ + (opcode) == RETURN_CONST || \ + (opcode) == RAISE_VARARGS || \ + (opcode) == RERAISE) + + +/* Flags used in the oparg for MAKE_FUNCTION */ +#define MAKE_FUNCTION_DEFAULTS 0x01 +#define MAKE_FUNCTION_KWDEFAULTS 0x02 +#define MAKE_FUNCTION_ANNOTATIONS 0x04 +#define MAKE_FUNCTION_CLOSURE 0x08 + +/* Values used in the oparg for RESUME */ +#define RESUME_AT_FUNC_START 0 +#define RESUME_AFTER_YIELD 1 +#define RESUME_AFTER_YIELD_FROM 2 +#define RESUME_AFTER_AWAIT 3 + +#define RESUME_OPARG_LOCATION_MASK 0x3 +#define RESUME_OPARG_DEPTH1_MASK 0x4 + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_OPCODE_UTILS_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_optimizer.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_optimizer.h new file mode 100644 index 000000000..49aa67c6f --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_optimizer.h @@ -0,0 +1,272 @@ +#ifndef Py_INTERNAL_OPTIMIZER_H +#define Py_INTERNAL_OPTIMIZER_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_uop_ids.h" +#include + + +typedef struct _PyExecutorLinkListNode { + struct _PyExecutorObject *next; + struct _PyExecutorObject *previous; +} _PyExecutorLinkListNode; + + +/* Bloom filter with m = 256 + * https://en.wikipedia.org/wiki/Bloom_filter */ +#define BLOOM_FILTER_WORDS 8 + +typedef struct _bloom_filter { + uint32_t bits[BLOOM_FILTER_WORDS]; +} _PyBloomFilter; + +typedef struct { + uint8_t opcode; + uint8_t oparg; + uint8_t valid; + uint8_t linked; + int index; // Index of ENTER_EXECUTOR (if code isn't NULL, below). + _PyBloomFilter bloom; + _PyExecutorLinkListNode links; + PyCodeObject *code; // Weak (NULL if no corresponding ENTER_EXECUTOR). +} _PyVMData; + +#define UOP_FORMAT_TARGET 0 +#define UOP_FORMAT_EXIT 1 +#define UOP_FORMAT_JUMP 2 +#define UOP_FORMAT_UNUSED 3 + +/* Depending on the format, + * the 32 bits between the oparg and operand are: + * UOP_FORMAT_TARGET: + * uint32_t target; + * UOP_FORMAT_EXIT + * uint16_t exit_index; + * uint16_t error_target; + * UOP_FORMAT_JUMP + * uint16_t jump_target; + * uint16_t error_target; + */ +typedef struct { + uint16_t opcode:14; + uint16_t format:2; + uint16_t oparg; + union { + uint32_t target; + struct { + union { + uint16_t exit_index; + uint16_t jump_target; + }; + uint16_t error_target; + }; + }; + uint64_t operand; // A cache entry +} _PyUOpInstruction; + +static inline uint32_t uop_get_target(const _PyUOpInstruction *inst) +{ + assert(inst->format == UOP_FORMAT_TARGET); + return inst->target; +} + +static inline uint16_t uop_get_exit_index(const _PyUOpInstruction *inst) +{ + assert(inst->format == UOP_FORMAT_EXIT); + return inst->exit_index; +} + +static inline uint16_t uop_get_jump_target(const _PyUOpInstruction *inst) +{ + assert(inst->format == UOP_FORMAT_JUMP); + return inst->jump_target; +} + +static inline uint16_t uop_get_error_target(const _PyUOpInstruction *inst) +{ + assert(inst->format != UOP_FORMAT_TARGET); + return inst->error_target; +} + +typedef struct _exit_data { + uint32_t target; + _Py_BackoffCounter temperature; + const struct _PyExecutorObject *executor; +} _PyExitData; + +typedef struct _PyExecutorObject { + PyObject_VAR_HEAD + const _PyUOpInstruction *trace; + _PyVMData vm_data; /* Used by the VM, but opaque to the optimizer */ + uint32_t exit_count; + uint32_t code_size; + size_t jit_size; + void *jit_code; + void *jit_side_entry; + _PyExitData exits[1]; +} _PyExecutorObject; + +typedef struct _PyOptimizerObject _PyOptimizerObject; + +/* Should return > 0 if a new executor is created. O if no executor is produced and < 0 if an error occurred. */ +typedef int (*optimize_func)( + _PyOptimizerObject* self, struct _PyInterpreterFrame *frame, + _Py_CODEUNIT *instr, _PyExecutorObject **exec_ptr, + int curr_stackentries); + +struct _PyOptimizerObject { + PyObject_HEAD + optimize_func optimize; + /* Data needed by the optimizer goes here, but is opaque to the VM */ +}; + +/** Test support **/ +typedef struct { + _PyOptimizerObject base; + int64_t count; +} _PyCounterOptimizerObject; + +_PyOptimizerObject *_Py_SetOptimizer(PyInterpreterState *interp, _PyOptimizerObject* optimizer); + +PyAPI_FUNC(int) _Py_SetTier2Optimizer(_PyOptimizerObject* optimizer); + +PyAPI_FUNC(_PyOptimizerObject *) _Py_GetOptimizer(void); + +PyAPI_FUNC(_PyExecutorObject *) _Py_GetExecutor(PyCodeObject *code, int offset); + +void _Py_ExecutorInit(_PyExecutorObject *, const _PyBloomFilter *); +void _Py_ExecutorDetach(_PyExecutorObject *); +void _Py_BloomFilter_Init(_PyBloomFilter *); +void _Py_BloomFilter_Add(_PyBloomFilter *bloom, void *obj); +PyAPI_FUNC(void) _Py_Executor_DependsOn(_PyExecutorObject *executor, void *obj); +/* For testing */ +PyAPI_FUNC(PyObject *) _PyOptimizer_NewCounter(void); +PyAPI_FUNC(PyObject *) _PyOptimizer_NewUOpOptimizer(void); + +#define _Py_MAX_ALLOWED_BUILTINS_MODIFICATIONS 3 +#define _Py_MAX_ALLOWED_GLOBALS_MODIFICATIONS 6 + +#ifdef _Py_TIER2 +PyAPI_FUNC(void) _Py_Executors_InvalidateDependency(PyInterpreterState *interp, void *obj, int is_invalidation); +PyAPI_FUNC(void) _Py_Executors_InvalidateAll(PyInterpreterState *interp, int is_invalidation); +#else +# define _Py_Executors_InvalidateDependency(A, B, C) ((void)0) +# define _Py_Executors_InvalidateAll(A, B) ((void)0) +#endif + + +// This is the length of the trace we project initially. +#define UOP_MAX_TRACE_LENGTH 800 + +#define TRACE_STACK_SIZE 5 + +int _Py_uop_analyze_and_optimize(struct _PyInterpreterFrame *frame, + _PyUOpInstruction *trace, int trace_len, int curr_stackentries, + _PyBloomFilter *dependencies); + +extern PyTypeObject _PyCounterExecutor_Type; +extern PyTypeObject _PyCounterOptimizer_Type; +extern PyTypeObject _PyDefaultOptimizer_Type; +extern PyTypeObject _PyUOpExecutor_Type; +extern PyTypeObject _PyUOpOptimizer_Type; + +/* Symbols */ +/* See explanation in optimizer_symbols.c */ + +struct _Py_UopsSymbol { + int flags; // 0 bits: Top; 2 or more bits: Bottom + PyTypeObject *typ; // Borrowed reference + PyObject *const_val; // Owned reference (!) +}; + +// Holds locals, stack, locals, stack ... co_consts (in that order) +#define MAX_ABSTRACT_INTERP_SIZE 4096 + +#define TY_ARENA_SIZE (UOP_MAX_TRACE_LENGTH * 5) + +// Need extras for root frame and for overflow frame (see TRACE_STACK_PUSH()) +#define MAX_ABSTRACT_FRAME_DEPTH (TRACE_STACK_SIZE + 2) + +typedef struct _Py_UopsSymbol _Py_UopsSymbol; + +struct _Py_UOpsAbstractFrame { + // Max stacklen + int stack_len; + int locals_len; + + _Py_UopsSymbol **stack_pointer; + _Py_UopsSymbol **stack; + _Py_UopsSymbol **locals; +}; + +typedef struct _Py_UOpsAbstractFrame _Py_UOpsAbstractFrame; + +typedef struct ty_arena { + int ty_curr_number; + int ty_max_number; + _Py_UopsSymbol arena[TY_ARENA_SIZE]; +} ty_arena; + +struct _Py_UOpsContext { + PyObject_HEAD + // The current "executing" frame. + _Py_UOpsAbstractFrame *frame; + _Py_UOpsAbstractFrame frames[MAX_ABSTRACT_FRAME_DEPTH]; + int curr_frame_depth; + + // Arena for the symbolic types. + ty_arena t_arena; + + _Py_UopsSymbol **n_consumed; + _Py_UopsSymbol **limit; + _Py_UopsSymbol *locals_and_stack[MAX_ABSTRACT_INTERP_SIZE]; +}; + +typedef struct _Py_UOpsContext _Py_UOpsContext; + +extern bool _Py_uop_sym_is_null(_Py_UopsSymbol *sym); +extern bool _Py_uop_sym_is_not_null(_Py_UopsSymbol *sym); +extern bool _Py_uop_sym_is_const(_Py_UopsSymbol *sym); +extern PyObject *_Py_uop_sym_get_const(_Py_UopsSymbol *sym); +extern _Py_UopsSymbol *_Py_uop_sym_new_unknown(_Py_UOpsContext *ctx); +extern _Py_UopsSymbol *_Py_uop_sym_new_not_null(_Py_UOpsContext *ctx); +extern _Py_UopsSymbol *_Py_uop_sym_new_type( + _Py_UOpsContext *ctx, PyTypeObject *typ); +extern _Py_UopsSymbol *_Py_uop_sym_new_const(_Py_UOpsContext *ctx, PyObject *const_val); +extern _Py_UopsSymbol *_Py_uop_sym_new_null(_Py_UOpsContext *ctx); +extern bool _Py_uop_sym_has_type(_Py_UopsSymbol *sym); +extern bool _Py_uop_sym_matches_type(_Py_UopsSymbol *sym, PyTypeObject *typ); +extern bool _Py_uop_sym_set_null(_Py_UopsSymbol *sym); +extern bool _Py_uop_sym_set_non_null(_Py_UopsSymbol *sym); +extern bool _Py_uop_sym_set_type(_Py_UopsSymbol *sym, PyTypeObject *typ); +extern bool _Py_uop_sym_set_const(_Py_UopsSymbol *sym, PyObject *const_val); +extern bool _Py_uop_sym_is_bottom(_Py_UopsSymbol *sym); +extern int _Py_uop_sym_truthiness(_Py_UopsSymbol *sym); +extern PyTypeObject *_Py_uop_sym_get_type(_Py_UopsSymbol *sym); + + +extern int _Py_uop_abstractcontext_init(_Py_UOpsContext *ctx); +extern void _Py_uop_abstractcontext_fini(_Py_UOpsContext *ctx); + +extern _Py_UOpsAbstractFrame *_Py_uop_frame_new( + _Py_UOpsContext *ctx, + PyCodeObject *co, + int curr_stackentries, + _Py_UopsSymbol **args, + int arg_len); +extern int _Py_uop_frame_pop(_Py_UOpsContext *ctx); + +PyAPI_FUNC(PyObject *) _Py_uop_symbols_test(PyObject *self, PyObject *ignored); + +PyAPI_FUNC(int) _PyOptimizer_Optimize(struct _PyInterpreterFrame *frame, _Py_CODEUNIT *start, PyObject **stack_pointer, _PyExecutorObject **exec_ptr); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_OPTIMIZER_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_parking_lot.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_parking_lot.h new file mode 100644 index 000000000..8c9260e26 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_parking_lot.h @@ -0,0 +1,97 @@ +// ParkingLot is an internal API for building efficient synchronization +// primitives like mutexes and events. +// +// The API and name is inspired by WebKit's WTF::ParkingLot, which in turn +// is inspired Linux's futex API. +// See https://webkit.org/blog/6161/locking-in-webkit/. +// +// The core functionality is an atomic "compare-and-sleep" operation along with +// an atomic "wake-up" operation. + +#ifndef Py_INTERNAL_PARKING_LOT_H +#define Py_INTERNAL_PARKING_LOT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +enum { + // The thread was unparked by another thread. + Py_PARK_OK = 0, + + // The value of `address` did not match `expected`. + Py_PARK_AGAIN = -1, + + // The thread was unparked due to a timeout. + Py_PARK_TIMEOUT = -2, + + // The thread was interrupted by a signal. + Py_PARK_INTR = -3, +}; + +// Checks that `*address == *expected` and puts the thread to sleep until an +// unpark operation is called on the same `address`. Otherwise, the function +// returns `Py_PARK_AGAIN`. The comparison behaves like memcmp, but is +// performed atomically with respect to unpark operations. +// +// The `address_size` argument is the size of the data pointed to by the +// `address` and `expected` pointers (i.e., sizeof(*address)). It must be +// 1, 2, 4, or 8. +// +// The `timeout_ns` argument specifies the maximum amount of time to wait, with +// -1 indicating an infinite wait. +// +// `park_arg`, which can be NULL, is passed to the unpark operation. +// +// If `detach` is true, then the thread will detach/release the GIL while +// waiting. +// +// Example usage: +// +// if (_Py_atomic_compare_exchange_uint8(address, &expected, new_value)) { +// int res = _PyParkingLot_Park(address, &new_value, sizeof(*address), +// timeout_ns, NULL, 1); +// ... +// } +PyAPI_FUNC(int) +_PyParkingLot_Park(const void *address, const void *expected, + size_t address_size, PyTime_t timeout_ns, + void *park_arg, int detach); + +// Callback for _PyParkingLot_Unpark: +// +// `arg` is the data of the same name provided to the _PyParkingLot_Unpark() +// call. +// `park_arg` is the data provided to _PyParkingLot_Park() call or NULL if +// no waiting thread was found. +// `has_more_waiters` is true if there are more threads waiting on the same +// address. May be true in cases where threads are waiting on a different +// address that map to the same internal bucket. +typedef void _Py_unpark_fn_t(void *arg, void *park_arg, int has_more_waiters); + +// Unparks a single thread waiting on `address`. +// +// Note that fn() is called regardless of whether a thread was unparked. If +// no threads are waiting on `address` then the `park_arg` argument to fn() +// will be NULL. +// +// Example usage: +// void callback(void *arg, void *park_arg, int has_more_waiters); +// _PyParkingLot_Unpark(address, &callback, arg); +PyAPI_FUNC(void) +_PyParkingLot_Unpark(const void *address, _Py_unpark_fn_t *fn, void *arg); + +// Unparks all threads waiting on `address`. +PyAPI_FUNC(void) _PyParkingLot_UnparkAll(const void *address); + +// Resets the parking lot state after a fork. Forgets all parked threads. +PyAPI_FUNC(void) _PyParkingLot_AfterFork(void); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_PARKING_LOT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_parser.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_parser.h new file mode 100644 index 000000000..b16084aaa --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_parser.h @@ -0,0 +1,95 @@ +#ifndef Py_INTERNAL_PARSER_H +#define Py_INTERNAL_PARSER_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +#include "pycore_ast.h" // struct _expr +#include "pycore_global_strings.h" // _Py_DECLARE_STR() +#include "pycore_pyarena.h" // PyArena + + +#ifdef Py_DEBUG +#define _PYPEGEN_NSTATISTICS 2000 +#endif + +struct _parser_runtime_state { +#ifdef Py_DEBUG + long memo_statistics[_PYPEGEN_NSTATISTICS]; +#ifdef Py_GIL_DISABLED + PyMutex mutex; +#endif +#else + int _not_used; +#endif + struct _expr dummy_name; +}; + +_Py_DECLARE_STR(empty, "") +#if defined(Py_DEBUG) && defined(Py_GIL_DISABLED) +#define _parser_runtime_state_INIT \ + { \ + .mutex = {0}, \ + .dummy_name = { \ + .kind = Name_kind, \ + .v.Name.id = &_Py_STR(empty), \ + .v.Name.ctx = Load, \ + .lineno = 1, \ + .col_offset = 0, \ + .end_lineno = 1, \ + .end_col_offset = 0, \ + }, \ + } +#else +#define _parser_runtime_state_INIT \ + { \ + .dummy_name = { \ + .kind = Name_kind, \ + .v.Name.id = &_Py_STR(empty), \ + .v.Name.ctx = Load, \ + .lineno = 1, \ + .col_offset = 0, \ + .end_lineno = 1, \ + .end_col_offset = 0, \ + }, \ + } +#endif + +extern struct _mod* _PyParser_ASTFromString( + const char *str, + PyObject* filename, + int mode, + PyCompilerFlags *flags, + PyArena *arena); + +extern struct _mod* _PyParser_ASTFromFile( + FILE *fp, + PyObject *filename_ob, + const char *enc, + int mode, + const char *ps1, + const char *ps2, + PyCompilerFlags *flags, + int *errcode, + PyArena *arena); +extern struct _mod* _PyParser_InteractiveASTFromFile( + FILE *fp, + PyObject *filename_ob, + const char *enc, + int mode, + const char *ps1, + const char *ps2, + PyCompilerFlags *flags, + int *errcode, + PyObject **interactive_src, + PyArena *arena); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_PARSER_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pathconfig.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pathconfig.h new file mode 100644 index 000000000..a1ce1b19a --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pathconfig.h @@ -0,0 +1,26 @@ +#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 + +// Export for '_testinternalcapi' shared extension +PyAPI_FUNC(void) _PyPathConfig_ClearGlobal(void); + +extern PyStatus _PyPathConfig_ReadGlobal(PyConfig *config); +extern PyStatus _PyPathConfig_UpdateGlobal(const PyConfig *config); +extern const wchar_t * _PyPathConfig_GetGlobalModuleSearchPath(void); + +extern int _PyPathConfig_ComputeSysPath0( + const PyWideStringList *argv, + PyObject **path0); + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_PATHCONFIG_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pyarena.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pyarena.h new file mode 100644 index 000000000..1f07479fb --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pyarena.h @@ -0,0 +1,68 @@ +// An arena-like memory interface for the compiler. + +#ifndef Py_INTERNAL_PYARENA_H +#define Py_INTERNAL_PYARENA_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +typedef struct _arena PyArena; + +// _PyArena_New() and _PyArena_Free() create a new arena and free it, +// respectively. Once an arena has been created, it can be used +// to allocate memory via _PyArena_Malloc(). Pointers to PyObject can +// also be registered with the arena via _PyArena_AddPyObject(), and the +// arena will ensure that the PyObjects stay alive at least until +// _PyArena_Free() is called. When an arena is freed, all the memory it +// allocated is freed, the arena releases internal references to registered +// PyObject*, and none of its pointers are valid. +// XXX (tim) What does "none of its pointers are valid" mean? Does it +// XXX mean that pointers previously obtained via _PyArena_Malloc() are +// XXX no longer valid? (That's clearly true, but not sure that's what +// XXX the text is trying to say.) +// +// _PyArena_New() returns an arena pointer. On error, it +// returns a negative number and sets an exception. +// XXX (tim): Not true. On error, _PyArena_New() actually returns NULL, +// XXX and looks like it may or may not set an exception (e.g., if the +// XXX internal PyList_New(0) returns NULL, _PyArena_New() passes that on +// XXX and an exception is set; OTOH, if the internal +// XXX block_new(DEFAULT_BLOCK_SIZE) returns NULL, that's passed on but +// XXX an exception is not set in that case). +// +// Export for test_peg_generator +PyAPI_FUNC(PyArena*) _PyArena_New(void); + +// Export for test_peg_generator +PyAPI_FUNC(void) _PyArena_Free(PyArena *); + +// Mostly like malloc(), return the address of a block of memory spanning +// `size` bytes, or return NULL (without setting an exception) if enough +// new memory can't be obtained. Unlike malloc(0), _PyArena_Malloc() with +// size=0 does not guarantee to return a unique pointer (the pointer +// returned may equal one or more other pointers obtained from +// _PyArena_Malloc()). +// Note that pointers obtained via _PyArena_Malloc() must never be passed to +// the system free() or realloc(), or to any of Python's similar memory- +// management functions. _PyArena_Malloc()-obtained pointers remain valid +// until _PyArena_Free(ar) is called, at which point all pointers obtained +// from the arena `ar` become invalid simultaneously. +// +// Export for test_peg_generator +PyAPI_FUNC(void*) _PyArena_Malloc(PyArena *, size_t size); + +// This routine isn't a proper arena allocation routine. It takes +// a PyObject* and records it so that it can be DECREFed when the +// arena is freed. +// +// Export for test_peg_generator +PyAPI_FUNC(int) _PyArena_AddPyObject(PyArena *, PyObject *); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_PYARENA_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pyatomic_ft_wrappers.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pyatomic_ft_wrappers.h new file mode 100644 index 000000000..a1bb383bc --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pyatomic_ft_wrappers.h @@ -0,0 +1,94 @@ +// This header file provides wrappers around the atomic operations found in +// `pyatomic.h` that are only atomic in free-threaded builds. +// +// These are intended to be used in places where atomics are required in +// free-threaded builds, but not in the default build, and we don't want to +// introduce the potential performance overhead of an atomic operation in the +// default build. +// +// All usages of these macros should be replaced with unconditionally atomic or +// non-atomic versions, and this file should be removed, once the dust settles +// on free threading. +#ifndef Py_ATOMIC_FT_WRAPPERS_H +#define Py_ATOMIC_FT_WRAPPERS_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +#error "this header requires Py_BUILD_CORE define" +#endif + +#ifdef Py_GIL_DISABLED +#define FT_ATOMIC_LOAD_PTR(value) _Py_atomic_load_ptr(&value) +#define FT_ATOMIC_STORE_PTR(value, new_value) _Py_atomic_store_ptr(&value, new_value) +#define FT_ATOMIC_LOAD_SSIZE(value) _Py_atomic_load_ssize(&value) +#define FT_ATOMIC_LOAD_SSIZE_ACQUIRE(value) \ + _Py_atomic_load_ssize_acquire(&value) +#define FT_ATOMIC_LOAD_SSIZE_RELAXED(value) \ + _Py_atomic_load_ssize_relaxed(&value) +#define FT_ATOMIC_STORE_PTR(value, new_value) \ + _Py_atomic_store_ptr(&value, new_value) +#define FT_ATOMIC_LOAD_PTR_ACQUIRE(value) \ + _Py_atomic_load_ptr_acquire(&value) +#define FT_ATOMIC_LOAD_UINTPTR_ACQUIRE(value) \ + _Py_atomic_load_uintptr_acquire(&value) +#define FT_ATOMIC_LOAD_PTR_RELAXED(value) \ + _Py_atomic_load_ptr_relaxed(&value) +#define FT_ATOMIC_LOAD_UINT8(value) \ + _Py_atomic_load_uint8(&value) +#define FT_ATOMIC_STORE_UINT8(value, new_value) \ + _Py_atomic_store_uint8(&value, new_value) +#define FT_ATOMIC_LOAD_UINT8_RELAXED(value) \ + _Py_atomic_load_uint8_relaxed(&value) +#define FT_ATOMIC_LOAD_UINT16_RELAXED(value) \ + _Py_atomic_load_uint16_relaxed(&value) +#define FT_ATOMIC_LOAD_UINT32_RELAXED(value) \ + _Py_atomic_load_uint32_relaxed(&value) +#define FT_ATOMIC_LOAD_ULONG_RELAXED(value) \ + _Py_atomic_load_ulong_relaxed(&value) +#define FT_ATOMIC_STORE_PTR_RELAXED(value, new_value) \ + _Py_atomic_store_ptr_relaxed(&value, new_value) +#define FT_ATOMIC_STORE_PTR_RELEASE(value, new_value) \ + _Py_atomic_store_ptr_release(&value, new_value) +#define FT_ATOMIC_STORE_UINTPTR_RELEASE(value, new_value) \ + _Py_atomic_store_uintptr_release(&value, new_value) +#define FT_ATOMIC_STORE_SSIZE_RELAXED(value, new_value) \ + _Py_atomic_store_ssize_relaxed(&value, new_value) +#define FT_ATOMIC_STORE_UINT8_RELAXED(value, new_value) \ + _Py_atomic_store_uint8_relaxed(&value, new_value) +#define FT_ATOMIC_STORE_UINT16_RELAXED(value, new_value) \ + _Py_atomic_store_uint16_relaxed(&value, new_value) +#define FT_ATOMIC_STORE_UINT32_RELAXED(value, new_value) \ + _Py_atomic_store_uint32_relaxed(&value, new_value) + +#else +#define FT_ATOMIC_LOAD_PTR(value) value +#define FT_ATOMIC_STORE_PTR(value, new_value) value = new_value +#define FT_ATOMIC_LOAD_SSIZE(value) value +#define FT_ATOMIC_LOAD_SSIZE_ACQUIRE(value) value +#define FT_ATOMIC_LOAD_SSIZE_RELAXED(value) value +#define FT_ATOMIC_STORE_PTR(value, new_value) value = new_value +#define FT_ATOMIC_LOAD_PTR_ACQUIRE(value) value +#define FT_ATOMIC_LOAD_UINTPTR_ACQUIRE(value) value +#define FT_ATOMIC_LOAD_PTR_RELAXED(value) value +#define FT_ATOMIC_LOAD_UINT8(value) value +#define FT_ATOMIC_STORE_UINT8(value, new_value) value = new_value +#define FT_ATOMIC_LOAD_UINT8_RELAXED(value) value +#define FT_ATOMIC_LOAD_UINT16_RELAXED(value) value +#define FT_ATOMIC_LOAD_UINT32_RELAXED(value) value +#define FT_ATOMIC_LOAD_ULONG_RELAXED(value) value +#define FT_ATOMIC_STORE_PTR_RELAXED(value, new_value) value = new_value +#define FT_ATOMIC_STORE_PTR_RELEASE(value, new_value) value = new_value +#define FT_ATOMIC_STORE_UINTPTR_RELEASE(value, new_value) value = new_value +#define FT_ATOMIC_STORE_SSIZE_RELAXED(value, new_value) value = new_value +#define FT_ATOMIC_STORE_UINT8_RELAXED(value, new_value) value = new_value +#define FT_ATOMIC_STORE_UINT16_RELAXED(value, new_value) value = new_value +#define FT_ATOMIC_STORE_UINT32_RELAXED(value, new_value) value = new_value + +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_ATOMIC_FT_WRAPPERS_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pybuffer.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pybuffer.h new file mode 100644 index 000000000..9439d2bd7 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pybuffer.h @@ -0,0 +1,21 @@ +#ifndef Py_INTERNAL_PYBUFFER_H +#define Py_INTERNAL_PYBUFFER_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +// Exported for the _interpchannels module. +PyAPI_FUNC(int) _PyBuffer_ReleaseInInterpreter( + PyInterpreterState *interp, Py_buffer *view); +PyAPI_FUNC(int) _PyBuffer_ReleaseInInterpreterAndRawFree( + PyInterpreterState *interp, Py_buffer *view); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_PYBUFFER_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pyerrors.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pyerrors.h new file mode 100644 index 000000000..150716382 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pyerrors.h @@ -0,0 +1,178 @@ +#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 + + +/* Error handling definitions */ + +extern _PyErr_StackItem* _PyErr_GetTopmostException(PyThreadState *tstate); +extern PyObject* _PyErr_GetHandledException(PyThreadState *); +extern void _PyErr_SetHandledException(PyThreadState *, PyObject *); +extern void _PyErr_GetExcInfo(PyThreadState *, PyObject **, PyObject **, PyObject **); + +// Export for '_testinternalcapi' shared extension +PyAPI_FUNC(void) _PyErr_SetKeyError(PyObject *); + + +// Like PyErr_Format(), but saves current exception as __context__ and +// __cause__. +// Export for '_sqlite3' shared extension. +PyAPI_FUNC(PyObject*) _PyErr_FormatFromCause( + PyObject *exception, + const char *format, /* ASCII-encoded string */ + ... + ); + +extern int _PyException_AddNote( + PyObject *exc, + PyObject *note); + +extern int _PyErr_CheckSignals(void); + +/* Support for adding program text to SyntaxErrors */ + +// Export for test_peg_generator +PyAPI_FUNC(PyObject*) _PyErr_ProgramDecodedTextObject( + PyObject *filename, + int lineno, + const char* encoding); + +extern PyObject* _PyUnicodeTranslateError_Create( + PyObject *object, + Py_ssize_t start, + Py_ssize_t end, + const char *reason /* UTF-8 encoded string */ + ); + +extern void _Py_NO_RETURN _Py_FatalErrorFormat( + const char *func, + const char *format, + ...); + +extern PyObject* _PyErr_SetImportErrorWithNameFrom( + PyObject *, + PyObject *, + PyObject *, + PyObject *); + + +/* runtime lifecycle */ + +extern PyStatus _PyErr_InitTypes(PyInterpreterState *); +extern void _PyErr_FiniTypes(PyInterpreterState *); + + +/* other API */ + +static inline PyObject* _PyErr_Occurred(PyThreadState *tstate) +{ + assert(tstate != NULL); + if (tstate->current_exception == NULL) { + return NULL; + } + return (PyObject *)Py_TYPE(tstate->current_exception); +} + +static inline void _PyErr_ClearExcState(_PyErr_StackItem *exc_state) +{ + Py_CLEAR(exc_state->exc_value); +} + +extern PyObject* _PyErr_StackItemToExcInfoTuple( + _PyErr_StackItem *err_info); + +extern void _PyErr_Fetch( + PyThreadState *tstate, + PyObject **type, + PyObject **value, + PyObject **traceback); + +extern PyObject* _PyErr_GetRaisedException(PyThreadState *tstate); + +PyAPI_FUNC(int) _PyErr_ExceptionMatches( + PyThreadState *tstate, + PyObject *exc); + +extern void _PyErr_SetRaisedException(PyThreadState *tstate, PyObject *exc); + +extern void _PyErr_Restore( + PyThreadState *tstate, + PyObject *type, + PyObject *value, + PyObject *traceback); + +extern void _PyErr_SetObject( + PyThreadState *tstate, + PyObject *type, + PyObject *value); + +extern void _PyErr_ChainStackItem(void); + +PyAPI_FUNC(void) _PyErr_Clear(PyThreadState *tstate); + +extern void _PyErr_SetNone(PyThreadState *tstate, PyObject *exception); + +extern 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, + ...); + +extern void _PyErr_NormalizeException( + PyThreadState *tstate, + PyObject **exc, + PyObject **val, + PyObject **tb); + +extern PyObject* _PyErr_FormatFromCauseTstate( + PyThreadState *tstate, + PyObject *exception, + const char *format, + ...); + +extern PyObject* _PyExc_CreateExceptionGroup( + const char *msg, + PyObject *excs); + +extern PyObject* _PyExc_PrepReraiseStar( + PyObject *orig, + PyObject *excs); + +extern int _PyErr_CheckSignalsTstate(PyThreadState *tstate); + +extern void _Py_DumpExtensionModules(int fd, PyInterpreterState *interp); +extern PyObject* _Py_CalculateSuggestions(PyObject *dir, PyObject *name); +extern PyObject* _Py_Offer_Suggestions(PyObject* exception); + +// Export for '_testinternalcapi' shared extension +PyAPI_FUNC(Py_ssize_t) _Py_UTF8_Edit_Cost(PyObject *str_a, PyObject *str_b, + Py_ssize_t max_cost); + +void _PyErr_FormatNote(const char *format, ...); + +/* Context manipulation (PEP 3134) */ + +Py_DEPRECATED(3.12) extern void _PyErr_ChainExceptions(PyObject *, PyObject *, PyObject *); + +// implementation detail for the codeop module. +// Exported for test.test_peg_generator.test_c_parser +PyAPI_DATA(PyTypeObject) _PyExc_IncompleteInputError; +#define PyExc_IncompleteInputError ((PyObject *)(&_PyExc_IncompleteInputError)) + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_PYERRORS_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pyhash.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pyhash.h new file mode 100644 index 000000000..0ce08900e --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pyhash.h @@ -0,0 +1,107 @@ +#ifndef Py_INTERNAL_PYHASH_H +#define Py_INTERNAL_PYHASH_H + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +// Similar to Py_HashPointer(), but don't replace -1 with -2. +static inline Py_hash_t +_Py_HashPointerRaw(const void *ptr) +{ + uintptr_t x = (uintptr_t)ptr; + Py_BUILD_ASSERT(sizeof(x) == sizeof(ptr)); + + // Bottom 3 or 4 bits are likely to be 0; rotate x by 4 to the right + // to avoid excessive hash collisions for dicts and sets. + x = (x >> 4) | (x << (8 * sizeof(uintptr_t) - 4)); + + Py_BUILD_ASSERT(sizeof(x) == sizeof(Py_hash_t)); + return (Py_hash_t)x; +} + +// Export for '_datetime' shared extension +PyAPI_FUNC(Py_hash_t) _Py_HashBytes(const void*, Py_ssize_t); + +/* Hash secret + * + * memory layout on 64 bit systems + * cccccccc cccccccc cccccccc uc -- unsigned char[24] + * pppppppp ssssssss ........ fnv -- two Py_hash_t + * k0k0k0k0 k1k1k1k1 ........ siphash -- two uint64_t + * ........ ........ ssssssss djbx33a -- 16 bytes padding + one Py_hash_t + * ........ ........ eeeeeeee pyexpat XML hash salt + * + * memory layout on 32 bit systems + * cccccccc cccccccc cccccccc uc + * ppppssss ........ ........ fnv -- two Py_hash_t + * k0k0k0k0 k1k1k1k1 ........ siphash -- two uint64_t (*) + * ........ ........ ssss.... djbx33a -- 16 bytes padding + one Py_hash_t + * ........ ........ eeee.... pyexpat XML hash salt + * + * (*) The siphash member may not be available on 32 bit platforms without + * an unsigned int64 data type. + */ +typedef union { + /* ensure 24 bytes */ + unsigned char uc[24]; + /* two Py_hash_t for FNV */ + struct { + Py_hash_t prefix; + Py_hash_t suffix; + } fnv; + /* two uint64 for SipHash24 */ + struct { + uint64_t k0; + uint64_t k1; + } siphash; + /* a different (!) Py_hash_t for small string optimization */ + struct { + unsigned char padding[16]; + Py_hash_t suffix; + } djbx33a; + struct { + unsigned char padding[16]; + Py_hash_t hashsalt; + } expat; +} _Py_HashSecret_t; + +// Export for '_elementtree' shared extension +PyAPI_DATA(_Py_HashSecret_t) _Py_HashSecret; + +#ifdef Py_DEBUG +extern int _Py_HashSecret_Initialized; +#endif + + +struct pyhash_runtime_state { + struct { +#ifndef MS_WINDOWS + int fd; + dev_t st_dev; + ino_t st_ino; +#else + // This is a placeholder so the struct isn't empty on Windows. + int _not_used; +#endif + } urandom_cache; +}; + +#ifndef MS_WINDOWS +# define _py_urandom_cache_INIT \ + { \ + .fd = -1, \ + } +#else +# define _py_urandom_cache_INIT {0} +#endif + +#define pyhash_state_INIT \ + { \ + .urandom_cache = _py_urandom_cache_INIT, \ + } + + +extern uint64_t _Py_KeyedHash(uint64_t key, const void *src, Py_ssize_t src_sz); + +#endif // !Py_INTERNAL_PYHASH_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pylifecycle.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pylifecycle.h new file mode 100644 index 000000000..f426ae0e1 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pylifecycle.h @@ -0,0 +1,136 @@ +#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 + +#include "pycore_runtime.h" // _PyRuntimeState + +/* Forward declarations */ +struct _PyArgv; +struct pyruntimestate; + +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 + +extern int _Py_IsLocaleCoercionTarget(const char *ctype_loc); + +/* Various one-time initializers */ + +extern void _Py_InitVersion(void); +extern PyStatus _PyFaulthandler_Init(int enable); +extern PyObject * _PyBuiltin_Init(PyInterpreterState *interp); +extern PyStatus _PySys_Create( + PyThreadState *tstate, + PyObject **sysmod_p); +extern PyStatus _PySys_ReadPreinitWarnOptions(PyWideStringList *options); +extern PyStatus _PySys_ReadPreinitXOptions(PyConfig *config); +extern int _PySys_UpdateConfig(PyThreadState *tstate); +extern void _PySys_FiniTypes(PyInterpreterState *interp); +extern int _PyBuiltins_AddExceptions(PyObject * bltinmod); +extern PyStatus _Py_HashRandomization_Init(const PyConfig *); + +extern PyStatus _PyGC_Init(PyInterpreterState *interp); +extern PyStatus _PyAtExit_Init(PyInterpreterState *interp); + +/* Various internal finalizers */ + +extern int _PySignal_Init(int install_signal_handlers); +extern void _PySignal_Fini(void); + +extern void _PyGC_Fini(PyInterpreterState *interp); +extern void _Py_HashRandomization_Fini(void); +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(PyInterpreterState *interp); +extern void _PyAtExit_Fini(PyInterpreterState *interp); +extern void _PyThread_FiniType(PyInterpreterState *interp); +extern void _PyArg_Fini(void); +extern void _Py_FinalizeAllocatedBlocks(_PyRuntimeState *); + +extern PyStatus _PyGILState_Init(PyInterpreterState *interp); +extern void _PyGILState_SetTstate(PyThreadState *tstate); +extern void _PyGILState_Fini(PyInterpreterState *interp); + +extern void _PyGC_DumpShutdownStats(PyInterpreterState *interp); + +extern PyStatus _Py_PreInitializeFromPyArgv( + const PyPreConfig *src_config, + const struct _PyArgv *args); +extern PyStatus _Py_PreInitializeFromConfig( + const PyConfig *config, + const struct _PyArgv *args); + +extern wchar_t * _Py_GetStdlibDir(void); + +extern int _Py_HandleSystemExit(int *exitcode_p); + +extern PyObject* _PyErr_WriteUnraisableDefaultHook(PyObject *unraisable); + +extern void _PyErr_Print(PyThreadState *tstate); +extern void _PyErr_Display(PyObject *file, PyObject *exception, + PyObject *value, PyObject *tb); +extern void _PyErr_DisplayException(PyObject *file, PyObject *exc); + +extern void _PyThreadState_DeleteCurrent(PyThreadState *tstate); + +extern void _PyAtExit_Call(PyInterpreterState *interp); + +extern int _Py_IsCoreInitialized(void); + +extern int _Py_FdIsInteractive(FILE *fp, PyObject *filename); + +extern const char* _Py_gitidentifier(void); +extern const char* _Py_gitversion(void); + +// Export for '_asyncio' shared extension +PyAPI_FUNC(int) _Py_IsInterpreterFinalizing(PyInterpreterState *interp); + +/* Random */ +extern int _PyOS_URandom(void *buffer, Py_ssize_t size); + +// Export for '_random' shared extension +PyAPI_FUNC(int) _PyOS_URandomNonblock(void *buffer, Py_ssize_t size); + +/* Legacy locale support */ +extern int _Py_CoerceLegacyLocale(int warn); +extern int _Py_LegacyLocaleDetected(int warn); + +// Export for 'readline' shared extension +PyAPI_FUNC(char*) _Py_SetLocaleFromEnv(int category); + +// Export for special main.c string compiling with source tracebacks +int _PyRun_SimpleStringFlagsWithName(const char *command, const char* name, PyCompilerFlags *flags); + + +/* interpreter config */ + +// Export for _testinternalcapi shared extension +PyAPI_FUNC(int) _PyInterpreterConfig_InitFromState( + PyInterpreterConfig *, + PyInterpreterState *); +PyAPI_FUNC(PyObject *) _PyInterpreterConfig_AsDict(PyInterpreterConfig *); +PyAPI_FUNC(int) _PyInterpreterConfig_InitFromDict( + PyInterpreterConfig *, + PyObject *); +PyAPI_FUNC(int) _PyInterpreterConfig_UpdateFromDict( + PyInterpreterConfig *, + PyObject *); + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_LIFECYCLE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pymath.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pymath.h new file mode 100644 index 000000000..7a4e1c1eb --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pymath.h @@ -0,0 +1,205 @@ +#ifndef Py_INTERNAL_PYMATH_H +#define Py_INTERNAL_PYMATH_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +/* _Py_ADJUST_ERANGE1(x) + * _Py_ADJUST_ERANGE2(x, y) + * Set errno to 0 before calling a libm function, and invoke one of these + * macros after, passing the function result(s) (_Py_ADJUST_ERANGE2 is useful + * for functions returning complex results). This makes two kinds of + * adjustments to errno: (A) If it looks like the platform libm set + * errno=ERANGE due to underflow, clear errno. (B) If it looks like the + * platform libm overflowed but didn't set errno, force errno to ERANGE. In + * effect, we're trying to force a useful implementation of C89 errno + * behavior. + * Caution: + * This isn't reliable. C99 no longer requires libm to set errno under + * any exceptional condition, but does require +- HUGE_VAL return + * values on overflow. A 754 box *probably* maps HUGE_VAL to a + * double infinity, and we're cool if that's so, unless the input + * was an infinity and an infinity is the expected result. A C89 + * system sets errno to ERANGE, so we check for that too. We're + * out of luck if a C99 754 box doesn't map HUGE_VAL to +Inf, or + * if the returned result is a NaN, or if a C89 box returns HUGE_VAL + * in non-overflow cases. + */ +static inline void _Py_ADJUST_ERANGE1(double x) +{ + if (errno == 0) { + if (x == Py_HUGE_VAL || x == -Py_HUGE_VAL) { + errno = ERANGE; + } + } + else if (errno == ERANGE && x == 0.0) { + errno = 0; + } +} + +static inline void _Py_ADJUST_ERANGE2(double x, double y) +{ + if (x == Py_HUGE_VAL || x == -Py_HUGE_VAL || + y == Py_HUGE_VAL || y == -Py_HUGE_VAL) + { + if (errno == 0) { + errno = ERANGE; + } + } + else if (errno == ERANGE) { + errno = 0; + } +} + + +//--- HAVE_PY_SET_53BIT_PRECISION macro ------------------------------------ +// +// The functions _Py_dg_strtod() and _Py_dg_dtoa() in Python/dtoa.c (which are +// required to support the short float repr introduced in Python 3.1) require +// that the floating-point unit that's being used for arithmetic operations on +// C doubles is set to use 53-bit precision. It also requires that the FPU +// rounding mode is round-half-to-even, but that's less often an issue. +// +// If your FPU isn't already set to 53-bit precision/round-half-to-even, and +// you want to make use of _Py_dg_strtod() and _Py_dg_dtoa(), then you should: +// +// #define HAVE_PY_SET_53BIT_PRECISION 1 +// +// and also give appropriate definitions for the following three macros: +// +// * _Py_SET_53BIT_PRECISION_HEADER: any variable declarations needed to +// use the two macros below. +// * _Py_SET_53BIT_PRECISION_START: store original FPU settings, and +// set FPU to 53-bit precision/round-half-to-even +// * _Py_SET_53BIT_PRECISION_END: restore original FPU settings +// +// The macros are designed to be used within a single C function: see +// Python/pystrtod.c for an example of their use. + + +// Get and set x87 control word for gcc/x86 +#ifdef HAVE_GCC_ASM_FOR_X87 +#define HAVE_PY_SET_53BIT_PRECISION 1 + +// Functions defined in Python/pymath.c +extern unsigned short _Py_get_387controlword(void); +extern void _Py_set_387controlword(unsigned short); + +#define _Py_SET_53BIT_PRECISION_HEADER \ + unsigned short old_387controlword, new_387controlword +#define _Py_SET_53BIT_PRECISION_START \ + do { \ + old_387controlword = _Py_get_387controlword(); \ + new_387controlword = (old_387controlword & ~0x0f00) | 0x0200; \ + if (new_387controlword != old_387controlword) { \ + _Py_set_387controlword(new_387controlword); \ + } \ + } while (0) +#define _Py_SET_53BIT_PRECISION_END \ + do { \ + if (new_387controlword != old_387controlword) { \ + _Py_set_387controlword(old_387controlword); \ + } \ + } while (0) +#endif + +// Get and set x87 control word for VisualStudio/x86. +// x87 is not supported in 64-bit or ARM. +#if defined(_MSC_VER) && !defined(_WIN64) && !defined(_M_ARM) +#define HAVE_PY_SET_53BIT_PRECISION 1 + +#include // __control87_2() + +#define _Py_SET_53BIT_PRECISION_HEADER \ + unsigned int old_387controlword, new_387controlword, out_387controlword + // We use the __control87_2 function to set only the x87 control word. + // The SSE control word is unaffected. +#define _Py_SET_53BIT_PRECISION_START \ + do { \ + __control87_2(0, 0, &old_387controlword, NULL); \ + new_387controlword = \ + (old_387controlword & ~(_MCW_PC | _MCW_RC)) | (_PC_53 | _RC_NEAR); \ + if (new_387controlword != old_387controlword) { \ + __control87_2(new_387controlword, _MCW_PC | _MCW_RC, \ + &out_387controlword, NULL); \ + } \ + } while (0) +#define _Py_SET_53BIT_PRECISION_END \ + do { \ + if (new_387controlword != old_387controlword) { \ + __control87_2(old_387controlword, _MCW_PC | _MCW_RC, \ + &out_387controlword, NULL); \ + } \ + } while (0) +#endif + + +// MC68881 +#ifdef HAVE_GCC_ASM_FOR_MC68881 +#define HAVE_PY_SET_53BIT_PRECISION 1 +#define _Py_SET_53BIT_PRECISION_HEADER \ + unsigned int old_fpcr, new_fpcr +#define _Py_SET_53BIT_PRECISION_START \ + do { \ + __asm__ ("fmove.l %%fpcr,%0" : "=g" (old_fpcr)); \ + /* Set double precision / round to nearest. */ \ + new_fpcr = (old_fpcr & ~0xf0) | 0x80; \ + if (new_fpcr != old_fpcr) { \ + __asm__ volatile ("fmove.l %0,%%fpcr" : : "g" (new_fpcr));\ + } \ + } while (0) +#define _Py_SET_53BIT_PRECISION_END \ + do { \ + if (new_fpcr != old_fpcr) { \ + __asm__ volatile ("fmove.l %0,%%fpcr" : : "g" (old_fpcr)); \ + } \ + } while (0) +#endif + +// Default definitions are empty +#ifndef _Py_SET_53BIT_PRECISION_HEADER +# define _Py_SET_53BIT_PRECISION_HEADER +# define _Py_SET_53BIT_PRECISION_START +# define _Py_SET_53BIT_PRECISION_END +#endif + + +//--- _PY_SHORT_FLOAT_REPR macro ------------------------------------------- + +// If we can't guarantee 53-bit precision, don't use the code +// in Python/dtoa.c, but fall back to standard code. This +// means that repr of a float will be long (17 significant digits). +// +// Realistically, there are two things that could go wrong: +// +// (1) doubles aren't IEEE 754 doubles, or +// (2) we're on x86 with the rounding precision set to 64-bits +// (extended precision), and we don't know how to change +// the rounding precision. +#if !defined(DOUBLE_IS_LITTLE_ENDIAN_IEEE754) && \ + !defined(DOUBLE_IS_BIG_ENDIAN_IEEE754) && \ + !defined(DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754) +# define _PY_SHORT_FLOAT_REPR 0 +#endif + +// Double rounding is symptomatic of use of extended precision on x86. +// If we're seeing double rounding, and we don't have any mechanism available +// for changing the FPU rounding precision, then don't use Python/dtoa.c. +#if defined(X87_DOUBLE_ROUNDING) && !defined(HAVE_PY_SET_53BIT_PRECISION) +# define _PY_SHORT_FLOAT_REPR 0 +#endif + +#ifndef _PY_SHORT_FLOAT_REPR +# define _PY_SHORT_FLOAT_REPR 1 +#endif + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_PYMATH_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pymem.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pymem.h new file mode 100644 index 000000000..dd6b07623 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pymem.h @@ -0,0 +1,138 @@ +#ifndef Py_INTERNAL_PYMEM_H +#define Py_INTERNAL_PYMEM_H + +#include "pycore_llist.h" // struct llist_node +#include "pycore_lock.h" // PyMutex + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +// Try to get the allocators name set by _PyMem_SetupAllocators(). +// Return NULL if unknown. +// Export for '_testinternalcapi' shared extension. +PyAPI_FUNC(const char*) _PyMem_GetCurrentAllocatorName(void); + +// strdup() using PyMem_RawMalloc() +extern char* _PyMem_RawStrdup(const char *str); + +// strdup() using PyMem_Malloc(). +// Export for '_pickle ' shared extension. +PyAPI_FUNC(char*) _PyMem_Strdup(const char *str); + +// wcsdup() using PyMem_RawMalloc() +extern wchar_t* _PyMem_RawWcsdup(const wchar_t *str); + +typedef struct { + /* We tag each block with an API ID in order to tag API violations */ + char api_id; + PyMemAllocatorEx alloc; +} debug_alloc_api_t; + +struct _pymem_allocators { + PyMutex mutex; + struct { + PyMemAllocatorEx raw; + PyMemAllocatorEx mem; + PyMemAllocatorEx obj; + } standard; + struct { + debug_alloc_api_t raw; + debug_alloc_api_t mem; + debug_alloc_api_t obj; + } debug; + int is_debug_enabled; + PyObjectArenaAllocator obj_arena; +}; + +struct _Py_mem_interp_free_queue { + int has_work; // true if the queue is not empty + PyMutex mutex; // protects the queue + struct llist_node head; // queue of _mem_work_chunk items +}; + +/* 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. */ +extern 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 as 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 +} + +extern 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. */ +extern int _PyMem_SetupAllocators(PyMemAllocatorName allocator); + +/* Is the debug allocator enabled? */ +extern int _PyMem_DebugEnabled(void); + +// Enqueue a pointer to be freed possibly after some delay. +extern void _PyMem_FreeDelayed(void *ptr); + +// Enqueue an object to be freed possibly after some delay +extern void _PyObject_FreeDelayed(void *ptr); + +// Periodically process delayed free requests. +extern void _PyMem_ProcessDelayed(PyThreadState *tstate); + +// Abandon all thread-local delayed free requests and push them to the +// interpreter's queue. +extern void _PyMem_AbandonDelayed(PyThreadState *tstate); + +// On interpreter shutdown, frees all delayed free requests. +extern void _PyMem_FiniDelayed(PyInterpreterState *interp); + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_PYMEM_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pymem_init.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pymem_init.h new file mode 100644 index 000000000..c593edc86 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pymem_init.h @@ -0,0 +1,103 @@ +#ifndef Py_INTERNAL_PYMEM_INIT_H +#define Py_INTERNAL_PYMEM_INIT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +/********************************/ +/* the allocators' initializers */ + +extern void * _PyMem_RawMalloc(void *, size_t); +extern void * _PyMem_RawCalloc(void *, size_t, size_t); +extern void * _PyMem_RawRealloc(void *, void *, size_t); +extern void _PyMem_RawFree(void *, void *); +#define PYRAW_ALLOC {NULL, _PyMem_RawMalloc, _PyMem_RawCalloc, _PyMem_RawRealloc, _PyMem_RawFree} + +#ifdef Py_GIL_DISABLED +// Py_GIL_DISABLED requires mimalloc +extern void* _PyObject_MiMalloc(void *, size_t); +extern void* _PyObject_MiCalloc(void *, size_t, size_t); +extern void _PyObject_MiFree(void *, void *); +extern void* _PyObject_MiRealloc(void *, void *, size_t); +# define PYOBJ_ALLOC {NULL, _PyObject_MiMalloc, _PyObject_MiCalloc, _PyObject_MiRealloc, _PyObject_MiFree} +extern void* _PyMem_MiMalloc(void *, size_t); +extern void* _PyMem_MiCalloc(void *, size_t, size_t); +extern void _PyMem_MiFree(void *, void *); +extern void* _PyMem_MiRealloc(void *, void *, size_t); +# define PYMEM_ALLOC {NULL, _PyMem_MiMalloc, _PyMem_MiCalloc, _PyMem_MiRealloc, _PyMem_MiFree} +#elif defined(WITH_PYMALLOC) +extern void* _PyObject_Malloc(void *, size_t); +extern void* _PyObject_Calloc(void *, size_t, size_t); +extern void _PyObject_Free(void *, void *); +extern void* _PyObject_Realloc(void *, void *, size_t); +# define PYOBJ_ALLOC {NULL, _PyObject_Malloc, _PyObject_Calloc, _PyObject_Realloc, _PyObject_Free} +# define PYMEM_ALLOC PYOBJ_ALLOC +#else +# define PYOBJ_ALLOC PYRAW_ALLOC +# define PYMEM_ALLOC PYOBJ_ALLOC +#endif // WITH_PYMALLOC + + +extern void* _PyMem_DebugRawMalloc(void *, size_t); +extern void* _PyMem_DebugRawCalloc(void *, size_t, size_t); +extern void* _PyMem_DebugRawRealloc(void *, void *, size_t); +extern void _PyMem_DebugRawFree(void *, void *); + +extern void* _PyMem_DebugMalloc(void *, size_t); +extern void* _PyMem_DebugCalloc(void *, size_t, size_t); +extern void* _PyMem_DebugRealloc(void *, void *, size_t); +extern void _PyMem_DebugFree(void *, void *); + +#define PYDBGRAW_ALLOC(runtime) \ + {&(runtime).allocators.debug.raw, _PyMem_DebugRawMalloc, _PyMem_DebugRawCalloc, _PyMem_DebugRawRealloc, _PyMem_DebugRawFree} +#define PYDBGMEM_ALLOC(runtime) \ + {&(runtime).allocators.debug.mem, _PyMem_DebugMalloc, _PyMem_DebugCalloc, _PyMem_DebugRealloc, _PyMem_DebugFree} +#define PYDBGOBJ_ALLOC(runtime) \ + {&(runtime).allocators.debug.obj, _PyMem_DebugMalloc, _PyMem_DebugCalloc, _PyMem_DebugRealloc, _PyMem_DebugFree} + +extern void * _PyMem_ArenaAlloc(void *, size_t); +extern void _PyMem_ArenaFree(void *, void *, size_t); + +#ifdef Py_DEBUG +# define _pymem_allocators_standard_INIT(runtime) \ + { \ + PYDBGRAW_ALLOC(runtime), \ + PYDBGMEM_ALLOC(runtime), \ + PYDBGOBJ_ALLOC(runtime), \ + } +# define _pymem_is_debug_enabled_INIT 1 +#else +# define _pymem_allocators_standard_INIT(runtime) \ + { \ + PYRAW_ALLOC, \ + PYMEM_ALLOC, \ + PYOBJ_ALLOC, \ + } +# define _pymem_is_debug_enabled_INIT 0 +#endif + +#define _pymem_allocators_debug_INIT \ + { \ + {'r', PYRAW_ALLOC}, \ + {'m', PYMEM_ALLOC}, \ + {'o', PYOBJ_ALLOC}, \ + } + +# define _pymem_allocators_obj_arena_INIT \ + { NULL, _PyMem_ArenaAlloc, _PyMem_ArenaFree } + + +#define _Py_mem_free_queue_INIT(queue) \ + { \ + .head = LLIST_INIT(queue.head), \ + } + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_PYMEM_INIT_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pystate.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pystate.h new file mode 100644 index 000000000..b0e72523f --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pystate.h @@ -0,0 +1,299 @@ +#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_freelist.h" // _PyFreeListState +#include "pycore_runtime.h" // _PyRuntime +#include "pycore_tstate.h" // _PyThreadStateImpl + + +// Values for PyThreadState.state. A thread must be in the "attached" state +// before calling most Python APIs. If the GIL is enabled, then "attached" +// implies that the thread holds the GIL and "detached" implies that the +// thread does not hold the GIL (or is in the process of releasing it). In +// `--disable-gil` builds, multiple threads may be "attached" to the same +// interpreter at the same time. Only the "bound" thread may perform the +// transitions between "attached" and "detached" on its own PyThreadState. +// +// The "suspended" state is used to implement stop-the-world pauses, such as +// for cyclic garbage collection. It is only used in `--disable-gil` builds. +// The "suspended" state is similar to the "detached" state in that in both +// states the thread is not allowed to call most Python APIs. However, unlike +// the "detached" state, a thread may not transition itself out from the +// "suspended" state. Only the thread performing a stop-the-world pause may +// transition a thread from the "suspended" state back to the "detached" state. +// +// State transition diagram: +// +// (bound thread) (stop-the-world thread) +// [attached] <-> [detached] <-> [suspended] +// | ^ +// +---------------------------->---------------------------+ +// (bound thread) +// +// The (bound thread) and (stop-the-world thread) labels indicate which thread +// is allowed to perform the transition. +#define _Py_THREAD_DETACHED 0 +#define _Py_THREAD_ATTACHED 1 +#define _Py_THREAD_SUSPENDED 2 + + +/* 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 PyInterpreterState * +_PyInterpreterState_Main(void) +{ + return _PyRuntime.interpreters.main; +} + +static inline int +_Py_IsMainInterpreter(PyInterpreterState *interp) +{ + return (interp == _PyInterpreterState_Main()); +} + +static inline int +_Py_IsMainInterpreterFinalizing(PyInterpreterState *interp) +{ + /* 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. */ + return (_PyRuntimeState_GetFinalizing(&_PyRuntime) != NULL && + interp == &_PyRuntime._main_interpreter); +} + +// Export for _interpreters module. +PyAPI_FUNC(PyObject *) _PyInterpreterState_GetIDObject(PyInterpreterState *); + +// Export for _interpreters module. +PyAPI_FUNC(int) _PyInterpreterState_SetRunningMain(PyInterpreterState *); +PyAPI_FUNC(void) _PyInterpreterState_SetNotRunningMain(PyInterpreterState *); +PyAPI_FUNC(int) _PyInterpreterState_IsRunningMain(PyInterpreterState *); +PyAPI_FUNC(int) _PyInterpreterState_FailIfRunningMain(PyInterpreterState *); + +extern int _PyThreadState_IsRunningMain(PyThreadState *); +extern void _PyInterpreterState_ReinitRunningMain(PyThreadState *); + + +static inline const PyConfig * +_Py_GetMainConfig(void) +{ + PyInterpreterState *interp = _PyInterpreterState_Main(); + if (interp == NULL) { + return NULL; + } + return _PyInterpreterState_GetConfig(interp); +} + + +/* Only handle signals on the main thread of the main interpreter. */ +static inline int +_Py_ThreadCanHandleSignals(PyInterpreterState *interp) +{ + return (_Py_IsMainThread() && _Py_IsMainInterpreter(interp)); +} + + +/* Variable and static inline functions for in-line access to current thread + and interpreter state */ + +#if defined(HAVE_THREAD_LOCAL) && !defined(Py_BUILD_CORE_MODULE) +extern _Py_thread_local PyThreadState *_Py_tss_tstate; +#endif + +#ifndef NDEBUG +extern int _PyThreadState_CheckConsistency(PyThreadState *tstate); +#endif + +int _PyThreadState_MustExit(PyThreadState *tstate); + +// Export for most shared extensions, used via _PyThreadState_GET() static +// inline function. +PyAPI_FUNC(PyThreadState *) _PyThreadState_GetCurrent(void); + +/* Get the current Python thread state. + + This function 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_GetUnchecked(). */ +static inline PyThreadState* +_PyThreadState_GET(void) +{ +#if defined(HAVE_THREAD_LOCAL) && !defined(Py_BUILD_CORE_MODULE) + return _Py_tss_tstate; +#else + return _PyThreadState_GetCurrent(); +#endif +} + +// Attaches the current thread to the interpreter. +// +// This may block while acquiring the GIL (if the GIL is enabled) or while +// waiting for a stop-the-world pause (if the GIL is disabled). +// +// High-level code should generally call PyEval_RestoreThread() instead, which +// calls this function. +extern void _PyThreadState_Attach(PyThreadState *tstate); + +// Detaches the current thread from the interpreter. +// +// High-level code should generally call PyEval_SaveThread() instead, which +// calls this function. +extern void _PyThreadState_Detach(PyThreadState *tstate); + +// Detaches the current thread to the "suspended" state if a stop-the-world +// pause is in progress. +// +// If there is no stop-the-world pause in progress, then the thread switches +// to the "detached" state. +extern void _PyThreadState_Suspend(PyThreadState *tstate); + +// Perform a stop-the-world pause for all threads in the all interpreters. +// +// Threads in the "attached" state are paused and transitioned to the "GC" +// state. Threads in the "detached" state switch to the "GC" state, preventing +// them from reattaching until the stop-the-world pause is complete. +// +// NOTE: This is a no-op outside of Py_GIL_DISABLED builds. +extern void _PyEval_StopTheWorldAll(_PyRuntimeState *runtime); +extern void _PyEval_StartTheWorldAll(_PyRuntimeState *runtime); + +// Perform a stop-the-world pause for threads in the specified interpreter. +// +// NOTE: This is a no-op outside of Py_GIL_DISABLED builds. +extern void _PyEval_StopTheWorld(PyInterpreterState *interp); +extern void _PyEval_StartTheWorld(PyInterpreterState *interp); + + +static inline void +_Py_EnsureFuncTstateNotNULL(const char *func, PyThreadState *tstate) +{ + if (tstate == NULL) { + _Py_FatalErrorFunc(func, + "the function must be called with the GIL held, " + "after Python initialization and before Python finalization, " + "but the GIL is released (the current Python thread state is NULL)"); + } +} + +// Call Py_FatalError() if tstate is NULL +#define _Py_EnsureTstateNotNULL(tstate) \ + _Py_EnsureFuncTstateNotNULL(__func__, (tstate)) + + +/* Get the current interpreter state. + + The function 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; +} + + +// PyThreadState functions + +// Export for _testinternalcapi +PyAPI_FUNC(PyThreadState *) _PyThreadState_New( + PyInterpreterState *interp, + int whence); +extern void _PyThreadState_Bind(PyThreadState *tstate); +PyAPI_FUNC(PyThreadState *) _PyThreadState_NewBound( + PyInterpreterState *interp, + int whence); +extern PyThreadState * _PyThreadState_RemoveExcept(PyThreadState *tstate); +extern void _PyThreadState_DeleteList(PyThreadState *list); +extern void _PyThreadState_ClearMimallocHeaps(PyThreadState *tstate); + +// Export for '_testinternalcapi' shared extension +PyAPI_FUNC(PyObject*) _PyThreadState_GetDict(PyThreadState *tstate); + +/* The implementation of sys._current_exceptions() Returns a dict mapping + thread id to that thread's current exception. +*/ +extern PyObject* _PyThread_CurrentExceptions(void); + + +/* Other */ + +extern PyThreadState * _PyThreadState_Swap( + _PyRuntimeState *runtime, + PyThreadState *newts); + +extern PyStatus _PyInterpreterState_Enable(_PyRuntimeState *runtime); + +#ifdef HAVE_FORK +extern PyStatus _PyInterpreterState_DeleteExceptMain(_PyRuntimeState *runtime); +extern void _PySignal_AfterFork(void); +#endif + +// Export for the stable ABI +PyAPI_FUNC(int) _PyState_AddModule( + PyThreadState *tstate, + PyObject* module, + PyModuleDef* def); + + +extern int _PyOS_InterruptOccurred(PyThreadState *tstate); + +#define HEAD_LOCK(runtime) \ + PyMutex_LockFlags(&(runtime)->interpreters.mutex, _Py_LOCK_DONT_DETACH) +#define HEAD_UNLOCK(runtime) \ + PyMutex_Unlock(&(runtime)->interpreters.mutex) + +// Get the configuration of the current interpreter. +// The caller must hold the GIL. +// Export for test_peg_generator. +PyAPI_FUNC(const PyConfig*) _Py_GetConfig(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(). +extern PyInterpreterState* _PyGILState_GetInterpreterStateUnsafe(void); + +static inline struct _Py_object_freelists* _Py_object_freelists_GET(void) +{ + PyThreadState *tstate = _PyThreadState_GET(); +#ifdef Py_DEBUG + _Py_EnsureTstateNotNULL(tstate); +#endif + +#ifdef Py_GIL_DISABLED + return &((_PyThreadStateImpl*)tstate)->freelists; +#else + return &tstate->interp->object_state.freelists; +#endif +} + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_PYSTATE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pystats.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pystats.h new file mode 100644 index 000000000..f8af398a5 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pystats.h @@ -0,0 +1,21 @@ +#ifndef Py_INTERNAL_PYSTATS_H +#define Py_INTERNAL_PYSTATS_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#ifdef Py_STATS +extern void _Py_StatsOn(void); +extern void _Py_StatsOff(void); +extern void _Py_StatsClear(void); +extern int _Py_PrintSpecializationStats(int to_file); +#endif + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_PYSTATS_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pythonrun.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pythonrun.h new file mode 100644 index 000000000..0bfc5704d --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pythonrun.h @@ -0,0 +1,39 @@ +#ifndef Py_INTERNAL_PYTHONRUN_H +#define Py_INTERNAL_PYTHONRUN_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +extern int _PyRun_SimpleFileObject( + FILE *fp, + PyObject *filename, + int closeit, + PyCompilerFlags *flags); + +extern int _PyRun_AnyFileObject( + FILE *fp, + PyObject *filename, + int closeit, + PyCompilerFlags *flags); + +extern int _PyRun_InteractiveLoopObject( + FILE *fp, + PyObject *filename, + PyCompilerFlags *flags); + +extern const char* _Py_SourceAsString( + PyObject *cmd, + const char *funcname, + const char *what, + PyCompilerFlags *cf, + PyObject **cmd_copy); + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_PYTHONRUN_H + diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pythread.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pythread.h new file mode 100644 index 000000000..3610c6254 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_pythread.h @@ -0,0 +1,159 @@ +#ifndef Py_INTERNAL_PYTHREAD_H +#define Py_INTERNAL_PYTHREAD_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_PURE_HAPPENS_BEFORE_MUTEX +#include "pycore_llist.h" // struct llist_node + +// Get _POSIX_THREADS and _POSIX_SEMAPHORES macros if available +#if (defined(HAVE_UNISTD_H) && !defined(_POSIX_THREADS) \ + && !defined(_POSIX_SEMAPHORES)) +# include // _POSIX_THREADS, _POSIX_SEMAPHORES +#endif +#if (defined(HAVE_PTHREAD_H) && !defined(_POSIX_THREADS) \ + && !defined(_POSIX_SEMAPHORES)) + // This means pthreads are not implemented in libc headers, hence the macro + // not present in . But they still can be implemented as an + // external library (e.g. gnu pth in pthread emulation) +# include // _POSIX_THREADS, _POSIX_SEMAPHORES +#endif +#if !defined(_POSIX_THREADS) && defined(__hpux) && defined(_SC_THREADS) + // Check if we're running on HP-UX and _SC_THREADS is defined. If so, then + // enough of the POSIX threads package is implemented to support Python + // threads. + // + // This is valid for HP-UX 11.23 running on an ia64 system. If needed, add + // a check of __ia64 to verify that we're running on an ia64 system instead + // of a pa-risc system. +# define _POSIX_THREADS +#endif + + +#if defined(_POSIX_THREADS) || defined(HAVE_PTHREAD_STUBS) +# define _USE_PTHREADS +#endif + +#if defined(_USE_PTHREADS) && 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_STUBS) +#include "cpython/pthread_stubs.h" // PTHREAD_KEYS_MAX +#include // bool + +// pthread_key +struct py_stub_tls_entry { + bool in_use; + void *value; +}; +#endif + +struct _pythread_runtime_state { + int initialized; + +#ifdef _USE_PTHREADS + // This matches when thread_pthread.h is used. + struct { + /* NULL when pthread_condattr_setclock(CLOCK_MONOTONIC) is not supported. */ + pthread_condattr_t *ptr; +# ifdef CONDATTR_MONOTONIC + /* The value to which condattr_monotonic is set. */ + pthread_condattr_t val; +# endif + } _condattr_monotonic; + +#endif // USE_PTHREADS + +#if defined(HAVE_PTHREAD_STUBS) + struct { + struct py_stub_tls_entry tls_entries[PTHREAD_KEYS_MAX]; + } stubs; +#endif + + // Linked list of ThreadHandles + struct llist_node handles; +}; + +#define _pythread_RUNTIME_INIT(pythread) \ + { \ + .handles = LLIST_INIT(pythread.handles), \ + } + +#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. */ +extern int _PyThread_at_fork_reinit(PyThread_type_lock *lock); +extern void _PyThread_AfterFork(struct _pythread_runtime_state *state); +#endif /* HAVE_FORK */ + + +// unset: -1 seconds, in nanoseconds +#define PyThread_UNSET_TIMEOUT ((PyTime_t)(-1 * 1000 * 1000 * 1000)) + +// Exported for the _interpchannels module. +PyAPI_FUNC(int) PyThread_ParseTimeoutArg( + PyObject *arg, + int blocking, + PY_TIMEOUT_T *timeout); + +/* Helper to acquire an interruptible lock with a timeout. If the lock acquire + * is interrupted, signal handlers are run, and if they raise an exception, + * PY_LOCK_INTR is returned. Otherwise, PY_LOCK_ACQUIRED or PY_LOCK_FAILURE + * are returned, depending on whether the lock can be acquired within the + * timeout. + */ +// Exported for the _interpchannels module. +PyAPI_FUNC(PyLockStatus) PyThread_acquire_lock_timed_with_retries( + PyThread_type_lock, + PY_TIMEOUT_T microseconds); + +typedef unsigned long long PyThread_ident_t; +typedef Py_uintptr_t PyThread_handle_t; + +#define PY_FORMAT_THREAD_IDENT_T "llu" +#define Py_PARSE_THREAD_IDENT_T "K" + +PyAPI_FUNC(PyThread_ident_t) PyThread_get_thread_ident_ex(void); + +/* Thread joining APIs. + * + * These APIs have a strict contract: + * - Either PyThread_join_thread or PyThread_detach_thread must be called + * exactly once with the given handle. + * - Calling neither PyThread_join_thread nor PyThread_detach_thread results + * in a resource leak until the end of the process. + * - Any other usage, such as calling both PyThread_join_thread and + * PyThread_detach_thread, or calling them more than once (including + * simultaneously), results in undefined behavior. + */ +PyAPI_FUNC(int) PyThread_start_joinable_thread(void (*func)(void *), + void *arg, + PyThread_ident_t* ident, + PyThread_handle_t* handle); +/* + * Join a thread started with `PyThread_start_joinable_thread`. + * This function cannot be interrupted. It returns 0 on success, + * a non-zero value on failure. + */ +PyAPI_FUNC(int) PyThread_join_thread(PyThread_handle_t); +/* + * Detach a thread started with `PyThread_start_joinable_thread`, such + * that its resources are relased as soon as it exits. + * This function cannot be interrupted. It returns 0 on success, + * a non-zero value on failure. + */ +PyAPI_FUNC(int) PyThread_detach_thread(PyThread_handle_t); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_PYTHREAD_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_qsbr.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_qsbr.h new file mode 100644 index 000000000..20e643e17 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_qsbr.h @@ -0,0 +1,154 @@ +// The QSBR APIs (quiescent state-based reclamation) provide a mechanism for +// the free-threaded build to safely reclaim memory when there may be +// concurrent accesses. +// +// Many operations in the free-threaded build are protected by locks. However, +// in some cases, we want to allow reads to happen concurrently with updates. +// In this case, we need to delay freeing ("reclaiming") any memory that may be +// concurrently accessed by a reader. The QSBR APIs provide a way to do this. +#ifndef Py_INTERNAL_QSBR_H +#define Py_INTERNAL_QSBR_H + +#include +#include +#include "pycore_lock.h" // PyMutex + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +// The shared write sequence is always odd and incremented by two. Detached +// threads are indicated by a read sequence of zero. This avoids collisions +// between the offline state and any valid sequence number even if the +// sequences numbers wrap around. +#define QSBR_OFFLINE 0 +#define QSBR_INITIAL 1 +#define QSBR_INCR 2 + +// Wrap-around safe comparison. This is a holdover from the FreeBSD +// implementation, which uses 32-bit sequence numbers. We currently use 64-bit +// sequence numbers, so wrap-around is unlikely. +#define QSBR_LT(a, b) ((int64_t)((a)-(b)) < 0) +#define QSBR_LEQ(a, b) ((int64_t)((a)-(b)) <= 0) + +struct _qsbr_shared; +struct _PyThreadStateImpl; // forward declare to avoid circular dependency + +// Per-thread state +struct _qsbr_thread_state { + // Last observed write sequence (or 0 if detached) + uint64_t seq; + + // Shared (per-interpreter) QSBR state + struct _qsbr_shared *shared; + + // Thread state (or NULL) + PyThreadState *tstate; + + // Used to defer advancing write sequence a fixed number of times + int deferrals; + + // Is this thread state allocated? + bool allocated; + struct _qsbr_thread_state *freelist_next; +}; + +// Padding to avoid false sharing +struct _qsbr_pad { + struct _qsbr_thread_state qsbr; + char __padding[64 - sizeof(struct _qsbr_thread_state)]; +}; + +// Per-interpreter state +struct _qsbr_shared { + // Write sequence: always odd, incremented by two + uint64_t wr_seq; + + // Minimum observed read sequence of all QSBR thread states + uint64_t rd_seq; + + // Array of QSBR thread states. + struct _qsbr_pad *array; + Py_ssize_t size; + + // Freelist of unused _qsbr_thread_states (protected by mutex) + PyMutex mutex; + struct _qsbr_thread_state *freelist; +}; + +static inline uint64_t +_Py_qsbr_shared_current(struct _qsbr_shared *shared) +{ + return _Py_atomic_load_uint64_acquire(&shared->wr_seq); +} + +// Reports a quiescent state: the caller no longer holds any pointer to shared +// data not protected by locks or reference counts. +static inline void +_Py_qsbr_quiescent_state(struct _qsbr_thread_state *qsbr) +{ + uint64_t seq = _Py_qsbr_shared_current(qsbr->shared); + _Py_atomic_store_uint64_release(&qsbr->seq, seq); +} + +// Have the read sequences advanced to the given goal? Like `_Py_qsbr_poll()`, +// but does not perform a scan of threads. +static inline bool +_Py_qbsr_goal_reached(struct _qsbr_thread_state *qsbr, uint64_t goal) +{ + uint64_t rd_seq = _Py_atomic_load_uint64(&qsbr->shared->rd_seq); + return QSBR_LEQ(goal, rd_seq); +} + +// Advance the write sequence and return the new goal. This should be called +// after data is removed. The returned goal is used with `_Py_qsbr_poll()` to +// determine when it is safe to reclaim (free) the memory. +extern uint64_t +_Py_qsbr_advance(struct _qsbr_shared *shared); + +// Batches requests to advance the write sequence. This advances the write +// sequence every N calls, which reduces overhead but increases time to +// reclamation. Returns the new goal. +extern uint64_t +_Py_qsbr_deferred_advance(struct _qsbr_thread_state *qsbr); + +// Have the read sequences advanced to the given goal? If this returns true, +// it safe to reclaim any memory tagged with the goal (or earlier goal). +extern bool +_Py_qsbr_poll(struct _qsbr_thread_state *qsbr, uint64_t goal); + +// Called when thread attaches to interpreter +extern void +_Py_qsbr_attach(struct _qsbr_thread_state *qsbr); + +// Called when thread detaches from interpreter +extern void +_Py_qsbr_detach(struct _qsbr_thread_state *qsbr); + +// Reserves (allocates) a QSBR state and returns its index. +extern Py_ssize_t +_Py_qsbr_reserve(PyInterpreterState *interp); + +// Associates a PyThreadState with the QSBR state at the given index +extern void +_Py_qsbr_register(struct _PyThreadStateImpl *tstate, + PyInterpreterState *interp, Py_ssize_t index); + +// Disassociates a PyThreadState from the QSBR state and frees the QSBR state. +extern void +_Py_qsbr_unregister(PyThreadState *tstate); + +extern void +_Py_qsbr_fini(PyInterpreterState *interp); + +extern void +_Py_qsbr_after_fork(struct _PyThreadStateImpl *tstate); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_QSBR_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_range.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_range.h new file mode 100644 index 000000000..bf045ec4f --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_range.h @@ -0,0 +1,21 @@ +#ifndef Py_INTERNAL_RANGE_H +#define Py_INTERNAL_RANGE_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +typedef struct { + PyObject_HEAD + long start; + long step; + long len; +} _PyRangeIterObject; + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_RANGE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_runtime.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_runtime.h new file mode 100644 index 000000000..d4291b872 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_runtime.h @@ -0,0 +1,410 @@ +#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_atexit.h" // struct _atexit_runtime_state +#include "pycore_ceval_state.h" // struct _ceval_runtime_state +#include "pycore_crossinterp.h" // struct _xidregistry +#include "pycore_faulthandler.h" // struct _faulthandler_runtime_state +#include "pycore_floatobject.h" // struct _Py_float_runtime_state +#include "pycore_import.h" // struct _import_runtime_state +#include "pycore_interp.h" // PyInterpreterState +#include "pycore_object_state.h" // struct _py_object_runtime_state +#include "pycore_parser.h" // struct _parser_runtime_state +#include "pycore_pyhash.h" // struct pyhash_runtime_state +#include "pycore_pymem.h" // struct _pymem_allocators +#include "pycore_pythread.h" // struct _pythread_runtime_state +#include "pycore_signal.h" // struct _signals_runtime_state +#include "pycore_tracemalloc.h" // struct _tracemalloc_runtime_state +#include "pycore_typeobject.h" // struct _types_runtime_state +#include "pycore_unicodeobject.h" // struct _Py_unicode_runtime_state + +struct _getargs_runtime_state { + struct _PyArg_Parser *static_parsers; +}; + +/* 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; + /* The single PyInterpreterState used by this process' + GILState implementation + */ + /* TODO: Given interp_main, it may be possible to kill this ref */ + PyInterpreterState *autoInterpreterState; +}; + +/* Runtime audit hook state */ + +#define _Py_Debug_Cookie "xdebugpy" + +#ifdef Py_GIL_DISABLED +# define _Py_Debug_gilruntimestate_enabled offsetof(struct _gil_runtime_state, enabled) +# define _Py_Debug_Free_Threaded 1 +#else +# define _Py_Debug_gilruntimestate_enabled 0 +# define _Py_Debug_Free_Threaded 0 +#endif +typedef struct _Py_AuditHookEntry { + struct _Py_AuditHookEntry *next; + Py_AuditHookFunction hookCFunction; + void *userData; +} _Py_AuditHookEntry; + +typedef struct _Py_DebugOffsets { + char cookie[8]; + uint64_t version; + uint64_t free_threaded; + // Runtime state offset; + struct _runtime_state { + uint64_t size; + uint64_t finalizing; + uint64_t interpreters_head; + } runtime_state; + + // Interpreter state offset; + struct _interpreter_state { + uint64_t size; + uint64_t id; + uint64_t next; + uint64_t threads_head; + uint64_t gc; + uint64_t imports_modules; + uint64_t sysdict; + uint64_t builtins; + uint64_t ceval_gil; + uint64_t gil_runtime_state; + uint64_t gil_runtime_state_enabled; + uint64_t gil_runtime_state_locked; + uint64_t gil_runtime_state_holder; + } interpreter_state; + + // Thread state offset; + struct _thread_state{ + uint64_t size; + uint64_t prev; + uint64_t next; + uint64_t interp; + uint64_t current_frame; + uint64_t thread_id; + uint64_t native_thread_id; + uint64_t datastack_chunk; + uint64_t status; + } thread_state; + + // InterpreterFrame offset; + struct _interpreter_frame { + uint64_t size; + uint64_t previous; + uint64_t executable; + uint64_t instr_ptr; + uint64_t localsplus; + uint64_t owner; + } interpreter_frame; + + // Code object offset; + struct _code_object { + uint64_t size; + uint64_t filename; + uint64_t name; + uint64_t qualname; + uint64_t linetable; + uint64_t firstlineno; + uint64_t argcount; + uint64_t localsplusnames; + uint64_t localspluskinds; + uint64_t co_code_adaptive; + } code_object; + + // PyObject offset; + struct _pyobject { + uint64_t size; + uint64_t ob_type; + } pyobject; + + // PyTypeObject object offset; + struct _type_object { + uint64_t size; + uint64_t tp_name; + uint64_t tp_repr; + uint64_t tp_flags; + } type_object; + + // PyTuple object offset; + struct _tuple_object { + uint64_t size; + uint64_t ob_item; + uint64_t ob_size; + } tuple_object; + + // PyList object offset; + struct _list_object { + uint64_t size; + uint64_t ob_item; + uint64_t ob_size; + } list_object; + + // PyDict object offset; + struct _dict_object { + uint64_t size; + uint64_t ma_keys; + uint64_t ma_values; + } dict_object; + + // PyFloat object offset; + struct _float_object { + uint64_t size; + uint64_t ob_fval; + } float_object; + + // PyLong object offset; + struct _long_object { + uint64_t size; + uint64_t lv_tag; + uint64_t ob_digit; + } long_object; + + // PyBytes object offset; + struct _bytes_object { + uint64_t size; + uint64_t ob_size; + uint64_t ob_sval; + } bytes_object; + + // Unicode object offset; + struct _unicode_object { + uint64_t size; + uint64_t state; + uint64_t length; + uint64_t asciiobject_size; + } unicode_object; + + // GC runtime state offset; + struct _gc { + uint64_t size; + uint64_t collecting; + } gc; +} _Py_DebugOffsets; + +/* Reference tracer state */ +struct _reftracer_runtime_state { + PyRefTracer tracer_func; + void* tracer_data; +}; + +/* Full Python runtime state */ + +/* _PyRuntimeState holds the global state for the CPython runtime. + That data is exposed in the internal API as a static variable (_PyRuntime). + */ +typedef struct pyruntimestate { + /* This field must be first to facilitate locating it by out of process + * debuggers. Out of process debuggers will use the offsets contained in this + * field to be able to locate other fields in several interpreter structures + * in a way that doesn't require them to know the exact layout of those + * structures. + * + * IMPORTANT: + * This struct is **NOT** backwards compatible between minor version of the + * interpreter and the members, order of members and size can change between + * minor versions. This struct is only guaranteed to be stable between patch + * versions for a given minor version of the interpreter. + */ + _Py_DebugOffsets debug_offsets; + + /* Has been initialized to a safe state. + + In order to be effective, this must be set to 0 during or right + after allocation. */ + int _initialized; + + /* 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. */ + PyThreadState *_finalizing; + /* The ID of the OS thread in which we are finalizing. */ + unsigned long _finalizing_id; + + struct pyinterpreters { + PyMutex mutex; + /* The linked list of interpreters, newest first. */ + PyInterpreterState *head; + /* The runtime's initial interpreter, which has a special role + in the operation of the runtime. It is also often the only + interpreter. */ + PyInterpreterState *main; + /* next_id is an auto-numbered sequence of small + integers. It gets initialized in _PyInterpreterState_Enable(), + 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; + + /* Platform-specific identifier and PyThreadState, respectively, for the + main thread in the main interpreter. */ + unsigned long main_thread; + PyThreadState *main_tstate; + + /* ---------- IMPORTANT --------------------------- + The fields above this line are declared as early as + possible to facilitate out-of-process observability + tools. */ + + /* cross-interpreter data and utils */ + struct _xi_runtime_state xi; + + struct _pymem_allocators allocators; + struct _obmalloc_global_state obmalloc; + struct pyhash_runtime_state pyhash_state; + struct _pythread_runtime_state threads; + struct _signals_runtime_state signals; + + /* Used for the thread state bound to the current thread. */ + Py_tss_t autoTSSkey; + + /* Used instead of PyThreadState.trash when there is not current tstate. */ + Py_tss_t trashTSSkey; + + PyWideStringList orig_argv; + + struct _parser_runtime_state parser; + + struct _atexit_runtime_state atexit; + + struct _import_runtime_state imports; + struct _ceval_runtime_state ceval; + struct _gilstate_runtime_state gilstate; + struct _getargs_runtime_state getargs; + struct _fileutils_state fileutils; + struct _faulthandler_runtime_state faulthandler; + struct _tracemalloc_runtime_state tracemalloc; + struct _reftracer_runtime_state ref_tracer; + + // The rwmutex is used to prevent overlapping global and per-interpreter + // stop-the-world events. Global stop-the-world events lock the mutex + // exclusively (as a "writer"), while per-interpreter stop-the-world events + // lock it non-exclusively (as "readers"). + _PyRWMutex stoptheworld_mutex; + struct _stoptheworld_state stoptheworld; + + PyPreConfig preconfig; + + // Audit values must be preserved when Py_Initialize()/Py_Finalize() + // is called multiple times. + Py_OpenCodeHookFunction open_code_hook; + void *open_code_userdata; + struct { + PyMutex mutex; + _Py_AuditHookEntry *head; + } audit_hooks; + + struct _py_object_runtime_state object_state; + struct _Py_float_runtime_state float_state; + struct _Py_unicode_runtime_state unicode_state; + struct _types_runtime_state types; + + /* All the objects that are shared by the runtime's interpreters. */ + struct _Py_cached_objects cached_objects; + struct _Py_static_objects static_objects; + + /* The following fields are here to avoid allocation during init. + The data is exposed through _PyRuntimeState pointer fields. + These fields should not be accessed directly outside of init. + + All other _PyRuntimeState pointer fields are populated when + needed and default to NULL. + + For now there are some exceptions to that rule, which require + allocation during init. These will be addressed on a case-by-case + basis. Most notably, we don't pre-allocated the several mutex + (PyThread_type_lock) fields, because on Windows we only ever get + a pointer type. + */ + + /* _PyRuntimeState.interpreters.main */ + PyInterpreterState _main_interpreter; + +#if defined(__EMSCRIPTEN__) && defined(PY_CALL_TRAMPOLINE) + // Used in "Python/emscripten_trampoline.c" to choose between type + // reflection trampoline and EM_JS trampoline. + bool wasm_type_reflection_available; +#endif + +} _PyRuntimeState; + + +/* other API */ + +// Export _PyRuntime for shared extensions which use it in static inline +// functions for best performance, like _Py_IsMainThread() or _Py_ID(). +// It's also made accessible for debuggers and profilers. +PyAPI_DATA(_PyRuntimeState) _PyRuntime; + +extern PyStatus _PyRuntimeState_Init(_PyRuntimeState *runtime); +extern void _PyRuntimeState_Fini(_PyRuntimeState *runtime); + +#ifdef HAVE_FORK +extern PyStatus _PyRuntimeState_ReInitThreads(_PyRuntimeState *runtime); +#endif + +/* Initialize _PyRuntimeState. + Return NULL on success, or return an error message on failure. */ +extern PyStatus _PyRuntime_Initialize(void); + +extern void _PyRuntime_Finalize(void); + + +static inline PyThreadState* +_PyRuntimeState_GetFinalizing(_PyRuntimeState *runtime) { + return (PyThreadState*)_Py_atomic_load_ptr_relaxed(&runtime->_finalizing); +} + +static inline unsigned long +_PyRuntimeState_GetFinalizingID(_PyRuntimeState *runtime) { + return _Py_atomic_load_ulong_relaxed(&runtime->_finalizing_id); +} + +static inline void +_PyRuntimeState_SetFinalizing(_PyRuntimeState *runtime, PyThreadState *tstate) { + _Py_atomic_store_ptr_relaxed(&runtime->_finalizing, tstate); + if (tstate == NULL) { + _Py_atomic_store_ulong_relaxed(&runtime->_finalizing_id, 0); + } + else { + // XXX Re-enable this assert once gh-109860 is fixed. + //assert(tstate->thread_id == PyThread_get_thread_ident()); + _Py_atomic_store_ulong_relaxed(&runtime->_finalizing_id, + tstate->thread_id); + } +} + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_RUNTIME_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_runtime_init.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_runtime_init.h new file mode 100644 index 000000000..7eef9edc0 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_runtime_init.h @@ -0,0 +1,329 @@ +#ifndef Py_INTERNAL_RUNTIME_INIT_H +#define Py_INTERNAL_RUNTIME_INIT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_ceval_state.h" // _PyEval_RUNTIME_PERF_INIT +#include "pycore_faulthandler.h" // _faulthandler_runtime_state_INIT +#include "pycore_floatobject.h" // _py_float_format_unknown +#include "pycore_object.h" // _PyObject_HEAD_INIT +#include "pycore_obmalloc_init.h" // _obmalloc_global_state_INIT +#include "pycore_parser.h" // _parser_runtime_state_INIT +#include "pycore_pyhash.h" // pyhash_state_INIT +#include "pycore_pymem_init.h" // _pymem_allocators_standard_INIT +#include "pycore_pythread.h" // _pythread_RUNTIME_INIT +#include "pycore_qsbr.h" // QSBR_INITIAL +#include "pycore_runtime_init_generated.h" // _Py_bytes_characters_INIT +#include "pycore_signal.h" // _signals_RUNTIME_INIT +#include "pycore_tracemalloc.h" // _tracemalloc_runtime_state_INIT + + +extern PyTypeObject _PyExc_MemoryError; + + +/* The static initializers defined here should only be used + in the runtime init code (in pystate.c and pylifecycle.c). */ + +#define _PyRuntimeState_INIT(runtime, debug_cookie) \ + { \ + .debug_offsets = { \ + .cookie = debug_cookie, \ + .version = PY_VERSION_HEX, \ + .free_threaded = _Py_Debug_Free_Threaded, \ + .runtime_state = { \ + .size = sizeof(_PyRuntimeState), \ + .finalizing = offsetof(_PyRuntimeState, _finalizing), \ + .interpreters_head = offsetof(_PyRuntimeState, interpreters.head), \ + }, \ + .interpreter_state = { \ + .size = sizeof(PyInterpreterState), \ + .id = offsetof(PyInterpreterState, id), \ + .next = offsetof(PyInterpreterState, next), \ + .threads_head = offsetof(PyInterpreterState, threads.head), \ + .gc = offsetof(PyInterpreterState, gc), \ + .imports_modules = offsetof(PyInterpreterState, imports.modules), \ + .sysdict = offsetof(PyInterpreterState, sysdict), \ + .builtins = offsetof(PyInterpreterState, builtins), \ + .ceval_gil = offsetof(PyInterpreterState, ceval.gil), \ + .gil_runtime_state = offsetof(PyInterpreterState, _gil), \ + .gil_runtime_state_enabled = _Py_Debug_gilruntimestate_enabled, \ + .gil_runtime_state_locked = offsetof(PyInterpreterState, _gil.locked), \ + .gil_runtime_state_holder = offsetof(PyInterpreterState, _gil.last_holder), \ + }, \ + .thread_state = { \ + .size = sizeof(PyThreadState), \ + .prev = offsetof(PyThreadState, prev), \ + .next = offsetof(PyThreadState, next), \ + .interp = offsetof(PyThreadState, interp), \ + .current_frame = offsetof(PyThreadState, current_frame), \ + .thread_id = offsetof(PyThreadState, thread_id), \ + .native_thread_id = offsetof(PyThreadState, native_thread_id), \ + .datastack_chunk = offsetof(PyThreadState, datastack_chunk), \ + .status = offsetof(PyThreadState, _status), \ + }, \ + .interpreter_frame = { \ + .size = sizeof(_PyInterpreterFrame), \ + .previous = offsetof(_PyInterpreterFrame, previous), \ + .executable = offsetof(_PyInterpreterFrame, f_executable), \ + .instr_ptr = offsetof(_PyInterpreterFrame, instr_ptr), \ + .localsplus = offsetof(_PyInterpreterFrame, localsplus), \ + .owner = offsetof(_PyInterpreterFrame, owner), \ + }, \ + .code_object = { \ + .size = sizeof(PyCodeObject), \ + .filename = offsetof(PyCodeObject, co_filename), \ + .name = offsetof(PyCodeObject, co_name), \ + .qualname = offsetof(PyCodeObject, co_qualname), \ + .linetable = offsetof(PyCodeObject, co_linetable), \ + .firstlineno = offsetof(PyCodeObject, co_firstlineno), \ + .argcount = offsetof(PyCodeObject, co_argcount), \ + .localsplusnames = offsetof(PyCodeObject, co_localsplusnames), \ + .localspluskinds = offsetof(PyCodeObject, co_localspluskinds), \ + .co_code_adaptive = offsetof(PyCodeObject, co_code_adaptive), \ + }, \ + .pyobject = { \ + .size = sizeof(PyObject), \ + .ob_type = offsetof(PyObject, ob_type), \ + }, \ + .type_object = { \ + .size = sizeof(PyTypeObject), \ + .tp_name = offsetof(PyTypeObject, tp_name), \ + .tp_repr = offsetof(PyTypeObject, tp_repr), \ + .tp_flags = offsetof(PyTypeObject, tp_flags), \ + }, \ + .tuple_object = { \ + .size = sizeof(PyTupleObject), \ + .ob_item = offsetof(PyTupleObject, ob_item), \ + .ob_size = offsetof(PyTupleObject, ob_base.ob_size), \ + }, \ + .list_object = { \ + .size = sizeof(PyListObject), \ + .ob_item = offsetof(PyListObject, ob_item), \ + .ob_size = offsetof(PyListObject, ob_base.ob_size), \ + }, \ + .dict_object = { \ + .size = sizeof(PyDictObject), \ + .ma_keys = offsetof(PyDictObject, ma_keys), \ + .ma_values = offsetof(PyDictObject, ma_values), \ + }, \ + .float_object = { \ + .size = sizeof(PyFloatObject), \ + .ob_fval = offsetof(PyFloatObject, ob_fval), \ + }, \ + .long_object = { \ + .size = sizeof(PyLongObject), \ + .lv_tag = offsetof(PyLongObject, long_value.lv_tag), \ + .ob_digit = offsetof(PyLongObject, long_value.ob_digit), \ + }, \ + .bytes_object = { \ + .size = sizeof(PyBytesObject), \ + .ob_size = offsetof(PyBytesObject, ob_base.ob_size), \ + .ob_sval = offsetof(PyBytesObject, ob_sval), \ + }, \ + .unicode_object = { \ + .size = sizeof(PyUnicodeObject), \ + .state = offsetof(PyUnicodeObject, _base._base.state), \ + .length = offsetof(PyUnicodeObject, _base._base.length), \ + .asciiobject_size = sizeof(PyASCIIObject), \ + }, \ + .gc = { \ + .size = sizeof(struct _gc_runtime_state), \ + .collecting = offsetof(struct _gc_runtime_state, collecting), \ + }, \ + }, \ + .allocators = { \ + .standard = _pymem_allocators_standard_INIT(runtime), \ + .debug = _pymem_allocators_debug_INIT, \ + .obj_arena = _pymem_allocators_obj_arena_INIT, \ + .is_debug_enabled = _pymem_is_debug_enabled_INIT, \ + }, \ + .obmalloc = _obmalloc_global_state_INIT, \ + .pyhash_state = pyhash_state_INIT, \ + .threads = _pythread_RUNTIME_INIT(runtime.threads), \ + .signals = _signals_RUNTIME_INIT, \ + .interpreters = { \ + /* This prevents interpreters from getting created \ + until _PyInterpreterState_Enable() is called. */ \ + .next_id = -1, \ + }, \ + .xi = { \ + .registry = { \ + .global = 1, \ + }, \ + }, \ + /* A TSS key must be initialized with Py_tss_NEEDS_INIT \ + in accordance with the specification. */ \ + .autoTSSkey = Py_tss_NEEDS_INIT, \ + .parser = _parser_runtime_state_INIT, \ + .ceval = { \ + .pending_mainthread = { \ + .max = MAXPENDINGCALLS_MAIN, \ + .maxloop = MAXPENDINGCALLSLOOP_MAIN, \ + }, \ + .perf = _PyEval_RUNTIME_PERF_INIT, \ + }, \ + .gilstate = { \ + .check_enabled = 1, \ + }, \ + .fileutils = { \ + .force_ascii = -1, \ + }, \ + .faulthandler = _faulthandler_runtime_state_INIT, \ + .tracemalloc = _tracemalloc_runtime_state_INIT, \ + .ref_tracer = { \ + .tracer_func = NULL, \ + .tracer_data = NULL, \ + }, \ + .stoptheworld = { \ + .is_global = 1, \ + }, \ + .float_state = { \ + .float_format = _py_float_format_unknown, \ + .double_format = _py_float_format_unknown, \ + }, \ + .types = { \ + .next_version_tag = 1, \ + }, \ + .static_objects = { \ + .singletons = { \ + .small_ints = _Py_small_ints_INIT, \ + .bytes_empty = _PyBytes_SIMPLE_INIT(0, 0), \ + .bytes_characters = _Py_bytes_characters_INIT, \ + .strings = { \ + .literals = _Py_str_literals_INIT, \ + .identifiers = _Py_str_identifiers_INIT, \ + .ascii = _Py_str_ascii_INIT, \ + .latin1 = _Py_str_latin1_INIT, \ + }, \ + .tuple_empty = { \ + .ob_base = _PyVarObject_HEAD_INIT(&PyTuple_Type, 0), \ + }, \ + .hamt_bitmap_node_empty = { \ + .ob_base = _PyVarObject_HEAD_INIT(&_PyHamt_BitmapNode_Type, 0), \ + }, \ + .context_token_missing = { \ + .ob_base = _PyObject_HEAD_INIT(&_PyContextTokenMissing_Type), \ + }, \ + }, \ + }, \ + ._main_interpreter = _PyInterpreterState_INIT(runtime._main_interpreter), \ + } + +#define _PyInterpreterState_INIT(INTERP) \ + { \ + .id_refcount = -1, \ + ._whence = _PyInterpreterState_WHENCE_NOTSET, \ + .imports = IMPORTS_INIT, \ + .ceval = { \ + .recursion_limit = Py_DEFAULT_RECURSION_LIMIT, \ + .pending = { \ + .max = MAXPENDINGCALLS, \ + .maxloop = MAXPENDINGCALLSLOOP, \ + }, \ + }, \ + .gc = { \ + .enabled = 1, \ + .generations = { \ + /* .head is set in _PyGC_InitState(). */ \ + { .threshold = 2000, }, \ + { .threshold = 10, }, \ + { .threshold = 10, }, \ + }, \ + }, \ + .qsbr = { \ + .wr_seq = QSBR_INITIAL, \ + .rd_seq = QSBR_INITIAL, \ + }, \ + .dtoa = _dtoa_state_INIT(&(INTERP)), \ + .dict_state = _dict_state_INIT, \ + .mem_free_queue = _Py_mem_free_queue_INIT(INTERP.mem_free_queue), \ + .func_state = { \ + .next_version = 1, \ + }, \ + .types = { \ + .next_version_tag = _Py_TYPE_BASE_VERSION_TAG, \ + }, \ + .static_objects = { \ + .singletons = { \ + ._not_used = 1, \ + .hamt_empty = { \ + .ob_base = _PyObject_HEAD_INIT(&_PyHamt_Type), \ + .h_root = (PyHamtNode*)&_Py_SINGLETON(hamt_bitmap_node_empty), \ + }, \ + .last_resort_memory_error = { \ + _PyObject_HEAD_INIT(&_PyExc_MemoryError), \ + .args = (PyObject*)&_Py_SINGLETON(tuple_empty) \ + }, \ + }, \ + }, \ + ._initial_thread = _PyThreadStateImpl_INIT, \ + } + +#define _PyThreadStateImpl_INIT \ + { \ + .base = _PyThreadState_INIT, \ + } + +#define _PyThreadState_INIT \ + { \ + ._whence = _PyThreadState_WHENCE_NOTSET, \ + .py_recursion_limit = Py_DEFAULT_RECURSION_LIMIT, \ + .context_ver = 1, \ + } + + +// global objects + +#define _PyBytes_SIMPLE_INIT(CH, LEN) \ + { \ + _PyVarObject_HEAD_INIT(&PyBytes_Type, (LEN)), \ + .ob_shash = -1, \ + .ob_sval = { (CH) }, \ + } +#define _PyBytes_CHAR_INIT(CH) \ + { \ + _PyBytes_SIMPLE_INIT((CH), 1) \ + } + +#define _PyUnicode_ASCII_BASE_INIT(LITERAL, ASCII) \ + { \ + .ob_base = _PyObject_HEAD_INIT(&PyUnicode_Type), \ + .length = sizeof(LITERAL) - 1, \ + .hash = -1, \ + .state = { \ + .kind = 1, \ + .compact = 1, \ + .ascii = (ASCII), \ + .statically_allocated = 1, \ + }, \ + } +#define _PyASCIIObject_INIT(LITERAL) \ + { \ + ._ascii = _PyUnicode_ASCII_BASE_INIT((LITERAL), 1), \ + ._data = (LITERAL) \ + } +#define INIT_STR(NAME, LITERAL) \ + ._py_ ## NAME = _PyASCIIObject_INIT(LITERAL) +#define INIT_ID(NAME) \ + ._py_ ## NAME = _PyASCIIObject_INIT(#NAME) +#define _PyUnicode_LATIN1_INIT(LITERAL, UTF8) \ + { \ + ._latin1 = { \ + ._base = _PyUnicode_ASCII_BASE_INIT((LITERAL), 0), \ + .utf8 = (UTF8), \ + .utf8_length = sizeof(UTF8) - 1, \ + }, \ + ._data = (LITERAL), \ + } + +#include "pycore_runtime_init_generated.h" + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_RUNTIME_INIT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_runtime_init_generated.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_runtime_init_generated.h new file mode 100644 index 000000000..6e62ecd4b --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_runtime_init_generated.h @@ -0,0 +1,1550 @@ +#ifndef Py_INTERNAL_RUNTIME_INIT_GENERATED_H +#define Py_INTERNAL_RUNTIME_INIT_GENERATED_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_long.h" // _PyLong_DIGIT_INIT() + + +/* The following is auto-generated by Tools/build/generate_global_objects.py. */ +#define _Py_small_ints_INIT { \ + _PyLong_DIGIT_INIT(-5), \ + _PyLong_DIGIT_INIT(-4), \ + _PyLong_DIGIT_INIT(-3), \ + _PyLong_DIGIT_INIT(-2), \ + _PyLong_DIGIT_INIT(-1), \ + _PyLong_DIGIT_INIT(0), \ + _PyLong_DIGIT_INIT(1), \ + _PyLong_DIGIT_INIT(2), \ + _PyLong_DIGIT_INIT(3), \ + _PyLong_DIGIT_INIT(4), \ + _PyLong_DIGIT_INIT(5), \ + _PyLong_DIGIT_INIT(6), \ + _PyLong_DIGIT_INIT(7), \ + _PyLong_DIGIT_INIT(8), \ + _PyLong_DIGIT_INIT(9), \ + _PyLong_DIGIT_INIT(10), \ + _PyLong_DIGIT_INIT(11), \ + _PyLong_DIGIT_INIT(12), \ + _PyLong_DIGIT_INIT(13), \ + _PyLong_DIGIT_INIT(14), \ + _PyLong_DIGIT_INIT(15), \ + _PyLong_DIGIT_INIT(16), \ + _PyLong_DIGIT_INIT(17), \ + _PyLong_DIGIT_INIT(18), \ + _PyLong_DIGIT_INIT(19), \ + _PyLong_DIGIT_INIT(20), \ + _PyLong_DIGIT_INIT(21), \ + _PyLong_DIGIT_INIT(22), \ + _PyLong_DIGIT_INIT(23), \ + _PyLong_DIGIT_INIT(24), \ + _PyLong_DIGIT_INIT(25), \ + _PyLong_DIGIT_INIT(26), \ + _PyLong_DIGIT_INIT(27), \ + _PyLong_DIGIT_INIT(28), \ + _PyLong_DIGIT_INIT(29), \ + _PyLong_DIGIT_INIT(30), \ + _PyLong_DIGIT_INIT(31), \ + _PyLong_DIGIT_INIT(32), \ + _PyLong_DIGIT_INIT(33), \ + _PyLong_DIGIT_INIT(34), \ + _PyLong_DIGIT_INIT(35), \ + _PyLong_DIGIT_INIT(36), \ + _PyLong_DIGIT_INIT(37), \ + _PyLong_DIGIT_INIT(38), \ + _PyLong_DIGIT_INIT(39), \ + _PyLong_DIGIT_INIT(40), \ + _PyLong_DIGIT_INIT(41), \ + _PyLong_DIGIT_INIT(42), \ + _PyLong_DIGIT_INIT(43), \ + _PyLong_DIGIT_INIT(44), \ + _PyLong_DIGIT_INIT(45), \ + _PyLong_DIGIT_INIT(46), \ + _PyLong_DIGIT_INIT(47), \ + _PyLong_DIGIT_INIT(48), \ + _PyLong_DIGIT_INIT(49), \ + _PyLong_DIGIT_INIT(50), \ + _PyLong_DIGIT_INIT(51), \ + _PyLong_DIGIT_INIT(52), \ + _PyLong_DIGIT_INIT(53), \ + _PyLong_DIGIT_INIT(54), \ + _PyLong_DIGIT_INIT(55), \ + _PyLong_DIGIT_INIT(56), \ + _PyLong_DIGIT_INIT(57), \ + _PyLong_DIGIT_INIT(58), \ + _PyLong_DIGIT_INIT(59), \ + _PyLong_DIGIT_INIT(60), \ + _PyLong_DIGIT_INIT(61), \ + _PyLong_DIGIT_INIT(62), \ + _PyLong_DIGIT_INIT(63), \ + _PyLong_DIGIT_INIT(64), \ + _PyLong_DIGIT_INIT(65), \ + _PyLong_DIGIT_INIT(66), \ + _PyLong_DIGIT_INIT(67), \ + _PyLong_DIGIT_INIT(68), \ + _PyLong_DIGIT_INIT(69), \ + _PyLong_DIGIT_INIT(70), \ + _PyLong_DIGIT_INIT(71), \ + _PyLong_DIGIT_INIT(72), \ + _PyLong_DIGIT_INIT(73), \ + _PyLong_DIGIT_INIT(74), \ + _PyLong_DIGIT_INIT(75), \ + _PyLong_DIGIT_INIT(76), \ + _PyLong_DIGIT_INIT(77), \ + _PyLong_DIGIT_INIT(78), \ + _PyLong_DIGIT_INIT(79), \ + _PyLong_DIGIT_INIT(80), \ + _PyLong_DIGIT_INIT(81), \ + _PyLong_DIGIT_INIT(82), \ + _PyLong_DIGIT_INIT(83), \ + _PyLong_DIGIT_INIT(84), \ + _PyLong_DIGIT_INIT(85), \ + _PyLong_DIGIT_INIT(86), \ + _PyLong_DIGIT_INIT(87), \ + _PyLong_DIGIT_INIT(88), \ + _PyLong_DIGIT_INIT(89), \ + _PyLong_DIGIT_INIT(90), \ + _PyLong_DIGIT_INIT(91), \ + _PyLong_DIGIT_INIT(92), \ + _PyLong_DIGIT_INIT(93), \ + _PyLong_DIGIT_INIT(94), \ + _PyLong_DIGIT_INIT(95), \ + _PyLong_DIGIT_INIT(96), \ + _PyLong_DIGIT_INIT(97), \ + _PyLong_DIGIT_INIT(98), \ + _PyLong_DIGIT_INIT(99), \ + _PyLong_DIGIT_INIT(100), \ + _PyLong_DIGIT_INIT(101), \ + _PyLong_DIGIT_INIT(102), \ + _PyLong_DIGIT_INIT(103), \ + _PyLong_DIGIT_INIT(104), \ + _PyLong_DIGIT_INIT(105), \ + _PyLong_DIGIT_INIT(106), \ + _PyLong_DIGIT_INIT(107), \ + _PyLong_DIGIT_INIT(108), \ + _PyLong_DIGIT_INIT(109), \ + _PyLong_DIGIT_INIT(110), \ + _PyLong_DIGIT_INIT(111), \ + _PyLong_DIGIT_INIT(112), \ + _PyLong_DIGIT_INIT(113), \ + _PyLong_DIGIT_INIT(114), \ + _PyLong_DIGIT_INIT(115), \ + _PyLong_DIGIT_INIT(116), \ + _PyLong_DIGIT_INIT(117), \ + _PyLong_DIGIT_INIT(118), \ + _PyLong_DIGIT_INIT(119), \ + _PyLong_DIGIT_INIT(120), \ + _PyLong_DIGIT_INIT(121), \ + _PyLong_DIGIT_INIT(122), \ + _PyLong_DIGIT_INIT(123), \ + _PyLong_DIGIT_INIT(124), \ + _PyLong_DIGIT_INIT(125), \ + _PyLong_DIGIT_INIT(126), \ + _PyLong_DIGIT_INIT(127), \ + _PyLong_DIGIT_INIT(128), \ + _PyLong_DIGIT_INIT(129), \ + _PyLong_DIGIT_INIT(130), \ + _PyLong_DIGIT_INIT(131), \ + _PyLong_DIGIT_INIT(132), \ + _PyLong_DIGIT_INIT(133), \ + _PyLong_DIGIT_INIT(134), \ + _PyLong_DIGIT_INIT(135), \ + _PyLong_DIGIT_INIT(136), \ + _PyLong_DIGIT_INIT(137), \ + _PyLong_DIGIT_INIT(138), \ + _PyLong_DIGIT_INIT(139), \ + _PyLong_DIGIT_INIT(140), \ + _PyLong_DIGIT_INIT(141), \ + _PyLong_DIGIT_INIT(142), \ + _PyLong_DIGIT_INIT(143), \ + _PyLong_DIGIT_INIT(144), \ + _PyLong_DIGIT_INIT(145), \ + _PyLong_DIGIT_INIT(146), \ + _PyLong_DIGIT_INIT(147), \ + _PyLong_DIGIT_INIT(148), \ + _PyLong_DIGIT_INIT(149), \ + _PyLong_DIGIT_INIT(150), \ + _PyLong_DIGIT_INIT(151), \ + _PyLong_DIGIT_INIT(152), \ + _PyLong_DIGIT_INIT(153), \ + _PyLong_DIGIT_INIT(154), \ + _PyLong_DIGIT_INIT(155), \ + _PyLong_DIGIT_INIT(156), \ + _PyLong_DIGIT_INIT(157), \ + _PyLong_DIGIT_INIT(158), \ + _PyLong_DIGIT_INIT(159), \ + _PyLong_DIGIT_INIT(160), \ + _PyLong_DIGIT_INIT(161), \ + _PyLong_DIGIT_INIT(162), \ + _PyLong_DIGIT_INIT(163), \ + _PyLong_DIGIT_INIT(164), \ + _PyLong_DIGIT_INIT(165), \ + _PyLong_DIGIT_INIT(166), \ + _PyLong_DIGIT_INIT(167), \ + _PyLong_DIGIT_INIT(168), \ + _PyLong_DIGIT_INIT(169), \ + _PyLong_DIGIT_INIT(170), \ + _PyLong_DIGIT_INIT(171), \ + _PyLong_DIGIT_INIT(172), \ + _PyLong_DIGIT_INIT(173), \ + _PyLong_DIGIT_INIT(174), \ + _PyLong_DIGIT_INIT(175), \ + _PyLong_DIGIT_INIT(176), \ + _PyLong_DIGIT_INIT(177), \ + _PyLong_DIGIT_INIT(178), \ + _PyLong_DIGIT_INIT(179), \ + _PyLong_DIGIT_INIT(180), \ + _PyLong_DIGIT_INIT(181), \ + _PyLong_DIGIT_INIT(182), \ + _PyLong_DIGIT_INIT(183), \ + _PyLong_DIGIT_INIT(184), \ + _PyLong_DIGIT_INIT(185), \ + _PyLong_DIGIT_INIT(186), \ + _PyLong_DIGIT_INIT(187), \ + _PyLong_DIGIT_INIT(188), \ + _PyLong_DIGIT_INIT(189), \ + _PyLong_DIGIT_INIT(190), \ + _PyLong_DIGIT_INIT(191), \ + _PyLong_DIGIT_INIT(192), \ + _PyLong_DIGIT_INIT(193), \ + _PyLong_DIGIT_INIT(194), \ + _PyLong_DIGIT_INIT(195), \ + _PyLong_DIGIT_INIT(196), \ + _PyLong_DIGIT_INIT(197), \ + _PyLong_DIGIT_INIT(198), \ + _PyLong_DIGIT_INIT(199), \ + _PyLong_DIGIT_INIT(200), \ + _PyLong_DIGIT_INIT(201), \ + _PyLong_DIGIT_INIT(202), \ + _PyLong_DIGIT_INIT(203), \ + _PyLong_DIGIT_INIT(204), \ + _PyLong_DIGIT_INIT(205), \ + _PyLong_DIGIT_INIT(206), \ + _PyLong_DIGIT_INIT(207), \ + _PyLong_DIGIT_INIT(208), \ + _PyLong_DIGIT_INIT(209), \ + _PyLong_DIGIT_INIT(210), \ + _PyLong_DIGIT_INIT(211), \ + _PyLong_DIGIT_INIT(212), \ + _PyLong_DIGIT_INIT(213), \ + _PyLong_DIGIT_INIT(214), \ + _PyLong_DIGIT_INIT(215), \ + _PyLong_DIGIT_INIT(216), \ + _PyLong_DIGIT_INIT(217), \ + _PyLong_DIGIT_INIT(218), \ + _PyLong_DIGIT_INIT(219), \ + _PyLong_DIGIT_INIT(220), \ + _PyLong_DIGIT_INIT(221), \ + _PyLong_DIGIT_INIT(222), \ + _PyLong_DIGIT_INIT(223), \ + _PyLong_DIGIT_INIT(224), \ + _PyLong_DIGIT_INIT(225), \ + _PyLong_DIGIT_INIT(226), \ + _PyLong_DIGIT_INIT(227), \ + _PyLong_DIGIT_INIT(228), \ + _PyLong_DIGIT_INIT(229), \ + _PyLong_DIGIT_INIT(230), \ + _PyLong_DIGIT_INIT(231), \ + _PyLong_DIGIT_INIT(232), \ + _PyLong_DIGIT_INIT(233), \ + _PyLong_DIGIT_INIT(234), \ + _PyLong_DIGIT_INIT(235), \ + _PyLong_DIGIT_INIT(236), \ + _PyLong_DIGIT_INIT(237), \ + _PyLong_DIGIT_INIT(238), \ + _PyLong_DIGIT_INIT(239), \ + _PyLong_DIGIT_INIT(240), \ + _PyLong_DIGIT_INIT(241), \ + _PyLong_DIGIT_INIT(242), \ + _PyLong_DIGIT_INIT(243), \ + _PyLong_DIGIT_INIT(244), \ + _PyLong_DIGIT_INIT(245), \ + _PyLong_DIGIT_INIT(246), \ + _PyLong_DIGIT_INIT(247), \ + _PyLong_DIGIT_INIT(248), \ + _PyLong_DIGIT_INIT(249), \ + _PyLong_DIGIT_INIT(250), \ + _PyLong_DIGIT_INIT(251), \ + _PyLong_DIGIT_INIT(252), \ + _PyLong_DIGIT_INIT(253), \ + _PyLong_DIGIT_INIT(254), \ + _PyLong_DIGIT_INIT(255), \ + _PyLong_DIGIT_INIT(256), \ +} + +#define _Py_bytes_characters_INIT { \ + _PyBytes_CHAR_INIT(0), \ + _PyBytes_CHAR_INIT(1), \ + _PyBytes_CHAR_INIT(2), \ + _PyBytes_CHAR_INIT(3), \ + _PyBytes_CHAR_INIT(4), \ + _PyBytes_CHAR_INIT(5), \ + _PyBytes_CHAR_INIT(6), \ + _PyBytes_CHAR_INIT(7), \ + _PyBytes_CHAR_INIT(8), \ + _PyBytes_CHAR_INIT(9), \ + _PyBytes_CHAR_INIT(10), \ + _PyBytes_CHAR_INIT(11), \ + _PyBytes_CHAR_INIT(12), \ + _PyBytes_CHAR_INIT(13), \ + _PyBytes_CHAR_INIT(14), \ + _PyBytes_CHAR_INIT(15), \ + _PyBytes_CHAR_INIT(16), \ + _PyBytes_CHAR_INIT(17), \ + _PyBytes_CHAR_INIT(18), \ + _PyBytes_CHAR_INIT(19), \ + _PyBytes_CHAR_INIT(20), \ + _PyBytes_CHAR_INIT(21), \ + _PyBytes_CHAR_INIT(22), \ + _PyBytes_CHAR_INIT(23), \ + _PyBytes_CHAR_INIT(24), \ + _PyBytes_CHAR_INIT(25), \ + _PyBytes_CHAR_INIT(26), \ + _PyBytes_CHAR_INIT(27), \ + _PyBytes_CHAR_INIT(28), \ + _PyBytes_CHAR_INIT(29), \ + _PyBytes_CHAR_INIT(30), \ + _PyBytes_CHAR_INIT(31), \ + _PyBytes_CHAR_INIT(32), \ + _PyBytes_CHAR_INIT(33), \ + _PyBytes_CHAR_INIT(34), \ + _PyBytes_CHAR_INIT(35), \ + _PyBytes_CHAR_INIT(36), \ + _PyBytes_CHAR_INIT(37), \ + _PyBytes_CHAR_INIT(38), \ + _PyBytes_CHAR_INIT(39), \ + _PyBytes_CHAR_INIT(40), \ + _PyBytes_CHAR_INIT(41), \ + _PyBytes_CHAR_INIT(42), \ + _PyBytes_CHAR_INIT(43), \ + _PyBytes_CHAR_INIT(44), \ + _PyBytes_CHAR_INIT(45), \ + _PyBytes_CHAR_INIT(46), \ + _PyBytes_CHAR_INIT(47), \ + _PyBytes_CHAR_INIT(48), \ + _PyBytes_CHAR_INIT(49), \ + _PyBytes_CHAR_INIT(50), \ + _PyBytes_CHAR_INIT(51), \ + _PyBytes_CHAR_INIT(52), \ + _PyBytes_CHAR_INIT(53), \ + _PyBytes_CHAR_INIT(54), \ + _PyBytes_CHAR_INIT(55), \ + _PyBytes_CHAR_INIT(56), \ + _PyBytes_CHAR_INIT(57), \ + _PyBytes_CHAR_INIT(58), \ + _PyBytes_CHAR_INIT(59), \ + _PyBytes_CHAR_INIT(60), \ + _PyBytes_CHAR_INIT(61), \ + _PyBytes_CHAR_INIT(62), \ + _PyBytes_CHAR_INIT(63), \ + _PyBytes_CHAR_INIT(64), \ + _PyBytes_CHAR_INIT(65), \ + _PyBytes_CHAR_INIT(66), \ + _PyBytes_CHAR_INIT(67), \ + _PyBytes_CHAR_INIT(68), \ + _PyBytes_CHAR_INIT(69), \ + _PyBytes_CHAR_INIT(70), \ + _PyBytes_CHAR_INIT(71), \ + _PyBytes_CHAR_INIT(72), \ + _PyBytes_CHAR_INIT(73), \ + _PyBytes_CHAR_INIT(74), \ + _PyBytes_CHAR_INIT(75), \ + _PyBytes_CHAR_INIT(76), \ + _PyBytes_CHAR_INIT(77), \ + _PyBytes_CHAR_INIT(78), \ + _PyBytes_CHAR_INIT(79), \ + _PyBytes_CHAR_INIT(80), \ + _PyBytes_CHAR_INIT(81), \ + _PyBytes_CHAR_INIT(82), \ + _PyBytes_CHAR_INIT(83), \ + _PyBytes_CHAR_INIT(84), \ + _PyBytes_CHAR_INIT(85), \ + _PyBytes_CHAR_INIT(86), \ + _PyBytes_CHAR_INIT(87), \ + _PyBytes_CHAR_INIT(88), \ + _PyBytes_CHAR_INIT(89), \ + _PyBytes_CHAR_INIT(90), \ + _PyBytes_CHAR_INIT(91), \ + _PyBytes_CHAR_INIT(92), \ + _PyBytes_CHAR_INIT(93), \ + _PyBytes_CHAR_INIT(94), \ + _PyBytes_CHAR_INIT(95), \ + _PyBytes_CHAR_INIT(96), \ + _PyBytes_CHAR_INIT(97), \ + _PyBytes_CHAR_INIT(98), \ + _PyBytes_CHAR_INIT(99), \ + _PyBytes_CHAR_INIT(100), \ + _PyBytes_CHAR_INIT(101), \ + _PyBytes_CHAR_INIT(102), \ + _PyBytes_CHAR_INIT(103), \ + _PyBytes_CHAR_INIT(104), \ + _PyBytes_CHAR_INIT(105), \ + _PyBytes_CHAR_INIT(106), \ + _PyBytes_CHAR_INIT(107), \ + _PyBytes_CHAR_INIT(108), \ + _PyBytes_CHAR_INIT(109), \ + _PyBytes_CHAR_INIT(110), \ + _PyBytes_CHAR_INIT(111), \ + _PyBytes_CHAR_INIT(112), \ + _PyBytes_CHAR_INIT(113), \ + _PyBytes_CHAR_INIT(114), \ + _PyBytes_CHAR_INIT(115), \ + _PyBytes_CHAR_INIT(116), \ + _PyBytes_CHAR_INIT(117), \ + _PyBytes_CHAR_INIT(118), \ + _PyBytes_CHAR_INIT(119), \ + _PyBytes_CHAR_INIT(120), \ + _PyBytes_CHAR_INIT(121), \ + _PyBytes_CHAR_INIT(122), \ + _PyBytes_CHAR_INIT(123), \ + _PyBytes_CHAR_INIT(124), \ + _PyBytes_CHAR_INIT(125), \ + _PyBytes_CHAR_INIT(126), \ + _PyBytes_CHAR_INIT(127), \ + _PyBytes_CHAR_INIT(128), \ + _PyBytes_CHAR_INIT(129), \ + _PyBytes_CHAR_INIT(130), \ + _PyBytes_CHAR_INIT(131), \ + _PyBytes_CHAR_INIT(132), \ + _PyBytes_CHAR_INIT(133), \ + _PyBytes_CHAR_INIT(134), \ + _PyBytes_CHAR_INIT(135), \ + _PyBytes_CHAR_INIT(136), \ + _PyBytes_CHAR_INIT(137), \ + _PyBytes_CHAR_INIT(138), \ + _PyBytes_CHAR_INIT(139), \ + _PyBytes_CHAR_INIT(140), \ + _PyBytes_CHAR_INIT(141), \ + _PyBytes_CHAR_INIT(142), \ + _PyBytes_CHAR_INIT(143), \ + _PyBytes_CHAR_INIT(144), \ + _PyBytes_CHAR_INIT(145), \ + _PyBytes_CHAR_INIT(146), \ + _PyBytes_CHAR_INIT(147), \ + _PyBytes_CHAR_INIT(148), \ + _PyBytes_CHAR_INIT(149), \ + _PyBytes_CHAR_INIT(150), \ + _PyBytes_CHAR_INIT(151), \ + _PyBytes_CHAR_INIT(152), \ + _PyBytes_CHAR_INIT(153), \ + _PyBytes_CHAR_INIT(154), \ + _PyBytes_CHAR_INIT(155), \ + _PyBytes_CHAR_INIT(156), \ + _PyBytes_CHAR_INIT(157), \ + _PyBytes_CHAR_INIT(158), \ + _PyBytes_CHAR_INIT(159), \ + _PyBytes_CHAR_INIT(160), \ + _PyBytes_CHAR_INIT(161), \ + _PyBytes_CHAR_INIT(162), \ + _PyBytes_CHAR_INIT(163), \ + _PyBytes_CHAR_INIT(164), \ + _PyBytes_CHAR_INIT(165), \ + _PyBytes_CHAR_INIT(166), \ + _PyBytes_CHAR_INIT(167), \ + _PyBytes_CHAR_INIT(168), \ + _PyBytes_CHAR_INIT(169), \ + _PyBytes_CHAR_INIT(170), \ + _PyBytes_CHAR_INIT(171), \ + _PyBytes_CHAR_INIT(172), \ + _PyBytes_CHAR_INIT(173), \ + _PyBytes_CHAR_INIT(174), \ + _PyBytes_CHAR_INIT(175), \ + _PyBytes_CHAR_INIT(176), \ + _PyBytes_CHAR_INIT(177), \ + _PyBytes_CHAR_INIT(178), \ + _PyBytes_CHAR_INIT(179), \ + _PyBytes_CHAR_INIT(180), \ + _PyBytes_CHAR_INIT(181), \ + _PyBytes_CHAR_INIT(182), \ + _PyBytes_CHAR_INIT(183), \ + _PyBytes_CHAR_INIT(184), \ + _PyBytes_CHAR_INIT(185), \ + _PyBytes_CHAR_INIT(186), \ + _PyBytes_CHAR_INIT(187), \ + _PyBytes_CHAR_INIT(188), \ + _PyBytes_CHAR_INIT(189), \ + _PyBytes_CHAR_INIT(190), \ + _PyBytes_CHAR_INIT(191), \ + _PyBytes_CHAR_INIT(192), \ + _PyBytes_CHAR_INIT(193), \ + _PyBytes_CHAR_INIT(194), \ + _PyBytes_CHAR_INIT(195), \ + _PyBytes_CHAR_INIT(196), \ + _PyBytes_CHAR_INIT(197), \ + _PyBytes_CHAR_INIT(198), \ + _PyBytes_CHAR_INIT(199), \ + _PyBytes_CHAR_INIT(200), \ + _PyBytes_CHAR_INIT(201), \ + _PyBytes_CHAR_INIT(202), \ + _PyBytes_CHAR_INIT(203), \ + _PyBytes_CHAR_INIT(204), \ + _PyBytes_CHAR_INIT(205), \ + _PyBytes_CHAR_INIT(206), \ + _PyBytes_CHAR_INIT(207), \ + _PyBytes_CHAR_INIT(208), \ + _PyBytes_CHAR_INIT(209), \ + _PyBytes_CHAR_INIT(210), \ + _PyBytes_CHAR_INIT(211), \ + _PyBytes_CHAR_INIT(212), \ + _PyBytes_CHAR_INIT(213), \ + _PyBytes_CHAR_INIT(214), \ + _PyBytes_CHAR_INIT(215), \ + _PyBytes_CHAR_INIT(216), \ + _PyBytes_CHAR_INIT(217), \ + _PyBytes_CHAR_INIT(218), \ + _PyBytes_CHAR_INIT(219), \ + _PyBytes_CHAR_INIT(220), \ + _PyBytes_CHAR_INIT(221), \ + _PyBytes_CHAR_INIT(222), \ + _PyBytes_CHAR_INIT(223), \ + _PyBytes_CHAR_INIT(224), \ + _PyBytes_CHAR_INIT(225), \ + _PyBytes_CHAR_INIT(226), \ + _PyBytes_CHAR_INIT(227), \ + _PyBytes_CHAR_INIT(228), \ + _PyBytes_CHAR_INIT(229), \ + _PyBytes_CHAR_INIT(230), \ + _PyBytes_CHAR_INIT(231), \ + _PyBytes_CHAR_INIT(232), \ + _PyBytes_CHAR_INIT(233), \ + _PyBytes_CHAR_INIT(234), \ + _PyBytes_CHAR_INIT(235), \ + _PyBytes_CHAR_INIT(236), \ + _PyBytes_CHAR_INIT(237), \ + _PyBytes_CHAR_INIT(238), \ + _PyBytes_CHAR_INIT(239), \ + _PyBytes_CHAR_INIT(240), \ + _PyBytes_CHAR_INIT(241), \ + _PyBytes_CHAR_INIT(242), \ + _PyBytes_CHAR_INIT(243), \ + _PyBytes_CHAR_INIT(244), \ + _PyBytes_CHAR_INIT(245), \ + _PyBytes_CHAR_INIT(246), \ + _PyBytes_CHAR_INIT(247), \ + _PyBytes_CHAR_INIT(248), \ + _PyBytes_CHAR_INIT(249), \ + _PyBytes_CHAR_INIT(250), \ + _PyBytes_CHAR_INIT(251), \ + _PyBytes_CHAR_INIT(252), \ + _PyBytes_CHAR_INIT(253), \ + _PyBytes_CHAR_INIT(254), \ + _PyBytes_CHAR_INIT(255), \ +} + +#define _Py_str_literals_INIT { \ + INIT_STR(anon_dictcomp, ""), \ + INIT_STR(anon_genexpr, ""), \ + INIT_STR(anon_lambda, ""), \ + INIT_STR(anon_listcomp, ""), \ + INIT_STR(anon_module, ""), \ + INIT_STR(anon_null, ""), \ + INIT_STR(anon_setcomp, ""), \ + INIT_STR(anon_string, ""), \ + INIT_STR(anon_unknown, ""), \ + INIT_STR(dbl_close_br, "}}"), \ + INIT_STR(dbl_open_br, "{{"), \ + INIT_STR(dbl_percent, "%%"), \ + INIT_STR(defaults, ".defaults"), \ + INIT_STR(dot_locals, "."), \ + INIT_STR(empty, ""), \ + INIT_STR(generic_base, ".generic_base"), \ + INIT_STR(json_decoder, "json.decoder"), \ + INIT_STR(kwdefaults, ".kwdefaults"), \ + INIT_STR(list_err, "list index out of range"), \ + INIT_STR(type_params, ".type_params"), \ + INIT_STR(utf_8, "utf-8"), \ +} + +#define _Py_str_identifiers_INIT { \ + INIT_ID(CANCELLED), \ + INIT_ID(FINISHED), \ + INIT_ID(False), \ + INIT_ID(JSONDecodeError), \ + INIT_ID(PENDING), \ + INIT_ID(Py_Repr), \ + INIT_ID(TextIOWrapper), \ + INIT_ID(True), \ + INIT_ID(WarningMessage), \ + INIT_ID(_WindowsConsoleIO), \ + INIT_ID(__IOBase_closed), \ + INIT_ID(__abc_tpflags__), \ + INIT_ID(__abs__), \ + INIT_ID(__abstractmethods__), \ + INIT_ID(__add__), \ + INIT_ID(__aenter__), \ + INIT_ID(__aexit__), \ + INIT_ID(__aiter__), \ + INIT_ID(__all__), \ + INIT_ID(__and__), \ + INIT_ID(__anext__), \ + INIT_ID(__annotations__), \ + INIT_ID(__args__), \ + INIT_ID(__await__), \ + INIT_ID(__bases__), \ + INIT_ID(__bool__), \ + INIT_ID(__buffer__), \ + INIT_ID(__build_class__), \ + INIT_ID(__builtins__), \ + INIT_ID(__bytes__), \ + INIT_ID(__call__), \ + INIT_ID(__cantrace__), \ + INIT_ID(__class__), \ + INIT_ID(__class_getitem__), \ + INIT_ID(__classcell__), \ + INIT_ID(__classdict__), \ + INIT_ID(__classdictcell__), \ + INIT_ID(__complex__), \ + INIT_ID(__contains__), \ + INIT_ID(__copy__), \ + INIT_ID(__ctypes_from_outparam__), \ + INIT_ID(__del__), \ + INIT_ID(__delattr__), \ + INIT_ID(__delete__), \ + INIT_ID(__delitem__), \ + INIT_ID(__dict__), \ + INIT_ID(__dictoffset__), \ + INIT_ID(__dir__), \ + INIT_ID(__divmod__), \ + INIT_ID(__doc__), \ + INIT_ID(__enter__), \ + INIT_ID(__eq__), \ + INIT_ID(__exit__), \ + INIT_ID(__file__), \ + INIT_ID(__firstlineno__), \ + INIT_ID(__float__), \ + INIT_ID(__floordiv__), \ + INIT_ID(__format__), \ + INIT_ID(__fspath__), \ + INIT_ID(__ge__), \ + INIT_ID(__get__), \ + INIT_ID(__getattr__), \ + INIT_ID(__getattribute__), \ + INIT_ID(__getinitargs__), \ + INIT_ID(__getitem__), \ + INIT_ID(__getnewargs__), \ + INIT_ID(__getnewargs_ex__), \ + INIT_ID(__getstate__), \ + INIT_ID(__gt__), \ + INIT_ID(__hash__), \ + INIT_ID(__iadd__), \ + INIT_ID(__iand__), \ + INIT_ID(__ifloordiv__), \ + INIT_ID(__ilshift__), \ + INIT_ID(__imatmul__), \ + INIT_ID(__imod__), \ + INIT_ID(__import__), \ + INIT_ID(__imul__), \ + INIT_ID(__index__), \ + INIT_ID(__init__), \ + INIT_ID(__init_subclass__), \ + INIT_ID(__instancecheck__), \ + INIT_ID(__int__), \ + INIT_ID(__invert__), \ + INIT_ID(__ior__), \ + INIT_ID(__ipow__), \ + INIT_ID(__irshift__), \ + INIT_ID(__isabstractmethod__), \ + INIT_ID(__isub__), \ + INIT_ID(__iter__), \ + INIT_ID(__itruediv__), \ + INIT_ID(__ixor__), \ + INIT_ID(__le__), \ + INIT_ID(__len__), \ + INIT_ID(__length_hint__), \ + INIT_ID(__lltrace__), \ + INIT_ID(__loader__), \ + INIT_ID(__lshift__), \ + INIT_ID(__lt__), \ + INIT_ID(__main__), \ + INIT_ID(__match_args__), \ + INIT_ID(__matmul__), \ + INIT_ID(__missing__), \ + INIT_ID(__mod__), \ + INIT_ID(__module__), \ + INIT_ID(__mro_entries__), \ + INIT_ID(__mul__), \ + INIT_ID(__name__), \ + INIT_ID(__ne__), \ + INIT_ID(__neg__), \ + INIT_ID(__new__), \ + INIT_ID(__newobj__), \ + INIT_ID(__newobj_ex__), \ + INIT_ID(__next__), \ + INIT_ID(__notes__), \ + INIT_ID(__or__), \ + INIT_ID(__orig_class__), \ + INIT_ID(__origin__), \ + INIT_ID(__package__), \ + INIT_ID(__parameters__), \ + INIT_ID(__path__), \ + INIT_ID(__pos__), \ + INIT_ID(__pow__), \ + INIT_ID(__prepare__), \ + INIT_ID(__qualname__), \ + INIT_ID(__radd__), \ + INIT_ID(__rand__), \ + INIT_ID(__rdivmod__), \ + INIT_ID(__reduce__), \ + INIT_ID(__reduce_ex__), \ + INIT_ID(__release_buffer__), \ + INIT_ID(__repr__), \ + INIT_ID(__reversed__), \ + INIT_ID(__rfloordiv__), \ + INIT_ID(__rlshift__), \ + INIT_ID(__rmatmul__), \ + INIT_ID(__rmod__), \ + INIT_ID(__rmul__), \ + INIT_ID(__ror__), \ + INIT_ID(__round__), \ + INIT_ID(__rpow__), \ + INIT_ID(__rrshift__), \ + INIT_ID(__rshift__), \ + INIT_ID(__rsub__), \ + INIT_ID(__rtruediv__), \ + INIT_ID(__rxor__), \ + INIT_ID(__set__), \ + INIT_ID(__set_name__), \ + INIT_ID(__setattr__), \ + INIT_ID(__setitem__), \ + INIT_ID(__setstate__), \ + INIT_ID(__sizeof__), \ + INIT_ID(__slotnames__), \ + INIT_ID(__slots__), \ + INIT_ID(__spec__), \ + INIT_ID(__static_attributes__), \ + INIT_ID(__str__), \ + INIT_ID(__sub__), \ + INIT_ID(__subclasscheck__), \ + INIT_ID(__subclasshook__), \ + INIT_ID(__truediv__), \ + INIT_ID(__trunc__), \ + INIT_ID(__type_params__), \ + INIT_ID(__typing_is_unpacked_typevartuple__), \ + INIT_ID(__typing_prepare_subst__), \ + INIT_ID(__typing_subst__), \ + INIT_ID(__typing_unpacked_tuple_args__), \ + INIT_ID(__warningregistry__), \ + INIT_ID(__weaklistoffset__), \ + INIT_ID(__weakref__), \ + INIT_ID(__xor__), \ + INIT_ID(_abc_impl), \ + INIT_ID(_abstract_), \ + INIT_ID(_active), \ + INIT_ID(_align_), \ + INIT_ID(_annotation), \ + INIT_ID(_anonymous_), \ + INIT_ID(_argtypes_), \ + INIT_ID(_as_parameter_), \ + INIT_ID(_asyncio_future_blocking), \ + INIT_ID(_blksize), \ + INIT_ID(_bootstrap), \ + INIT_ID(_check_retval_), \ + INIT_ID(_dealloc_warn), \ + INIT_ID(_feature_version), \ + INIT_ID(_field_types), \ + INIT_ID(_fields_), \ + INIT_ID(_finalizing), \ + INIT_ID(_find_and_load), \ + INIT_ID(_fix_up_module), \ + INIT_ID(_flags_), \ + INIT_ID(_get_sourcefile), \ + INIT_ID(_handle_fromlist), \ + INIT_ID(_initializing), \ + INIT_ID(_io), \ + INIT_ID(_is_text_encoding), \ + INIT_ID(_length_), \ + INIT_ID(_limbo), \ + INIT_ID(_lock_unlock_module), \ + INIT_ID(_loop), \ + INIT_ID(_needs_com_addref_), \ + INIT_ID(_only_immortal), \ + INIT_ID(_pack_), \ + INIT_ID(_restype_), \ + INIT_ID(_showwarnmsg), \ + INIT_ID(_shutdown), \ + INIT_ID(_slotnames), \ + INIT_ID(_strptime), \ + INIT_ID(_strptime_datetime), \ + INIT_ID(_swappedbytes_), \ + INIT_ID(_type_), \ + INIT_ID(_uninitialized_submodules), \ + INIT_ID(_warn_unawaited_coroutine), \ + INIT_ID(_xoptions), \ + INIT_ID(abs_tol), \ + INIT_ID(access), \ + INIT_ID(aclose), \ + INIT_ID(add), \ + INIT_ID(add_done_callback), \ + INIT_ID(after_in_child), \ + INIT_ID(after_in_parent), \ + INIT_ID(aggregate_class), \ + INIT_ID(alias), \ + INIT_ID(allow_code), \ + INIT_ID(append), \ + INIT_ID(arg), \ + INIT_ID(argdefs), \ + INIT_ID(args), \ + INIT_ID(arguments), \ + INIT_ID(argv), \ + INIT_ID(as_integer_ratio), \ + INIT_ID(asend), \ + INIT_ID(ast), \ + INIT_ID(athrow), \ + INIT_ID(attribute), \ + INIT_ID(authorizer_callback), \ + INIT_ID(autocommit), \ + INIT_ID(backtick), \ + INIT_ID(base), \ + INIT_ID(before), \ + INIT_ID(big), \ + INIT_ID(binary_form), \ + INIT_ID(block), \ + INIT_ID(bound), \ + INIT_ID(buffer), \ + INIT_ID(buffer_callback), \ + INIT_ID(buffer_size), \ + INIT_ID(buffering), \ + INIT_ID(buffers), \ + INIT_ID(bufsize), \ + INIT_ID(builtins), \ + INIT_ID(byteorder), \ + INIT_ID(bytes), \ + INIT_ID(bytes_per_sep), \ + INIT_ID(c_call), \ + INIT_ID(c_exception), \ + INIT_ID(c_return), \ + INIT_ID(cached_datetime_module), \ + INIT_ID(cached_statements), \ + INIT_ID(cadata), \ + INIT_ID(cafile), \ + INIT_ID(call), \ + INIT_ID(call_exception_handler), \ + INIT_ID(call_soon), \ + INIT_ID(callback), \ + INIT_ID(cancel), \ + INIT_ID(capath), \ + INIT_ID(category), \ + INIT_ID(cb_type), \ + INIT_ID(certfile), \ + INIT_ID(check_same_thread), \ + INIT_ID(clear), \ + INIT_ID(close), \ + INIT_ID(closed), \ + INIT_ID(closefd), \ + INIT_ID(closure), \ + INIT_ID(co_argcount), \ + INIT_ID(co_cellvars), \ + INIT_ID(co_code), \ + INIT_ID(co_consts), \ + INIT_ID(co_exceptiontable), \ + INIT_ID(co_filename), \ + INIT_ID(co_firstlineno), \ + INIT_ID(co_flags), \ + INIT_ID(co_freevars), \ + INIT_ID(co_kwonlyargcount), \ + INIT_ID(co_linetable), \ + INIT_ID(co_name), \ + INIT_ID(co_names), \ + INIT_ID(co_nlocals), \ + INIT_ID(co_posonlyargcount), \ + INIT_ID(co_qualname), \ + INIT_ID(co_stacksize), \ + INIT_ID(co_varnames), \ + INIT_ID(code), \ + INIT_ID(col_offset), \ + INIT_ID(command), \ + INIT_ID(comment_factory), \ + INIT_ID(compile_mode), \ + INIT_ID(consts), \ + INIT_ID(context), \ + INIT_ID(contravariant), \ + INIT_ID(cookie), \ + INIT_ID(copy), \ + INIT_ID(copyreg), \ + INIT_ID(coro), \ + INIT_ID(count), \ + INIT_ID(covariant), \ + INIT_ID(cwd), \ + INIT_ID(data), \ + INIT_ID(database), \ + INIT_ID(day), \ + INIT_ID(decode), \ + INIT_ID(decoder), \ + INIT_ID(default), \ + INIT_ID(defaultaction), \ + INIT_ID(delete), \ + INIT_ID(depth), \ + INIT_ID(desired_access), \ + INIT_ID(detect_types), \ + INIT_ID(deterministic), \ + INIT_ID(device), \ + INIT_ID(dict), \ + INIT_ID(dictcomp), \ + INIT_ID(difference_update), \ + INIT_ID(digest), \ + INIT_ID(digest_size), \ + INIT_ID(digestmod), \ + INIT_ID(dir_fd), \ + INIT_ID(discard), \ + INIT_ID(dispatch_table), \ + INIT_ID(displayhook), \ + INIT_ID(dklen), \ + INIT_ID(doc), \ + INIT_ID(dont_inherit), \ + INIT_ID(dst), \ + INIT_ID(dst_dir_fd), \ + INIT_ID(eager_start), \ + INIT_ID(effective_ids), \ + INIT_ID(element_factory), \ + INIT_ID(encode), \ + INIT_ID(encoding), \ + INIT_ID(end), \ + INIT_ID(end_col_offset), \ + INIT_ID(end_lineno), \ + INIT_ID(end_offset), \ + INIT_ID(endpos), \ + INIT_ID(entrypoint), \ + INIT_ID(env), \ + INIT_ID(errors), \ + INIT_ID(event), \ + INIT_ID(eventmask), \ + INIT_ID(exc_type), \ + INIT_ID(exc_value), \ + INIT_ID(excepthook), \ + INIT_ID(exception), \ + INIT_ID(existing_file_name), \ + INIT_ID(exp), \ + INIT_ID(extend), \ + INIT_ID(extra_tokens), \ + INIT_ID(facility), \ + INIT_ID(factory), \ + INIT_ID(false), \ + INIT_ID(family), \ + INIT_ID(fanout), \ + INIT_ID(fd), \ + INIT_ID(fd2), \ + INIT_ID(fdel), \ + INIT_ID(fget), \ + INIT_ID(file), \ + INIT_ID(file_actions), \ + INIT_ID(filename), \ + INIT_ID(fileno), \ + INIT_ID(filepath), \ + INIT_ID(fillvalue), \ + INIT_ID(filter), \ + INIT_ID(filters), \ + INIT_ID(final), \ + INIT_ID(find_class), \ + INIT_ID(fix_imports), \ + INIT_ID(flags), \ + INIT_ID(flush), \ + INIT_ID(fold), \ + INIT_ID(follow_symlinks), \ + INIT_ID(format), \ + INIT_ID(from_param), \ + INIT_ID(fromlist), \ + INIT_ID(fromtimestamp), \ + INIT_ID(fromutc), \ + INIT_ID(fset), \ + INIT_ID(func), \ + INIT_ID(future), \ + INIT_ID(generation), \ + INIT_ID(genexpr), \ + INIT_ID(get), \ + INIT_ID(get_debug), \ + INIT_ID(get_event_loop), \ + INIT_ID(get_loop), \ + INIT_ID(get_source), \ + INIT_ID(getattr), \ + INIT_ID(getstate), \ + INIT_ID(gid), \ + INIT_ID(globals), \ + INIT_ID(groupindex), \ + INIT_ID(groups), \ + INIT_ID(handle), \ + INIT_ID(handle_seq), \ + INIT_ID(has_location), \ + INIT_ID(hash_name), \ + INIT_ID(header), \ + INIT_ID(headers), \ + INIT_ID(hi), \ + INIT_ID(hook), \ + INIT_ID(hour), \ + INIT_ID(ident), \ + INIT_ID(identity_hint), \ + INIT_ID(ignore), \ + INIT_ID(imag), \ + INIT_ID(importlib), \ + INIT_ID(in_fd), \ + INIT_ID(incoming), \ + INIT_ID(indexgroup), \ + INIT_ID(inf), \ + INIT_ID(infer_variance), \ + INIT_ID(inherit_handle), \ + INIT_ID(inheritable), \ + INIT_ID(initial), \ + INIT_ID(initial_bytes), \ + INIT_ID(initial_owner), \ + INIT_ID(initial_state), \ + INIT_ID(initial_value), \ + INIT_ID(initval), \ + INIT_ID(inner_size), \ + INIT_ID(input), \ + INIT_ID(insert_comments), \ + INIT_ID(insert_pis), \ + INIT_ID(instructions), \ + INIT_ID(intern), \ + INIT_ID(intersection), \ + INIT_ID(interval), \ + INIT_ID(is_running), \ + INIT_ID(isatty), \ + INIT_ID(isinstance), \ + INIT_ID(isoformat), \ + INIT_ID(isolation_level), \ + INIT_ID(istext), \ + INIT_ID(item), \ + INIT_ID(items), \ + INIT_ID(iter), \ + INIT_ID(iterable), \ + INIT_ID(iterations), \ + INIT_ID(join), \ + INIT_ID(jump), \ + INIT_ID(keepends), \ + INIT_ID(key), \ + INIT_ID(keyfile), \ + INIT_ID(keys), \ + INIT_ID(kind), \ + INIT_ID(kw), \ + INIT_ID(kw1), \ + INIT_ID(kw2), \ + INIT_ID(kwdefaults), \ + INIT_ID(label), \ + INIT_ID(lambda), \ + INIT_ID(last), \ + INIT_ID(last_exc), \ + INIT_ID(last_node), \ + INIT_ID(last_traceback), \ + INIT_ID(last_type), \ + INIT_ID(last_value), \ + INIT_ID(latin1), \ + INIT_ID(leaf_size), \ + INIT_ID(len), \ + INIT_ID(length), \ + INIT_ID(level), \ + INIT_ID(limit), \ + INIT_ID(line), \ + INIT_ID(line_buffering), \ + INIT_ID(lineno), \ + INIT_ID(listcomp), \ + INIT_ID(little), \ + INIT_ID(lo), \ + INIT_ID(locale), \ + INIT_ID(locals), \ + INIT_ID(logoption), \ + INIT_ID(loop), \ + INIT_ID(manual_reset), \ + INIT_ID(mapping), \ + INIT_ID(match), \ + INIT_ID(max_length), \ + INIT_ID(maxdigits), \ + INIT_ID(maxevents), \ + INIT_ID(maxlen), \ + INIT_ID(maxmem), \ + INIT_ID(maxsplit), \ + INIT_ID(maxvalue), \ + INIT_ID(memLevel), \ + INIT_ID(memlimit), \ + INIT_ID(message), \ + INIT_ID(metaclass), \ + INIT_ID(metadata), \ + INIT_ID(method), \ + INIT_ID(microsecond), \ + INIT_ID(milliseconds), \ + INIT_ID(minute), \ + INIT_ID(mod), \ + INIT_ID(mode), \ + INIT_ID(module), \ + INIT_ID(module_globals), \ + INIT_ID(modules), \ + INIT_ID(month), \ + INIT_ID(mro), \ + INIT_ID(msg), \ + INIT_ID(mutex), \ + INIT_ID(mycmp), \ + INIT_ID(n_arg), \ + INIT_ID(n_fields), \ + INIT_ID(n_sequence_fields), \ + INIT_ID(n_unnamed_fields), \ + INIT_ID(name), \ + INIT_ID(name_from), \ + INIT_ID(namespace_separator), \ + INIT_ID(namespaces), \ + INIT_ID(narg), \ + INIT_ID(ndigits), \ + INIT_ID(nested), \ + INIT_ID(new_file_name), \ + INIT_ID(new_limit), \ + INIT_ID(newline), \ + INIT_ID(newlines), \ + INIT_ID(next), \ + INIT_ID(nlocals), \ + INIT_ID(node_depth), \ + INIT_ID(node_offset), \ + INIT_ID(ns), \ + INIT_ID(nstype), \ + INIT_ID(nt), \ + INIT_ID(null), \ + INIT_ID(number), \ + INIT_ID(obj), \ + INIT_ID(object), \ + INIT_ID(offset), \ + INIT_ID(offset_dst), \ + INIT_ID(offset_src), \ + INIT_ID(on_type_read), \ + INIT_ID(onceregistry), \ + INIT_ID(only_keys), \ + INIT_ID(oparg), \ + INIT_ID(opcode), \ + INIT_ID(open), \ + INIT_ID(opener), \ + INIT_ID(operation), \ + INIT_ID(optimize), \ + INIT_ID(options), \ + INIT_ID(order), \ + INIT_ID(origin), \ + INIT_ID(out_fd), \ + INIT_ID(outgoing), \ + INIT_ID(overlapped), \ + INIT_ID(owner), \ + INIT_ID(pages), \ + INIT_ID(parent), \ + INIT_ID(password), \ + INIT_ID(path), \ + INIT_ID(pattern), \ + INIT_ID(peek), \ + INIT_ID(persistent_id), \ + INIT_ID(persistent_load), \ + INIT_ID(person), \ + INIT_ID(pi_factory), \ + INIT_ID(pid), \ + INIT_ID(policy), \ + INIT_ID(pos), \ + INIT_ID(pos1), \ + INIT_ID(pos2), \ + INIT_ID(posix), \ + INIT_ID(print_file_and_line), \ + INIT_ID(priority), \ + INIT_ID(progress), \ + INIT_ID(progress_handler), \ + INIT_ID(progress_routine), \ + INIT_ID(proto), \ + INIT_ID(protocol), \ + INIT_ID(ps1), \ + INIT_ID(ps2), \ + INIT_ID(query), \ + INIT_ID(quotetabs), \ + INIT_ID(raw), \ + INIT_ID(read), \ + INIT_ID(read1), \ + INIT_ID(readable), \ + INIT_ID(readall), \ + INIT_ID(readinto), \ + INIT_ID(readinto1), \ + INIT_ID(readline), \ + INIT_ID(readonly), \ + INIT_ID(real), \ + INIT_ID(reducer_override), \ + INIT_ID(registry), \ + INIT_ID(rel_tol), \ + INIT_ID(release), \ + INIT_ID(reload), \ + INIT_ID(repl), \ + INIT_ID(replace), \ + INIT_ID(reserved), \ + INIT_ID(reset), \ + INIT_ID(resetids), \ + INIT_ID(return), \ + INIT_ID(reverse), \ + INIT_ID(reversed), \ + INIT_ID(salt), \ + INIT_ID(sched_priority), \ + INIT_ID(scheduler), \ + INIT_ID(second), \ + INIT_ID(security_attributes), \ + INIT_ID(seek), \ + INIT_ID(seekable), \ + INIT_ID(selectors), \ + INIT_ID(self), \ + INIT_ID(send), \ + INIT_ID(sep), \ + INIT_ID(sequence), \ + INIT_ID(server_hostname), \ + INIT_ID(server_side), \ + INIT_ID(session), \ + INIT_ID(setcomp), \ + INIT_ID(setpgroup), \ + INIT_ID(setsid), \ + INIT_ID(setsigdef), \ + INIT_ID(setsigmask), \ + INIT_ID(setstate), \ + INIT_ID(shape), \ + INIT_ID(show_cmd), \ + INIT_ID(signed), \ + INIT_ID(size), \ + INIT_ID(sizehint), \ + INIT_ID(skip_file_prefixes), \ + INIT_ID(sleep), \ + INIT_ID(sock), \ + INIT_ID(sort), \ + INIT_ID(source), \ + INIT_ID(source_traceback), \ + INIT_ID(spam), \ + INIT_ID(src), \ + INIT_ID(src_dir_fd), \ + INIT_ID(stacklevel), \ + INIT_ID(start), \ + INIT_ID(statement), \ + INIT_ID(status), \ + INIT_ID(stderr), \ + INIT_ID(stdin), \ + INIT_ID(stdout), \ + INIT_ID(step), \ + INIT_ID(steps), \ + INIT_ID(store_name), \ + INIT_ID(strategy), \ + INIT_ID(strftime), \ + INIT_ID(strict), \ + INIT_ID(strict_mode), \ + INIT_ID(string), \ + INIT_ID(sub_key), \ + INIT_ID(symmetric_difference_update), \ + INIT_ID(tabsize), \ + INIT_ID(tag), \ + INIT_ID(target), \ + INIT_ID(target_is_directory), \ + INIT_ID(task), \ + INIT_ID(tb_frame), \ + INIT_ID(tb_lasti), \ + INIT_ID(tb_lineno), \ + INIT_ID(tb_next), \ + INIT_ID(tell), \ + INIT_ID(template), \ + INIT_ID(term), \ + INIT_ID(text), \ + INIT_ID(threading), \ + INIT_ID(throw), \ + INIT_ID(timeout), \ + INIT_ID(times), \ + INIT_ID(timetuple), \ + INIT_ID(top), \ + INIT_ID(trace_callback), \ + INIT_ID(traceback), \ + INIT_ID(trailers), \ + INIT_ID(translate), \ + INIT_ID(true), \ + INIT_ID(truncate), \ + INIT_ID(twice), \ + INIT_ID(txt), \ + INIT_ID(type), \ + INIT_ID(type_params), \ + INIT_ID(tz), \ + INIT_ID(tzinfo), \ + INIT_ID(tzname), \ + INIT_ID(uid), \ + INIT_ID(unlink), \ + INIT_ID(unraisablehook), \ + INIT_ID(uri), \ + INIT_ID(usedforsecurity), \ + INIT_ID(value), \ + INIT_ID(values), \ + INIT_ID(version), \ + INIT_ID(volume), \ + INIT_ID(wait_all), \ + INIT_ID(warn_on_full_buffer), \ + INIT_ID(warnings), \ + INIT_ID(warnoptions), \ + INIT_ID(wbits), \ + INIT_ID(week), \ + INIT_ID(weekday), \ + INIT_ID(which), \ + INIT_ID(who), \ + INIT_ID(withdata), \ + INIT_ID(writable), \ + INIT_ID(write), \ + INIT_ID(write_through), \ + INIT_ID(year), \ + INIT_ID(zdict), \ +} + +#define _Py_str_ascii_INIT { \ + _PyASCIIObject_INIT("\x00"), \ + _PyASCIIObject_INIT("\x01"), \ + _PyASCIIObject_INIT("\x02"), \ + _PyASCIIObject_INIT("\x03"), \ + _PyASCIIObject_INIT("\x04"), \ + _PyASCIIObject_INIT("\x05"), \ + _PyASCIIObject_INIT("\x06"), \ + _PyASCIIObject_INIT("\x07"), \ + _PyASCIIObject_INIT("\x08"), \ + _PyASCIIObject_INIT("\x09"), \ + _PyASCIIObject_INIT("\x0a"), \ + _PyASCIIObject_INIT("\x0b"), \ + _PyASCIIObject_INIT("\x0c"), \ + _PyASCIIObject_INIT("\x0d"), \ + _PyASCIIObject_INIT("\x0e"), \ + _PyASCIIObject_INIT("\x0f"), \ + _PyASCIIObject_INIT("\x10"), \ + _PyASCIIObject_INIT("\x11"), \ + _PyASCIIObject_INIT("\x12"), \ + _PyASCIIObject_INIT("\x13"), \ + _PyASCIIObject_INIT("\x14"), \ + _PyASCIIObject_INIT("\x15"), \ + _PyASCIIObject_INIT("\x16"), \ + _PyASCIIObject_INIT("\x17"), \ + _PyASCIIObject_INIT("\x18"), \ + _PyASCIIObject_INIT("\x19"), \ + _PyASCIIObject_INIT("\x1a"), \ + _PyASCIIObject_INIT("\x1b"), \ + _PyASCIIObject_INIT("\x1c"), \ + _PyASCIIObject_INIT("\x1d"), \ + _PyASCIIObject_INIT("\x1e"), \ + _PyASCIIObject_INIT("\x1f"), \ + _PyASCIIObject_INIT("\x20"), \ + _PyASCIIObject_INIT("\x21"), \ + _PyASCIIObject_INIT("\x22"), \ + _PyASCIIObject_INIT("\x23"), \ + _PyASCIIObject_INIT("\x24"), \ + _PyASCIIObject_INIT("\x25"), \ + _PyASCIIObject_INIT("\x26"), \ + _PyASCIIObject_INIT("\x27"), \ + _PyASCIIObject_INIT("\x28"), \ + _PyASCIIObject_INIT("\x29"), \ + _PyASCIIObject_INIT("\x2a"), \ + _PyASCIIObject_INIT("\x2b"), \ + _PyASCIIObject_INIT("\x2c"), \ + _PyASCIIObject_INIT("\x2d"), \ + _PyASCIIObject_INIT("\x2e"), \ + _PyASCIIObject_INIT("\x2f"), \ + _PyASCIIObject_INIT("\x30"), \ + _PyASCIIObject_INIT("\x31"), \ + _PyASCIIObject_INIT("\x32"), \ + _PyASCIIObject_INIT("\x33"), \ + _PyASCIIObject_INIT("\x34"), \ + _PyASCIIObject_INIT("\x35"), \ + _PyASCIIObject_INIT("\x36"), \ + _PyASCIIObject_INIT("\x37"), \ + _PyASCIIObject_INIT("\x38"), \ + _PyASCIIObject_INIT("\x39"), \ + _PyASCIIObject_INIT("\x3a"), \ + _PyASCIIObject_INIT("\x3b"), \ + _PyASCIIObject_INIT("\x3c"), \ + _PyASCIIObject_INIT("\x3d"), \ + _PyASCIIObject_INIT("\x3e"), \ + _PyASCIIObject_INIT("\x3f"), \ + _PyASCIIObject_INIT("\x40"), \ + _PyASCIIObject_INIT("\x41"), \ + _PyASCIIObject_INIT("\x42"), \ + _PyASCIIObject_INIT("\x43"), \ + _PyASCIIObject_INIT("\x44"), \ + _PyASCIIObject_INIT("\x45"), \ + _PyASCIIObject_INIT("\x46"), \ + _PyASCIIObject_INIT("\x47"), \ + _PyASCIIObject_INIT("\x48"), \ + _PyASCIIObject_INIT("\x49"), \ + _PyASCIIObject_INIT("\x4a"), \ + _PyASCIIObject_INIT("\x4b"), \ + _PyASCIIObject_INIT("\x4c"), \ + _PyASCIIObject_INIT("\x4d"), \ + _PyASCIIObject_INIT("\x4e"), \ + _PyASCIIObject_INIT("\x4f"), \ + _PyASCIIObject_INIT("\x50"), \ + _PyASCIIObject_INIT("\x51"), \ + _PyASCIIObject_INIT("\x52"), \ + _PyASCIIObject_INIT("\x53"), \ + _PyASCIIObject_INIT("\x54"), \ + _PyASCIIObject_INIT("\x55"), \ + _PyASCIIObject_INIT("\x56"), \ + _PyASCIIObject_INIT("\x57"), \ + _PyASCIIObject_INIT("\x58"), \ + _PyASCIIObject_INIT("\x59"), \ + _PyASCIIObject_INIT("\x5a"), \ + _PyASCIIObject_INIT("\x5b"), \ + _PyASCIIObject_INIT("\x5c"), \ + _PyASCIIObject_INIT("\x5d"), \ + _PyASCIIObject_INIT("\x5e"), \ + _PyASCIIObject_INIT("\x5f"), \ + _PyASCIIObject_INIT("\x60"), \ + _PyASCIIObject_INIT("\x61"), \ + _PyASCIIObject_INIT("\x62"), \ + _PyASCIIObject_INIT("\x63"), \ + _PyASCIIObject_INIT("\x64"), \ + _PyASCIIObject_INIT("\x65"), \ + _PyASCIIObject_INIT("\x66"), \ + _PyASCIIObject_INIT("\x67"), \ + _PyASCIIObject_INIT("\x68"), \ + _PyASCIIObject_INIT("\x69"), \ + _PyASCIIObject_INIT("\x6a"), \ + _PyASCIIObject_INIT("\x6b"), \ + _PyASCIIObject_INIT("\x6c"), \ + _PyASCIIObject_INIT("\x6d"), \ + _PyASCIIObject_INIT("\x6e"), \ + _PyASCIIObject_INIT("\x6f"), \ + _PyASCIIObject_INIT("\x70"), \ + _PyASCIIObject_INIT("\x71"), \ + _PyASCIIObject_INIT("\x72"), \ + _PyASCIIObject_INIT("\x73"), \ + _PyASCIIObject_INIT("\x74"), \ + _PyASCIIObject_INIT("\x75"), \ + _PyASCIIObject_INIT("\x76"), \ + _PyASCIIObject_INIT("\x77"), \ + _PyASCIIObject_INIT("\x78"), \ + _PyASCIIObject_INIT("\x79"), \ + _PyASCIIObject_INIT("\x7a"), \ + _PyASCIIObject_INIT("\x7b"), \ + _PyASCIIObject_INIT("\x7c"), \ + _PyASCIIObject_INIT("\x7d"), \ + _PyASCIIObject_INIT("\x7e"), \ + _PyASCIIObject_INIT("\x7f"), \ +} + +#define _Py_str_latin1_INIT { \ + _PyUnicode_LATIN1_INIT("\x80", "\xc2\x80"), \ + _PyUnicode_LATIN1_INIT("\x81", "\xc2\x81"), \ + _PyUnicode_LATIN1_INIT("\x82", "\xc2\x82"), \ + _PyUnicode_LATIN1_INIT("\x83", "\xc2\x83"), \ + _PyUnicode_LATIN1_INIT("\x84", "\xc2\x84"), \ + _PyUnicode_LATIN1_INIT("\x85", "\xc2\x85"), \ + _PyUnicode_LATIN1_INIT("\x86", "\xc2\x86"), \ + _PyUnicode_LATIN1_INIT("\x87", "\xc2\x87"), \ + _PyUnicode_LATIN1_INIT("\x88", "\xc2\x88"), \ + _PyUnicode_LATIN1_INIT("\x89", "\xc2\x89"), \ + _PyUnicode_LATIN1_INIT("\x8a", "\xc2\x8a"), \ + _PyUnicode_LATIN1_INIT("\x8b", "\xc2\x8b"), \ + _PyUnicode_LATIN1_INIT("\x8c", "\xc2\x8c"), \ + _PyUnicode_LATIN1_INIT("\x8d", "\xc2\x8d"), \ + _PyUnicode_LATIN1_INIT("\x8e", "\xc2\x8e"), \ + _PyUnicode_LATIN1_INIT("\x8f", "\xc2\x8f"), \ + _PyUnicode_LATIN1_INIT("\x90", "\xc2\x90"), \ + _PyUnicode_LATIN1_INIT("\x91", "\xc2\x91"), \ + _PyUnicode_LATIN1_INIT("\x92", "\xc2\x92"), \ + _PyUnicode_LATIN1_INIT("\x93", "\xc2\x93"), \ + _PyUnicode_LATIN1_INIT("\x94", "\xc2\x94"), \ + _PyUnicode_LATIN1_INIT("\x95", "\xc2\x95"), \ + _PyUnicode_LATIN1_INIT("\x96", "\xc2\x96"), \ + _PyUnicode_LATIN1_INIT("\x97", "\xc2\x97"), \ + _PyUnicode_LATIN1_INIT("\x98", "\xc2\x98"), \ + _PyUnicode_LATIN1_INIT("\x99", "\xc2\x99"), \ + _PyUnicode_LATIN1_INIT("\x9a", "\xc2\x9a"), \ + _PyUnicode_LATIN1_INIT("\x9b", "\xc2\x9b"), \ + _PyUnicode_LATIN1_INIT("\x9c", "\xc2\x9c"), \ + _PyUnicode_LATIN1_INIT("\x9d", "\xc2\x9d"), \ + _PyUnicode_LATIN1_INIT("\x9e", "\xc2\x9e"), \ + _PyUnicode_LATIN1_INIT("\x9f", "\xc2\x9f"), \ + _PyUnicode_LATIN1_INIT("\xa0", "\xc2\xa0"), \ + _PyUnicode_LATIN1_INIT("\xa1", "\xc2\xa1"), \ + _PyUnicode_LATIN1_INIT("\xa2", "\xc2\xa2"), \ + _PyUnicode_LATIN1_INIT("\xa3", "\xc2\xa3"), \ + _PyUnicode_LATIN1_INIT("\xa4", "\xc2\xa4"), \ + _PyUnicode_LATIN1_INIT("\xa5", "\xc2\xa5"), \ + _PyUnicode_LATIN1_INIT("\xa6", "\xc2\xa6"), \ + _PyUnicode_LATIN1_INIT("\xa7", "\xc2\xa7"), \ + _PyUnicode_LATIN1_INIT("\xa8", "\xc2\xa8"), \ + _PyUnicode_LATIN1_INIT("\xa9", "\xc2\xa9"), \ + _PyUnicode_LATIN1_INIT("\xaa", "\xc2\xaa"), \ + _PyUnicode_LATIN1_INIT("\xab", "\xc2\xab"), \ + _PyUnicode_LATIN1_INIT("\xac", "\xc2\xac"), \ + _PyUnicode_LATIN1_INIT("\xad", "\xc2\xad"), \ + _PyUnicode_LATIN1_INIT("\xae", "\xc2\xae"), \ + _PyUnicode_LATIN1_INIT("\xaf", "\xc2\xaf"), \ + _PyUnicode_LATIN1_INIT("\xb0", "\xc2\xb0"), \ + _PyUnicode_LATIN1_INIT("\xb1", "\xc2\xb1"), \ + _PyUnicode_LATIN1_INIT("\xb2", "\xc2\xb2"), \ + _PyUnicode_LATIN1_INIT("\xb3", "\xc2\xb3"), \ + _PyUnicode_LATIN1_INIT("\xb4", "\xc2\xb4"), \ + _PyUnicode_LATIN1_INIT("\xb5", "\xc2\xb5"), \ + _PyUnicode_LATIN1_INIT("\xb6", "\xc2\xb6"), \ + _PyUnicode_LATIN1_INIT("\xb7", "\xc2\xb7"), \ + _PyUnicode_LATIN1_INIT("\xb8", "\xc2\xb8"), \ + _PyUnicode_LATIN1_INIT("\xb9", "\xc2\xb9"), \ + _PyUnicode_LATIN1_INIT("\xba", "\xc2\xba"), \ + _PyUnicode_LATIN1_INIT("\xbb", "\xc2\xbb"), \ + _PyUnicode_LATIN1_INIT("\xbc", "\xc2\xbc"), \ + _PyUnicode_LATIN1_INIT("\xbd", "\xc2\xbd"), \ + _PyUnicode_LATIN1_INIT("\xbe", "\xc2\xbe"), \ + _PyUnicode_LATIN1_INIT("\xbf", "\xc2\xbf"), \ + _PyUnicode_LATIN1_INIT("\xc0", "\xc3\x80"), \ + _PyUnicode_LATIN1_INIT("\xc1", "\xc3\x81"), \ + _PyUnicode_LATIN1_INIT("\xc2", "\xc3\x82"), \ + _PyUnicode_LATIN1_INIT("\xc3", "\xc3\x83"), \ + _PyUnicode_LATIN1_INIT("\xc4", "\xc3\x84"), \ + _PyUnicode_LATIN1_INIT("\xc5", "\xc3\x85"), \ + _PyUnicode_LATIN1_INIT("\xc6", "\xc3\x86"), \ + _PyUnicode_LATIN1_INIT("\xc7", "\xc3\x87"), \ + _PyUnicode_LATIN1_INIT("\xc8", "\xc3\x88"), \ + _PyUnicode_LATIN1_INIT("\xc9", "\xc3\x89"), \ + _PyUnicode_LATIN1_INIT("\xca", "\xc3\x8a"), \ + _PyUnicode_LATIN1_INIT("\xcb", "\xc3\x8b"), \ + _PyUnicode_LATIN1_INIT("\xcc", "\xc3\x8c"), \ + _PyUnicode_LATIN1_INIT("\xcd", "\xc3\x8d"), \ + _PyUnicode_LATIN1_INIT("\xce", "\xc3\x8e"), \ + _PyUnicode_LATIN1_INIT("\xcf", "\xc3\x8f"), \ + _PyUnicode_LATIN1_INIT("\xd0", "\xc3\x90"), \ + _PyUnicode_LATIN1_INIT("\xd1", "\xc3\x91"), \ + _PyUnicode_LATIN1_INIT("\xd2", "\xc3\x92"), \ + _PyUnicode_LATIN1_INIT("\xd3", "\xc3\x93"), \ + _PyUnicode_LATIN1_INIT("\xd4", "\xc3\x94"), \ + _PyUnicode_LATIN1_INIT("\xd5", "\xc3\x95"), \ + _PyUnicode_LATIN1_INIT("\xd6", "\xc3\x96"), \ + _PyUnicode_LATIN1_INIT("\xd7", "\xc3\x97"), \ + _PyUnicode_LATIN1_INIT("\xd8", "\xc3\x98"), \ + _PyUnicode_LATIN1_INIT("\xd9", "\xc3\x99"), \ + _PyUnicode_LATIN1_INIT("\xda", "\xc3\x9a"), \ + _PyUnicode_LATIN1_INIT("\xdb", "\xc3\x9b"), \ + _PyUnicode_LATIN1_INIT("\xdc", "\xc3\x9c"), \ + _PyUnicode_LATIN1_INIT("\xdd", "\xc3\x9d"), \ + _PyUnicode_LATIN1_INIT("\xde", "\xc3\x9e"), \ + _PyUnicode_LATIN1_INIT("\xdf", "\xc3\x9f"), \ + _PyUnicode_LATIN1_INIT("\xe0", "\xc3\xa0"), \ + _PyUnicode_LATIN1_INIT("\xe1", "\xc3\xa1"), \ + _PyUnicode_LATIN1_INIT("\xe2", "\xc3\xa2"), \ + _PyUnicode_LATIN1_INIT("\xe3", "\xc3\xa3"), \ + _PyUnicode_LATIN1_INIT("\xe4", "\xc3\xa4"), \ + _PyUnicode_LATIN1_INIT("\xe5", "\xc3\xa5"), \ + _PyUnicode_LATIN1_INIT("\xe6", "\xc3\xa6"), \ + _PyUnicode_LATIN1_INIT("\xe7", "\xc3\xa7"), \ + _PyUnicode_LATIN1_INIT("\xe8", "\xc3\xa8"), \ + _PyUnicode_LATIN1_INIT("\xe9", "\xc3\xa9"), \ + _PyUnicode_LATIN1_INIT("\xea", "\xc3\xaa"), \ + _PyUnicode_LATIN1_INIT("\xeb", "\xc3\xab"), \ + _PyUnicode_LATIN1_INIT("\xec", "\xc3\xac"), \ + _PyUnicode_LATIN1_INIT("\xed", "\xc3\xad"), \ + _PyUnicode_LATIN1_INIT("\xee", "\xc3\xae"), \ + _PyUnicode_LATIN1_INIT("\xef", "\xc3\xaf"), \ + _PyUnicode_LATIN1_INIT("\xf0", "\xc3\xb0"), \ + _PyUnicode_LATIN1_INIT("\xf1", "\xc3\xb1"), \ + _PyUnicode_LATIN1_INIT("\xf2", "\xc3\xb2"), \ + _PyUnicode_LATIN1_INIT("\xf3", "\xc3\xb3"), \ + _PyUnicode_LATIN1_INIT("\xf4", "\xc3\xb4"), \ + _PyUnicode_LATIN1_INIT("\xf5", "\xc3\xb5"), \ + _PyUnicode_LATIN1_INIT("\xf6", "\xc3\xb6"), \ + _PyUnicode_LATIN1_INIT("\xf7", "\xc3\xb7"), \ + _PyUnicode_LATIN1_INIT("\xf8", "\xc3\xb8"), \ + _PyUnicode_LATIN1_INIT("\xf9", "\xc3\xb9"), \ + _PyUnicode_LATIN1_INIT("\xfa", "\xc3\xba"), \ + _PyUnicode_LATIN1_INIT("\xfb", "\xc3\xbb"), \ + _PyUnicode_LATIN1_INIT("\xfc", "\xc3\xbc"), \ + _PyUnicode_LATIN1_INIT("\xfd", "\xc3\xbd"), \ + _PyUnicode_LATIN1_INIT("\xfe", "\xc3\xbe"), \ + _PyUnicode_LATIN1_INIT("\xff", "\xc3\xbf"), \ +} +/* End auto-generated code */ + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_RUNTIME_INIT_GENERATED_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_semaphore.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_semaphore.h new file mode 100644 index 000000000..ffcc6d803 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_semaphore.h @@ -0,0 +1,65 @@ +// The _PySemaphore API a simplified cross-platform semaphore used to implement +// wakeup/sleep. +#ifndef Py_INTERNAL_SEMAPHORE_H +#define Py_INTERNAL_SEMAPHORE_H + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_pythread.h" // _POSIX_SEMAPHORES + +#ifdef MS_WINDOWS +# define WIN32_LEAN_AND_MEAN +# include +#elif defined(HAVE_PTHREAD_H) +# include +#elif defined(HAVE_PTHREAD_STUBS) +# include "cpython/pthread_stubs.h" +#else +# error "Require native threads. See https://bugs.python.org/issue31370" +#endif + +#if (defined(_POSIX_SEMAPHORES) && (_POSIX_SEMAPHORES+0) != -1 && \ + defined(HAVE_SEM_TIMEDWAIT)) +# define _Py_USE_SEMAPHORES +# include +#endif + + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct _PySemaphore { +#if defined(MS_WINDOWS) + HANDLE platform_sem; +#elif defined(_Py_USE_SEMAPHORES) + sem_t platform_sem; +#else + pthread_mutex_t mutex; + pthread_cond_t cond; + int counter; +#endif +} _PySemaphore; + +// Puts the current thread to sleep until _PySemaphore_Wakeup() is called. +// If `detach` is true, then the thread will detach/release the GIL while +// sleeping. +PyAPI_FUNC(int) +_PySemaphore_Wait(_PySemaphore *sema, PyTime_t timeout_ns, int detach); + +// Wakes up a single thread waiting on sema. Note that _PySemaphore_Wakeup() +// can be called before _PySemaphore_Wait(). +PyAPI_FUNC(void) +_PySemaphore_Wakeup(_PySemaphore *sema); + +// Initializes/destroys a semaphore +PyAPI_FUNC(void) _PySemaphore_Init(_PySemaphore *sema); +PyAPI_FUNC(void) _PySemaphore_Destroy(_PySemaphore *sema); + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_SEMAPHORE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_setobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_setobject.h new file mode 100644 index 000000000..0494c07fe --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_setobject.h @@ -0,0 +1,39 @@ +#ifndef Py_INTERNAL_SETOBJECT_H +#define Py_INTERNAL_SETOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +// Export for '_abc' shared extension +PyAPI_FUNC(int) _PySet_NextEntry( + PyObject *set, + Py_ssize_t *pos, + PyObject **key, + Py_hash_t *hash); + +// Export for '_pickle' shared extension +PyAPI_FUNC(int) _PySet_NextEntryRef( + PyObject *set, + Py_ssize_t *pos, + PyObject **key, + Py_hash_t *hash); + +// Export for '_pickle' shared extension +PyAPI_FUNC(int) _PySet_Update(PyObject *set, PyObject *iterable); + +// Export for the gdb plugin's (python-gdb.py) benefit +PyAPI_DATA(PyObject *) _PySet_Dummy; + +PyAPI_FUNC(int) _PySet_Contains(PySetObject *so, PyObject *key); + +// Clears the set without acquiring locks. Used by _PyCode_Fini. +extern void _PySet_ClearInternal(PySetObject *so); + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_SETOBJECT_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_signal.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_signal.h new file mode 100644 index 000000000..47213a34a --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_signal.h @@ -0,0 +1,108 @@ +// Define Py_NSIG constant for signal handling. + +#ifndef Py_INTERNAL_SIGNAL_H +#define Py_INTERNAL_SIGNAL_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include // NSIG + + +// Restore signals that the interpreter has called SIG_IGN on to SIG_DFL. +// Export for '_posixsubprocess' shared extension. +PyAPI_FUNC(void) _Py_RestoreSignals(void); + +#ifdef _SIG_MAXSIG + // gh-91145: On FreeBSD, defines NSIG as 32: it doesn't include + // realtime signals: [SIGRTMIN,SIGRTMAX]. Use _SIG_MAXSIG instead. For + // example on x86-64 FreeBSD 13, SIGRTMAX is 126 and _SIG_MAXSIG is 128. +# define Py_NSIG _SIG_MAXSIG +#elif defined(NSIG) +# define Py_NSIG NSIG +#elif defined(_NSIG) +# define Py_NSIG _NSIG // BSD/SysV +#elif defined(_SIGMAX) +# define Py_NSIG (_SIGMAX + 1) // QNX +#elif defined(SIGMAX) +# define Py_NSIG (SIGMAX + 1) // djgpp +#else +# define Py_NSIG 64 // Use a reasonable default value +#endif + +#define INVALID_FD (-1) + +struct _signals_runtime_state { + struct { + // tripped and func should be accessed using atomic ops. + int tripped; + PyObject* func; + } handlers[Py_NSIG]; + + volatile struct { +#ifdef MS_WINDOWS + /* This would be "SOCKET fd" if were always included. + It isn't so we must cast to SOCKET where appropriate. */ + volatile int fd; +#elif defined(__VXWORKS__) + int fd; +#else + sig_atomic_t fd; +#endif + + int warn_on_full_buffer; +#ifdef MS_WINDOWS + int use_send; +#endif + } wakeup; + + /* Speed up sigcheck() when none tripped. + is_tripped should be accessed using atomic ops. */ + int is_tripped; + + /* These objects necessarily belong to the main interpreter. */ + PyObject *default_handler; + PyObject *ignore_handler; + +#ifdef MS_WINDOWS + /* This would be "HANDLE sigint_event" if were always included. + It isn't so we must cast to HANDLE everywhere "sigint_event" is used. */ + void *sigint_event; +#endif + + /* True if the main interpreter thread exited due to an unhandled + * KeyboardInterrupt exception, suggesting the user pressed ^C. */ + int unhandled_keyboard_interrupt; +}; + +#ifdef MS_WINDOWS +# define _signals_WAKEUP_INIT \ + {.fd = INVALID_FD, .warn_on_full_buffer = 1, .use_send = 0} +#else +# define _signals_WAKEUP_INIT \ + {.fd = INVALID_FD, .warn_on_full_buffer = 1} +#endif + +#define _signals_RUNTIME_INIT \ + { \ + .wakeup = _signals_WAKEUP_INIT, \ + } + + +// Export for '_multiprocessing' shared extension +PyAPI_FUNC(int) _PyOS_IsMainThread(void); + +#ifdef MS_WINDOWS +// is not included by Python.h so use void* instead of HANDLE. +// Export for '_multiprocessing' shared extension +PyAPI_FUNC(void*) _PyOS_SigintEvent(void); +#endif + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_SIGNAL_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_sliceobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_sliceobject.h new file mode 100644 index 000000000..ba8b1f1cb --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_sliceobject.h @@ -0,0 +1,20 @@ +#ifndef Py_INTERNAL_SLICEOBJECT_H +#define Py_INTERNAL_SLICEOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +/* runtime lifecycle */ + +PyAPI_FUNC(PyObject *) +_PyBuildSlice_ConsumeRefs(PyObject *start, PyObject *stop); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_SLICEOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_stackref.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_stackref.h new file mode 100644 index 000000000..938981747 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_stackref.h @@ -0,0 +1,195 @@ +#ifndef Py_INTERNAL_STACKREF_H +#define Py_INTERNAL_STACKREF_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include + +typedef union { + uintptr_t bits; +} _PyStackRef; + +static const _PyStackRef Py_STACKREF_NULL = { .bits = 0 }; + +#define Py_TAG_DEFERRED (1) + +// Gets a PyObject * from a _PyStackRef +#if defined(Py_GIL_DISABLED) +static inline PyObject * +PyStackRef_Get(_PyStackRef tagged) +{ + PyObject *cleared = ((PyObject *)((tagged).bits & (~Py_TAG_DEFERRED))); + return cleared; +} +#else +# define PyStackRef_Get(tagged) ((PyObject *)((tagged).bits)) +#endif + +// Converts a PyObject * to a PyStackRef, stealing the reference. +#if defined(Py_GIL_DISABLED) +static inline _PyStackRef +_PyStackRef_StealRef(PyObject *obj) +{ + // Make sure we don't take an already tagged value. + assert(((uintptr_t)obj & Py_TAG_DEFERRED) == 0); + return ((_PyStackRef){.bits = ((uintptr_t)(obj))}); +} +# define PyStackRef_StealRef(obj) _PyStackRef_StealRef(_PyObject_CAST(obj)) +#else +# define PyStackRef_StealRef(obj) ((_PyStackRef){.bits = ((uintptr_t)(obj))}) +#endif + +// Converts a PyObject * to a PyStackRef, with a new reference +#if defined(Py_GIL_DISABLED) +static inline _PyStackRef +_PyStackRef_NewRefDeferred(PyObject *obj) +{ + // Make sure we don't take an already tagged value. + assert(((uintptr_t)obj & Py_TAG_DEFERRED) == 0); + assert(obj != NULL); + if (_PyObject_HasDeferredRefcount(obj)) { + return (_PyStackRef){ .bits = (uintptr_t)obj | Py_TAG_DEFERRED }; + } + else { + return (_PyStackRef){ .bits = (uintptr_t)Py_NewRef(obj) }; + } +} +# define PyStackRef_NewRefDeferred(obj) _PyStackRef_NewRefDeferred(_PyObject_CAST(obj)) +#else +# define PyStackRef_NewRefDeferred(obj) PyStackRef_NewRef(((_PyStackRef){.bits = ((uintptr_t)(obj))})) +#endif + +#if defined(Py_GIL_DISABLED) +static inline _PyStackRef +_PyStackRef_XNewRefDeferred(PyObject *obj) +{ + // Make sure we don't take an already tagged value. + assert(((uintptr_t)obj & Py_TAG_DEFERRED) == 0); + if (obj == NULL) { + return Py_STACKREF_NULL; + } + return _PyStackRef_NewRefDeferred(obj); +} +# define PyStackRef_XNewRefDeferred(obj) _PyStackRef_XNewRefDeferred(_PyObject_CAST(obj)) +#else +# define PyStackRef_XNewRefDeferred(obj) PyStackRef_XNewRef(((_PyStackRef){.bits = ((uintptr_t)(obj))})) +#endif + +// Converts a PyStackRef back to a PyObject *. +#if defined(Py_GIL_DISABLED) +static inline PyObject * +PyStackRef_StealObject(_PyStackRef tagged) +{ + if ((tagged.bits & Py_TAG_DEFERRED) == Py_TAG_DEFERRED) { + assert(_PyObject_HasDeferredRefcount(PyStackRef_Get(tagged))); + return Py_NewRef(PyStackRef_Get(tagged)); + } + return PyStackRef_Get(tagged); +} +#else +# define PyStackRef_StealObject(tagged) PyStackRef_Get(tagged) +#endif + +static inline void +_Py_untag_stack_borrowed(PyObject **dst, const _PyStackRef *src, size_t length) +{ + for (size_t i = 0; i < length; i++) { + dst[i] = PyStackRef_Get(src[i]); + } +} + +static inline void +_Py_untag_stack_steal(PyObject **dst, const _PyStackRef *src, size_t length) +{ + for (size_t i = 0; i < length; i++) { + dst[i] = PyStackRef_StealObject(src[i]); + } +} + + +#define PyStackRef_XSETREF(dst, src) \ + do { \ + _PyStackRef *_tmp_dst_ptr = &(dst); \ + _PyStackRef _tmp_old_dst = (*_tmp_dst_ptr); \ + *_tmp_dst_ptr = (src); \ + PyStackRef_XDECREF(_tmp_old_dst); \ + } while (0) + +#define PyStackRef_SETREF(dst, src) \ + do { \ + _PyStackRef *_tmp_dst_ptr = &(dst); \ + _PyStackRef _tmp_old_dst = (*_tmp_dst_ptr); \ + *_tmp_dst_ptr = (src); \ + PyStackRef_DECREF(_tmp_old_dst); \ + } while (0) + +#define PyStackRef_CLEAR(op) \ + do { \ + _PyStackRef *_tmp_op_ptr = &(op); \ + _PyStackRef _tmp_old_op = (*_tmp_op_ptr); \ + if (_tmp_old_op.bits != Py_STACKREF_NULL.bits) { \ + *_tmp_op_ptr = Py_STACKREF_NULL; \ + PyStackRef_DECREF(_tmp_old_op); \ + } \ + } while (0) + +#if defined(Py_GIL_DISABLED) +static inline void +PyStackRef_DECREF(_PyStackRef tagged) +{ + if ((tagged.bits & Py_TAG_DEFERRED) == Py_TAG_DEFERRED) { + return; + } + Py_DECREF(PyStackRef_Get(tagged)); +} +#else +# define PyStackRef_DECREF(op) Py_DECREF(PyStackRef_Get(op)) +#endif + +#if defined(Py_GIL_DISABLED) +static inline void +PyStackRef_INCREF(_PyStackRef tagged) +{ + if ((tagged.bits & Py_TAG_DEFERRED) == Py_TAG_DEFERRED) { + assert(_PyObject_HasDeferredRefcount(PyStackRef_Get(tagged))); + return; + } + Py_INCREF(PyStackRef_Get(tagged)); +} +#else +# define PyStackRef_INCREF(op) Py_INCREF(PyStackRef_Get(op)) +#endif + +static inline void +PyStackRef_XDECREF(_PyStackRef op) +{ + if (op.bits != Py_STACKREF_NULL.bits) { + PyStackRef_DECREF(op); + } +} + +static inline _PyStackRef +PyStackRef_NewRef(_PyStackRef obj) +{ + PyStackRef_INCREF(obj); + return obj; +} + +static inline _PyStackRef +PyStackRef_XNewRef(_PyStackRef obj) +{ + if (obj.bits == Py_STACKREF_NULL.bits) { + return obj; + } + return PyStackRef_NewRef(obj); +} + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_STACKREF_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_strhex.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_strhex.h new file mode 100644 index 000000000..225f42391 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_strhex.h @@ -0,0 +1,39 @@ +#ifndef Py_INTERNAL_STRHEX_H +#define Py_INTERNAL_STRHEX_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +// Returns a str() containing the hex representation of argbuf. +// Export for '_hashlib' shared extension. +PyAPI_FUNC(PyObject*) _Py_strhex(const + char* argbuf, + const Py_ssize_t arglen); + +// Returns a bytes() containing the ASCII hex representation of argbuf. +extern PyObject* _Py_strhex_bytes( + const char* argbuf, + const Py_ssize_t arglen); + +// These variants include support for a separator between every N bytes: +extern PyObject* _Py_strhex_with_sep( + const char* argbuf, + const Py_ssize_t arglen, + PyObject* sep, + const int bytes_per_group); + +// Export for 'binascii' shared extension +PyAPI_FUNC(PyObject*) _Py_strhex_bytes_with_sep( + const char* argbuf, + const Py_ssize_t arglen, + PyObject* sep, + const int bytes_per_group); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_STRHEX_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_structseq.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_structseq.h new file mode 100644 index 000000000..5cff16562 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_structseq.h @@ -0,0 +1,40 @@ +#ifndef Py_INTERNAL_STRUCTSEQ_H +#define Py_INTERNAL_STRUCTSEQ_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +/* other API */ + +// Export for '_curses' shared extension +PyAPI_FUNC(PyTypeObject*) _PyStructSequence_NewType( + PyStructSequence_Desc *desc, + unsigned long tp_flags); + +extern int _PyStructSequence_InitBuiltinWithFlags( + PyInterpreterState *interp, + PyTypeObject *type, + PyStructSequence_Desc *desc, + unsigned long tp_flags); + +static inline int +_PyStructSequence_InitBuiltin(PyInterpreterState *interp, + PyTypeObject *type, + PyStructSequence_Desc *desc) +{ + return _PyStructSequence_InitBuiltinWithFlags(interp, type, desc, 0); +} + +extern void _PyStructSequence_FiniBuiltin( + PyInterpreterState *interp, + PyTypeObject *type); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_STRUCTSEQ_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_symtable.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_symtable.h new file mode 100644 index 000000000..90252bf83 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_symtable.h @@ -0,0 +1,204 @@ +#ifndef Py_INTERNAL_SYMTABLE_H +#define Py_INTERNAL_SYMTABLE_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +struct _mod; // Type defined in pycore_ast.h + +typedef enum _block_type { + FunctionBlock, ClassBlock, ModuleBlock, + // Used for annotations if 'from __future__ import annotations' is active. + // Annotation blocks cannot bind names and are not evaluated. + AnnotationBlock, + + // The following blocks are used for generics and type aliases. These work + // mostly like functions (see PEP 695 for details). The three different + // blocks function identically; they are different enum entries only so + // that error messages can be more precise. + + // The block to enter when processing a "type" (PEP 695) construction, + // e.g., "type MyGeneric[T] = list[T]". + TypeAliasBlock, + // The block to enter when processing a "generic" (PEP 695) object, + // e.g., "def foo[T](): pass" or "class A[T]: pass". + TypeParametersBlock, + // The block to enter when processing the bound, the constraint tuple + // or the default value of a single "type variable" in the formal sense, + // i.e., a TypeVar, a TypeVarTuple or a ParamSpec object (the latter two + // do not support a bound or a constraint tuple). + TypeVariableBlock, +} _Py_block_ty; + +typedef enum _comprehension_type { + NoComprehension = 0, + ListComprehension = 1, + DictComprehension = 2, + SetComprehension = 3, + GeneratorExpression = 4 } _Py_comprehension_ty; + +/* source location information */ +typedef struct { + int lineno; + int end_lineno; + int col_offset; + int end_col_offset; +} _Py_SourceLocation; + +#define SRC_LOCATION_FROM_AST(n) \ + (_Py_SourceLocation){ \ + .lineno = (n)->lineno, \ + .end_lineno = (n)->end_lineno, \ + .col_offset = (n)->col_offset, \ + .end_col_offset = (n)->end_col_offset } + +static const _Py_SourceLocation NO_LOCATION = {-1, -1, -1, -1}; + +/* __future__ information */ +typedef struct { + int ff_features; /* flags set by future statements */ + _Py_SourceLocation ff_location; /* location of last future statement */ +} _PyFutureFeatures; + +struct _symtable_entry; + +struct symtable { + PyObject *st_filename; /* name of file being compiled, + decoded from the filesystem encoding */ + struct _symtable_entry *st_cur; /* current symbol table entry */ + struct _symtable_entry *st_top; /* symbol table entry for module */ + PyObject *st_blocks; /* dict: map AST node addresses + * to symbol table entries */ + PyObject *st_stack; /* list: stack of namespace info */ + PyObject *st_global; /* borrowed ref to st_top->ste_symbols */ + int st_nblocks; /* number of blocks used. kept for + consistency with the corresponding + compiler structure */ + PyObject *st_private; /* name of current class or NULL */ + _PyFutureFeatures *st_future; /* module's future features that affect + the symbol table */ + int recursion_depth; /* current recursion depth */ + int recursion_limit; /* recursion limit */ +}; + +typedef struct _symtable_entry { + PyObject_HEAD + PyObject *ste_id; /* int: key in ste_table->st_blocks */ + PyObject *ste_symbols; /* dict: variable names to flags */ + PyObject *ste_name; /* string: name of current block */ + PyObject *ste_varnames; /* list of function parameters */ + PyObject *ste_children; /* list of child blocks */ + PyObject *ste_directives;/* locations of global and nonlocal statements */ + PyObject *ste_mangled_names; /* set of names for which mangling should be applied */ + + _Py_block_ty ste_type; + // Optional string set by symtable.c and used when reporting errors. + // The content of that string is a description of the current "context". + // + // For instance, if we are processing the default value of the type + // variable "T" in "def foo[T = int](): pass", `ste_scope_info` is + // set to "a TypeVar default". + const char *ste_scope_info; + + int ste_nested; /* true if block is nested */ + unsigned ste_free : 1; /* true if block has free variables */ + unsigned ste_child_free : 1; /* true if a child block has free vars, + 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 */ + _Py_comprehension_ty ste_comprehension; /* Kind of comprehension (if any) */ + 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 + an argument */ + unsigned ste_needs_class_closure : 1; /* for class scopes, true if a + closure over __class__ + should be created */ + unsigned ste_needs_classdict : 1; /* for class scopes, true if a closure + over the class dict should be created */ + unsigned ste_comp_inlined : 1; /* true if this comprehension is inlined */ + unsigned ste_comp_iter_target : 1; /* true if visiting comprehension target */ + unsigned ste_can_see_class_scope : 1; /* true if this block can see names bound in an + enclosing class scope */ + 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_end_lineno; /* end line of block */ + int ste_end_col_offset; /* end offset of first line of block */ + int ste_opt_lineno; /* lineno of last exec or import * */ + int ste_opt_col_offset; /* offset of last exec or import * */ + struct symtable *ste_table; +} PySTEntryObject; + +extern PyTypeObject PySTEntry_Type; + +#define PySTEntry_Check(op) Py_IS_TYPE((op), &PySTEntry_Type) + +extern long _PyST_GetSymbol(PySTEntryObject *, PyObject *); +extern int _PyST_GetScope(PySTEntryObject *, PyObject *); +extern int _PyST_IsFunctionLike(PySTEntryObject *); + +extern struct symtable* _PySymtable_Build( + struct _mod *mod, + PyObject *filename, + _PyFutureFeatures *future); +extern PySTEntryObject* _PySymtable_Lookup(struct symtable *, void *); + +extern void _PySymtable_Free(struct symtable *); + +extern PyObject *_Py_MaybeMangle(PyObject *privateobj, PySTEntryObject *ste, PyObject *name); +extern PyObject* _Py_Mangle(PyObject *p, PyObject *name); + +/* Flags for def-use information */ + +#define DEF_GLOBAL 1 /* global stmt */ +#define DEF_LOCAL 2 /* assignment in code block */ +#define DEF_PARAM (2<<1) /* formal parameter */ +#define DEF_NONLOCAL (2<<2) /* nonlocal stmt */ +#define USE (2<<3) /* name is used */ +#define DEF_FREE (2<<4) /* name used but not defined in nested block */ +#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_TYPE_PARAM (2<<9) /* this name is a type parameter */ +#define DEF_COMP_CELL (2<<10) /* this name is a cell in an inlined comprehension */ + +#define DEF_BOUND (DEF_LOCAL | DEF_PARAM | DEF_IMPORT) + +/* GLOBAL_EXPLICIT and GLOBAL_IMPLICIT are used internally by the symbol + table. GLOBAL is returned from PyST_GetScope() for either of them. + It is stored in ste_symbols at bits 13-16. +*/ +#define SCOPE_OFFSET 12 +#define SCOPE_MASK (DEF_GLOBAL | DEF_LOCAL | DEF_PARAM | DEF_NONLOCAL) + +#define LOCAL 1 +#define GLOBAL_EXPLICIT 2 +#define GLOBAL_IMPLICIT 3 +#define FREE 4 +#define CELL 5 + +#define GENERATOR 1 +#define GENERATOR_EXPRESSION 2 + +// Used by symtablemodule.c +extern struct symtable* _Py_SymtableStringObjectFlags( + const char *str, + PyObject *filename, + int start, + PyCompilerFlags *flags); + +int _PyFuture_FromAST( + struct _mod * mod, + PyObject *filename, + _PyFutureFeatures* futures); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_SYMTABLE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_sysmodule.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_sysmodule.h new file mode 100644 index 000000000..9b8eafd3d --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_sysmodule.h @@ -0,0 +1,35 @@ +#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 + +// Export for '_pickle' shared extension +PyAPI_FUNC(PyObject*) _PySys_GetAttr(PyThreadState *tstate, PyObject *name); + +// Export for '_pickle' shared extension +PyAPI_FUNC(size_t) _PySys_GetSizeOf(PyObject *); + +extern int _PySys_Audit( + PyThreadState *tstate, + const char *event, + const char *argFormat, + ...); + +// _PySys_ClearAuditHooks() must not be exported: use extern rather than +// PyAPI_FUNC(). We want minimal exposure of this function. +extern void _PySys_ClearAuditHooks(PyThreadState *tstate); + +extern int _PySys_SetAttr(PyObject *, PyObject *); + +extern int _PySys_ClearAttrString(PyInterpreterState *interp, + const char *name, int verbose); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_SYSMODULE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_time.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_time.h new file mode 100644 index 000000000..205ac5d37 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_time.h @@ -0,0 +1,337 @@ +// Internal PyTime_t C API: see Doc/c-api/time.rst for the documentation. +// +// The PyTime_t type is an integer to support directly common arithmetic +// operations such as t1 + t2. +// +// Time formats: +// +// * Seconds. +// * Seconds as a floating-point number (C double). +// * Milliseconds (10^-3 seconds). +// * Microseconds (10^-6 seconds). +// * 100 nanoseconds (10^-7 seconds), used on Windows. +// * Nanoseconds (10^-9 seconds). +// * timeval structure, 1 microsecond (10^-6 seconds). +// * timespec structure, 1 nanosecond (10^-9 seconds). +// +// Note that PyTime_t is now specified as int64_t, in nanoseconds. +// (If we need to change this, we'll need new public API with new names.) +// Previously, PyTime_t was configurable (in theory); some comments and code +// might still allude to that. +// +// Integer overflows are detected and raise OverflowError. Conversion to a +// resolution larger than 1 nanosecond is rounded correctly with the requested +// rounding mode. Available rounding modes: +// +// * Round towards minus infinity (-inf). For example, used to read a clock. +// * Round towards infinity (+inf). For example, used for timeout to wait "at +// least" N seconds. +// * Round to nearest with ties going to nearest even integer. For example, used +// to round from a Python float. +// * Round away from zero. For example, used for timeout. +// +// Some functions clamp the result in the range [PyTime_MIN; PyTime_MAX]. The +// caller doesn't have to handle errors and so doesn't need to hold the GIL to +// handle exceptions. For example, _PyTime_Add(t1, t2) computes t1+t2 and +// clamps the result on overflow. +// +// Clocks: +// +// * System clock +// * Monotonic clock +// * Performance counter +// +// Internally, operations like (t * k / q) with integers are implemented in a +// way to reduce the risk of integer overflow. Such operation is used to convert a +// clock value expressed in ticks with a frequency to PyTime_t, like +// QueryPerformanceCounter() with QueryPerformanceFrequency() on Windows. + + +#ifndef Py_INTERNAL_TIME_H +#define Py_INTERNAL_TIME_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +#ifdef __clang__ +struct timeval; +#endif + +#define _SIZEOF_PYTIME_T 8 + +typedef enum { + // Round towards minus infinity (-inf). + // For example, used to read a clock. + _PyTime_ROUND_FLOOR=0, + + // Round towards infinity (+inf). + // For example, used for timeout to wait "at least" N seconds. + _PyTime_ROUND_CEILING=1, + + // Round to nearest with ties going to nearest even integer. + // For example, used to round from a Python float. + _PyTime_ROUND_HALF_EVEN=2, + + // Round away from zero + // For example, used for timeout. _PyTime_ROUND_CEILING rounds + // -1e-9 to 0 milliseconds which causes bpo-31786 issue. + // _PyTime_ROUND_UP rounds -1e-9 to -1 millisecond which keeps + // the timeout sign as expected. select.poll(timeout) must block + // for negative values. + _PyTime_ROUND_UP=3, + + // _PyTime_ROUND_TIMEOUT (an alias for _PyTime_ROUND_UP) should be + // used for timeouts. + _PyTime_ROUND_TIMEOUT = _PyTime_ROUND_UP +} _PyTime_round_t; + + +// Convert a time_t to a PyLong. +// Export for '_testinternalcapi' shared extension +PyAPI_FUNC(PyObject*) _PyLong_FromTime_t(time_t sec); + +// Convert a PyLong to a time_t. +// Export for '_datetime' shared extension +PyAPI_FUNC(time_t) _PyLong_AsTime_t(PyObject *obj); + +// Convert a number of seconds, int or float, to time_t. +// Export for '_datetime' shared extension. +PyAPI_FUNC(int) _PyTime_ObjectToTime_t( + PyObject *obj, + time_t *sec, + _PyTime_round_t); + +// Convert a number of seconds, int or float, to a timeval structure. +// usec is in the range [0; 999999] and rounded towards zero. +// For example, -1.2 is converted to (-2, 800000). +// Export for '_datetime' shared extension. +PyAPI_FUNC(int) _PyTime_ObjectToTimeval( + PyObject *obj, + time_t *sec, + long *usec, + _PyTime_round_t); + +// Convert a number of seconds, int or float, to a timespec structure. +// nsec is in the range [0; 999999999] and rounded towards zero. +// For example, -1.2 is converted to (-2, 800000000). +// Export for '_testinternalcapi' shared extension. +PyAPI_FUNC(int) _PyTime_ObjectToTimespec( + PyObject *obj, + time_t *sec, + long *nsec, + _PyTime_round_t); + + +// Create a timestamp from a number of seconds. +// Export for '_socket' shared extension. +PyAPI_FUNC(PyTime_t) _PyTime_FromSeconds(int seconds); + +// Create a timestamp from a number of seconds in double. +extern int _PyTime_FromSecondsDouble( + double seconds, + _PyTime_round_t round, + PyTime_t *result); + +// Macro to create a timestamp from a number of seconds, no integer overflow. +// Only use the macro for small values, prefer _PyTime_FromSeconds(). +#define _PYTIME_FROMSECONDS(seconds) \ + ((PyTime_t)(seconds) * (1000 * 1000 * 1000)) + +// Create a timestamp from a number of microseconds. +// Clamp to [PyTime_MIN; PyTime_MAX] on overflow. +extern PyTime_t _PyTime_FromMicrosecondsClamp(PyTime_t us); + +// Create a timestamp from a Python int object (number of nanoseconds). +// Export for '_lsprof' shared extension. +PyAPI_FUNC(int) _PyTime_FromLong(PyTime_t *t, + PyObject *obj); + +// Convert a number of seconds (Python float or int) to a timestamp. +// Raise an exception and return -1 on error, return 0 on success. +// Export for '_socket' shared extension. +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. +// Raise an exception and return -1 on error, return 0 on success. +// Export for 'select' shared extension. +PyAPI_FUNC(int) _PyTime_FromMillisecondsObject(PyTime_t *t, + PyObject *obj, + _PyTime_round_t round); + +// Convert timestamp to a number of milliseconds (10^-3 seconds). +// Export for '_ssl' shared extension. +PyAPI_FUNC(PyTime_t) _PyTime_AsMilliseconds(PyTime_t t, + _PyTime_round_t round); + +// Convert timestamp to a number of microseconds (10^-6 seconds). +// Export for '_queue' shared extension. +PyAPI_FUNC(PyTime_t) _PyTime_AsMicroseconds(PyTime_t t, + _PyTime_round_t round); + +#ifdef MS_WINDOWS +// Convert timestamp to a number of 100 nanoseconds (10^-7 seconds). +extern PyTime_t _PyTime_As100Nanoseconds(PyTime_t t, + _PyTime_round_t round); +#endif + +// Convert a timestamp (number of nanoseconds) as a Python int object. +// Export for '_testinternalcapi' shared extension. +PyAPI_FUNC(PyObject*) _PyTime_AsLong(PyTime_t t); + +#ifndef MS_WINDOWS +// Create a timestamp from a timeval structure. +// Raise an exception and return -1 on overflow, return 0 on success. +extern int _PyTime_FromTimeval(PyTime_t *tp, struct timeval *tv); +#endif + +// Convert a timestamp to a timeval structure (microsecond resolution). +// tv_usec is always positive. +// Raise an exception and return -1 if the conversion overflowed, +// return 0 on success. +// Export for 'select' shared extension. +PyAPI_FUNC(int) _PyTime_AsTimeval(PyTime_t t, + struct timeval *tv, + _PyTime_round_t round); + +// Similar to _PyTime_AsTimeval() but don't raise an exception on overflow. +// On overflow, clamp tv_sec to PyTime_t min/max. +// Export for 'select' shared extension. +PyAPI_FUNC(void) _PyTime_AsTimeval_clamp(PyTime_t t, + struct timeval *tv, + _PyTime_round_t round); + +// Convert a timestamp to a number of seconds (secs) and microseconds (us). +// us is always positive. This function is similar to _PyTime_AsTimeval() +// except that secs is always a time_t type, whereas the timeval structure +// uses a C long for tv_sec on Windows. +// Raise an exception and return -1 if the conversion overflowed, +// return 0 on success. +// Export for '_datetime' shared extension. +PyAPI_FUNC(int) _PyTime_AsTimevalTime_t( + PyTime_t t, + time_t *secs, + int *us, + _PyTime_round_t round); + +#if defined(HAVE_CLOCK_GETTIME) || defined(HAVE_KQUEUE) +// Create a timestamp from a timespec structure. +// Raise an exception and return -1 on overflow, return 0 on success. +extern int _PyTime_FromTimespec(PyTime_t *tp, const struct timespec *ts); + +// Convert a timestamp to a timespec structure (nanosecond resolution). +// tv_nsec is always positive. +// Raise an exception and return -1 on error, return 0 on success. +// Export for '_testinternalcapi' shared extension. +PyAPI_FUNC(int) _PyTime_AsTimespec(PyTime_t t, struct timespec *ts); + +// Similar to _PyTime_AsTimespec() but don't raise an exception on overflow. +// On overflow, clamp tv_sec to PyTime_t min/max. +// Export for '_testinternalcapi' shared extension. +PyAPI_FUNC(void) _PyTime_AsTimespec_clamp(PyTime_t t, struct timespec *ts); +#endif + + +// Compute t1 + t2. Clamp to [PyTime_MIN; PyTime_MAX] on overflow. +extern PyTime_t _PyTime_Add(PyTime_t t1, PyTime_t t2); + +// Structure used by time.get_clock_info() +typedef struct { + const char *implementation; + int monotonic; + int adjustable; + double resolution; +} _Py_clock_info_t; + +// Get the current time from the system clock. +// On success, set *t and *info (if not NULL), and return 0. +// On error, raise an exception and return -1. +extern int _PyTime_TimeWithInfo( + PyTime_t *t, + _Py_clock_info_t *info); + +// Get the time of a monotonic clock, i.e. a clock that cannot go backwards. +// The clock is not affected by system clock updates. The reference point of +// the returned value is undefined, so that only the difference between the +// results of consecutive calls is valid. +// +// Fill info (if set) with information of the function used to get the time. +// +// Return 0 on success, raise an exception and return -1 on error. +// Export for '_testsinglephase' shared extension. +PyAPI_FUNC(int) _PyTime_MonotonicWithInfo( + PyTime_t *t, + _Py_clock_info_t *info); + + +// Converts a timestamp to the Gregorian time, using the local time zone. +// Return 0 on success, raise an exception and return -1 on error. +// Export for '_datetime' shared extension. +PyAPI_FUNC(int) _PyTime_localtime(time_t t, struct tm *tm); + +// Converts a timestamp to the Gregorian time, assuming UTC. +// Return 0 on success, raise an exception and return -1 on error. +// Export for '_datetime' shared extension. +PyAPI_FUNC(int) _PyTime_gmtime(time_t t, struct tm *tm); + + +// Get the performance counter: clock with the highest available resolution to +// measure a short duration. +// +// Fill info (if set) with information of the function used to get the time. +// +// Return 0 on success, raise an exception and return -1 on error. +extern int _PyTime_PerfCounterWithInfo( + PyTime_t *t, + _Py_clock_info_t *info); + + +// --- _PyDeadline ----------------------------------------------------------- + +// Create a deadline. +// Pseudo code: return PyTime_MonotonicRaw() + timeout +// Export for '_ssl' shared extension. +PyAPI_FUNC(PyTime_t) _PyDeadline_Init(PyTime_t timeout); + +// Get remaining time from a deadline. +// Pseudo code: return deadline - PyTime_MonotonicRaw() +// Export for '_ssl' shared extension. +PyAPI_FUNC(PyTime_t) _PyDeadline_Get(PyTime_t deadline); + + +// --- _PyTimeFraction ------------------------------------------------------- + +typedef struct { + PyTime_t numer; + PyTime_t denom; +} _PyTimeFraction; + +// Set a fraction. +// Return 0 on success. +// Return -1 if the fraction is invalid. +extern int _PyTimeFraction_Set( + _PyTimeFraction *frac, + PyTime_t numer, + PyTime_t denom); + +// Compute ticks * frac.numer / frac.denom. +// Clamp to [PyTime_MIN; PyTime_MAX] on overflow. +extern PyTime_t _PyTimeFraction_Mul( + PyTime_t ticks, + const _PyTimeFraction *frac); + +// Compute a clock resolution: frac.numer / frac.denom / 1e9. +extern double _PyTimeFraction_Resolution( + const _PyTimeFraction *frac); + + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_TIME_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_token.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_token.h new file mode 100644 index 000000000..571cd6249 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_token.h @@ -0,0 +1,106 @@ +// Auto-generated by Tools/build/generate_token.py + +/* Token types */ +#ifndef Py_INTERNAL_TOKEN_H +#define Py_INTERNAL_TOKEN_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#undef TILDE /* Prevent clash of our definition with system macro. Ex AIX, ioctl.h */ + +#define ENDMARKER 0 +#define NAME 1 +#define NUMBER 2 +#define STRING 3 +#define NEWLINE 4 +#define INDENT 5 +#define DEDENT 6 +#define LPAR 7 +#define RPAR 8 +#define LSQB 9 +#define RSQB 10 +#define COLON 11 +#define COMMA 12 +#define SEMI 13 +#define PLUS 14 +#define MINUS 15 +#define STAR 16 +#define SLASH 17 +#define VBAR 18 +#define AMPER 19 +#define LESS 20 +#define GREATER 21 +#define EQUAL 22 +#define DOT 23 +#define PERCENT 24 +#define LBRACE 25 +#define RBRACE 26 +#define EQEQUAL 27 +#define NOTEQUAL 28 +#define LESSEQUAL 29 +#define GREATEREQUAL 30 +#define TILDE 31 +#define CIRCUMFLEX 32 +#define LEFTSHIFT 33 +#define RIGHTSHIFT 34 +#define DOUBLESTAR 35 +#define PLUSEQUAL 36 +#define MINEQUAL 37 +#define STAREQUAL 38 +#define SLASHEQUAL 39 +#define PERCENTEQUAL 40 +#define AMPEREQUAL 41 +#define VBAREQUAL 42 +#define CIRCUMFLEXEQUAL 43 +#define LEFTSHIFTEQUAL 44 +#define RIGHTSHIFTEQUAL 45 +#define DOUBLESTAREQUAL 46 +#define DOUBLESLASH 47 +#define DOUBLESLASHEQUAL 48 +#define AT 49 +#define ATEQUAL 50 +#define RARROW 51 +#define ELLIPSIS 52 +#define COLONEQUAL 53 +#define EXCLAMATION 54 +#define OP 55 +#define TYPE_IGNORE 56 +#define TYPE_COMMENT 57 +#define SOFT_KEYWORD 58 +#define FSTRING_START 59 +#define FSTRING_MIDDLE 60 +#define FSTRING_END 61 +#define COMMENT 62 +#define NL 63 +#define ERRORTOKEN 64 +#define N_TOKENS 66 +#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 ISSTRINGLIT(x) ((x) == STRING || \ + (x) == FSTRING_MIDDLE) + + +// Export these 4 symbols for 'test_peg_generator' +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); + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_TOKEN_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_traceback.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_traceback.h new file mode 100644 index 000000000..10922bff9 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_traceback.h @@ -0,0 +1,106 @@ +#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 + +// Export for '_ctypes' shared extension +PyAPI_FUNC(int) _Py_DisplaySourceLine(PyObject *, PyObject *, int, int, int *, PyObject **); + +// Export for 'pyexact' shared extension +PyAPI_FUNC(void) _PyTraceback_Add(const char *, const char *, int); + +/* Write the Python traceback into the file 'fd'. For example: + + Traceback (most recent call first): + File "xxx", line xxx in + File "xxx", line xxx in + ... + File "xxx", line xxx in + + 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. */ + +extern 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. */ + +extern const char* _Py_DumpTracebackThreads( + int fd, + PyInterpreterState *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. */ +extern void _Py_DumpASCII(int fd, PyObject *text); + +/* Format an integer as decimal into the file descriptor fd. + + This function is signal safe. */ +extern void _Py_DumpDecimal( + int fd, + size_t value); + +/* Format an integer as hexadecimal with width digits into fd file descriptor. + The function is signal safe. */ +extern void _Py_DumpHexadecimal( + int fd, + uintptr_t value, + Py_ssize_t width); + +extern PyObject* _PyTraceBack_FromFrame( + PyObject *tb_next, + PyFrameObject *frame); + +#define EXCEPTION_TB_HEADER "Traceback (most recent call last):\n" +#define EXCEPTION_GROUP_TB_HEADER "Exception Group Traceback (most recent call last):\n" + +/* Write the traceback tb to file f. Prefix each line with + indent spaces followed by the margin (if it is not NULL). */ +extern int _PyTraceBack_Print( + PyObject *tb, const char *header, PyObject *f); +extern int _Py_WriteIndentedMargin(int, const char*, PyObject *); +extern int _Py_WriteIndent(int, PyObject *); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_TRACEBACK_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_tracemalloc.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_tracemalloc.h new file mode 100644 index 000000000..7ddc5bac5 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_tracemalloc.h @@ -0,0 +1,170 @@ +#ifndef Py_INTERNAL_TRACEMALLOC_H +#define Py_INTERNAL_TRACEMALLOC_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_hashtable.h" // _Py_hashtable_t + + +/* Trace memory blocks allocated by PyMem_RawMalloc() */ +#define TRACE_RAW_MALLOC + + +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; +}; + + +/* Pack the frame_t structure to reduce the memory footprint on 64-bit + architectures: 12 bytes instead of 16. */ +#if defined(_MSC_VER) +#pragma pack(push, 4) +#endif + +struct +#ifdef __GNUC__ +__attribute__((packed)) +#endif +tracemalloc_frame { + /* filename cannot be NULL: "" is used if the Python frame + filename is NULL */ + PyObject *filename; + unsigned int lineno; +}; +#ifdef _MSC_VER +#pragma pack(pop) +#endif + +struct tracemalloc_traceback { + Py_uhash_t hash; + /* Number of frames stored */ + uint16_t nframe; + /* Total number of frames the traceback had */ + uint16_t total_nframe; + struct tracemalloc_frame frames[1]; +}; + + +struct _tracemalloc_runtime_state { + struct _PyTraceMalloc_Config config; + + /* Protected by the GIL */ + struct { + PyMemAllocatorEx mem; + PyMemAllocatorEx raw; + PyMemAllocatorEx obj; + } allocators; + +#if defined(TRACE_RAW_MALLOC) + PyThread_type_lock tables_lock; +#endif + /* Size in bytes of currently traced memory. + Protected by TABLES_LOCK(). */ + size_t traced_memory; + /* Peak size in bytes of traced memory. + Protected by TABLES_LOCK(). */ + size_t peak_traced_memory; + /* Hash table used as a set to intern filenames: + PyObject* => PyObject*. + Protected by the GIL */ + _Py_hashtable_t *filenames; + /* Buffer to store a new traceback in traceback_new(). + Protected by the GIL. */ + struct tracemalloc_traceback *traceback; + /* Hash table used as a set to intern tracebacks: + traceback_t* => traceback_t* + Protected by the GIL */ + _Py_hashtable_t *tracebacks; + /* pointer (void*) => trace (trace_t*). + Protected by TABLES_LOCK(). */ + _Py_hashtable_t *traces; + /* domain (unsigned int) => traces (_Py_hashtable_t). + Protected by TABLES_LOCK(). */ + _Py_hashtable_t *domains; + + struct tracemalloc_traceback empty_traceback; + + Py_tss_t reentrant_key; +}; + +#define _tracemalloc_runtime_state_INIT \ + { \ + .config = { \ + .initialized = TRACEMALLOC_NOT_INITIALIZED, \ + .tracing = 0, \ + .max_nframe = 1, \ + }, \ + .reentrant_key = Py_tss_NEEDS_INIT, \ + } + + +// 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. +// +// Export for '_testinternalcapi' shared extension. +PyAPI_FUNC(PyObject*) _PyTraceMalloc_GetTraceback( + unsigned int domain, + uintptr_t ptr); + +/* Return non-zero if tracemalloc is tracing */ +extern int _PyTraceMalloc_IsTracing(void); + +/* Clear the tracemalloc traces */ +extern void _PyTraceMalloc_ClearTraces(void); + +/* Clear the tracemalloc traces */ +extern PyObject* _PyTraceMalloc_GetTraces(void); + +/* Clear tracemalloc traceback for an object */ +extern PyObject* _PyTraceMalloc_GetObjectTraceback(PyObject *obj); + +/* Initialize tracemalloc */ +extern int _PyTraceMalloc_Init(void); + +/* Start tracemalloc */ +extern int _PyTraceMalloc_Start(int max_nframe); + +/* Stop tracemalloc */ +extern void _PyTraceMalloc_Stop(void); + +/* Get the tracemalloc traceback limit */ +extern int _PyTraceMalloc_GetTracebackLimit(void); + +/* Get the memory usage of tracemalloc in bytes */ +extern size_t _PyTraceMalloc_GetMemory(void); + +/* Get the current size and peak size of traced memory blocks as a 2-tuple */ +extern PyObject* _PyTraceMalloc_GetTracedMemory(void); + +/* Set the peak size of traced memory blocks to the current size */ +extern void _PyTraceMalloc_ResetPeak(void); + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_TRACEMALLOC_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_tstate.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_tstate.h new file mode 100644 index 000000000..1ed5b1d82 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_tstate.h @@ -0,0 +1,46 @@ +#ifndef Py_INTERNAL_TSTATE_H +#define Py_INTERNAL_TSTATE_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_brc.h" // struct _brc_thread_state +#include "pycore_freelist.h" // struct _Py_freelist_state +#include "pycore_mimalloc.h" // struct _mimalloc_thread_state +#include "pycore_qsbr.h" // struct qsbr + + +// Every PyThreadState is actually allocated as a _PyThreadStateImpl. The +// PyThreadState fields are exposed as part of the C API, although most fields +// are intended to be private. The _PyThreadStateImpl fields not exposed. +typedef struct _PyThreadStateImpl { + // semi-public fields are in PyThreadState. + PyThreadState base; + + PyObject *asyncio_running_loop; // Strong reference + + struct _qsbr_thread_state *qsbr; // only used by free-threaded build + struct llist_node mem_free_queue; // delayed free queue + +#ifdef Py_GIL_DISABLED + struct _gc_thread_state gc; + struct _mimalloc_thread_state mimalloc; + struct _Py_object_freelists freelists; + struct _brc_thread_state brc; +#endif + +#if defined(Py_REF_DEBUG) && defined(Py_GIL_DISABLED) + Py_ssize_t reftotal; // this thread's total refcount operations +#endif + +} _PyThreadStateImpl; + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_TSTATE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_tuple.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_tuple.h new file mode 100644 index 000000000..14a9e42c3 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_tuple.h @@ -0,0 +1,35 @@ +#ifndef Py_INTERNAL_TUPLE_H +#define Py_INTERNAL_TUPLE_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +extern void _PyTuple_MaybeUntrack(PyObject *); +extern void _PyTuple_DebugMallocStats(FILE *out); + +/* runtime lifecycle */ + +extern PyStatus _PyTuple_InitGlobalObjects(PyInterpreterState *); + + +/* other API */ + +#define _PyTuple_ITEMS(op) _Py_RVALUE(_PyTuple_CAST(op)->ob_item) + +extern PyObject *_PyTuple_FromArray(PyObject *const *, Py_ssize_t); +PyAPI_FUNC(PyObject *)_PyTuple_FromArraySteal(PyObject *const *, Py_ssize_t); + +typedef struct { + PyObject_HEAD + Py_ssize_t it_index; + PyTupleObject *it_seq; /* Set to NULL when iterator is exhausted */ +} _PyTupleIterObject; + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_TUPLE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_typeobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_typeobject.h new file mode 100644 index 000000000..05f125f92 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_typeobject.h @@ -0,0 +1,243 @@ +#ifndef Py_INTERNAL_TYPEOBJECT_H +#define Py_INTERNAL_TYPEOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_moduleobject.h" // PyModuleObject +#include "pycore_lock.h" // PyMutex + + +/* state */ + +#define _Py_TYPE_BASE_VERSION_TAG (2<<16) +#define _Py_MAX_GLOBAL_TYPE_VERSION_TAG (_Py_TYPE_BASE_VERSION_TAG - 1) + +/* For now we hard-code this to a value for which we are confident + all the static builtin types will fit (for all builds). */ +#define _Py_MAX_MANAGED_STATIC_BUILTIN_TYPES 200 +#define _Py_MAX_MANAGED_STATIC_EXT_TYPES 10 +#define _Py_MAX_MANAGED_STATIC_TYPES \ + (_Py_MAX_MANAGED_STATIC_BUILTIN_TYPES + _Py_MAX_MANAGED_STATIC_EXT_TYPES) + +struct _types_runtime_state { + /* Used to set PyTypeObject.tp_version_tag for core static types. */ + // bpo-42745: next_version_tag remains shared by all interpreters + // because of static types. + unsigned int next_version_tag; + + struct { + struct { + PyTypeObject *type; + int64_t interp_count; + } types[_Py_MAX_MANAGED_STATIC_TYPES]; + } managed_static; +}; + + +// Type attribute lookup cache: speed up attribute and method lookups, +// see _PyType_Lookup(). +struct type_cache_entry { + unsigned int version; // initialized from type->tp_version_tag +#ifdef Py_GIL_DISABLED + _PySeqLock sequence; +#endif + PyObject *name; // reference to exactly a str or None + PyObject *value; // borrowed reference or NULL +}; + +#define MCACHE_SIZE_EXP 12 + +struct type_cache { + struct type_cache_entry hashtable[1 << MCACHE_SIZE_EXP]; +}; + +typedef struct { + PyTypeObject *type; + int isbuiltin; + int readying; + int ready; + // XXX tp_dict can probably be statically allocated, + // instead of dynamically and stored on the interpreter. + PyObject *tp_dict; + PyObject *tp_subclasses; + /* We never clean up weakrefs for static builtin types since + they will effectively never get triggered. However, there + are also some diagnostic uses for the list of weakrefs, + so we still keep it. */ + PyObject *tp_weaklist; +} managed_static_type_state; + +struct types_state { + /* Used to set PyTypeObject.tp_version_tag. + It starts at _Py_MAX_GLOBAL_TYPE_VERSION_TAG + 1, + where all those lower numbers are used for core static types. */ + unsigned int next_version_tag; + + struct type_cache type_cache; + + /* Every static builtin type is initialized for each interpreter + during its own initialization, including for the main interpreter + during global runtime initialization. This is done by calling + _PyStaticType_InitBuiltin(). + + The first time a static builtin type is initialized, all the + normal PyType_Ready() stuff happens. The only difference from + normal is that there are three PyTypeObject fields holding + objects which are stored here (on PyInterpreterState) rather + than in the corresponding PyTypeObject fields. Those are: + tp_dict (cls.__dict__), tp_subclasses (cls.__subclasses__), + and tp_weaklist. + + When a subinterpreter is initialized, each static builtin type + is still initialized, but only the interpreter-specific portion, + namely those three objects. + + Those objects are stored in the PyInterpreterState.types.builtins + array, at the index corresponding to each specific static builtin + type. That index (a size_t value) is stored in the tp_subclasses + field. For static builtin types, we re-purposed the now-unused + tp_subclasses to avoid adding another field to PyTypeObject. + In all other cases tp_subclasses holds a dict like before. + (The field was previously defined as PyObject*, but is now void* + to reflect its dual use.) + + The index for each static builtin type isn't statically assigned. + Instead it is calculated the first time a type is initialized + (by the main interpreter). The index matches the order in which + the type was initialized relative to the others. The actual + value comes from the current value of num_builtins_initialized, + as each type is initialized for the main interpreter. + + num_builtins_initialized is incremented once for each static + builtin type. Once initialization is over for a subinterpreter, + the value will be the same as for all other interpreters. */ + struct { + size_t num_initialized; + managed_static_type_state initialized[_Py_MAX_MANAGED_STATIC_BUILTIN_TYPES]; + } builtins; + /* We apply a similar strategy for managed extension modules. */ + struct { + size_t num_initialized; + size_t next_index; + managed_static_type_state initialized[_Py_MAX_MANAGED_STATIC_EXT_TYPES]; + } for_extensions; + PyMutex mutex; +}; + + +/* runtime lifecycle */ + +extern PyStatus _PyTypes_InitTypes(PyInterpreterState *); +extern void _PyTypes_FiniTypes(PyInterpreterState *); +extern void _PyTypes_FiniExtTypes(PyInterpreterState *interp); +extern void _PyTypes_Fini(PyInterpreterState *); +extern void _PyTypes_AfterFork(void); + +/* other API */ + +/* Length of array of slotdef pointers used to store slots with the + same __name__. There should be at most MAX_EQUIV-1 slotdef entries with + the same __name__, for any __name__. Since that's a static property, it is + appropriate to declare fixed-size arrays for this. */ +#define MAX_EQUIV 10 + +typedef struct wrapperbase pytype_slotdef; + + +static inline PyObject ** +_PyStaticType_GET_WEAKREFS_LISTPTR(managed_static_type_state *state) +{ + assert(state != NULL); + return &state->tp_weaklist; +} + +extern int _PyStaticType_InitBuiltin( + PyInterpreterState *interp, + PyTypeObject *type); +extern void _PyStaticType_FiniBuiltin( + PyInterpreterState *interp, + PyTypeObject *type); +extern void _PyStaticType_ClearWeakRefs( + PyInterpreterState *interp, + PyTypeObject *type); +extern managed_static_type_state * _PyStaticType_GetState( + PyInterpreterState *interp, + PyTypeObject *type); + +// Export for '_datetime' shared extension. +PyAPI_FUNC(int) _PyStaticType_InitForExtension( + PyInterpreterState *interp, + PyTypeObject *self); + + +/* Like PyType_GetModuleState, but skips verification + * that type is a heap type with an associated module */ +static inline void * +_PyType_GetModuleState(PyTypeObject *type) +{ + assert(PyType_Check(type)); + assert(type->tp_flags & Py_TPFLAGS_HEAPTYPE); + PyHeapTypeObject *et = (PyHeapTypeObject *)type; + assert(et->ht_module); + PyModuleObject *mod = (PyModuleObject *)(et->ht_module); + assert(mod != NULL); + return mod->md_state; +} + + +// Export for 'math' shared extension, used via _PyType_IsReady() static inline +// function +PyAPI_FUNC(PyObject *) _PyType_GetDict(PyTypeObject *); + +extern PyObject * _PyType_GetBases(PyTypeObject *type); +extern PyObject * _PyType_GetMRO(PyTypeObject *type); +extern PyObject* _PyType_GetSubclasses(PyTypeObject *); +extern int _PyType_HasSubclasses(PyTypeObject *); +PyAPI_FUNC(PyObject *) _PyType_GetModuleByDef2(PyTypeObject *, PyTypeObject *, PyModuleDef *); + +// PyType_Ready() must be called if _PyType_IsReady() is false. +// See also the Py_TPFLAGS_READY flag. +static inline int +_PyType_IsReady(PyTypeObject *type) +{ + return _PyType_GetDict(type) != NULL; +} + +extern PyObject* _Py_type_getattro_impl(PyTypeObject *type, PyObject *name, + int *suppress_missing_attribute); +extern PyObject* _Py_type_getattro(PyObject *type, PyObject *name); + +extern PyObject* _Py_BaseObject_RichCompare(PyObject* self, PyObject* other, int op); + +extern PyObject* _Py_slot_tp_getattro(PyObject *self, PyObject *name); +extern PyObject* _Py_slot_tp_getattr_hook(PyObject *self, PyObject *name); + +extern PyTypeObject _PyBufferWrapper_Type; + +PyAPI_FUNC(PyObject*) _PySuper_Lookup(PyTypeObject *su_type, PyObject *su_obj, + PyObject *name, int *meth_found); + +extern PyObject* _PyType_GetFullyQualifiedName(PyTypeObject *type, char sep); + +// Perform the following operation, in a thread-safe way when required by the +// build mode. +// +// self->tp_flags = (self->tp_flags & ~mask) | flags; +extern void _PyType_SetFlags(PyTypeObject *self, unsigned long mask, + unsigned long flags); + +// Like _PyType_SetFlags(), but apply the operation to self and any of its +// subclasses without Py_TPFLAGS_IMMUTABLETYPE set. +extern void _PyType_SetFlagsRecursive(PyTypeObject *self, unsigned long mask, + unsigned long flags); + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_TYPEOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_typevarobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_typevarobject.h new file mode 100644 index 000000000..a368edebd --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_typevarobject.h @@ -0,0 +1,27 @@ +#ifndef Py_INTERNAL_TYPEVAROBJECT_H +#define Py_INTERNAL_TYPEVAROBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +extern PyObject *_Py_make_typevar(PyObject *, PyObject *, PyObject *); +extern PyObject *_Py_make_paramspec(PyThreadState *, PyObject *); +extern PyObject *_Py_make_typevartuple(PyThreadState *, PyObject *); +extern PyObject *_Py_make_typealias(PyThreadState *, PyObject *); +extern PyObject *_Py_subscript_generic(PyThreadState *, PyObject *); +extern PyObject *_Py_set_typeparam_default(PyThreadState *, PyObject *, PyObject *); +extern int _Py_initialize_generic(PyInterpreterState *); +extern void _Py_clear_generic_types(PyInterpreterState *); + +extern PyTypeObject _PyTypeAlias_Type; +extern PyTypeObject _PyNoDefault_Type; +extern PyObject _Py_NoDefaultStruct; + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_TYPEVAROBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_ucnhash.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_ucnhash.h new file mode 100644 index 000000000..1561dfbb3 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_ucnhash.h @@ -0,0 +1,36 @@ +/* Unicode name database interface */ +#ifndef Py_INTERNAL_UCNHASH_H +#define Py_INTERNAL_UCNHASH_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +/* revised ucnhash CAPI interface (exported through a "wrapper") */ + +#define PyUnicodeData_CAPSULE_NAME "unicodedata._ucnhash_CAPI" + +typedef struct { + + /* Get name for a given character code. + Returns non-zero if success, zero if not. + Does not set Python exceptions. */ + int (*getname)(Py_UCS4 code, char* buffer, int buflen, + int with_alias_and_seq); + + /* Get character code for a given name. + Same error handling as for getname(). */ + int (*getcode)(const char* name, int namelen, Py_UCS4* code, + int with_named_seq); + +} _PyUnicode_Name_CAPI; + +extern _PyUnicode_Name_CAPI* _PyUnicode_GetNameCAPI(void); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_UCNHASH_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_unicodeobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_unicodeobject.h new file mode 100644 index 000000000..173c0868c --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_unicodeobject.h @@ -0,0 +1,338 @@ +#ifndef Py_INTERNAL_UNICODEOBJECT_H +#define Py_INTERNAL_UNICODEOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_lock.h" // PyMutex +#include "pycore_fileutils.h" // _Py_error_handler +#include "pycore_identifier.h" // _Py_Identifier +#include "pycore_ucnhash.h" // _PyUnicode_Name_CAPI +#include "pycore_global_objects.h" // _Py_SINGLETON + +/* --- Characters Type APIs ----------------------------------------------- */ + +extern int _PyUnicode_IsXidStart(Py_UCS4 ch); +extern int _PyUnicode_IsXidContinue(Py_UCS4 ch); +extern int _PyUnicode_ToLowerFull(Py_UCS4 ch, Py_UCS4 *res); +extern int _PyUnicode_ToTitleFull(Py_UCS4 ch, Py_UCS4 *res); +extern int _PyUnicode_ToUpperFull(Py_UCS4 ch, Py_UCS4 *res); +extern int _PyUnicode_ToFoldedFull(Py_UCS4 ch, Py_UCS4 *res); +extern int _PyUnicode_IsCaseIgnorable(Py_UCS4 ch); +extern int _PyUnicode_IsCased(Py_UCS4 ch); + +/* --- Unicode API -------------------------------------------------------- */ + +// Export for '_json' shared extension +PyAPI_FUNC(int) _PyUnicode_CheckConsistency( + PyObject *op, + int check_content); + +PyAPI_FUNC(void) _PyUnicode_ExactDealloc(PyObject *op); +extern Py_ssize_t _PyUnicode_InternedSize(void); +extern Py_ssize_t _PyUnicode_InternedSize_Immortal(void); + +// Get a copy of a Unicode string. +// Export for '_datetime' shared extension. +PyAPI_FUNC(PyObject*) _PyUnicode_Copy( + PyObject *unicode); + +/* 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). */ +extern void _PyUnicode_FastFill( + PyObject *unicode, + Py_ssize_t start, + Py_ssize_t length, + Py_UCS4 fill_char + ); + +/* 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). */ +extern void _PyUnicode_FastCopyCharacters( + PyObject *to, + Py_ssize_t to_start, + PyObject *from, + Py_ssize_t from_start, + Py_ssize_t how_many + ); + +/* Create a new string from a buffer of ASCII characters. + WARNING: Don't check if the string contains any non-ASCII character. */ +extern 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. */ +extern Py_UCS4 _PyUnicode_FindMaxChar ( + PyObject *unicode, + Py_ssize_t start, + Py_ssize_t end); + +/* --- _PyUnicodeWriter API ----------------------------------------------- */ + +/* Format the object based on the format_spec, as defined in PEP 3101 + (Advanced String Formatting). */ +extern int _PyUnicode_FormatAdvancedWriter( + _PyUnicodeWriter *writer, + PyObject *obj, + PyObject *format_spec, + Py_ssize_t start, + Py_ssize_t end); + +/* --- UTF-7 Codecs ------------------------------------------------------- */ + +extern 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 ------------------------------------------------------- */ + +// Export for '_tkinter' shared extension. +PyAPI_FUNC(PyObject*) _PyUnicode_AsUTF8String( + PyObject *unicode, + const char *errors); + +/* --- UTF-32 Codecs ------------------------------------------------------ */ + +// Export for '_tkinter' shared extension +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. +// +// Export for '_tkinter' shared extension +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. */ +extern 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. +// Export for test_peg_generator. +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. */ + +/* --- Raw-Unicode-Escape Codecs ---------------------------------------------- */ + +/* Variant of PyUnicode_DecodeRawUnicodeEscape that supports partial decoding. */ +extern 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 ----------------------------------------------------- */ + +extern PyObject* _PyUnicode_AsLatin1String( + PyObject* unicode, + const char* errors); + +/* --- ASCII Codecs ------------------------------------------------------- */ + +extern PyObject* _PyUnicode_AsASCIIString( + PyObject* unicode, + const char* errors); + +/* --- Character Map Codecs ----------------------------------------------- */ + +/* Translate an Unicode object 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. +*/ +extern PyObject* _PyUnicode_EncodeCharmap( + PyObject *unicode, /* Unicode object */ + PyObject *mapping, /* encoding mapping */ + const char *errors); /* error handling */ + +/* --- Decimal Encoder ---------------------------------------------------- */ + +// 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 '?'. +// +// Export for '_testinternalcapi' shared extension. +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. */ +extern 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. +// Export for '_ctypes' shared extension +PyAPI_FUNC(int) _PyUnicode_EqualToASCIIString( + PyObject *left, + const char *right /* ASCII-encoded string */ + ); + +/* Externally visible for str.strip(unicode) */ +extern 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 */ +extern 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); + +/* --- Misc functions ----------------------------------------------------- */ + +extern PyObject* _PyUnicode_FormatLong(PyObject *, int, int, int); + +/* 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) */ +extern int _PyUnicode_EQ(PyObject *, PyObject *); + +// Equality check. +// Export for '_pickle' shared extension. +PyAPI_FUNC(int) _PyUnicode_Equal(PyObject *, PyObject *); + +extern int _PyUnicode_WideCharString_Converter(PyObject *, void *); +extern int _PyUnicode_WideCharString_Opt_Converter(PyObject *, void *); + +// Export for test_peg_generator +PyAPI_FUNC(Py_ssize_t) _PyUnicode_ScanIdentifier(PyObject *); + +/* --- Runtime lifecycle -------------------------------------------------- */ + +extern void _PyUnicode_InitState(PyInterpreterState *); +extern PyStatus _PyUnicode_InitGlobalObjects(PyInterpreterState *); +extern PyStatus _PyUnicode_InitTypes(PyInterpreterState *); +extern void _PyUnicode_Fini(PyInterpreterState *); +extern void _PyUnicode_FiniTypes(PyInterpreterState *); + +extern PyTypeObject _PyUnicodeASCIIIter_Type; + +/* --- Interning ---------------------------------------------------------- */ + +// All these are "ref-neutral", like the public PyUnicode_InternInPlace. + +// Explicit interning routines: +PyAPI_FUNC(void) _PyUnicode_InternMortal(PyInterpreterState *interp, PyObject **); +PyAPI_FUNC(void) _PyUnicode_InternImmortal(PyInterpreterState *interp, PyObject **); +// Left here to help backporting: +PyAPI_FUNC(void) _PyUnicode_InternInPlace(PyInterpreterState *interp, PyObject **p); +// Only for singletons in the _PyRuntime struct: +extern void _PyUnicode_InternStatic(PyInterpreterState *interp, PyObject **); + +/* --- Other API ---------------------------------------------------------- */ + +struct _Py_unicode_runtime_ids { + PyMutex mutex; + // next_index value must be preserved when Py_Initialize()/Py_Finalize() + // is called multiple times: see _PyUnicode_FromId() implementation. + Py_ssize_t next_index; +}; + +struct _Py_unicode_runtime_state { + struct _Py_unicode_runtime_ids ids; +}; + +/* 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_ids { + Py_ssize_t size; + PyObject **array; +}; + +struct _Py_unicode_state { + struct _Py_unicode_fs_codec fs_codec; + + _PyUnicode_Name_CAPI *ucnhash_capi; + + // Unicode identifiers (_Py_Identifier): see _PyUnicode_FromId() + struct _Py_unicode_ids ids; +}; + +extern void _PyUnicode_ClearInterned(PyInterpreterState *interp); + +// Like PyUnicode_AsUTF8(), but check for embedded null characters. +// Export for '_sqlite3' shared extension. +PyAPI_FUNC(const char *) _PyUnicode_AsUTF8NoNUL(PyObject *); + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_UNICODEOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_unicodeobject_generated.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_unicodeobject_generated.h new file mode 100644 index 000000000..533739030 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_unicodeobject_generated.h @@ -0,0 +1,2976 @@ +#ifndef Py_INTERNAL_UNICODEOBJECT_GENERATED_H +#define Py_INTERNAL_UNICODEOBJECT_GENERATED_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +/* The following is auto-generated by Tools/build/generate_global_objects.py. */ +static inline void +_PyUnicode_InitStaticStrings(PyInterpreterState *interp) { + PyObject *string; + string = &_Py_ID(CANCELLED); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(FINISHED); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(False); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(JSONDecodeError); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(PENDING); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(Py_Repr); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(TextIOWrapper); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(True); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(WarningMessage); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_WindowsConsoleIO); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__IOBase_closed); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__abc_tpflags__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__abs__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__abstractmethods__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__add__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__aenter__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__aexit__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__aiter__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__all__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__and__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__anext__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__annotations__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__args__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__await__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__bases__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__bool__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__buffer__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__build_class__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__builtins__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__bytes__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__call__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__cantrace__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__class__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__class_getitem__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__classcell__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__classdict__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__classdictcell__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__complex__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__contains__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__copy__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__ctypes_from_outparam__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__del__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__delattr__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__delete__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__delitem__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__dict__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__dictoffset__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__dir__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__divmod__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__doc__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__enter__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__eq__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__exit__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__file__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__firstlineno__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__float__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__floordiv__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__format__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__fspath__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__ge__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__get__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__getattr__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__getattribute__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__getinitargs__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__getitem__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__getnewargs__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__getnewargs_ex__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__getstate__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__gt__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__hash__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__iadd__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__iand__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__ifloordiv__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__ilshift__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__imatmul__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__imod__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__import__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__imul__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__index__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__init__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__init_subclass__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__instancecheck__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__int__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__invert__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__ior__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__ipow__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__irshift__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__isabstractmethod__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__isub__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__iter__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__itruediv__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__ixor__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__le__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__len__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__length_hint__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__lltrace__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__loader__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__lshift__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__lt__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__main__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__match_args__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__matmul__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__missing__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__mod__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__module__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__mro_entries__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__mul__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__name__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__ne__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__neg__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__new__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__newobj__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__newobj_ex__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__next__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__notes__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__or__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__orig_class__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__origin__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__package__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__parameters__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__path__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__pos__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__pow__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__prepare__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__qualname__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__radd__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__rand__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__rdivmod__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__reduce__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__reduce_ex__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__release_buffer__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__repr__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__reversed__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__rfloordiv__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__rlshift__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__rmatmul__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__rmod__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__rmul__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__ror__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__round__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__rpow__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__rrshift__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__rshift__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__rsub__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__rtruediv__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__rxor__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__set__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__set_name__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__setattr__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__setitem__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__setstate__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__sizeof__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__slotnames__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__slots__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__spec__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__static_attributes__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__str__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__sub__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__subclasscheck__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__subclasshook__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__truediv__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__trunc__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__type_params__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__typing_is_unpacked_typevartuple__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__typing_prepare_subst__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__typing_subst__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__typing_unpacked_tuple_args__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__warningregistry__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__weaklistoffset__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__weakref__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__xor__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_abc_impl); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_abstract_); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_active); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_align_); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_annotation); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_anonymous_); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_argtypes_); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_as_parameter_); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_asyncio_future_blocking); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_blksize); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_bootstrap); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_check_retval_); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_dealloc_warn); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_feature_version); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_field_types); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_fields_); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_finalizing); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_find_and_load); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_fix_up_module); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_flags_); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_get_sourcefile); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_handle_fromlist); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_initializing); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_io); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_is_text_encoding); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_length_); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_limbo); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_lock_unlock_module); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_loop); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_needs_com_addref_); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_only_immortal); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_pack_); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_restype_); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_showwarnmsg); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_shutdown); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_slotnames); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_strptime); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_strptime_datetime); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_swappedbytes_); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_type_); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_uninitialized_submodules); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_warn_unawaited_coroutine); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_xoptions); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(abs_tol); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(access); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(aclose); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(add); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(add_done_callback); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(after_in_child); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(after_in_parent); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(aggregate_class); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(alias); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(allow_code); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(append); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(arg); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(argdefs); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(args); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(arguments); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(argv); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(as_integer_ratio); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(asend); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(ast); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(athrow); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(attribute); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(authorizer_callback); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(autocommit); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(backtick); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(base); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(before); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(big); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(binary_form); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(block); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(bound); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(buffer); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(buffer_callback); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(buffer_size); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(buffering); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(buffers); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(bufsize); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(builtins); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(byteorder); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(bytes); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(bytes_per_sep); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(c_call); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(c_exception); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(c_return); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(cached_datetime_module); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(cached_statements); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(cadata); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(cafile); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(call); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(call_exception_handler); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(call_soon); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(callback); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(cancel); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(capath); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(category); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(cb_type); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(certfile); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(check_same_thread); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(clear); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(close); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(closed); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(closefd); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(closure); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_argcount); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_cellvars); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_code); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_consts); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_exceptiontable); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_filename); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_firstlineno); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_flags); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_freevars); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_kwonlyargcount); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_linetable); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_name); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_names); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_nlocals); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_posonlyargcount); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_qualname); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_stacksize); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_varnames); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(code); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(col_offset); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(command); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(comment_factory); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(compile_mode); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(consts); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(context); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(contravariant); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(cookie); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(copy); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(copyreg); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(coro); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(count); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(covariant); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(cwd); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(data); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(database); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(day); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(decode); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(decoder); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(default); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(defaultaction); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(delete); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(depth); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(desired_access); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(detect_types); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(deterministic); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(device); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(dict); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(dictcomp); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(difference_update); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(digest); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(digest_size); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(digestmod); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(dir_fd); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(discard); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(dispatch_table); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(displayhook); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(dklen); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(doc); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(dont_inherit); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(dst); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(dst_dir_fd); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(eager_start); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(effective_ids); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(element_factory); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(encode); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(encoding); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(end); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(end_col_offset); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(end_lineno); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(end_offset); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(endpos); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(entrypoint); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(env); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(errors); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(event); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(eventmask); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(exc_type); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(exc_value); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(excepthook); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(exception); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(existing_file_name); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(exp); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(extend); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(extra_tokens); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(facility); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(factory); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(false); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(family); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(fanout); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(fd); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(fd2); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(fdel); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(fget); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(file); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(file_actions); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(filename); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(fileno); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(filepath); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(fillvalue); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(filter); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(filters); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(final); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(find_class); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(fix_imports); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(flags); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(flush); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(fold); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(follow_symlinks); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(format); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(from_param); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(fromlist); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(fromtimestamp); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(fromutc); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(fset); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(func); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(future); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(generation); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(genexpr); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(get); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(get_debug); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(get_event_loop); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(get_loop); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(get_source); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(getattr); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(getstate); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(gid); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(globals); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(groupindex); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(groups); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(handle); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(handle_seq); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(has_location); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(hash_name); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(header); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(headers); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(hi); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(hook); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(hour); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(ident); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(identity_hint); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(ignore); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(imag); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(importlib); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(in_fd); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(incoming); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(indexgroup); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(inf); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(infer_variance); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(inherit_handle); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(inheritable); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(initial); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(initial_bytes); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(initial_owner); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(initial_state); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(initial_value); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(initval); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(inner_size); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(input); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(insert_comments); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(insert_pis); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(instructions); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(intern); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(intersection); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(interval); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(is_running); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(isatty); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(isinstance); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(isoformat); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(isolation_level); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(istext); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(item); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(items); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(iter); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(iterable); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(iterations); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(join); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(jump); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(keepends); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(key); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(keyfile); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(keys); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(kind); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(kw); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(kw1); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(kw2); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(kwdefaults); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(label); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(lambda); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(last); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(last_exc); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(last_node); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(last_traceback); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(last_type); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(last_value); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(latin1); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(leaf_size); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(len); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(length); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(level); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(limit); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(line); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(line_buffering); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(lineno); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(listcomp); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(little); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(lo); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(locale); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(locals); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(logoption); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(loop); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(manual_reset); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(mapping); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(match); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(max_length); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(maxdigits); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(maxevents); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(maxlen); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(maxmem); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(maxsplit); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(maxvalue); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(memLevel); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(memlimit); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(message); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(metaclass); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(metadata); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(method); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(microsecond); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(milliseconds); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(minute); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(mod); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(mode); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(module); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(module_globals); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(modules); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(month); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(mro); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(msg); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(mutex); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(mycmp); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(n_arg); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(n_fields); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(n_sequence_fields); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(n_unnamed_fields); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(name); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(name_from); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(namespace_separator); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(namespaces); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(narg); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(ndigits); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(nested); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(new_file_name); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(new_limit); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(newline); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(newlines); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(next); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(nlocals); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(node_depth); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(node_offset); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(ns); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(nstype); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(nt); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(null); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(number); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(obj); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(object); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(offset); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(offset_dst); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(offset_src); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(on_type_read); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(onceregistry); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(only_keys); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(oparg); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(opcode); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(open); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(opener); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(operation); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(optimize); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(options); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(order); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(origin); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(out_fd); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(outgoing); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(overlapped); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(owner); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(pages); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(parent); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(password); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(path); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(pattern); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(peek); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(persistent_id); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(persistent_load); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(person); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(pi_factory); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(pid); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(policy); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(pos); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(pos1); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(pos2); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(posix); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(print_file_and_line); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(priority); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(progress); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(progress_handler); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(progress_routine); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(proto); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(protocol); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(ps1); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(ps2); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(query); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(quotetabs); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(raw); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(read); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(read1); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(readable); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(readall); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(readinto); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(readinto1); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(readline); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(readonly); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(real); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(reducer_override); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(registry); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(rel_tol); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(release); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(reload); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(repl); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(replace); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(reserved); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(reset); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(resetids); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(return); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(reverse); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(reversed); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(salt); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(sched_priority); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(scheduler); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(second); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(security_attributes); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(seek); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(seekable); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(selectors); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(self); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(send); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(sep); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(sequence); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(server_hostname); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(server_side); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(session); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(setcomp); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(setpgroup); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(setsid); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(setsigdef); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(setsigmask); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(setstate); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(shape); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(show_cmd); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(signed); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(size); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(sizehint); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(skip_file_prefixes); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(sleep); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(sock); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(sort); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(source); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(source_traceback); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(spam); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(src); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(src_dir_fd); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(stacklevel); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(start); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(statement); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(status); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(stderr); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(stdin); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(stdout); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(step); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(steps); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(store_name); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(strategy); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(strftime); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(strict); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(strict_mode); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(string); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(sub_key); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(symmetric_difference_update); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(tabsize); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(tag); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(target); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(target_is_directory); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(task); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(tb_frame); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(tb_lasti); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(tb_lineno); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(tb_next); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(tell); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(template); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(term); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(text); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(threading); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(throw); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(timeout); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(times); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(timetuple); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(top); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(trace_callback); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(traceback); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(trailers); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(translate); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(true); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(truncate); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(twice); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(txt); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(type); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(type_params); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(tz); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(tzinfo); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(tzname); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(uid); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(unlink); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(unraisablehook); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(uri); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(usedforsecurity); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(value); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(values); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(version); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(volume); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(wait_all); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(warn_on_full_buffer); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(warnings); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(warnoptions); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(wbits); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(week); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(weekday); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(which); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(who); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(withdata); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(writable); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(write); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(write_through); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(year); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(zdict); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(empty); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(dbl_percent); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(dot_locals); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(defaults); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(generic_base); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(kwdefaults); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(type_params); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(anon_null); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(anon_dictcomp); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(anon_genexpr); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(anon_lambda); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(anon_listcomp); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(anon_module); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(anon_setcomp); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(anon_string); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(anon_unknown); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(json_decoder); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(list_err); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(utf_8); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(dbl_open_br); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(dbl_close_br); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); +} +/* End auto-generated code */ +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_UNICODEOBJECT_GENERATED_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_unionobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_unionobject.h new file mode 100644 index 000000000..6ece7134c --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_unionobject.h @@ -0,0 +1,25 @@ +#ifndef Py_INTERNAL_UNIONOBJECT_H +#define Py_INTERNAL_UNIONOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +// For extensions created by test_peg_generator +PyAPI_DATA(PyTypeObject) _PyUnion_Type; +PyAPI_FUNC(PyObject *) _Py_union_type_or(PyObject *, PyObject *); + +#define _PyUnion_Check(op) Py_IS_TYPE((op), &_PyUnion_Type) + +#define _PyGenericAlias_Check(op) PyObject_TypeCheck((op), &Py_GenericAliasType) +extern PyObject *_Py_subs_parameters(PyObject *, PyObject *, PyObject *, PyObject *); +extern PyObject *_Py_make_parameters(PyObject *); +extern PyObject *_Py_union_args(PyObject *self); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_UNIONOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_uop_ids.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_uop_ids.h new file mode 100644 index 000000000..1e6ef8e54 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_uop_ids.h @@ -0,0 +1,294 @@ +// This file is generated by Tools/cases_generator/uop_id_generator.py +// from: +// Python/bytecodes.c +// Do not edit! + +#ifndef Py_CORE_UOP_IDS_H +#define Py_CORE_UOP_IDS_H +#ifdef __cplusplus +extern "C" { +#endif + +#define _EXIT_TRACE 300 +#define _SET_IP 301 +#define _BEFORE_ASYNC_WITH BEFORE_ASYNC_WITH +#define _BEFORE_WITH BEFORE_WITH +#define _BINARY_OP 302 +#define _BINARY_OP_ADD_FLOAT 303 +#define _BINARY_OP_ADD_INT 304 +#define _BINARY_OP_ADD_UNICODE 305 +#define _BINARY_OP_MULTIPLY_FLOAT 306 +#define _BINARY_OP_MULTIPLY_INT 307 +#define _BINARY_OP_SUBTRACT_FLOAT 308 +#define _BINARY_OP_SUBTRACT_INT 309 +#define _BINARY_SLICE BINARY_SLICE +#define _BINARY_SUBSCR 310 +#define _BINARY_SUBSCR_DICT BINARY_SUBSCR_DICT +#define _BINARY_SUBSCR_GETITEM BINARY_SUBSCR_GETITEM +#define _BINARY_SUBSCR_LIST_INT BINARY_SUBSCR_LIST_INT +#define _BINARY_SUBSCR_STR_INT BINARY_SUBSCR_STR_INT +#define _BINARY_SUBSCR_TUPLE_INT BINARY_SUBSCR_TUPLE_INT +#define _BUILD_CONST_KEY_MAP BUILD_CONST_KEY_MAP +#define _BUILD_LIST BUILD_LIST +#define _BUILD_MAP BUILD_MAP +#define _BUILD_SET BUILD_SET +#define _BUILD_SLICE BUILD_SLICE +#define _BUILD_STRING BUILD_STRING +#define _BUILD_TUPLE BUILD_TUPLE +#define _CALL 311 +#define _CALL_ALLOC_AND_ENTER_INIT CALL_ALLOC_AND_ENTER_INIT +#define _CALL_BUILTIN_CLASS 312 +#define _CALL_BUILTIN_FAST 313 +#define _CALL_BUILTIN_FAST_WITH_KEYWORDS 314 +#define _CALL_BUILTIN_O 315 +#define _CALL_FUNCTION_EX CALL_FUNCTION_EX +#define _CALL_INTRINSIC_1 CALL_INTRINSIC_1 +#define _CALL_INTRINSIC_2 CALL_INTRINSIC_2 +#define _CALL_ISINSTANCE CALL_ISINSTANCE +#define _CALL_KW CALL_KW +#define _CALL_LEN CALL_LEN +#define _CALL_METHOD_DESCRIPTOR_FAST 316 +#define _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS 317 +#define _CALL_METHOD_DESCRIPTOR_NOARGS 318 +#define _CALL_METHOD_DESCRIPTOR_O 319 +#define _CALL_NON_PY_GENERAL 320 +#define _CALL_STR_1 321 +#define _CALL_TUPLE_1 322 +#define _CALL_TYPE_1 CALL_TYPE_1 +#define _CHECK_ATTR_CLASS 323 +#define _CHECK_ATTR_METHOD_LAZY_DICT 324 +#define _CHECK_ATTR_MODULE 325 +#define _CHECK_ATTR_WITH_HINT 326 +#define _CHECK_CALL_BOUND_METHOD_EXACT_ARGS 327 +#define _CHECK_EG_MATCH CHECK_EG_MATCH +#define _CHECK_EXC_MATCH CHECK_EXC_MATCH +#define _CHECK_FUNCTION 328 +#define _CHECK_FUNCTION_EXACT_ARGS 329 +#define _CHECK_FUNCTION_VERSION 330 +#define _CHECK_IS_NOT_PY_CALLABLE 331 +#define _CHECK_MANAGED_OBJECT_HAS_VALUES 332 +#define _CHECK_METHOD_VERSION 333 +#define _CHECK_PEP_523 334 +#define _CHECK_PERIODIC 335 +#define _CHECK_STACK_SPACE 336 +#define _CHECK_STACK_SPACE_OPERAND 337 +#define _CHECK_VALIDITY 338 +#define _CHECK_VALIDITY_AND_SET_IP 339 +#define _COLD_EXIT 340 +#define _COMPARE_OP 341 +#define _COMPARE_OP_FLOAT 342 +#define _COMPARE_OP_INT 343 +#define _COMPARE_OP_STR 344 +#define _CONTAINS_OP 345 +#define _CONTAINS_OP_DICT CONTAINS_OP_DICT +#define _CONTAINS_OP_SET CONTAINS_OP_SET +#define _CONVERT_VALUE CONVERT_VALUE +#define _COPY COPY +#define _COPY_FREE_VARS COPY_FREE_VARS +#define _DELETE_ATTR DELETE_ATTR +#define _DELETE_DEREF DELETE_DEREF +#define _DELETE_FAST DELETE_FAST +#define _DELETE_GLOBAL DELETE_GLOBAL +#define _DELETE_NAME DELETE_NAME +#define _DELETE_SUBSCR DELETE_SUBSCR +#define _DEOPT 346 +#define _DICT_MERGE DICT_MERGE +#define _DICT_UPDATE DICT_UPDATE +#define _DYNAMIC_EXIT 347 +#define _END_SEND END_SEND +#define _ERROR_POP_N 348 +#define _EXIT_INIT_CHECK EXIT_INIT_CHECK +#define _EXPAND_METHOD 349 +#define _FATAL_ERROR 350 +#define _FORMAT_SIMPLE FORMAT_SIMPLE +#define _FORMAT_WITH_SPEC FORMAT_WITH_SPEC +#define _FOR_ITER 351 +#define _FOR_ITER_GEN_FRAME 352 +#define _FOR_ITER_TIER_TWO 353 +#define _GET_AITER GET_AITER +#define _GET_ANEXT GET_ANEXT +#define _GET_AWAITABLE GET_AWAITABLE +#define _GET_ITER GET_ITER +#define _GET_LEN GET_LEN +#define _GET_YIELD_FROM_ITER GET_YIELD_FROM_ITER +#define _GUARD_BOTH_FLOAT 354 +#define _GUARD_BOTH_INT 355 +#define _GUARD_BOTH_UNICODE 356 +#define _GUARD_BUILTINS_VERSION 357 +#define _GUARD_DORV_NO_DICT 358 +#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT 359 +#define _GUARD_GLOBALS_VERSION 360 +#define _GUARD_IS_FALSE_POP 361 +#define _GUARD_IS_NONE_POP 362 +#define _GUARD_IS_NOT_NONE_POP 363 +#define _GUARD_IS_TRUE_POP 364 +#define _GUARD_KEYS_VERSION 365 +#define _GUARD_NOS_FLOAT 366 +#define _GUARD_NOS_INT 367 +#define _GUARD_NOT_EXHAUSTED_LIST 368 +#define _GUARD_NOT_EXHAUSTED_RANGE 369 +#define _GUARD_NOT_EXHAUSTED_TUPLE 370 +#define _GUARD_TOS_FLOAT 371 +#define _GUARD_TOS_INT 372 +#define _GUARD_TYPE_VERSION 373 +#define _INIT_CALL_BOUND_METHOD_EXACT_ARGS 374 +#define _INIT_CALL_PY_EXACT_ARGS 375 +#define _INIT_CALL_PY_EXACT_ARGS_0 376 +#define _INIT_CALL_PY_EXACT_ARGS_1 377 +#define _INIT_CALL_PY_EXACT_ARGS_2 378 +#define _INIT_CALL_PY_EXACT_ARGS_3 379 +#define _INIT_CALL_PY_EXACT_ARGS_4 380 +#define _INSTRUMENTED_CALL INSTRUMENTED_CALL +#define _INSTRUMENTED_CALL_FUNCTION_EX INSTRUMENTED_CALL_FUNCTION_EX +#define _INSTRUMENTED_CALL_KW INSTRUMENTED_CALL_KW +#define _INSTRUMENTED_FOR_ITER INSTRUMENTED_FOR_ITER +#define _INSTRUMENTED_INSTRUCTION INSTRUMENTED_INSTRUCTION +#define _INSTRUMENTED_JUMP_BACKWARD INSTRUMENTED_JUMP_BACKWARD +#define _INSTRUMENTED_JUMP_FORWARD INSTRUMENTED_JUMP_FORWARD +#define _INSTRUMENTED_LOAD_SUPER_ATTR INSTRUMENTED_LOAD_SUPER_ATTR +#define _INSTRUMENTED_POP_JUMP_IF_FALSE INSTRUMENTED_POP_JUMP_IF_FALSE +#define _INSTRUMENTED_POP_JUMP_IF_NONE INSTRUMENTED_POP_JUMP_IF_NONE +#define _INSTRUMENTED_POP_JUMP_IF_NOT_NONE INSTRUMENTED_POP_JUMP_IF_NOT_NONE +#define _INSTRUMENTED_POP_JUMP_IF_TRUE INSTRUMENTED_POP_JUMP_IF_TRUE +#define _INSTRUMENTED_RESUME INSTRUMENTED_RESUME +#define _INSTRUMENTED_RETURN_CONST INSTRUMENTED_RETURN_CONST +#define _INSTRUMENTED_RETURN_VALUE INSTRUMENTED_RETURN_VALUE +#define _INSTRUMENTED_YIELD_VALUE INSTRUMENTED_YIELD_VALUE +#define _INTERNAL_INCREMENT_OPT_COUNTER 381 +#define _IS_NONE 382 +#define _IS_OP IS_OP +#define _ITER_CHECK_LIST 383 +#define _ITER_CHECK_RANGE 384 +#define _ITER_CHECK_TUPLE 385 +#define _ITER_JUMP_LIST 386 +#define _ITER_JUMP_RANGE 387 +#define _ITER_JUMP_TUPLE 388 +#define _ITER_NEXT_LIST 389 +#define _ITER_NEXT_RANGE 390 +#define _ITER_NEXT_TUPLE 391 +#define _JUMP_TO_TOP 392 +#define _LIST_APPEND LIST_APPEND +#define _LIST_EXTEND LIST_EXTEND +#define _LOAD_ASSERTION_ERROR LOAD_ASSERTION_ERROR +#define _LOAD_ATTR 393 +#define _LOAD_ATTR_CLASS 394 +#define _LOAD_ATTR_CLASS_0 395 +#define _LOAD_ATTR_CLASS_1 396 +#define _LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN +#define _LOAD_ATTR_INSTANCE_VALUE 397 +#define _LOAD_ATTR_INSTANCE_VALUE_0 398 +#define _LOAD_ATTR_INSTANCE_VALUE_1 399 +#define _LOAD_ATTR_METHOD_LAZY_DICT 400 +#define _LOAD_ATTR_METHOD_NO_DICT 401 +#define _LOAD_ATTR_METHOD_WITH_VALUES 402 +#define _LOAD_ATTR_MODULE 403 +#define _LOAD_ATTR_NONDESCRIPTOR_NO_DICT 404 +#define _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES 405 +#define _LOAD_ATTR_PROPERTY LOAD_ATTR_PROPERTY +#define _LOAD_ATTR_SLOT 406 +#define _LOAD_ATTR_SLOT_0 407 +#define _LOAD_ATTR_SLOT_1 408 +#define _LOAD_ATTR_WITH_HINT 409 +#define _LOAD_BUILD_CLASS LOAD_BUILD_CLASS +#define _LOAD_CONST LOAD_CONST +#define _LOAD_CONST_INLINE 410 +#define _LOAD_CONST_INLINE_BORROW 411 +#define _LOAD_CONST_INLINE_BORROW_WITH_NULL 412 +#define _LOAD_CONST_INLINE_WITH_NULL 413 +#define _LOAD_DEREF LOAD_DEREF +#define _LOAD_FAST 414 +#define _LOAD_FAST_0 415 +#define _LOAD_FAST_1 416 +#define _LOAD_FAST_2 417 +#define _LOAD_FAST_3 418 +#define _LOAD_FAST_4 419 +#define _LOAD_FAST_5 420 +#define _LOAD_FAST_6 421 +#define _LOAD_FAST_7 422 +#define _LOAD_FAST_AND_CLEAR LOAD_FAST_AND_CLEAR +#define _LOAD_FAST_CHECK LOAD_FAST_CHECK +#define _LOAD_FAST_LOAD_FAST LOAD_FAST_LOAD_FAST +#define _LOAD_FROM_DICT_OR_DEREF LOAD_FROM_DICT_OR_DEREF +#define _LOAD_FROM_DICT_OR_GLOBALS LOAD_FROM_DICT_OR_GLOBALS +#define _LOAD_GLOBAL 423 +#define _LOAD_GLOBAL_BUILTINS 424 +#define _LOAD_GLOBAL_MODULE 425 +#define _LOAD_LOCALS LOAD_LOCALS +#define _LOAD_NAME LOAD_NAME +#define _LOAD_SUPER_ATTR_ATTR LOAD_SUPER_ATTR_ATTR +#define _LOAD_SUPER_ATTR_METHOD LOAD_SUPER_ATTR_METHOD +#define _MAKE_CELL MAKE_CELL +#define _MAKE_FUNCTION MAKE_FUNCTION +#define _MAP_ADD MAP_ADD +#define _MATCH_CLASS MATCH_CLASS +#define _MATCH_KEYS MATCH_KEYS +#define _MATCH_MAPPING MATCH_MAPPING +#define _MATCH_SEQUENCE MATCH_SEQUENCE +#define _NOP NOP +#define _POP_EXCEPT POP_EXCEPT +#define _POP_FRAME 426 +#define _POP_JUMP_IF_FALSE 427 +#define _POP_JUMP_IF_TRUE 428 +#define _POP_TOP POP_TOP +#define _POP_TOP_LOAD_CONST_INLINE_BORROW 429 +#define _PUSH_EXC_INFO PUSH_EXC_INFO +#define _PUSH_FRAME 430 +#define _PUSH_NULL PUSH_NULL +#define _PY_FRAME_GENERAL 431 +#define _REPLACE_WITH_TRUE 432 +#define _RESUME_CHECK RESUME_CHECK +#define _RETURN_GENERATOR RETURN_GENERATOR +#define _SAVE_RETURN_OFFSET 433 +#define _SEND 434 +#define _SEND_GEN SEND_GEN +#define _SETUP_ANNOTATIONS SETUP_ANNOTATIONS +#define _SET_ADD SET_ADD +#define _SET_FUNCTION_ATTRIBUTE SET_FUNCTION_ATTRIBUTE +#define _SET_UPDATE SET_UPDATE +#define _START_EXECUTOR 435 +#define _STORE_ATTR 436 +#define _STORE_ATTR_INSTANCE_VALUE 437 +#define _STORE_ATTR_SLOT 438 +#define _STORE_ATTR_WITH_HINT STORE_ATTR_WITH_HINT +#define _STORE_DEREF STORE_DEREF +#define _STORE_FAST 439 +#define _STORE_FAST_0 440 +#define _STORE_FAST_1 441 +#define _STORE_FAST_2 442 +#define _STORE_FAST_3 443 +#define _STORE_FAST_4 444 +#define _STORE_FAST_5 445 +#define _STORE_FAST_6 446 +#define _STORE_FAST_7 447 +#define _STORE_FAST_LOAD_FAST STORE_FAST_LOAD_FAST +#define _STORE_FAST_STORE_FAST STORE_FAST_STORE_FAST +#define _STORE_GLOBAL STORE_GLOBAL +#define _STORE_NAME STORE_NAME +#define _STORE_SLICE STORE_SLICE +#define _STORE_SUBSCR 448 +#define _STORE_SUBSCR_DICT STORE_SUBSCR_DICT +#define _STORE_SUBSCR_LIST_INT STORE_SUBSCR_LIST_INT +#define _SWAP SWAP +#define _TIER2_RESUME_CHECK 449 +#define _TO_BOOL 450 +#define _TO_BOOL_BOOL TO_BOOL_BOOL +#define _TO_BOOL_INT TO_BOOL_INT +#define _TO_BOOL_LIST TO_BOOL_LIST +#define _TO_BOOL_NONE TO_BOOL_NONE +#define _TO_BOOL_STR TO_BOOL_STR +#define _UNARY_INVERT UNARY_INVERT +#define _UNARY_NEGATIVE UNARY_NEGATIVE +#define _UNARY_NOT UNARY_NOT +#define _UNPACK_EX UNPACK_EX +#define _UNPACK_SEQUENCE 451 +#define _UNPACK_SEQUENCE_LIST UNPACK_SEQUENCE_LIST +#define _UNPACK_SEQUENCE_TUPLE UNPACK_SEQUENCE_TUPLE +#define _UNPACK_SEQUENCE_TWO_TUPLE UNPACK_SEQUENCE_TWO_TUPLE +#define _WITH_EXCEPT_START WITH_EXCEPT_START +#define _YIELD_VALUE YIELD_VALUE +#define MAX_UOP_ID 451 + +#ifdef __cplusplus +} +#endif +#endif /* !Py_CORE_UOP_IDS_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_uop_metadata.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_uop_metadata.h new file mode 100644 index 000000000..02ffc769c --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_uop_metadata.h @@ -0,0 +1,1006 @@ +// This file is generated by Tools/cases_generator/uop_metadata_generator.py +// from: +// Python/bytecodes.c +// Do not edit! + +#ifndef Py_CORE_UOP_METADATA_H +#define Py_CORE_UOP_METADATA_H +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include "pycore_uop_ids.h" +extern const uint16_t _PyUop_Flags[MAX_UOP_ID+1]; +extern const uint8_t _PyUop_Replication[MAX_UOP_ID+1]; +extern const char * const _PyOpcode_uop_name[MAX_UOP_ID+1]; + +extern int _PyUop_num_popped(int opcode, int oparg); + +#ifdef NEED_OPCODE_METADATA +const uint16_t _PyUop_Flags[MAX_UOP_ID+1] = { + [_NOP] = HAS_PURE_FLAG, + [_RESUME_CHECK] = HAS_DEOPT_FLAG, + [_LOAD_FAST_CHECK] = HAS_ARG_FLAG | HAS_LOCAL_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_LOAD_FAST_0] = HAS_LOCAL_FLAG | HAS_PURE_FLAG, + [_LOAD_FAST_1] = HAS_LOCAL_FLAG | HAS_PURE_FLAG, + [_LOAD_FAST_2] = HAS_LOCAL_FLAG | HAS_PURE_FLAG, + [_LOAD_FAST_3] = HAS_LOCAL_FLAG | HAS_PURE_FLAG, + [_LOAD_FAST_4] = HAS_LOCAL_FLAG | HAS_PURE_FLAG, + [_LOAD_FAST_5] = HAS_LOCAL_FLAG | HAS_PURE_FLAG, + [_LOAD_FAST_6] = HAS_LOCAL_FLAG | HAS_PURE_FLAG, + [_LOAD_FAST_7] = HAS_LOCAL_FLAG | HAS_PURE_FLAG, + [_LOAD_FAST] = HAS_ARG_FLAG | HAS_LOCAL_FLAG | HAS_PURE_FLAG, + [_LOAD_FAST_AND_CLEAR] = HAS_ARG_FLAG | HAS_LOCAL_FLAG, + [_LOAD_FAST_LOAD_FAST] = HAS_ARG_FLAG | HAS_LOCAL_FLAG, + [_LOAD_CONST] = HAS_ARG_FLAG | HAS_CONST_FLAG | HAS_PURE_FLAG, + [_STORE_FAST_0] = HAS_LOCAL_FLAG, + [_STORE_FAST_1] = HAS_LOCAL_FLAG, + [_STORE_FAST_2] = HAS_LOCAL_FLAG, + [_STORE_FAST_3] = HAS_LOCAL_FLAG, + [_STORE_FAST_4] = HAS_LOCAL_FLAG, + [_STORE_FAST_5] = HAS_LOCAL_FLAG, + [_STORE_FAST_6] = HAS_LOCAL_FLAG, + [_STORE_FAST_7] = HAS_LOCAL_FLAG, + [_STORE_FAST] = HAS_ARG_FLAG | HAS_LOCAL_FLAG, + [_STORE_FAST_LOAD_FAST] = HAS_ARG_FLAG | HAS_LOCAL_FLAG, + [_STORE_FAST_STORE_FAST] = HAS_ARG_FLAG | HAS_LOCAL_FLAG, + [_POP_TOP] = HAS_PURE_FLAG, + [_PUSH_NULL] = HAS_PURE_FLAG, + [_END_SEND] = HAS_PURE_FLAG, + [_UNARY_NEGATIVE] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_UNARY_NOT] = HAS_PURE_FLAG, + [_TO_BOOL] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_TO_BOOL_BOOL] = HAS_EXIT_FLAG, + [_TO_BOOL_INT] = HAS_EXIT_FLAG | HAS_ESCAPES_FLAG, + [_TO_BOOL_LIST] = HAS_EXIT_FLAG, + [_TO_BOOL_NONE] = HAS_EXIT_FLAG, + [_TO_BOOL_STR] = HAS_EXIT_FLAG | HAS_ESCAPES_FLAG, + [_REPLACE_WITH_TRUE] = 0, + [_UNARY_INVERT] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_GUARD_BOTH_INT] = HAS_EXIT_FLAG, + [_GUARD_NOS_INT] = HAS_EXIT_FLAG, + [_GUARD_TOS_INT] = HAS_EXIT_FLAG, + [_BINARY_OP_MULTIPLY_INT] = HAS_ERROR_FLAG | HAS_PURE_FLAG, + [_BINARY_OP_ADD_INT] = HAS_ERROR_FLAG | HAS_PURE_FLAG, + [_BINARY_OP_SUBTRACT_INT] = HAS_ERROR_FLAG | HAS_PURE_FLAG, + [_GUARD_BOTH_FLOAT] = HAS_EXIT_FLAG, + [_GUARD_NOS_FLOAT] = HAS_EXIT_FLAG, + [_GUARD_TOS_FLOAT] = HAS_EXIT_FLAG, + [_BINARY_OP_MULTIPLY_FLOAT] = HAS_PURE_FLAG, + [_BINARY_OP_ADD_FLOAT] = HAS_PURE_FLAG, + [_BINARY_OP_SUBTRACT_FLOAT] = HAS_PURE_FLAG, + [_GUARD_BOTH_UNICODE] = HAS_EXIT_FLAG, + [_BINARY_OP_ADD_UNICODE] = HAS_ERROR_FLAG | HAS_PURE_FLAG, + [_BINARY_SUBSCR] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_BINARY_SLICE] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_STORE_SLICE] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_BINARY_SUBSCR_LIST_INT] = HAS_DEOPT_FLAG, + [_BINARY_SUBSCR_STR_INT] = HAS_DEOPT_FLAG, + [_BINARY_SUBSCR_TUPLE_INT] = HAS_DEOPT_FLAG, + [_BINARY_SUBSCR_DICT] = HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_LIST_APPEND] = HAS_ARG_FLAG | HAS_ERROR_FLAG, + [_SET_ADD] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_STORE_SUBSCR] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_STORE_SUBSCR_LIST_INT] = HAS_DEOPT_FLAG, + [_STORE_SUBSCR_DICT] = HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_DELETE_SUBSCR] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_CALL_INTRINSIC_1] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_CALL_INTRINSIC_2] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_POP_FRAME] = 0, + [_GET_AITER] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_GET_ANEXT] = HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG, + [_GET_AWAITABLE] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_YIELD_VALUE] = HAS_ARG_FLAG | HAS_ESCAPES_FLAG, + [_POP_EXCEPT] = HAS_ESCAPES_FLAG, + [_LOAD_ASSERTION_ERROR] = 0, + [_LOAD_BUILD_CLASS] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_STORE_NAME] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_DELETE_NAME] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG, + [_UNPACK_SEQUENCE] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_UNPACK_SEQUENCE_TWO_TUPLE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG, + [_UNPACK_SEQUENCE_TUPLE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG, + [_UNPACK_SEQUENCE_LIST] = HAS_ARG_FLAG | HAS_DEOPT_FLAG, + [_UNPACK_EX] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_STORE_ATTR] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_DELETE_ATTR] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_STORE_GLOBAL] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_DELETE_GLOBAL] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG, + [_LOAD_LOCALS] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_LOAD_GLOBAL] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_GUARD_GLOBALS_VERSION] = HAS_DEOPT_FLAG, + [_GUARD_BUILTINS_VERSION] = HAS_DEOPT_FLAG, + [_LOAD_GLOBAL_MODULE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG, + [_LOAD_GLOBAL_BUILTINS] = HAS_ARG_FLAG | HAS_DEOPT_FLAG, + [_DELETE_FAST] = HAS_ARG_FLAG | HAS_LOCAL_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_MAKE_CELL] = HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG, + [_DELETE_DEREF] = HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG, + [_LOAD_FROM_DICT_OR_DEREF] = HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG, + [_LOAD_DEREF] = HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_STORE_DEREF] = HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ESCAPES_FLAG, + [_COPY_FREE_VARS] = HAS_ARG_FLAG, + [_BUILD_STRING] = HAS_ARG_FLAG | HAS_ERROR_FLAG, + [_BUILD_TUPLE] = HAS_ARG_FLAG | HAS_ERROR_FLAG, + [_BUILD_LIST] = HAS_ARG_FLAG | HAS_ERROR_FLAG, + [_LIST_EXTEND] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_SET_UPDATE] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_BUILD_MAP] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_SETUP_ANNOTATIONS] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_BUILD_CONST_KEY_MAP] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_DICT_UPDATE] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_DICT_MERGE] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_MAP_ADD] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_LOAD_SUPER_ATTR_ATTR] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_LOAD_SUPER_ATTR_METHOD] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_LOAD_ATTR] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_GUARD_TYPE_VERSION] = HAS_EXIT_FLAG, + [_CHECK_MANAGED_OBJECT_HAS_VALUES] = HAS_DEOPT_FLAG, + [_LOAD_ATTR_INSTANCE_VALUE_0] = HAS_DEOPT_FLAG, + [_LOAD_ATTR_INSTANCE_VALUE_1] = HAS_DEOPT_FLAG, + [_LOAD_ATTR_INSTANCE_VALUE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_OPARG_AND_1_FLAG, + [_CHECK_ATTR_MODULE] = HAS_DEOPT_FLAG, + [_LOAD_ATTR_MODULE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG, + [_CHECK_ATTR_WITH_HINT] = HAS_DEOPT_FLAG, + [_LOAD_ATTR_WITH_HINT] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG, + [_LOAD_ATTR_SLOT_0] = HAS_DEOPT_FLAG, + [_LOAD_ATTR_SLOT_1] = HAS_DEOPT_FLAG, + [_LOAD_ATTR_SLOT] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_OPARG_AND_1_FLAG, + [_CHECK_ATTR_CLASS] = HAS_DEOPT_FLAG, + [_LOAD_ATTR_CLASS_0] = 0, + [_LOAD_ATTR_CLASS_1] = 0, + [_LOAD_ATTR_CLASS] = HAS_ARG_FLAG | HAS_OPARG_AND_1_FLAG, + [_GUARD_DORV_NO_DICT] = HAS_DEOPT_FLAG, + [_STORE_ATTR_INSTANCE_VALUE] = 0, + [_STORE_ATTR_SLOT] = 0, + [_COMPARE_OP] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_COMPARE_OP_FLOAT] = HAS_ARG_FLAG, + [_COMPARE_OP_INT] = HAS_ARG_FLAG | HAS_DEOPT_FLAG, + [_COMPARE_OP_STR] = HAS_ARG_FLAG, + [_IS_OP] = HAS_ARG_FLAG, + [_CONTAINS_OP] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_CONTAINS_OP_SET] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_CONTAINS_OP_DICT] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_CHECK_EG_MATCH] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_CHECK_EXC_MATCH] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_IS_NONE] = 0, + [_GET_LEN] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_MATCH_CLASS] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_MATCH_MAPPING] = 0, + [_MATCH_SEQUENCE] = 0, + [_MATCH_KEYS] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_GET_ITER] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_GET_YIELD_FROM_ITER] = HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG, + [_FOR_ITER_TIER_TWO] = HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG, + [_ITER_CHECK_LIST] = HAS_EXIT_FLAG, + [_GUARD_NOT_EXHAUSTED_LIST] = HAS_EXIT_FLAG, + [_ITER_NEXT_LIST] = 0, + [_ITER_CHECK_TUPLE] = HAS_EXIT_FLAG, + [_GUARD_NOT_EXHAUSTED_TUPLE] = HAS_EXIT_FLAG, + [_ITER_NEXT_TUPLE] = 0, + [_ITER_CHECK_RANGE] = HAS_EXIT_FLAG, + [_GUARD_NOT_EXHAUSTED_RANGE] = HAS_EXIT_FLAG, + [_ITER_NEXT_RANGE] = HAS_ERROR_FLAG, + [_FOR_ITER_GEN_FRAME] = HAS_ARG_FLAG | HAS_DEOPT_FLAG, + [_WITH_EXCEPT_START] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_PUSH_EXC_INFO] = 0, + [_GUARD_DORV_VALUES_INST_ATTR_FROM_DICT] = HAS_DEOPT_FLAG, + [_GUARD_KEYS_VERSION] = HAS_DEOPT_FLAG, + [_LOAD_ATTR_METHOD_WITH_VALUES] = HAS_ARG_FLAG, + [_LOAD_ATTR_METHOD_NO_DICT] = HAS_ARG_FLAG, + [_LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES] = HAS_ARG_FLAG, + [_LOAD_ATTR_NONDESCRIPTOR_NO_DICT] = HAS_ARG_FLAG, + [_CHECK_ATTR_METHOD_LAZY_DICT] = HAS_DEOPT_FLAG, + [_LOAD_ATTR_METHOD_LAZY_DICT] = HAS_ARG_FLAG, + [_CHECK_PERIODIC] = HAS_EVAL_BREAK_FLAG, + [_PY_FRAME_GENERAL] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG, + [_CHECK_FUNCTION_VERSION] = HAS_ARG_FLAG | HAS_EXIT_FLAG, + [_CHECK_METHOD_VERSION] = HAS_ARG_FLAG | HAS_EXIT_FLAG, + [_EXPAND_METHOD] = HAS_ARG_FLAG, + [_CHECK_IS_NOT_PY_CALLABLE] = HAS_ARG_FLAG | HAS_EXIT_FLAG, + [_CALL_NON_PY_GENERAL] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_CHECK_CALL_BOUND_METHOD_EXACT_ARGS] = HAS_ARG_FLAG | HAS_EXIT_FLAG, + [_INIT_CALL_BOUND_METHOD_EXACT_ARGS] = HAS_ARG_FLAG, + [_CHECK_PEP_523] = HAS_DEOPT_FLAG, + [_CHECK_FUNCTION_EXACT_ARGS] = HAS_ARG_FLAG | HAS_EXIT_FLAG, + [_CHECK_STACK_SPACE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG, + [_INIT_CALL_PY_EXACT_ARGS_0] = HAS_PURE_FLAG, + [_INIT_CALL_PY_EXACT_ARGS_1] = HAS_PURE_FLAG, + [_INIT_CALL_PY_EXACT_ARGS_2] = HAS_PURE_FLAG, + [_INIT_CALL_PY_EXACT_ARGS_3] = HAS_PURE_FLAG, + [_INIT_CALL_PY_EXACT_ARGS_4] = HAS_PURE_FLAG, + [_INIT_CALL_PY_EXACT_ARGS] = HAS_ARG_FLAG | HAS_PURE_FLAG, + [_PUSH_FRAME] = 0, + [_CALL_TYPE_1] = HAS_ARG_FLAG | HAS_DEOPT_FLAG, + [_CALL_STR_1] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_CALL_TUPLE_1] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_EXIT_INIT_CHECK] = HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG, + [_CALL_BUILTIN_CLASS] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_CALL_BUILTIN_O] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_CALL_BUILTIN_FAST] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_CALL_BUILTIN_FAST_WITH_KEYWORDS] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_CALL_LEN] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG, + [_CALL_ISINSTANCE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG, + [_CALL_METHOD_DESCRIPTOR_O] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_CALL_METHOD_DESCRIPTOR_NOARGS] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_CALL_METHOD_DESCRIPTOR_FAST] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_MAKE_FUNCTION] = HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG, + [_SET_FUNCTION_ATTRIBUTE] = HAS_ARG_FLAG | HAS_ESCAPES_FLAG, + [_RETURN_GENERATOR] = HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG, + [_BUILD_SLICE] = HAS_ARG_FLAG | HAS_ERROR_FLAG, + [_CONVERT_VALUE] = HAS_ARG_FLAG | HAS_ERROR_FLAG, + [_FORMAT_SIMPLE] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_FORMAT_WITH_SPEC] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_COPY] = HAS_ARG_FLAG | HAS_PURE_FLAG, + [_BINARY_OP] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_SWAP] = HAS_ARG_FLAG | HAS_PURE_FLAG, + [_GUARD_IS_TRUE_POP] = HAS_EXIT_FLAG, + [_GUARD_IS_FALSE_POP] = HAS_EXIT_FLAG, + [_GUARD_IS_NONE_POP] = HAS_EXIT_FLAG, + [_GUARD_IS_NOT_NONE_POP] = HAS_EXIT_FLAG, + [_JUMP_TO_TOP] = 0, + [_SET_IP] = 0, + [_CHECK_STACK_SPACE_OPERAND] = HAS_DEOPT_FLAG, + [_SAVE_RETURN_OFFSET] = HAS_ARG_FLAG, + [_EXIT_TRACE] = 0, + [_CHECK_VALIDITY] = HAS_DEOPT_FLAG, + [_LOAD_CONST_INLINE] = HAS_PURE_FLAG, + [_LOAD_CONST_INLINE_BORROW] = HAS_PURE_FLAG, + [_POP_TOP_LOAD_CONST_INLINE_BORROW] = HAS_PURE_FLAG, + [_LOAD_CONST_INLINE_WITH_NULL] = HAS_PURE_FLAG, + [_LOAD_CONST_INLINE_BORROW_WITH_NULL] = HAS_PURE_FLAG, + [_CHECK_FUNCTION] = HAS_DEOPT_FLAG, + [_INTERNAL_INCREMENT_OPT_COUNTER] = 0, + [_COLD_EXIT] = HAS_ARG_FLAG | HAS_ESCAPES_FLAG, + [_DYNAMIC_EXIT] = HAS_ARG_FLAG | HAS_ESCAPES_FLAG, + [_START_EXECUTOR] = HAS_DEOPT_FLAG, + [_FATAL_ERROR] = 0, + [_CHECK_VALIDITY_AND_SET_IP] = HAS_DEOPT_FLAG, + [_DEOPT] = 0, + [_ERROR_POP_N] = HAS_ARG_FLAG, + [_TIER2_RESUME_CHECK] = HAS_DEOPT_FLAG, +}; + +const uint8_t _PyUop_Replication[MAX_UOP_ID+1] = { + [_LOAD_FAST] = 8, + [_STORE_FAST] = 8, + [_INIT_CALL_PY_EXACT_ARGS] = 5, +}; + +const char *const _PyOpcode_uop_name[MAX_UOP_ID+1] = { + [_BINARY_OP] = "_BINARY_OP", + [_BINARY_OP_ADD_FLOAT] = "_BINARY_OP_ADD_FLOAT", + [_BINARY_OP_ADD_INT] = "_BINARY_OP_ADD_INT", + [_BINARY_OP_ADD_UNICODE] = "_BINARY_OP_ADD_UNICODE", + [_BINARY_OP_MULTIPLY_FLOAT] = "_BINARY_OP_MULTIPLY_FLOAT", + [_BINARY_OP_MULTIPLY_INT] = "_BINARY_OP_MULTIPLY_INT", + [_BINARY_OP_SUBTRACT_FLOAT] = "_BINARY_OP_SUBTRACT_FLOAT", + [_BINARY_OP_SUBTRACT_INT] = "_BINARY_OP_SUBTRACT_INT", + [_BINARY_SLICE] = "_BINARY_SLICE", + [_BINARY_SUBSCR] = "_BINARY_SUBSCR", + [_BINARY_SUBSCR_DICT] = "_BINARY_SUBSCR_DICT", + [_BINARY_SUBSCR_LIST_INT] = "_BINARY_SUBSCR_LIST_INT", + [_BINARY_SUBSCR_STR_INT] = "_BINARY_SUBSCR_STR_INT", + [_BINARY_SUBSCR_TUPLE_INT] = "_BINARY_SUBSCR_TUPLE_INT", + [_BUILD_CONST_KEY_MAP] = "_BUILD_CONST_KEY_MAP", + [_BUILD_LIST] = "_BUILD_LIST", + [_BUILD_MAP] = "_BUILD_MAP", + [_BUILD_SLICE] = "_BUILD_SLICE", + [_BUILD_STRING] = "_BUILD_STRING", + [_BUILD_TUPLE] = "_BUILD_TUPLE", + [_CALL_BUILTIN_CLASS] = "_CALL_BUILTIN_CLASS", + [_CALL_BUILTIN_FAST] = "_CALL_BUILTIN_FAST", + [_CALL_BUILTIN_FAST_WITH_KEYWORDS] = "_CALL_BUILTIN_FAST_WITH_KEYWORDS", + [_CALL_BUILTIN_O] = "_CALL_BUILTIN_O", + [_CALL_INTRINSIC_1] = "_CALL_INTRINSIC_1", + [_CALL_INTRINSIC_2] = "_CALL_INTRINSIC_2", + [_CALL_ISINSTANCE] = "_CALL_ISINSTANCE", + [_CALL_LEN] = "_CALL_LEN", + [_CALL_METHOD_DESCRIPTOR_FAST] = "_CALL_METHOD_DESCRIPTOR_FAST", + [_CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = "_CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS", + [_CALL_METHOD_DESCRIPTOR_NOARGS] = "_CALL_METHOD_DESCRIPTOR_NOARGS", + [_CALL_METHOD_DESCRIPTOR_O] = "_CALL_METHOD_DESCRIPTOR_O", + [_CALL_NON_PY_GENERAL] = "_CALL_NON_PY_GENERAL", + [_CALL_STR_1] = "_CALL_STR_1", + [_CALL_TUPLE_1] = "_CALL_TUPLE_1", + [_CALL_TYPE_1] = "_CALL_TYPE_1", + [_CHECK_ATTR_CLASS] = "_CHECK_ATTR_CLASS", + [_CHECK_ATTR_METHOD_LAZY_DICT] = "_CHECK_ATTR_METHOD_LAZY_DICT", + [_CHECK_ATTR_MODULE] = "_CHECK_ATTR_MODULE", + [_CHECK_ATTR_WITH_HINT] = "_CHECK_ATTR_WITH_HINT", + [_CHECK_CALL_BOUND_METHOD_EXACT_ARGS] = "_CHECK_CALL_BOUND_METHOD_EXACT_ARGS", + [_CHECK_EG_MATCH] = "_CHECK_EG_MATCH", + [_CHECK_EXC_MATCH] = "_CHECK_EXC_MATCH", + [_CHECK_FUNCTION] = "_CHECK_FUNCTION", + [_CHECK_FUNCTION_EXACT_ARGS] = "_CHECK_FUNCTION_EXACT_ARGS", + [_CHECK_FUNCTION_VERSION] = "_CHECK_FUNCTION_VERSION", + [_CHECK_IS_NOT_PY_CALLABLE] = "_CHECK_IS_NOT_PY_CALLABLE", + [_CHECK_MANAGED_OBJECT_HAS_VALUES] = "_CHECK_MANAGED_OBJECT_HAS_VALUES", + [_CHECK_METHOD_VERSION] = "_CHECK_METHOD_VERSION", + [_CHECK_PEP_523] = "_CHECK_PEP_523", + [_CHECK_PERIODIC] = "_CHECK_PERIODIC", + [_CHECK_STACK_SPACE] = "_CHECK_STACK_SPACE", + [_CHECK_STACK_SPACE_OPERAND] = "_CHECK_STACK_SPACE_OPERAND", + [_CHECK_VALIDITY] = "_CHECK_VALIDITY", + [_CHECK_VALIDITY_AND_SET_IP] = "_CHECK_VALIDITY_AND_SET_IP", + [_COLD_EXIT] = "_COLD_EXIT", + [_COMPARE_OP] = "_COMPARE_OP", + [_COMPARE_OP_FLOAT] = "_COMPARE_OP_FLOAT", + [_COMPARE_OP_INT] = "_COMPARE_OP_INT", + [_COMPARE_OP_STR] = "_COMPARE_OP_STR", + [_CONTAINS_OP] = "_CONTAINS_OP", + [_CONTAINS_OP_DICT] = "_CONTAINS_OP_DICT", + [_CONTAINS_OP_SET] = "_CONTAINS_OP_SET", + [_CONVERT_VALUE] = "_CONVERT_VALUE", + [_COPY] = "_COPY", + [_COPY_FREE_VARS] = "_COPY_FREE_VARS", + [_DELETE_ATTR] = "_DELETE_ATTR", + [_DELETE_DEREF] = "_DELETE_DEREF", + [_DELETE_FAST] = "_DELETE_FAST", + [_DELETE_GLOBAL] = "_DELETE_GLOBAL", + [_DELETE_NAME] = "_DELETE_NAME", + [_DELETE_SUBSCR] = "_DELETE_SUBSCR", + [_DEOPT] = "_DEOPT", + [_DICT_MERGE] = "_DICT_MERGE", + [_DICT_UPDATE] = "_DICT_UPDATE", + [_DYNAMIC_EXIT] = "_DYNAMIC_EXIT", + [_END_SEND] = "_END_SEND", + [_ERROR_POP_N] = "_ERROR_POP_N", + [_EXIT_INIT_CHECK] = "_EXIT_INIT_CHECK", + [_EXIT_TRACE] = "_EXIT_TRACE", + [_EXPAND_METHOD] = "_EXPAND_METHOD", + [_FATAL_ERROR] = "_FATAL_ERROR", + [_FORMAT_SIMPLE] = "_FORMAT_SIMPLE", + [_FORMAT_WITH_SPEC] = "_FORMAT_WITH_SPEC", + [_FOR_ITER_GEN_FRAME] = "_FOR_ITER_GEN_FRAME", + [_FOR_ITER_TIER_TWO] = "_FOR_ITER_TIER_TWO", + [_GET_AITER] = "_GET_AITER", + [_GET_ANEXT] = "_GET_ANEXT", + [_GET_AWAITABLE] = "_GET_AWAITABLE", + [_GET_ITER] = "_GET_ITER", + [_GET_LEN] = "_GET_LEN", + [_GET_YIELD_FROM_ITER] = "_GET_YIELD_FROM_ITER", + [_GUARD_BOTH_FLOAT] = "_GUARD_BOTH_FLOAT", + [_GUARD_BOTH_INT] = "_GUARD_BOTH_INT", + [_GUARD_BOTH_UNICODE] = "_GUARD_BOTH_UNICODE", + [_GUARD_BUILTINS_VERSION] = "_GUARD_BUILTINS_VERSION", + [_GUARD_DORV_NO_DICT] = "_GUARD_DORV_NO_DICT", + [_GUARD_DORV_VALUES_INST_ATTR_FROM_DICT] = "_GUARD_DORV_VALUES_INST_ATTR_FROM_DICT", + [_GUARD_GLOBALS_VERSION] = "_GUARD_GLOBALS_VERSION", + [_GUARD_IS_FALSE_POP] = "_GUARD_IS_FALSE_POP", + [_GUARD_IS_NONE_POP] = "_GUARD_IS_NONE_POP", + [_GUARD_IS_NOT_NONE_POP] = "_GUARD_IS_NOT_NONE_POP", + [_GUARD_IS_TRUE_POP] = "_GUARD_IS_TRUE_POP", + [_GUARD_KEYS_VERSION] = "_GUARD_KEYS_VERSION", + [_GUARD_NOS_FLOAT] = "_GUARD_NOS_FLOAT", + [_GUARD_NOS_INT] = "_GUARD_NOS_INT", + [_GUARD_NOT_EXHAUSTED_LIST] = "_GUARD_NOT_EXHAUSTED_LIST", + [_GUARD_NOT_EXHAUSTED_RANGE] = "_GUARD_NOT_EXHAUSTED_RANGE", + [_GUARD_NOT_EXHAUSTED_TUPLE] = "_GUARD_NOT_EXHAUSTED_TUPLE", + [_GUARD_TOS_FLOAT] = "_GUARD_TOS_FLOAT", + [_GUARD_TOS_INT] = "_GUARD_TOS_INT", + [_GUARD_TYPE_VERSION] = "_GUARD_TYPE_VERSION", + [_INIT_CALL_BOUND_METHOD_EXACT_ARGS] = "_INIT_CALL_BOUND_METHOD_EXACT_ARGS", + [_INIT_CALL_PY_EXACT_ARGS] = "_INIT_CALL_PY_EXACT_ARGS", + [_INIT_CALL_PY_EXACT_ARGS_0] = "_INIT_CALL_PY_EXACT_ARGS_0", + [_INIT_CALL_PY_EXACT_ARGS_1] = "_INIT_CALL_PY_EXACT_ARGS_1", + [_INIT_CALL_PY_EXACT_ARGS_2] = "_INIT_CALL_PY_EXACT_ARGS_2", + [_INIT_CALL_PY_EXACT_ARGS_3] = "_INIT_CALL_PY_EXACT_ARGS_3", + [_INIT_CALL_PY_EXACT_ARGS_4] = "_INIT_CALL_PY_EXACT_ARGS_4", + [_INTERNAL_INCREMENT_OPT_COUNTER] = "_INTERNAL_INCREMENT_OPT_COUNTER", + [_IS_NONE] = "_IS_NONE", + [_IS_OP] = "_IS_OP", + [_ITER_CHECK_LIST] = "_ITER_CHECK_LIST", + [_ITER_CHECK_RANGE] = "_ITER_CHECK_RANGE", + [_ITER_CHECK_TUPLE] = "_ITER_CHECK_TUPLE", + [_ITER_NEXT_LIST] = "_ITER_NEXT_LIST", + [_ITER_NEXT_RANGE] = "_ITER_NEXT_RANGE", + [_ITER_NEXT_TUPLE] = "_ITER_NEXT_TUPLE", + [_JUMP_TO_TOP] = "_JUMP_TO_TOP", + [_LIST_APPEND] = "_LIST_APPEND", + [_LIST_EXTEND] = "_LIST_EXTEND", + [_LOAD_ASSERTION_ERROR] = "_LOAD_ASSERTION_ERROR", + [_LOAD_ATTR] = "_LOAD_ATTR", + [_LOAD_ATTR_CLASS] = "_LOAD_ATTR_CLASS", + [_LOAD_ATTR_CLASS_0] = "_LOAD_ATTR_CLASS_0", + [_LOAD_ATTR_CLASS_1] = "_LOAD_ATTR_CLASS_1", + [_LOAD_ATTR_INSTANCE_VALUE] = "_LOAD_ATTR_INSTANCE_VALUE", + [_LOAD_ATTR_INSTANCE_VALUE_0] = "_LOAD_ATTR_INSTANCE_VALUE_0", + [_LOAD_ATTR_INSTANCE_VALUE_1] = "_LOAD_ATTR_INSTANCE_VALUE_1", + [_LOAD_ATTR_METHOD_LAZY_DICT] = "_LOAD_ATTR_METHOD_LAZY_DICT", + [_LOAD_ATTR_METHOD_NO_DICT] = "_LOAD_ATTR_METHOD_NO_DICT", + [_LOAD_ATTR_METHOD_WITH_VALUES] = "_LOAD_ATTR_METHOD_WITH_VALUES", + [_LOAD_ATTR_MODULE] = "_LOAD_ATTR_MODULE", + [_LOAD_ATTR_NONDESCRIPTOR_NO_DICT] = "_LOAD_ATTR_NONDESCRIPTOR_NO_DICT", + [_LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES] = "_LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES", + [_LOAD_ATTR_SLOT] = "_LOAD_ATTR_SLOT", + [_LOAD_ATTR_SLOT_0] = "_LOAD_ATTR_SLOT_0", + [_LOAD_ATTR_SLOT_1] = "_LOAD_ATTR_SLOT_1", + [_LOAD_ATTR_WITH_HINT] = "_LOAD_ATTR_WITH_HINT", + [_LOAD_BUILD_CLASS] = "_LOAD_BUILD_CLASS", + [_LOAD_CONST] = "_LOAD_CONST", + [_LOAD_CONST_INLINE] = "_LOAD_CONST_INLINE", + [_LOAD_CONST_INLINE_BORROW] = "_LOAD_CONST_INLINE_BORROW", + [_LOAD_CONST_INLINE_BORROW_WITH_NULL] = "_LOAD_CONST_INLINE_BORROW_WITH_NULL", + [_LOAD_CONST_INLINE_WITH_NULL] = "_LOAD_CONST_INLINE_WITH_NULL", + [_LOAD_DEREF] = "_LOAD_DEREF", + [_LOAD_FAST] = "_LOAD_FAST", + [_LOAD_FAST_0] = "_LOAD_FAST_0", + [_LOAD_FAST_1] = "_LOAD_FAST_1", + [_LOAD_FAST_2] = "_LOAD_FAST_2", + [_LOAD_FAST_3] = "_LOAD_FAST_3", + [_LOAD_FAST_4] = "_LOAD_FAST_4", + [_LOAD_FAST_5] = "_LOAD_FAST_5", + [_LOAD_FAST_6] = "_LOAD_FAST_6", + [_LOAD_FAST_7] = "_LOAD_FAST_7", + [_LOAD_FAST_AND_CLEAR] = "_LOAD_FAST_AND_CLEAR", + [_LOAD_FAST_CHECK] = "_LOAD_FAST_CHECK", + [_LOAD_FAST_LOAD_FAST] = "_LOAD_FAST_LOAD_FAST", + [_LOAD_FROM_DICT_OR_DEREF] = "_LOAD_FROM_DICT_OR_DEREF", + [_LOAD_GLOBAL] = "_LOAD_GLOBAL", + [_LOAD_GLOBAL_BUILTINS] = "_LOAD_GLOBAL_BUILTINS", + [_LOAD_GLOBAL_MODULE] = "_LOAD_GLOBAL_MODULE", + [_LOAD_LOCALS] = "_LOAD_LOCALS", + [_LOAD_SUPER_ATTR_ATTR] = "_LOAD_SUPER_ATTR_ATTR", + [_LOAD_SUPER_ATTR_METHOD] = "_LOAD_SUPER_ATTR_METHOD", + [_MAKE_CELL] = "_MAKE_CELL", + [_MAKE_FUNCTION] = "_MAKE_FUNCTION", + [_MAP_ADD] = "_MAP_ADD", + [_MATCH_CLASS] = "_MATCH_CLASS", + [_MATCH_KEYS] = "_MATCH_KEYS", + [_MATCH_MAPPING] = "_MATCH_MAPPING", + [_MATCH_SEQUENCE] = "_MATCH_SEQUENCE", + [_NOP] = "_NOP", + [_POP_EXCEPT] = "_POP_EXCEPT", + [_POP_FRAME] = "_POP_FRAME", + [_POP_TOP] = "_POP_TOP", + [_POP_TOP_LOAD_CONST_INLINE_BORROW] = "_POP_TOP_LOAD_CONST_INLINE_BORROW", + [_PUSH_EXC_INFO] = "_PUSH_EXC_INFO", + [_PUSH_FRAME] = "_PUSH_FRAME", + [_PUSH_NULL] = "_PUSH_NULL", + [_PY_FRAME_GENERAL] = "_PY_FRAME_GENERAL", + [_REPLACE_WITH_TRUE] = "_REPLACE_WITH_TRUE", + [_RESUME_CHECK] = "_RESUME_CHECK", + [_RETURN_GENERATOR] = "_RETURN_GENERATOR", + [_SAVE_RETURN_OFFSET] = "_SAVE_RETURN_OFFSET", + [_SETUP_ANNOTATIONS] = "_SETUP_ANNOTATIONS", + [_SET_ADD] = "_SET_ADD", + [_SET_FUNCTION_ATTRIBUTE] = "_SET_FUNCTION_ATTRIBUTE", + [_SET_IP] = "_SET_IP", + [_SET_UPDATE] = "_SET_UPDATE", + [_START_EXECUTOR] = "_START_EXECUTOR", + [_STORE_ATTR] = "_STORE_ATTR", + [_STORE_ATTR_INSTANCE_VALUE] = "_STORE_ATTR_INSTANCE_VALUE", + [_STORE_ATTR_SLOT] = "_STORE_ATTR_SLOT", + [_STORE_DEREF] = "_STORE_DEREF", + [_STORE_FAST] = "_STORE_FAST", + [_STORE_FAST_0] = "_STORE_FAST_0", + [_STORE_FAST_1] = "_STORE_FAST_1", + [_STORE_FAST_2] = "_STORE_FAST_2", + [_STORE_FAST_3] = "_STORE_FAST_3", + [_STORE_FAST_4] = "_STORE_FAST_4", + [_STORE_FAST_5] = "_STORE_FAST_5", + [_STORE_FAST_6] = "_STORE_FAST_6", + [_STORE_FAST_7] = "_STORE_FAST_7", + [_STORE_FAST_LOAD_FAST] = "_STORE_FAST_LOAD_FAST", + [_STORE_FAST_STORE_FAST] = "_STORE_FAST_STORE_FAST", + [_STORE_GLOBAL] = "_STORE_GLOBAL", + [_STORE_NAME] = "_STORE_NAME", + [_STORE_SLICE] = "_STORE_SLICE", + [_STORE_SUBSCR] = "_STORE_SUBSCR", + [_STORE_SUBSCR_DICT] = "_STORE_SUBSCR_DICT", + [_STORE_SUBSCR_LIST_INT] = "_STORE_SUBSCR_LIST_INT", + [_SWAP] = "_SWAP", + [_TIER2_RESUME_CHECK] = "_TIER2_RESUME_CHECK", + [_TO_BOOL] = "_TO_BOOL", + [_TO_BOOL_BOOL] = "_TO_BOOL_BOOL", + [_TO_BOOL_INT] = "_TO_BOOL_INT", + [_TO_BOOL_LIST] = "_TO_BOOL_LIST", + [_TO_BOOL_NONE] = "_TO_BOOL_NONE", + [_TO_BOOL_STR] = "_TO_BOOL_STR", + [_UNARY_INVERT] = "_UNARY_INVERT", + [_UNARY_NEGATIVE] = "_UNARY_NEGATIVE", + [_UNARY_NOT] = "_UNARY_NOT", + [_UNPACK_EX] = "_UNPACK_EX", + [_UNPACK_SEQUENCE] = "_UNPACK_SEQUENCE", + [_UNPACK_SEQUENCE_LIST] = "_UNPACK_SEQUENCE_LIST", + [_UNPACK_SEQUENCE_TUPLE] = "_UNPACK_SEQUENCE_TUPLE", + [_UNPACK_SEQUENCE_TWO_TUPLE] = "_UNPACK_SEQUENCE_TWO_TUPLE", + [_WITH_EXCEPT_START] = "_WITH_EXCEPT_START", + [_YIELD_VALUE] = "_YIELD_VALUE", +}; +int _PyUop_num_popped(int opcode, int oparg) +{ + switch(opcode) { + case _NOP: + return 0; + case _RESUME_CHECK: + return 0; + case _LOAD_FAST_CHECK: + return 0; + case _LOAD_FAST_0: + return 0; + case _LOAD_FAST_1: + return 0; + case _LOAD_FAST_2: + return 0; + case _LOAD_FAST_3: + return 0; + case _LOAD_FAST_4: + return 0; + case _LOAD_FAST_5: + return 0; + case _LOAD_FAST_6: + return 0; + case _LOAD_FAST_7: + return 0; + case _LOAD_FAST: + return 0; + case _LOAD_FAST_AND_CLEAR: + return 0; + case _LOAD_FAST_LOAD_FAST: + return 0; + case _LOAD_CONST: + return 0; + case _STORE_FAST_0: + return 1; + case _STORE_FAST_1: + return 1; + case _STORE_FAST_2: + return 1; + case _STORE_FAST_3: + return 1; + case _STORE_FAST_4: + return 1; + case _STORE_FAST_5: + return 1; + case _STORE_FAST_6: + return 1; + case _STORE_FAST_7: + return 1; + case _STORE_FAST: + return 1; + case _STORE_FAST_LOAD_FAST: + return 1; + case _STORE_FAST_STORE_FAST: + return 2; + case _POP_TOP: + return 1; + case _PUSH_NULL: + return 0; + case _END_SEND: + return 2; + case _UNARY_NEGATIVE: + return 1; + case _UNARY_NOT: + return 1; + case _TO_BOOL: + return 1; + case _TO_BOOL_BOOL: + return 1; + case _TO_BOOL_INT: + return 1; + case _TO_BOOL_LIST: + return 1; + case _TO_BOOL_NONE: + return 1; + case _TO_BOOL_STR: + return 1; + case _REPLACE_WITH_TRUE: + return 1; + case _UNARY_INVERT: + return 1; + case _GUARD_BOTH_INT: + return 2; + case _GUARD_NOS_INT: + return 2; + case _GUARD_TOS_INT: + return 1; + case _BINARY_OP_MULTIPLY_INT: + return 2; + case _BINARY_OP_ADD_INT: + return 2; + case _BINARY_OP_SUBTRACT_INT: + return 2; + case _GUARD_BOTH_FLOAT: + return 2; + case _GUARD_NOS_FLOAT: + return 2; + case _GUARD_TOS_FLOAT: + return 1; + case _BINARY_OP_MULTIPLY_FLOAT: + return 2; + case _BINARY_OP_ADD_FLOAT: + return 2; + case _BINARY_OP_SUBTRACT_FLOAT: + return 2; + case _GUARD_BOTH_UNICODE: + return 2; + case _BINARY_OP_ADD_UNICODE: + return 2; + case _BINARY_SUBSCR: + return 2; + case _BINARY_SLICE: + return 3; + case _STORE_SLICE: + return 4; + case _BINARY_SUBSCR_LIST_INT: + return 2; + case _BINARY_SUBSCR_STR_INT: + return 2; + case _BINARY_SUBSCR_TUPLE_INT: + return 2; + case _BINARY_SUBSCR_DICT: + return 2; + case _LIST_APPEND: + return 2 + (oparg-1); + case _SET_ADD: + return 2 + (oparg-1); + case _STORE_SUBSCR: + return 3; + case _STORE_SUBSCR_LIST_INT: + return 3; + case _STORE_SUBSCR_DICT: + return 3; + case _DELETE_SUBSCR: + return 2; + case _CALL_INTRINSIC_1: + return 1; + case _CALL_INTRINSIC_2: + return 2; + case _POP_FRAME: + return 1; + case _GET_AITER: + return 1; + case _GET_ANEXT: + return 1; + case _GET_AWAITABLE: + return 1; + case _YIELD_VALUE: + return 1; + case _POP_EXCEPT: + return 1; + case _LOAD_ASSERTION_ERROR: + return 0; + case _LOAD_BUILD_CLASS: + return 0; + case _STORE_NAME: + return 1; + case _DELETE_NAME: + return 0; + case _UNPACK_SEQUENCE: + return 1; + case _UNPACK_SEQUENCE_TWO_TUPLE: + return 1; + case _UNPACK_SEQUENCE_TUPLE: + return 1; + case _UNPACK_SEQUENCE_LIST: + return 1; + case _UNPACK_EX: + return 1; + case _STORE_ATTR: + return 2; + case _DELETE_ATTR: + return 1; + case _STORE_GLOBAL: + return 1; + case _DELETE_GLOBAL: + return 0; + case _LOAD_LOCALS: + return 0; + case _LOAD_GLOBAL: + return 0; + case _GUARD_GLOBALS_VERSION: + return 0; + case _GUARD_BUILTINS_VERSION: + return 0; + case _LOAD_GLOBAL_MODULE: + return 0; + case _LOAD_GLOBAL_BUILTINS: + return 0; + case _DELETE_FAST: + return 0; + case _MAKE_CELL: + return 0; + case _DELETE_DEREF: + return 0; + case _LOAD_FROM_DICT_OR_DEREF: + return 1; + case _LOAD_DEREF: + return 0; + case _STORE_DEREF: + return 1; + case _COPY_FREE_VARS: + return 0; + case _BUILD_STRING: + return oparg; + case _BUILD_TUPLE: + return oparg; + case _BUILD_LIST: + return oparg; + case _LIST_EXTEND: + return 2 + (oparg-1); + case _SET_UPDATE: + return 2 + (oparg-1); + case _BUILD_MAP: + return oparg*2; + case _SETUP_ANNOTATIONS: + return 0; + case _BUILD_CONST_KEY_MAP: + return 1 + oparg; + case _DICT_UPDATE: + return 2 + (oparg - 1); + case _DICT_MERGE: + return 5 + (oparg - 1); + case _MAP_ADD: + return 3 + (oparg - 1); + case _LOAD_SUPER_ATTR_ATTR: + return 3; + case _LOAD_SUPER_ATTR_METHOD: + return 3; + case _LOAD_ATTR: + return 1; + case _GUARD_TYPE_VERSION: + return 1; + case _CHECK_MANAGED_OBJECT_HAS_VALUES: + return 1; + case _LOAD_ATTR_INSTANCE_VALUE_0: + return 1; + case _LOAD_ATTR_INSTANCE_VALUE_1: + return 1; + case _LOAD_ATTR_INSTANCE_VALUE: + return 1; + case _CHECK_ATTR_MODULE: + return 1; + case _LOAD_ATTR_MODULE: + return 1; + case _CHECK_ATTR_WITH_HINT: + return 1; + case _LOAD_ATTR_WITH_HINT: + return 1; + case _LOAD_ATTR_SLOT_0: + return 1; + case _LOAD_ATTR_SLOT_1: + return 1; + case _LOAD_ATTR_SLOT: + return 1; + case _CHECK_ATTR_CLASS: + return 1; + case _LOAD_ATTR_CLASS_0: + return 1; + case _LOAD_ATTR_CLASS_1: + return 1; + case _LOAD_ATTR_CLASS: + return 1; + case _GUARD_DORV_NO_DICT: + return 1; + case _STORE_ATTR_INSTANCE_VALUE: + return 2; + case _STORE_ATTR_SLOT: + return 2; + case _COMPARE_OP: + return 2; + case _COMPARE_OP_FLOAT: + return 2; + case _COMPARE_OP_INT: + return 2; + case _COMPARE_OP_STR: + return 2; + case _IS_OP: + return 2; + case _CONTAINS_OP: + return 2; + case _CONTAINS_OP_SET: + return 2; + case _CONTAINS_OP_DICT: + return 2; + case _CHECK_EG_MATCH: + return 2; + case _CHECK_EXC_MATCH: + return 2; + case _IS_NONE: + return 1; + case _GET_LEN: + return 1; + case _MATCH_CLASS: + return 3; + case _MATCH_MAPPING: + return 1; + case _MATCH_SEQUENCE: + return 1; + case _MATCH_KEYS: + return 2; + case _GET_ITER: + return 1; + case _GET_YIELD_FROM_ITER: + return 1; + case _FOR_ITER_TIER_TWO: + return 1; + case _ITER_CHECK_LIST: + return 1; + case _GUARD_NOT_EXHAUSTED_LIST: + return 1; + case _ITER_NEXT_LIST: + return 1; + case _ITER_CHECK_TUPLE: + return 1; + case _GUARD_NOT_EXHAUSTED_TUPLE: + return 1; + case _ITER_NEXT_TUPLE: + return 1; + case _ITER_CHECK_RANGE: + return 1; + case _GUARD_NOT_EXHAUSTED_RANGE: + return 1; + case _ITER_NEXT_RANGE: + return 1; + case _FOR_ITER_GEN_FRAME: + return 1; + case _WITH_EXCEPT_START: + return 4; + case _PUSH_EXC_INFO: + return 1; + case _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT: + return 1; + case _GUARD_KEYS_VERSION: + return 1; + case _LOAD_ATTR_METHOD_WITH_VALUES: + return 1; + case _LOAD_ATTR_METHOD_NO_DICT: + return 1; + case _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES: + return 1; + case _LOAD_ATTR_NONDESCRIPTOR_NO_DICT: + return 1; + case _CHECK_ATTR_METHOD_LAZY_DICT: + return 1; + case _LOAD_ATTR_METHOD_LAZY_DICT: + return 1; + case _CHECK_PERIODIC: + return 0; + case _PY_FRAME_GENERAL: + return 2 + oparg; + case _CHECK_FUNCTION_VERSION: + return 2 + oparg; + case _CHECK_METHOD_VERSION: + return 2 + oparg; + case _EXPAND_METHOD: + return 2 + oparg; + case _CHECK_IS_NOT_PY_CALLABLE: + return 2 + oparg; + case _CALL_NON_PY_GENERAL: + return 2 + oparg; + case _CHECK_CALL_BOUND_METHOD_EXACT_ARGS: + return 2 + oparg; + case _INIT_CALL_BOUND_METHOD_EXACT_ARGS: + return 2 + oparg; + case _CHECK_PEP_523: + return 0; + case _CHECK_FUNCTION_EXACT_ARGS: + return 2 + oparg; + case _CHECK_STACK_SPACE: + return 2 + oparg; + case _INIT_CALL_PY_EXACT_ARGS_0: + return 2 + oparg; + case _INIT_CALL_PY_EXACT_ARGS_1: + return 2 + oparg; + case _INIT_CALL_PY_EXACT_ARGS_2: + return 2 + oparg; + case _INIT_CALL_PY_EXACT_ARGS_3: + return 2 + oparg; + case _INIT_CALL_PY_EXACT_ARGS_4: + return 2 + oparg; + case _INIT_CALL_PY_EXACT_ARGS: + return 2 + oparg; + case _PUSH_FRAME: + return 1; + case _CALL_TYPE_1: + return 3; + case _CALL_STR_1: + return 3; + case _CALL_TUPLE_1: + return 3; + case _EXIT_INIT_CHECK: + return 1; + case _CALL_BUILTIN_CLASS: + return 2 + oparg; + case _CALL_BUILTIN_O: + return 2 + oparg; + case _CALL_BUILTIN_FAST: + return 2 + oparg; + case _CALL_BUILTIN_FAST_WITH_KEYWORDS: + return 2 + oparg; + case _CALL_LEN: + return 2 + oparg; + case _CALL_ISINSTANCE: + return 2 + oparg; + case _CALL_METHOD_DESCRIPTOR_O: + return 2 + oparg; + case _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS: + return 2 + oparg; + case _CALL_METHOD_DESCRIPTOR_NOARGS: + return 2 + oparg; + case _CALL_METHOD_DESCRIPTOR_FAST: + return 2 + oparg; + case _MAKE_FUNCTION: + return 1; + case _SET_FUNCTION_ATTRIBUTE: + return 2; + case _RETURN_GENERATOR: + return 0; + case _BUILD_SLICE: + return 2 + ((oparg == 3) ? 1 : 0); + case _CONVERT_VALUE: + return 1; + case _FORMAT_SIMPLE: + return 1; + case _FORMAT_WITH_SPEC: + return 2; + case _COPY: + return 1 + (oparg-1); + case _BINARY_OP: + return 2; + case _SWAP: + return 2 + (oparg-2); + case _GUARD_IS_TRUE_POP: + return 1; + case _GUARD_IS_FALSE_POP: + return 1; + case _GUARD_IS_NONE_POP: + return 1; + case _GUARD_IS_NOT_NONE_POP: + return 1; + case _JUMP_TO_TOP: + return 0; + case _SET_IP: + return 0; + case _CHECK_STACK_SPACE_OPERAND: + return 0; + case _SAVE_RETURN_OFFSET: + return 0; + case _EXIT_TRACE: + return 0; + case _CHECK_VALIDITY: + return 0; + case _LOAD_CONST_INLINE: + return 0; + case _LOAD_CONST_INLINE_BORROW: + return 0; + case _POP_TOP_LOAD_CONST_INLINE_BORROW: + return 1; + case _LOAD_CONST_INLINE_WITH_NULL: + return 0; + case _LOAD_CONST_INLINE_BORROW_WITH_NULL: + return 0; + case _CHECK_FUNCTION: + return 0; + case _INTERNAL_INCREMENT_OPT_COUNTER: + return 1; + case _COLD_EXIT: + return 0; + case _DYNAMIC_EXIT: + return 0; + case _START_EXECUTOR: + return 0; + case _FATAL_ERROR: + return 0; + case _CHECK_VALIDITY_AND_SET_IP: + return 0; + case _DEOPT: + return 0; + case _ERROR_POP_N: + return oparg; + case _TIER2_RESUME_CHECK: + return 0; + default: + return -1; + } +} + +#endif // NEED_OPCODE_METADATA + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_CORE_UOP_METADATA_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_warnings.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_warnings.h new file mode 100644 index 000000000..f9f655931 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_warnings.h @@ -0,0 +1,31 @@ +#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 */ + PyMutex mutex; + long filters_version; +}; + +extern int _PyWarnings_InitState(PyInterpreterState *interp); + +extern PyObject* _PyWarnings_Init(void); + +extern void _PyErr_WarnUnawaitedCoroutine(PyObject *coro); +extern void _PyErr_WarnUnawaitedAgenMethod(PyAsyncGenObject *agen, PyObject *method); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_WARNINGS_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_weakref.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_weakref.h new file mode 100644 index 000000000..94aadb2c1 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/internal/pycore_weakref.h @@ -0,0 +1,119 @@ +#ifndef Py_INTERNAL_WEAKREF_H +#define Py_INTERNAL_WEAKREF_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_critical_section.h" // Py_BEGIN_CRITICAL_SECTION() +#include "pycore_lock.h" +#include "pycore_object.h" // _Py_REF_IS_MERGED() +#include "pycore_pyatomic_ft_wrappers.h" + +#ifdef Py_GIL_DISABLED + +#define WEAKREF_LIST_LOCK(obj) \ + _PyInterpreterState_GET() \ + ->weakref_locks[((uintptr_t)obj) % NUM_WEAKREF_LIST_LOCKS] + +// Lock using the referenced object +#define LOCK_WEAKREFS(obj) \ + PyMutex_LockFlags(&WEAKREF_LIST_LOCK(obj), _Py_LOCK_DONT_DETACH) +#define UNLOCK_WEAKREFS(obj) PyMutex_Unlock(&WEAKREF_LIST_LOCK(obj)) + +// Lock using a weakref +#define LOCK_WEAKREFS_FOR_WR(wr) \ + PyMutex_LockFlags(wr->weakrefs_lock, _Py_LOCK_DONT_DETACH) +#define UNLOCK_WEAKREFS_FOR_WR(wr) PyMutex_Unlock(wr->weakrefs_lock) + +#else + +#define LOCK_WEAKREFS(obj) +#define UNLOCK_WEAKREFS(obj) + +#define LOCK_WEAKREFS_FOR_WR(wr) +#define UNLOCK_WEAKREFS_FOR_WR(wr) + +#endif + +static inline int _is_dead(PyObject *obj) +{ + // Explanation for the Py_REFCNT() check: when a weakref's target is part + // of a long chain of deallocations which triggers the trashcan mechanism, + // clearing the weakrefs can be delayed long after the target's refcount + // has dropped to zero. In the meantime, code accessing the weakref will + // be able to "see" the target object even though it is supposed to be + // unreachable. See issue gh-60806. +#if defined(Py_GIL_DISABLED) + Py_ssize_t shared = _Py_atomic_load_ssize_relaxed(&obj->ob_ref_shared); + return shared == _Py_REF_SHARED(0, _Py_REF_MERGED); +#else + return (Py_REFCNT(obj) == 0); +#endif +} + +static inline PyObject* _PyWeakref_GET_REF(PyObject *ref_obj) +{ + assert(PyWeakref_Check(ref_obj)); + PyWeakReference *ref = _Py_CAST(PyWeakReference*, ref_obj); + + PyObject *obj = FT_ATOMIC_LOAD_PTR(ref->wr_object); + if (obj == Py_None) { + // clear_weakref() was called + return NULL; + } + + LOCK_WEAKREFS(obj); +#ifdef Py_GIL_DISABLED + if (ref->wr_object == Py_None) { + // clear_weakref() was called + UNLOCK_WEAKREFS(obj); + return NULL; + } +#endif + if (_Py_TryIncref(obj)) { + UNLOCK_WEAKREFS(obj); + return obj; + } + UNLOCK_WEAKREFS(obj); + return NULL; +} + +static inline int _PyWeakref_IS_DEAD(PyObject *ref_obj) +{ + assert(PyWeakref_Check(ref_obj)); + int ret = 0; + PyWeakReference *ref = _Py_CAST(PyWeakReference*, ref_obj); + PyObject *obj = FT_ATOMIC_LOAD_PTR(ref->wr_object); + if (obj == Py_None) { + // clear_weakref() was called + ret = 1; + } + else { + LOCK_WEAKREFS(obj); + // See _PyWeakref_GET_REF() for the rationale of this test +#ifdef Py_GIL_DISABLED + ret = (ref->wr_object == Py_None) || _is_dead(obj); +#else + ret = _is_dead(obj); +#endif + UNLOCK_WEAKREFS(obj); + } + return ret; +} + +extern Py_ssize_t _PyWeakref_GetWeakrefCount(PyObject *obj); + +// Clear all the weak references to obj but leave their callbacks uncalled and +// intact. +extern void _PyWeakref_ClearWeakRefsNoCallbacks(PyObject *obj); + +PyAPI_FUNC(int) _PyWeakref_IsDead(PyObject *weakref); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_WEAKREF_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/intrcheck.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/intrcheck.h new file mode 100644 index 000000000..1d1feee83 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/intrcheck.h @@ -0,0 +1,23 @@ +#ifndef Py_INTRCHECK_H +#define Py_INTRCHECK_H +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_FUNC(int) PyOS_InterruptOccurred(void); + +#ifdef HAVE_FORK +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03070000 +PyAPI_FUNC(void) PyOS_BeforeFork(void); +PyAPI_FUNC(void) PyOS_AfterFork_Parent(void); +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); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTRCHECK_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/iterobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/iterobject.h new file mode 100644 index 000000000..e69d09719 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/iterobject.h @@ -0,0 +1,24 @@ +#ifndef Py_ITEROBJECT_H +#define Py_ITEROBJECT_H +/* Iterators (the basic kind, over a sequence) */ +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_DATA(PyTypeObject) PySeqIter_Type; +PyAPI_DATA(PyTypeObject) PyCallIter_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) + +PyAPI_FUNC(PyObject *) PyCallIter_New(PyObject *, PyObject *); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_ITEROBJECT_H */ + diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/listobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/listobject.h new file mode 100644 index 000000000..e1e059b0b --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/listobject.h @@ -0,0 +1,55 @@ +/* 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. + + 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 +#define Py_LISTOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_DATA(PyTypeObject) PyList_Type; +PyAPI_DATA(PyTypeObject) PyListIter_Type; +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) + +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); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030d0000 +PyAPI_FUNC(PyObject *) PyList_GetItemRef(PyObject *, Py_ssize_t); +#endif +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 +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_LISTOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/lock.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/lock.h new file mode 100644 index 000000000..782b9dbc7 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/lock.h @@ -0,0 +1,16 @@ +#ifndef Py_LOCK_H +#define Py_LOCK_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_LOCK_H +# include "cpython/lock.h" +# undef Py_CPYTHON_LOCK_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_LOCK_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/longobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/longobject.h new file mode 100644 index 000000000..19104cd9d --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/longobject.h @@ -0,0 +1,114 @@ +#ifndef Py_LONGOBJECT_H +#define Py_LONGOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + + +/* Long (arbitrary precision) integer object interface */ + +// PyLong_Type is declared by object.h + +#define PyLong_Check(op) \ + PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_LONG_SUBCLASS) +#define PyLong_CheckExact(op) Py_IS_TYPE((op), &PyLong_Type) + +PyAPI_FUNC(PyObject *) PyLong_FromLong(long); +PyAPI_FUNC(PyObject *) PyLong_FromUnsignedLong(unsigned long); +PyAPI_FUNC(PyObject *) PyLong_FromSize_t(size_t); +PyAPI_FUNC(PyObject *) PyLong_FromSsize_t(Py_ssize_t); +PyAPI_FUNC(PyObject *) PyLong_FromDouble(double); + +PyAPI_FUNC(long) PyLong_AsLong(PyObject *); +PyAPI_FUNC(long) PyLong_AsLongAndOverflow(PyObject *, int *); +PyAPI_FUNC(Py_ssize_t) PyLong_AsSsize_t(PyObject *); +PyAPI_FUNC(size_t) PyLong_AsSize_t(PyObject *); +PyAPI_FUNC(unsigned long) PyLong_AsUnsignedLong(PyObject *); +PyAPI_FUNC(unsigned long) PyLong_AsUnsignedLongMask(PyObject *); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030d0000 +PyAPI_FUNC(int) PyLong_AsInt(PyObject *); +#endif + +PyAPI_FUNC(PyObject *) PyLong_GetInfo(void); + +/* It may be useful in the future. I've added it in the PyInt -> PyLong + cleanup to keep the extra information. [CH] */ +#define PyLong_AS_LONG(op) PyLong_AsLong(op) + +/* Issue #1983: pid_t can be longer than a C long on some systems */ +#if !defined(SIZEOF_PID_T) || SIZEOF_PID_T == SIZEOF_INT +#define _Py_PARSE_PID "i" +#define PyLong_FromPid PyLong_FromLong +# if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030d0000 +# define PyLong_AsPid PyLong_AsInt +# elif SIZEOF_INT == SIZEOF_LONG +# define PyLong_AsPid PyLong_AsLong +# else +static inline int +PyLong_AsPid(PyObject *obj) +{ + int overflow; + long result = PyLong_AsLongAndOverflow(obj, &overflow); + if (overflow || result > INT_MAX || result < INT_MIN) { + PyErr_SetString(PyExc_OverflowError, + "Python int too large to convert to C int"); + return -1; + } + return (int)result; +} +# endif +#elif SIZEOF_PID_T == SIZEOF_LONG +#define _Py_PARSE_PID "l" +#define PyLong_FromPid PyLong_FromLong +#define PyLong_AsPid PyLong_AsLong +#elif defined(SIZEOF_LONG_LONG) && SIZEOF_PID_T == SIZEOF_LONG_LONG +#define _Py_PARSE_PID "L" +#define PyLong_FromPid PyLong_FromLongLong +#define PyLong_AsPid PyLong_AsLongLong +#else +#error "sizeof(pid_t) is neither sizeof(int), sizeof(long) or sizeof(long long)" +#endif /* SIZEOF_PID_T */ + +#if SIZEOF_VOID_P == SIZEOF_INT +# define _Py_PARSE_INTPTR "i" +# define _Py_PARSE_UINTPTR "I" +#elif SIZEOF_VOID_P == SIZEOF_LONG +# define _Py_PARSE_INTPTR "l" +# define _Py_PARSE_UINTPTR "k" +#elif defined(SIZEOF_LONG_LONG) && SIZEOF_VOID_P == SIZEOF_LONG_LONG +# define _Py_PARSE_INTPTR "L" +# define _Py_PARSE_UINTPTR "K" +#else +# error "void* different in size from int, long and long long" +#endif /* SIZEOF_VOID_P */ + +PyAPI_FUNC(double) PyLong_AsDouble(PyObject *); +PyAPI_FUNC(PyObject *) PyLong_FromVoidPtr(void *); +PyAPI_FUNC(void *) PyLong_AsVoidPtr(PyObject *); + +PyAPI_FUNC(PyObject *) PyLong_FromLongLong(long long); +PyAPI_FUNC(PyObject *) PyLong_FromUnsignedLongLong(unsigned long long); +PyAPI_FUNC(long long) PyLong_AsLongLong(PyObject *); +PyAPI_FUNC(unsigned long long) PyLong_AsUnsignedLongLong(PyObject *); +PyAPI_FUNC(unsigned long long) PyLong_AsUnsignedLongLongMask(PyObject *); +PyAPI_FUNC(long long) PyLong_AsLongLongAndOverflow(PyObject *, int *); + +PyAPI_FUNC(PyObject *) PyLong_FromString(const char *, char **, int); + +/* These aren't really part of the int object, but they're handy. The + functions are in Python/mystrtoul.c. + */ +PyAPI_FUNC(unsigned long) PyOS_strtoul(const char *, char **, int); +PyAPI_FUNC(long) PyOS_strtol(const char *, char **, int); + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_LONGOBJECT_H +# include "cpython/longobject.h" +# undef Py_CPYTHON_LONGOBJECT_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_LONGOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/marshal.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/marshal.h new file mode 100644 index 000000000..f8b0de80c --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/marshal.h @@ -0,0 +1,31 @@ + +/* Interface for marshal.c */ + +#ifndef Py_MARSHAL_H +#define Py_MARSHAL_H +#ifndef Py_LIMITED_API + +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_FUNC(PyObject *) PyMarshal_ReadObjectFromString(const char *, + Py_ssize_t); +PyAPI_FUNC(PyObject *) PyMarshal_WriteObjectToString(PyObject *, int); + +#define Py_MARSHAL_VERSION 4 + +PyAPI_FUNC(long) PyMarshal_ReadLongFromFile(FILE *); +PyAPI_FUNC(int) PyMarshal_ReadShortFromFile(FILE *); +PyAPI_FUNC(PyObject *) PyMarshal_ReadObjectFromFile(FILE *); +PyAPI_FUNC(PyObject *) PyMarshal_ReadLastObjectFromFile(FILE *); + +PyAPI_FUNC(void) PyMarshal_WriteLongToFile(long, FILE *, int); +PyAPI_FUNC(void) PyMarshal_WriteObjectToFile(PyObject *, FILE *, int); + +#ifdef __cplusplus +} +#endif + +#endif /* Py_LIMITED_API */ +#endif /* !Py_MARSHAL_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/memoryobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/memoryobject.h new file mode 100644 index 000000000..2c9146aa2 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/memoryobject.h @@ -0,0 +1,34 @@ +/* Memory view object. In Python this is available as "memoryview". */ + +#ifndef Py_MEMORYOBJECT_H +#define Py_MEMORYOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_DATA(PyTypeObject) PyMemoryView_Type; + +#define PyMemoryView_Check(op) Py_IS_TYPE((op), &PyMemoryView_Type) + +PyAPI_FUNC(PyObject *) PyMemoryView_FromObject(PyObject *base); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +PyAPI_FUNC(PyObject *) PyMemoryView_FromMemory(char *mem, Py_ssize_t size, + int flags); +#endif +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030b0000 +PyAPI_FUNC(PyObject *) PyMemoryView_FromBuffer(const Py_buffer *info); +#endif +PyAPI_FUNC(PyObject *) PyMemoryView_GetContiguous(PyObject *base, + int buffertype, + char order); + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_MEMORYOBJECT_H +# include "cpython/memoryobject.h" +# undef Py_CPYTHON_MEMORYOBJECT_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_MEMORYOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/methodobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/methodobject.h new file mode 100644 index 000000000..39272815b --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/methodobject.h @@ -0,0 +1,137 @@ + +/* Method object interface */ + +#ifndef Py_METHODOBJECT_H +#define Py_METHODOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +/* This is about the type 'builtin_function_or_method', + not Python methods in user-defined classes. See classobject.h + for the latter. */ + +PyAPI_DATA(PyTypeObject) 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); +typedef PyObject *(*PyCFunctionWithKeywords)(PyObject *, PyObject *, + PyObject *); +typedef PyObject *(*PyCFunctionFastWithKeywords) (PyObject *, + PyObject *const *, Py_ssize_t, + PyObject *); +typedef PyObject *(*PyCMethod)(PyObject *, PyTypeObject *, PyObject *const *, + size_t, PyObject *); + +// For backwards compatibility. `METH_FASTCALL` was added to the stable API in +// 3.10 alongside `_PyCFunctionFastWithKeywords` and `_PyCFunctionFast`. +// Note that the underscore-prefixed names were documented in public docs; +// people may be using them. +typedef PyCFunctionFast _PyCFunctionFast; +typedef PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords; + +// Cast an function to the PyCFunction type to use it with PyMethodDef. +// +// This macro can be used to prevent compiler warnings if the first parameter +// uses a different pointer type than PyObject* (ex: METH_VARARGS and METH_O +// calling conventions). +// +// The macro can also be used for METH_FASTCALL and METH_VARARGS|METH_KEYWORDS +// calling conventions to avoid compiler warnings because the function has more +// than 2 parameters. The macro first casts the function to the +// "void func(void)" type to prevent compiler warnings. +// +// If a function is declared with the METH_NOARGS calling convention, it must +// have 2 parameters. Since the second parameter is unused, Py_UNUSED() can be +// used to prevent a compiler warning. If the function has a single parameter, +// it triggers an undefined behavior when Python calls it with 2 parameters +// (bpo-33012). +#define _PyCFunction_CAST(func) \ + _Py_CAST(PyCFunction, _Py_CAST(void(*)(void), (func))) + +PyAPI_FUNC(PyCFunction) PyCFunction_GetFunction(PyObject *); +PyAPI_FUNC(PyObject *) PyCFunction_GetSelf(PyObject *); +PyAPI_FUNC(int) PyCFunction_GetFlags(PyObject *); + +struct PyMethodDef { + const char *ml_name; /* The name of the built-in function/method */ + PyCFunction ml_meth; /* The C function that implements it */ + int ml_flags; /* Combination of METH_xxx flags, which mostly + describe the args expected by the C func */ + const char *ml_doc; /* The __doc__ attribute, or NULL */ +}; + +/* PyCFunction_New is declared as a function for stable ABI (declaration is + * needed for e.g. GCC with -fvisibility=hidden), but redefined as a macro + * that calls PyCFunction_NewEx. */ +PyAPI_FUNC(PyObject *) PyCFunction_New(PyMethodDef *, PyObject *); +#define PyCFunction_New(ML, SELF) PyCFunction_NewEx((ML), (SELF), NULL) + +/* PyCFunction_NewEx is similar: on 3.9+, this calls PyCMethod_New. */ +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 + + +/* Flag passed to newmethodobject */ +/* #define METH_OLDARGS 0x0000 -- unsupported now */ +#define METH_VARARGS 0x0001 +#define METH_KEYWORDS 0x0002 +/* METH_NOARGS and METH_O must not be combined with the flags above. */ +#define METH_NOARGS 0x0004 +#define METH_O 0x0008 + +/* METH_CLASS and METH_STATIC are a little different; these control + the construction of methods for a class. These cannot be used for + functions in modules. */ +#define METH_CLASS 0x0010 +#define METH_STATIC 0x0020 + +/* METH_COEXIST allows a method to be entered even though a slot has + already filled the entry. When defined, the flag allows a separate + method, "__contains__" for example, to coexist with a defined + slot like sq_contains. */ + +#define METH_COEXIST 0x0040 + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030a0000 +# define METH_FASTCALL 0x0080 +#endif + +/* This bit is preserved for Stackless Python */ +#ifdef STACKLESS +# define METH_STACKLESS 0x0100 +#else +# 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. + */ + +#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 +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_METHODOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/modsupport.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/modsupport.h new file mode 100644 index 000000000..af995f567 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/modsupport.h @@ -0,0 +1,146 @@ +// Module support interface + +#ifndef Py_MODSUPPORT_H +#define Py_MODSUPPORT_H +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_FUNC(int) PyArg_Parse(PyObject *, const char *, ...); +PyAPI_FUNC(int) PyArg_ParseTuple(PyObject *, const char *, ...); +PyAPI_FUNC(int) PyArg_ParseTupleAndKeywords(PyObject *, PyObject *, + const char *, PY_CXX_CONST char * const *, ...); +PyAPI_FUNC(int) PyArg_VaParse(PyObject *, const char *, va_list); +PyAPI_FUNC(int) PyArg_VaParseTupleAndKeywords(PyObject *, PyObject *, + const char *, PY_CXX_CONST char * const *, va_list); + +PyAPI_FUNC(int) PyArg_ValidateKeywordArguments(PyObject *); +PyAPI_FUNC(int) PyArg_UnpackTuple(PyObject *, const char *, Py_ssize_t, Py_ssize_t, ...); +PyAPI_FUNC(PyObject *) Py_BuildValue(const char *, ...); +PyAPI_FUNC(PyObject *) Py_VaBuildValue(const char *, va_list); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030a0000 +// Add an attribute with name 'name' and value 'obj' to the module 'mod. +// On success, return 0. +// On error, raise an exception and return -1. +PyAPI_FUNC(int) PyModule_AddObjectRef(PyObject *mod, const char *name, PyObject *value); +#endif /* Py_LIMITED_API */ + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030d0000 +// Similar to PyModule_AddObjectRef() but steal a reference to 'value'. +PyAPI_FUNC(int) PyModule_Add(PyObject *mod, const char *name, PyObject *value); +#endif /* Py_LIMITED_API */ + +// Similar to PyModule_AddObjectRef() and PyModule_Add() but steal +// a reference to 'value' on success and only on success. +// Errorprone. Should not be used in new code. +PyAPI_FUNC(int) PyModule_AddObject(PyObject *mod, const char *, PyObject *value); + +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 */ + +#define PyModule_AddIntMacro(m, c) PyModule_AddIntConstant((m), #c, (c)) +#define PyModule_AddStringMacro(m, c) PyModule_AddStringConstant((m), #c, (c)) + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 +/* New in 3.5 */ +PyAPI_FUNC(int) PyModule_SetDocString(PyObject *, const char *); +PyAPI_FUNC(int) PyModule_AddFunctions(PyObject *, PyMethodDef *); +PyAPI_FUNC(int) PyModule_ExecDef(PyObject *module, PyModuleDef *def); +#endif + +#define Py_CLEANUP_SUPPORTED 0x20000 + +#define PYTHON_API_VERSION 1013 +#define PYTHON_API_STRING "1013" +/* The API version is maintained (independently from the Python version) + so we can detect mismatches between the interpreter and dynamically + loaded modules. These are diagnosed by an error message but + the module is still loaded (because the mismatch can only be tested + after loading the module). The error message is intended to + explain the core dump a few seconds later. + + The symbol PYTHON_API_STRING defines the same value as a string + literal. *** PLEASE MAKE SURE THE DEFINITIONS MATCH. *** + + Please add a line or two to the top of this log for each API + version change: + + 22-Feb-2006 MvL 1013 PEP 353 - long indices for sequence lengths + + 19-Aug-2002 GvR 1012 Changes to string object struct for + interning changes, saving 3 bytes. + + 17-Jul-2001 GvR 1011 Descr-branch, just to be on the safe side + + 25-Jan-2001 FLD 1010 Parameters added to PyCode_New() and + PyFrame_New(); Python 2.1a2 + + 14-Mar-2000 GvR 1009 Unicode API added + + 3-Jan-1999 GvR 1007 Decided to change back! (Don't reuse 1008!) + + 3-Dec-1998 GvR 1008 Python 1.5.2b1 + + 18-Jan-1997 GvR 1007 string interning and other speedups + + 11-Oct-1996 GvR renamed Py_Ellipses to Py_Ellipsis :-( + + 30-Jul-1996 GvR Slice and ellipses syntax added + + 23-Jul-1996 GvR For 1.4 -- better safe than sorry this time :-) + + 7-Nov-1995 GvR Keyword arguments (should've been done at 1.3 :-( ) + + 10-Jan-1995 GvR Renamed globals to new naming scheme + + 9-Jan-1995 GvR Initial version (incompatible with older API) +*/ + +/* The PYTHON_ABI_VERSION is introduced in PEP 384. For the lifetime of + Python 3, it will stay at the value of 3; changes to the limited API + must be performed in a strictly backwards-compatible manner. */ +#define PYTHON_ABI_VERSION 3 +#define PYTHON_ABI_STRING "3" + +PyAPI_FUNC(PyObject *) PyModule_Create2(PyModuleDef*, int apiver); + +#ifdef Py_LIMITED_API +#define PyModule_Create(module) \ + PyModule_Create2((module), PYTHON_ABI_VERSION) +#else +#define PyModule_Create(module) \ + PyModule_Create2((module), PYTHON_API_VERSION) +#endif + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 +/* New in 3.5 */ +PyAPI_FUNC(PyObject *) PyModule_FromDefAndSpec2(PyModuleDef *def, + PyObject *spec, + int module_api_version); + +#ifdef Py_LIMITED_API +#define PyModule_FromDefAndSpec(module, spec) \ + PyModule_FromDefAndSpec2((module), (spec), PYTHON_ABI_VERSION) +#else +#define PyModule_FromDefAndSpec(module, spec) \ + PyModule_FromDefAndSpec2((module), (spec), PYTHON_API_VERSION) +#endif /* Py_LIMITED_API */ + +#endif /* New in 3.5 */ + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_MODSUPPORT_H +# include "cpython/modsupport.h" +# undef Py_CPYTHON_MODSUPPORT_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_MODSUPPORT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/moduleobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/moduleobject.h new file mode 100644 index 000000000..2a17c891d --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/moduleobject.h @@ -0,0 +1,122 @@ + +/* Module object interface */ + +#ifndef Py_MODULEOBJECT_H +#define Py_MODULEOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_DATA(PyTypeObject) PyModule_Type; + +#define PyModule_Check(op) PyObject_TypeCheck((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( + PyObject *name + ); +#endif +PyAPI_FUNC(PyObject *) PyModule_New( + const char *name /* UTF-8 encoded string */ + ); +PyAPI_FUNC(PyObject *) PyModule_GetDict(PyObject *); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +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 *); +PyAPI_FUNC(PyObject *) PyModule_GetFilenameObject(PyObject *); +PyAPI_FUNC(PyModuleDef*) PyModule_GetDef(PyObject*); +PyAPI_FUNC(void*) PyModule_GetState(PyObject*); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 +/* New in 3.5 */ +PyAPI_FUNC(PyObject *) PyModuleDef_Init(PyModuleDef*); +PyAPI_DATA(PyTypeObject) PyModuleDef_Type; +#endif + +typedef struct PyModuleDef_Base { + PyObject_HEAD + /* The function used to re-initialize the module. + This is only set for legacy (single-phase init) extension modules + and only used for those that support multiple initializations + (m_size >= 0). + It is set by _PyImport_LoadDynamicModuleWithSpec() + and _imp.create_builtin(). */ + PyObject* (*m_init)(void); + /* The module's index into its interpreter's modules_by_index cache. + This is set for all extension modules but only used for legacy ones. + (See PyInterpreterState.modules_by_index for more info.) + It is set by PyModuleDef_Init(). */ + Py_ssize_t m_index; + /* A copy of the module's __dict__ after the first time it was loaded. + This is only set/used for legacy modules that do not support + multiple initializations. + It is set by fix_up_extension() in import.c. */ + PyObject* m_copy; +} PyModuleDef_Base; + +#define PyModuleDef_HEAD_INIT { \ + PyObject_HEAD_INIT(_Py_NULL) \ + _Py_NULL, /* m_init */ \ + 0, /* m_index */ \ + _Py_NULL, /* m_copy */ \ + } + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 +/* New in 3.5 */ +struct PyModuleDef_Slot { + int slot; + void *value; +}; + +#define Py_mod_create 1 +#define Py_mod_exec 2 +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030c0000 +# define Py_mod_multiple_interpreters 3 +#endif +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030d0000 +# define Py_mod_gil 4 +#endif + + +#ifndef Py_LIMITED_API +#define _Py_mod_LAST_SLOT 4 +#endif + +#endif /* New in 3.5 */ + +/* for Py_mod_multiple_interpreters: */ +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030c0000 +# define Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED ((void *)0) +# define Py_MOD_MULTIPLE_INTERPRETERS_SUPPORTED ((void *)1) +# define Py_MOD_PER_INTERPRETER_GIL_SUPPORTED ((void *)2) +#endif + +/* for Py_mod_gil: */ +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030d0000 +# define Py_MOD_GIL_USED ((void *)0) +# define Py_MOD_GIL_NOT_USED ((void *)1) +#endif + +#if !defined(Py_LIMITED_API) && defined(Py_GIL_DISABLED) +PyAPI_FUNC(int) PyUnstable_Module_SetGIL(PyObject *module, void *gil); +#endif + +struct PyModuleDef { + PyModuleDef_Base m_base; + const char* m_name; + const char* m_doc; + Py_ssize_t m_size; + PyMethodDef *m_methods; + PyModuleDef_Slot *m_slots; + traverseproc m_traverse; + inquiry m_clear; + freefunc m_free; +}; + +#ifdef __cplusplus +} +#endif +#endif /* !Py_MODULEOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/monitoring.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/monitoring.h new file mode 100644 index 000000000..985f7f230 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/monitoring.h @@ -0,0 +1,18 @@ +#ifndef Py_MONITORING_H +#define Py_MONITORING_H +#ifdef __cplusplus +extern "C" { +#endif + +// There is currently no limited API for monitoring + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_MONITORING_H +# include "cpython/monitoring.h" +# undef Py_CPYTHON_MONITORING_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_MONITORING_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/object.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/object.h new file mode 100644 index 000000000..78aa7ad0f --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/object.h @@ -0,0 +1,1270 @@ +#ifndef Py_OBJECT_H +#define Py_OBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + + +/* Object and type object interface */ + +/* +Objects are structures allocated on the heap. Special rules apply to +the use of objects to ensure they are properly garbage-collected. +Objects are never allocated statically or on the stack; they must be +accessed through special macros and functions only. (Type objects are +exceptions to the first rule; the standard types are represented by +statically initialized type objects, although work on type/class unification +for Python 2.2 made it possible to have heap-allocated type objects too). + +An object has a 'reference count' that is increased or decreased when a +pointer to the object is copied or deleted; when the reference count +reaches zero there are no references to the object left and it can be +removed from the heap. + +An object has a 'type' that determines what it represents and what kind +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!. + +Objects do not float around in memory; once allocated an object keeps +the same size and address. Objects that must hold variable-size data +can contain pointers to variable-size parts of the object. Not all +objects of the same type have the same size; but the size cannot change +after allocation. (These restrictions are made so a reference to an +object can be simply a pointer -- moving an object would require +updating all the pointers, and changing an object's size would require +moving it if there was another object right next to it.) + +Objects are always accessed through pointers of the type 'PyObject *'. +The type 'PyObject' is a structure that only contains the reference count +and the type pointer. The actual memory allocated for an object +contains other data that can only be accessed after casting the pointer +to a pointer to a longer structure type. This longer type must start +with the reference count and type fields; the macro PyObject_HEAD should be +used for this (to accommodate for future changes). The implementation +of a particular object type can cast the object pointer to the proper +type and back. + +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) +# define Py_REF_DEBUG +#endif + +/* PyObject_HEAD defines the initial segment of every PyObject. */ +#define PyObject_HEAD PyObject ob_base; + +/* +Immortalization: + +The following indicates the immortalization strategy depending on the amount +of available bits in the reference count field. All strategies are backwards +compatible but the specific reference count value or immortalization check +might change depending on the specializations for the underlying system. + +Proper deallocation of immortal instances requires distinguishing between +statically allocated immortal instances vs those promoted by the runtime to be +immortal. The latter should be the only instances that require +cleanup during runtime finalization. +*/ + +#if SIZEOF_VOID_P > 4 +/* +In 64+ bit systems, an object will be marked as immortal by setting all of the +lower 32 bits of the reference count field, which is equal to: 0xFFFFFFFF + +Using the lower 32 bits makes the value backwards compatible by allowing +C-Extensions without the updated checks in Py_INCREF and Py_DECREF to safely +increase and decrease the objects reference count. The object would lose its +immortality, but the execution would still be correct. + +Reference count increases will use saturated arithmetic, taking advantage of +having all the lower 32 bits set, which will avoid the reference count to go +beyond the refcount limit. Immortality checks for reference count decreases will +be done by checking the bit sign flag in the lower 32 bits. +*/ +#define _Py_IMMORTAL_REFCNT _Py_CAST(Py_ssize_t, UINT_MAX) + +#else +/* +In 32 bit systems, an object will be marked as immortal by setting all of the +lower 30 bits of the reference count field, which is equal to: 0x3FFFFFFF + +Using the lower 30 bits makes the value backwards compatible by allowing +C-Extensions without the updated checks in Py_INCREF and Py_DECREF to safely +increase and decrease the objects reference count. The object would lose its +immortality, but the execution would still be correct. + +Reference count increases and decreases will first go through an immortality +check by comparing the reference count field to the immortality reference count. +*/ +#define _Py_IMMORTAL_REFCNT _Py_CAST(Py_ssize_t, UINT_MAX >> 2) +#endif + +// Py_GIL_DISABLED builds indicate immortal objects using `ob_ref_local`, which is +// always 32-bits. +#ifdef Py_GIL_DISABLED +#define _Py_IMMORTAL_REFCNT_LOCAL UINT32_MAX +#endif + +// Kept for backward compatibility. It was needed by Py_TRACE_REFS build. +#define _PyObject_EXTRA_INIT + +/* Make all uses of PyObject_HEAD_INIT immortal. + * + * Statically allocated objects might be shared between + * interpreters, so must be marked as immortal. + */ +#if defined(Py_GIL_DISABLED) +#define PyObject_HEAD_INIT(type) \ + { \ + 0, \ + 0, \ + { 0 }, \ + 0, \ + _Py_IMMORTAL_REFCNT_LOCAL, \ + 0, \ + (type), \ + }, +#else +#define PyObject_HEAD_INIT(type) \ + { \ + { _Py_IMMORTAL_REFCNT }, \ + (type) \ + }, +#endif + +#define PyVarObject_HEAD_INIT(type, size) \ + { \ + PyObject_HEAD_INIT(type) \ + (size) \ + }, + +/* PyObject_VAR_HEAD defines the initial segment of all variable-size + * container objects. These end with a declaration of an array with 1 + * element, but enough space is malloc'ed so that the array actually + * has room for ob_size elements. Note that ob_size is an element count, + * not necessarily a byte count. + */ +#define PyObject_VAR_HEAD PyVarObject ob_base; +#define Py_INVALID_SIZE (Py_ssize_t)-1 + +/* Nothing is actually declared to be a PyObject, but every pointer to + * a Python object can be cast to a PyObject*. This is inheritance built + * by hand. Similarly every pointer to a variable-size Python object can, + * in addition, be cast to PyVarObject*. + */ +#ifndef Py_GIL_DISABLED +struct _object { +#if (defined(__GNUC__) || defined(__clang__)) \ + && !(defined __STDC_VERSION__ && __STDC_VERSION__ >= 201112L) + // On C99 and older, anonymous union is a GCC and clang extension + __extension__ +#endif +#ifdef _MSC_VER + // Ignore MSC warning C4201: "nonstandard extension used: + // nameless struct/union" + __pragma(warning(push)) + __pragma(warning(disable: 4201)) +#endif + union { + Py_ssize_t ob_refcnt; +#if SIZEOF_VOID_P > 4 + PY_UINT32_T ob_refcnt_split[2]; +#endif + }; +#ifdef _MSC_VER + __pragma(warning(pop)) +#endif + + PyTypeObject *ob_type; +}; +#else +// Objects that are not owned by any thread use a thread id (tid) of zero. +// This includes both immortal objects and objects whose reference count +// fields have been merged. +#define _Py_UNOWNED_TID 0 + +// The shared reference count uses the two least-significant bits to store +// flags. The remaining bits are used to store the reference count. +#define _Py_REF_SHARED_SHIFT 2 +#define _Py_REF_SHARED_FLAG_MASK 0x3 + +// The shared flags are initialized to zero. +#define _Py_REF_SHARED_INIT 0x0 +#define _Py_REF_MAYBE_WEAKREF 0x1 +#define _Py_REF_QUEUED 0x2 +#define _Py_REF_MERGED 0x3 + +// Create a shared field from a refcnt and desired flags +#define _Py_REF_SHARED(refcnt, flags) (((refcnt) << _Py_REF_SHARED_SHIFT) + (flags)) + +struct _object { + // ob_tid stores the thread id (or zero). It is also used by the GC and the + // trashcan mechanism as a linked list pointer and by the GC to store the + // computed "gc_refs" refcount. + uintptr_t ob_tid; + uint16_t _padding; + PyMutex ob_mutex; // per-object lock + uint8_t ob_gc_bits; // gc-related state + uint32_t ob_ref_local; // local reference count + Py_ssize_t ob_ref_shared; // shared (atomic) reference count + PyTypeObject *ob_type; +}; +#endif + +/* Cast argument to PyObject* type. */ +#define _PyObject_CAST(op) _Py_CAST(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) _Py_CAST(PyVarObject*, (op)) + + +// Test if the 'x' object is the 'y' object, the same as "x is y" in Python. +PyAPI_FUNC(int) Py_Is(PyObject *x, PyObject *y); +#define Py_Is(x, y) ((x) == (y)) + +#if defined(Py_GIL_DISABLED) && !defined(Py_LIMITED_API) +PyAPI_FUNC(uintptr_t) _Py_GetThreadLocal_Addr(void); + +static inline uintptr_t +_Py_ThreadId(void) +{ + uintptr_t tid; +#if defined(_MSC_VER) && defined(_M_X64) + tid = __readgsqword(48); +#elif defined(_MSC_VER) && defined(_M_IX86) + tid = __readfsdword(24); +#elif defined(_MSC_VER) && defined(_M_ARM64) + tid = __getReg(18); +#elif defined(__MINGW32__) && defined(_M_X64) + tid = __readgsqword(48); +#elif defined(__MINGW32__) && defined(_M_IX86) + tid = __readfsdword(24); +#elif defined(__MINGW32__) && defined(_M_ARM64) + tid = __getReg(18); +#elif defined(__i386__) + __asm__("movl %%gs:0, %0" : "=r" (tid)); // 32-bit always uses GS +#elif defined(__MACH__) && defined(__x86_64__) + __asm__("movq %%gs:0, %0" : "=r" (tid)); // x86_64 macOSX uses GS +#elif defined(__x86_64__) + __asm__("movq %%fs:0, %0" : "=r" (tid)); // x86_64 Linux, BSD uses FS +#elif defined(__arm__) + __asm__ ("mrc p15, 0, %0, c13, c0, 3\nbic %0, %0, #3" : "=r" (tid)); +#elif defined(__aarch64__) && defined(__APPLE__) + __asm__ ("mrs %0, tpidrro_el0" : "=r" (tid)); +#elif defined(__aarch64__) + __asm__ ("mrs %0, tpidr_el0" : "=r" (tid)); +#elif defined(__powerpc64__) + #if defined(__clang__) && _Py__has_builtin(__builtin_thread_pointer) + tid = (uintptr_t)__builtin_thread_pointer(); + #else + // r13 is reserved for use as system thread ID by the Power 64-bit ABI. + register uintptr_t tp __asm__ ("r13"); + __asm__("" : "=r" (tp)); + tid = tp; + #endif +#elif defined(__powerpc__) + #if defined(__clang__) && _Py__has_builtin(__builtin_thread_pointer) + tid = (uintptr_t)__builtin_thread_pointer(); + #else + // r2 is reserved for use as system thread ID by the Power 32-bit ABI. + register uintptr_t tp __asm__ ("r2"); + __asm__ ("" : "=r" (tp)); + tid = tp; + #endif +#elif defined(__s390__) && defined(__GNUC__) + // Both GCC and Clang have supported __builtin_thread_pointer + // for s390 from long time ago. + tid = (uintptr_t)__builtin_thread_pointer(); +#elif defined(__riscv) + #if defined(__clang__) && _Py__has_builtin(__builtin_thread_pointer) + tid = (uintptr_t)__builtin_thread_pointer(); + #else + // tp is Thread Pointer provided by the RISC-V ABI. + __asm__ ("mv %0, tp" : "=r" (tid)); + #endif +#else + // Fallback to a portable implementation if we do not have a faster + // platform-specific implementation. + tid = _Py_GetThreadLocal_Addr(); +#endif + return tid; +} + +static inline Py_ALWAYS_INLINE int +_Py_IsOwnedByCurrentThread(PyObject *ob) +{ +#ifdef _Py_THREAD_SANITIZER + return _Py_atomic_load_uintptr_relaxed(&ob->ob_tid) == _Py_ThreadId(); +#else + return ob->ob_tid == _Py_ThreadId(); +#endif +} +#endif + +static inline Py_ssize_t Py_REFCNT(PyObject *ob) { +#if !defined(Py_GIL_DISABLED) + return ob->ob_refcnt; +#else + uint32_t local = _Py_atomic_load_uint32_relaxed(&ob->ob_ref_local); + if (local == _Py_IMMORTAL_REFCNT_LOCAL) { + return _Py_IMMORTAL_REFCNT; + } + Py_ssize_t shared = _Py_atomic_load_ssize_relaxed(&ob->ob_ref_shared); + return _Py_STATIC_CAST(Py_ssize_t, local) + + Py_ARITHMETIC_RIGHT_SHIFT(Py_ssize_t, shared, _Py_REF_SHARED_SHIFT); +#endif +} +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define Py_REFCNT(ob) Py_REFCNT(_PyObject_CAST(ob)) +#endif + + +// bpo-39573: The Py_SET_TYPE() function must be used to set an object type. +static inline PyTypeObject* Py_TYPE(PyObject *ob) { + return ob->ob_type; +} +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define Py_TYPE(ob) Py_TYPE(_PyObject_CAST(ob)) +#endif + +PyAPI_DATA(PyTypeObject) PyLong_Type; +PyAPI_DATA(PyTypeObject) PyBool_Type; + +// bpo-39573: The Py_SET_SIZE() function must be used to set an object size. +static inline Py_ssize_t Py_SIZE(PyObject *ob) { + assert(ob->ob_type != &PyLong_Type); + assert(ob->ob_type != &PyBool_Type); + return _PyVarObject_CAST(ob)->ob_size; +} +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define Py_SIZE(ob) Py_SIZE(_PyObject_CAST(ob)) +#endif + +static inline Py_ALWAYS_INLINE int _Py_IsImmortal(PyObject *op) +{ +#if defined(Py_GIL_DISABLED) + return (_Py_atomic_load_uint32_relaxed(&op->ob_ref_local) == + _Py_IMMORTAL_REFCNT_LOCAL); +#elif SIZEOF_VOID_P > 4 + return (_Py_CAST(PY_INT32_T, op->ob_refcnt) < 0); +#else + return (op->ob_refcnt == _Py_IMMORTAL_REFCNT); +#endif +} +#define _Py_IsImmortal(op) _Py_IsImmortal(_PyObject_CAST(op)) + +static inline int Py_IS_TYPE(PyObject *ob, PyTypeObject *type) { + return Py_TYPE(ob) == type; +} +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define Py_IS_TYPE(ob, type) Py_IS_TYPE(_PyObject_CAST(ob), (type)) +#endif + + +// Py_SET_REFCNT() implementation for stable ABI +PyAPI_FUNC(void) _Py_SetRefcnt(PyObject *ob, Py_ssize_t refcnt); + +static inline void Py_SET_REFCNT(PyObject *ob, Py_ssize_t refcnt) { +#if defined(Py_LIMITED_API) && Py_LIMITED_API+0 >= 0x030d0000 + // Stable ABI implements Py_SET_REFCNT() as a function call + // on limited C API version 3.13 and newer. + _Py_SetRefcnt(ob, refcnt); +#else + // This immortal check is for code that is unaware of immortal objects. + // The runtime tracks these objects and we should avoid as much + // as possible having extensions inadvertently change the refcnt + // of an immortalized object. + if (_Py_IsImmortal(ob)) { + return; + } + +#ifndef Py_GIL_DISABLED + ob->ob_refcnt = refcnt; +#else + if (_Py_IsOwnedByCurrentThread(ob)) { + if ((size_t)refcnt > (size_t)UINT32_MAX) { + // On overflow, make the object immortal + ob->ob_tid = _Py_UNOWNED_TID; + ob->ob_ref_local = _Py_IMMORTAL_REFCNT_LOCAL; + ob->ob_ref_shared = 0; + } + else { + // Set local refcount to desired refcount and shared refcount + // to zero, but preserve the shared refcount flags. + ob->ob_ref_local = _Py_STATIC_CAST(uint32_t, refcnt); + ob->ob_ref_shared &= _Py_REF_SHARED_FLAG_MASK; + } + } + else { + // Set local refcount to zero and shared refcount to desired refcount. + // Mark the object as merged. + ob->ob_tid = _Py_UNOWNED_TID; + ob->ob_ref_local = 0; + ob->ob_ref_shared = _Py_REF_SHARED(refcnt, _Py_REF_MERGED); + } +#endif // Py_GIL_DISABLED +#endif // Py_LIMITED_API+0 < 0x030d0000 +} +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define Py_SET_REFCNT(ob, refcnt) Py_SET_REFCNT(_PyObject_CAST(ob), (refcnt)) +#endif + + +static inline void Py_SET_TYPE(PyObject *ob, PyTypeObject *type) { + ob->ob_type = type; +} +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define Py_SET_TYPE(ob, type) Py_SET_TYPE(_PyObject_CAST(ob), type) +#endif + +static inline void Py_SET_SIZE(PyVarObject *ob, Py_ssize_t size) { + assert(ob->ob_base.ob_type != &PyLong_Type); + assert(ob->ob_base.ob_type != &PyBool_Type); +#ifdef Py_GIL_DISABLED + _Py_atomic_store_ssize_relaxed(&ob->ob_size, size); +#else + ob->ob_size = size; +#endif +} +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define Py_SET_SIZE(ob, size) Py_SET_SIZE(_PyVarObject_CAST(ob), (size)) +#endif + + +/* +Type objects contain a string containing the type name (to help somewhat +in debugging), the allocation parameters (see PyObject_New() and +PyObject_NewVar()), +and methods for accessing objects of the type. Methods are optional, a +nil pointer meaning that particular kind of access is not available for +this type. The Py_DECREF() macro uses the tp_dealloc method without +checking for a nil pointer; it should always be implemented except if +the implementation can guarantee that the reference count will never +reach zero (e.g., for statically allocated type objects). + +NB: the methods for certain type groups are now contained in separate +method blocks. +*/ + +typedef PyObject * (*unaryfunc)(PyObject *); +typedef PyObject * (*binaryfunc)(PyObject *, PyObject *); +typedef PyObject * (*ternaryfunc)(PyObject *, PyObject *, PyObject *); +typedef int (*inquiry)(PyObject *); +typedef Py_ssize_t (*lenfunc)(PyObject *); +typedef PyObject *(*ssizeargfunc)(PyObject *, Py_ssize_t); +typedef PyObject *(*ssizessizeargfunc)(PyObject *, Py_ssize_t, Py_ssize_t); +typedef int(*ssizeobjargproc)(PyObject *, Py_ssize_t, PyObject *); +typedef int(*ssizessizeobjargproc)(PyObject *, Py_ssize_t, Py_ssize_t, PyObject *); +typedef int(*objobjargproc)(PyObject *, PyObject *, PyObject *); + +typedef int (*objobjproc)(PyObject *, PyObject *); +typedef int (*visitproc)(PyObject *, void *); +typedef int (*traverseproc)(PyObject *, visitproc, void *); + + +typedef void (*freefunc)(void *); +typedef void (*destructor)(PyObject *); +typedef PyObject *(*getattrfunc)(PyObject *, char *); +typedef PyObject *(*getattrofunc)(PyObject *, PyObject *); +typedef int (*setattrfunc)(PyObject *, char *, PyObject *); +typedef int (*setattrofunc)(PyObject *, PyObject *, PyObject *); +typedef PyObject *(*reprfunc)(PyObject *); +typedef Py_hash_t (*hashfunc)(PyObject *); +typedef PyObject *(*richcmpfunc) (PyObject *, PyObject *, int); +typedef PyObject *(*getiterfunc) (PyObject *); +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); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030c0000 // 3.12 +typedef PyObject *(*vectorcallfunc)(PyObject *callable, PyObject *const *args, + size_t nargsf, PyObject *kwnames); +#endif + +typedef struct{ + int slot; /* slot id, see below */ + void *pfunc; /* function pointer */ +} PyType_Slot; + +typedef struct{ + const char* name; + int basicsize; + int itemsize; + unsigned int flags; + PyType_Slot *slots; /* terminated by slot==0. */ +} PyType_Spec; + +PyAPI_FUNC(PyObject*) PyType_FromSpec(PyType_Spec*); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +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); +#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(PyTypeObject *); +PyAPI_FUNC(void *) PyType_GetModuleState(PyTypeObject *); +#endif +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030B0000 +PyAPI_FUNC(PyObject *) PyType_GetName(PyTypeObject *); +PyAPI_FUNC(PyObject *) PyType_GetQualName(PyTypeObject *); +#endif +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030D0000 +PyAPI_FUNC(PyObject *) PyType_GetFullyQualifiedName(PyTypeObject *type); +PyAPI_FUNC(PyObject *) PyType_GetModuleName(PyTypeObject *type); +#endif +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030C0000 +PyAPI_FUNC(PyObject *) PyType_FromMetaclass(PyTypeObject*, PyObject*, PyType_Spec*, PyObject*); +PyAPI_FUNC(void *) PyObject_GetTypeData(PyObject *obj, PyTypeObject *cls); +PyAPI_FUNC(Py_ssize_t) PyType_GetTypeDataSize(PyTypeObject *cls); +#endif + +/* Generic type check */ +PyAPI_FUNC(int) PyType_IsSubtype(PyTypeObject *, PyTypeObject *); + +static inline int PyObject_TypeCheck(PyObject *ob, PyTypeObject *type) { + return Py_IS_TYPE(ob, type) || PyType_IsSubtype(Py_TYPE(ob), type); +} +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define PyObject_TypeCheck(ob, type) PyObject_TypeCheck(_PyObject_CAST(ob), (type)) +#endif + +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(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 *); + +/* Generic operations on objects */ +PyAPI_FUNC(PyObject *) PyObject_Repr(PyObject *); +PyAPI_FUNC(PyObject *) PyObject_Str(PyObject *); +PyAPI_FUNC(PyObject *) PyObject_ASCII(PyObject *); +PyAPI_FUNC(PyObject *) PyObject_Bytes(PyObject *); +PyAPI_FUNC(PyObject *) PyObject_RichCompare(PyObject *, PyObject *, int); +PyAPI_FUNC(int) PyObject_RichCompareBool(PyObject *, PyObject *, int); +PyAPI_FUNC(PyObject *) PyObject_GetAttrString(PyObject *, const char *); +PyAPI_FUNC(int) PyObject_SetAttrString(PyObject *, const char *, PyObject *); +PyAPI_FUNC(int) PyObject_DelAttrString(PyObject *v, const char *name); +PyAPI_FUNC(int) PyObject_HasAttrString(PyObject *, const char *); +PyAPI_FUNC(PyObject *) PyObject_GetAttr(PyObject *, PyObject *); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030d0000 +PyAPI_FUNC(int) PyObject_GetOptionalAttr(PyObject *, PyObject *, PyObject **); +PyAPI_FUNC(int) PyObject_GetOptionalAttrString(PyObject *, const char *, PyObject **); +#endif +PyAPI_FUNC(int) PyObject_SetAttr(PyObject *, PyObject *, PyObject *); +PyAPI_FUNC(int) PyObject_DelAttr(PyObject *v, PyObject *name); +PyAPI_FUNC(int) PyObject_HasAttr(PyObject *, PyObject *); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030d0000 +PyAPI_FUNC(int) PyObject_HasAttrWithError(PyObject *, PyObject *); +PyAPI_FUNC(int) PyObject_HasAttrStringWithError(PyObject *, const char *); +#endif +PyAPI_FUNC(PyObject *) PyObject_SelfIter(PyObject *); +PyAPI_FUNC(PyObject *) PyObject_GenericGetAttr(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 +PyAPI_FUNC(Py_hash_t) PyObject_Hash(PyObject *); +PyAPI_FUNC(Py_hash_t) PyObject_HashNotImplemented(PyObject *); +PyAPI_FUNC(int) PyObject_IsTrue(PyObject *); +PyAPI_FUNC(int) PyObject_Not(PyObject *); +PyAPI_FUNC(int) PyCallable_Check(PyObject *); +PyAPI_FUNC(void) PyObject_ClearWeakRefs(PyObject *); + +/* PyObject_Dir(obj) acts like Python builtins.dir(obj), returning a + list of strings. PyObject_Dir(NULL) is like builtins.dir(), + returning the names of the current locals. In this case, if there are + no current locals, NULL is returned, and PyErr_Occurred() is false. +*/ +PyAPI_FUNC(PyObject *) PyObject_Dir(PyObject *); + +/* Helpers for printing recursive container types */ +PyAPI_FUNC(int) Py_ReprEnter(PyObject *); +PyAPI_FUNC(void) Py_ReprLeave(PyObject *); + +/* Flag bits for printing: */ +#define Py_PRINT_RAW 1 /* No string quotes etc. */ + +/* +Type flags (tp_flags) + +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!). + +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 +optional feature; these flags remain of course.) + +Type definitions should use Py_TPFLAGS_DEFAULT for their tp_flags value. + +Code can use PyType_HasFeature(type_ob, flag_value) to test whether the +given type object has a specified feature. +*/ + +#ifndef Py_LIMITED_API + +/* Track types initialized using _PyStaticType_InitBuiltin(). */ +#define _Py_TPFLAGS_STATIC_BUILTIN (1 << 1) + +/* The values array is placed inline directly after the rest of + * the object. Implies Py_TPFLAGS_HAVE_GC. + */ +#define Py_TPFLAGS_INLINE_VALUES (1 << 2) + +/* Placement of weakref pointers are managed by the VM, not by the type. + * The VM will automatically set tp_weaklistoffset. + */ +#define Py_TPFLAGS_MANAGED_WEAKREF (1 << 3) + +/* Placement of dict (and values) pointers are managed by the VM, not by the type. + * The VM will automatically set tp_dictoffset. Implies Py_TPFLAGS_HAVE_GC. + */ +#define Py_TPFLAGS_MANAGED_DICT (1 << 4) + +#define Py_TPFLAGS_PREHEADER (Py_TPFLAGS_MANAGED_WEAKREF | Py_TPFLAGS_MANAGED_DICT) + +/* Set if instances of the type object are treated as sequences for pattern matching */ +#define Py_TPFLAGS_SEQUENCE (1 << 5) +/* Set if instances of the type object are treated as mappings for pattern matching */ +#define Py_TPFLAGS_MAPPING (1 << 6) +#endif + +/* Disallow creating instances of the type: set tp_new to NULL and don't create + * the "__new__" key in the type dictionary. */ +#define Py_TPFLAGS_DISALLOW_INSTANTIATION (1UL << 7) + +/* Set if the type object is immutable: type attributes cannot be set nor deleted */ +#define Py_TPFLAGS_IMMUTABLETYPE (1UL << 8) + +/* Set if the type object is dynamically allocated */ +#define Py_TPFLAGS_HEAPTYPE (1UL << 9) + +/* Set if the type allows subclassing */ +#define Py_TPFLAGS_BASETYPE (1UL << 10) + +/* Set if the type implements the vectorcall protocol (PEP 590) */ +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030C0000 +#define Py_TPFLAGS_HAVE_VECTORCALL (1UL << 11) +#ifndef Py_LIMITED_API +// Backwards compatibility alias for API that was provisional in Python 3.8 +#define _Py_TPFLAGS_HAVE_VECTORCALL Py_TPFLAGS_HAVE_VECTORCALL +#endif +#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) */ +#define Py_TPFLAGS_HAVE_GC (1UL << 14) + +/* These two bits are preserved for Stackless Python, next after this is 17 */ +#ifdef STACKLESS +#define Py_TPFLAGS_HAVE_STACKLESS_EXTENSION (3UL << 15) +#else +#define Py_TPFLAGS_HAVE_STACKLESS_EXTENSION 0 +#endif + +/* Objects behave like an unbound method */ +#define Py_TPFLAGS_METHOD_DESCRIPTOR (1UL << 17) + +/* Unused. Legacy flag */ +#define Py_TPFLAGS_VALID_VERSION_TAG (1UL << 19) + +/* Type is abstract and cannot be instantiated */ +#define Py_TPFLAGS_IS_ABSTRACT (1UL << 20) + +// This undocumented flag gives certain built-ins their unique pattern-matching +// behavior, which allows a single positional subpattern to match against the +// subject itself (rather than a mapped attribute on it): +#define _Py_TPFLAGS_MATCH_SELF (1UL << 22) + +/* Items (ob_size*tp_itemsize) are found at the end of an instance's memory */ +#define Py_TPFLAGS_ITEMS_AT_END (1UL << 23) + +/* These flags are used to determine if a type is a subclass. */ +#define Py_TPFLAGS_LONG_SUBCLASS (1UL << 24) +#define Py_TPFLAGS_LIST_SUBCLASS (1UL << 25) +#define Py_TPFLAGS_TUPLE_SUBCLASS (1UL << 26) +#define Py_TPFLAGS_BYTES_SUBCLASS (1UL << 27) +#define Py_TPFLAGS_UNICODE_SUBCLASS (1UL << 28) +#define Py_TPFLAGS_DICT_SUBCLASS (1UL << 29) +#define Py_TPFLAGS_BASE_EXC_SUBCLASS (1UL << 30) +#define Py_TPFLAGS_TYPE_SUBCLASS (1UL << 31) + +#define Py_TPFLAGS_DEFAULT ( \ + Py_TPFLAGS_HAVE_STACKLESS_EXTENSION | \ + 0) + +/* NOTE: Some of the following flags reuse lower bits (removed as part of the + * Python 3.0 transition). */ + +/* The following flags are kept for compatibility; in previous + * versions they indicated presence of newer tp_* fields on the + * type struct. + * Starting with 3.8, binary compatibility of C extensions across + * feature releases of Python is not supported anymore (except when + * using the stable ABI, in which all classes are created dynamically, + * using the interpreter's memory layout.) + * Note that older extensions using the stable ABI set these flags, + * so the bits must not be repurposed. + */ +#define Py_TPFLAGS_HAVE_FINALIZE (1UL << 0) +#define Py_TPFLAGS_HAVE_VERSION_TAG (1UL << 18) + + +/* +The macros Py_INCREF(op) and Py_DECREF(op) are used to increment or decrement +reference counts. Py_DECREF calls the object's deallocator function when +the refcount falls to 0; for +objects that don't contain references to other objects or heap memory +this can be the standard function free(). Both macros can be used +wherever a void expression is allowed. The argument must not be a +NULL pointer. If it may be NULL, use Py_XINCREF/Py_XDECREF instead. +The macro _Py_NewReference(op) initialize reference counts to 1, and +in special builds (Py_REF_DEBUG, Py_TRACE_REFS) performs additional +bookkeeping appropriate to the special build. + +We assume that the reference count field can never overflow; this can +be proven when the size of the field is the same as the pointer size, so +we ignore the possibility. Provided a C int is at least 32 bits (which +is implicitly assumed in many parts of this code), that's enough for +about 2**31 references to an object. + +XXX The following became out of date in Python 2.2, but I'm not sure +XXX what the full truth is now. Certainly, heap-allocated type objects +XXX can and should be deallocated. +Type objects should never be deallocated; the type pointer in an object +is not considered to be a reference to the type object, to save +complications in the deallocation function. (This is actually a +decision that's up to the implementer of each new type so if you want, +you can count such references to the type object.) +*/ + +#if defined(Py_REF_DEBUG) && !defined(Py_LIMITED_API) +PyAPI_FUNC(void) _Py_NegativeRefcount(const char *filename, int lineno, + PyObject *op); +PyAPI_FUNC(void) _Py_INCREF_IncRefTotal(void); +PyAPI_FUNC(void) _Py_DECREF_DecRefTotal(void); +#endif // Py_REF_DEBUG && !Py_LIMITED_API + +PyAPI_FUNC(void) _Py_Dealloc(PyObject *); + +/* +These are provided as conveniences to Python runtime embedders, so that +they can have object code that is not dependent on Python compilation flags. +*/ +PyAPI_FUNC(void) Py_IncRef(PyObject *); +PyAPI_FUNC(void) Py_DecRef(PyObject *); + +// Similar to Py_IncRef() and Py_DecRef() but the argument must be non-NULL. +// Private functions used by Py_INCREF() and Py_DECREF(). +PyAPI_FUNC(void) _Py_IncRef(PyObject *); +PyAPI_FUNC(void) _Py_DecRef(PyObject *); + +static inline Py_ALWAYS_INLINE void Py_INCREF(PyObject *op) +{ +#if defined(Py_LIMITED_API) && (Py_LIMITED_API+0 >= 0x030c0000 || defined(Py_REF_DEBUG)) + // Stable ABI implements Py_INCREF() as a function call on limited C API + // version 3.12 and newer, and on Python built in debug mode. _Py_IncRef() + // was added to Python 3.10.0a7, use Py_IncRef() on older Python versions. + // Py_IncRef() accepts NULL whereas _Py_IncRef() doesn't. +# if Py_LIMITED_API+0 >= 0x030a00A7 + _Py_IncRef(op); +# else + Py_IncRef(op); +# endif +#else + // Non-limited C API and limited C API for Python 3.9 and older access + // directly PyObject.ob_refcnt. +#if defined(Py_GIL_DISABLED) + uint32_t local = _Py_atomic_load_uint32_relaxed(&op->ob_ref_local); + uint32_t new_local = local + 1; + if (new_local == 0) { + // local is equal to _Py_IMMORTAL_REFCNT: do nothing + return; + } + if (_Py_IsOwnedByCurrentThread(op)) { + _Py_atomic_store_uint32_relaxed(&op->ob_ref_local, new_local); + } + else { + _Py_atomic_add_ssize(&op->ob_ref_shared, (1 << _Py_REF_SHARED_SHIFT)); + } +#elif SIZEOF_VOID_P > 4 + // Portable saturated add, branching on the carry flag and set low bits + PY_UINT32_T cur_refcnt = op->ob_refcnt_split[PY_BIG_ENDIAN]; + PY_UINT32_T new_refcnt = cur_refcnt + 1; + if (new_refcnt == 0) { + // cur_refcnt is equal to _Py_IMMORTAL_REFCNT: the object is immortal, + // do nothing + return; + } + op->ob_refcnt_split[PY_BIG_ENDIAN] = new_refcnt; +#else + // Explicitly check immortality against the immortal value + if (_Py_IsImmortal(op)) { + return; + } + op->ob_refcnt++; +#endif + _Py_INCREF_STAT_INC(); +#ifdef Py_REF_DEBUG + _Py_INCREF_IncRefTotal(); +#endif +#endif +} +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define Py_INCREF(op) Py_INCREF(_PyObject_CAST(op)) +#endif + + +#if !defined(Py_LIMITED_API) && defined(Py_GIL_DISABLED) +// Implements Py_DECREF on objects not owned by the current thread. +PyAPI_FUNC(void) _Py_DecRefShared(PyObject *); +PyAPI_FUNC(void) _Py_DecRefSharedDebug(PyObject *, const char *, int); + +// Called from Py_DECREF by the owning thread when the local refcount reaches +// zero. The call will deallocate the object if the shared refcount is also +// zero. Otherwise, the thread gives up ownership and merges the reference +// count fields. +PyAPI_FUNC(void) _Py_MergeZeroLocalRefcount(PyObject *); +#endif + +#if defined(Py_LIMITED_API) && (Py_LIMITED_API+0 >= 0x030c0000 || defined(Py_REF_DEBUG)) +// Stable ABI implements Py_DECREF() as a function call on limited C API +// version 3.12 and newer, and on Python built in debug mode. _Py_DecRef() was +// added to Python 3.10.0a7, use Py_DecRef() on older Python versions. +// Py_DecRef() accepts NULL whereas _Py_IncRef() doesn't. +static inline void Py_DECREF(PyObject *op) { +# if Py_LIMITED_API+0 >= 0x030a00A7 + _Py_DecRef(op); +# else + Py_DecRef(op); +# endif +} +#define Py_DECREF(op) Py_DECREF(_PyObject_CAST(op)) + +#elif defined(Py_GIL_DISABLED) && defined(Py_REF_DEBUG) +static inline void Py_DECREF(const char *filename, int lineno, PyObject *op) +{ + uint32_t local = _Py_atomic_load_uint32_relaxed(&op->ob_ref_local); + if (local == _Py_IMMORTAL_REFCNT_LOCAL) { + return; + } + _Py_DECREF_STAT_INC(); + _Py_DECREF_DecRefTotal(); + if (_Py_IsOwnedByCurrentThread(op)) { + if (local == 0) { + _Py_NegativeRefcount(filename, lineno, op); + } + local--; + _Py_atomic_store_uint32_relaxed(&op->ob_ref_local, local); + if (local == 0) { + _Py_MergeZeroLocalRefcount(op); + } + } + else { + _Py_DecRefSharedDebug(op, filename, lineno); + } +} +#define Py_DECREF(op) Py_DECREF(__FILE__, __LINE__, _PyObject_CAST(op)) + +#elif defined(Py_GIL_DISABLED) +static inline void Py_DECREF(PyObject *op) +{ + uint32_t local = _Py_atomic_load_uint32_relaxed(&op->ob_ref_local); + if (local == _Py_IMMORTAL_REFCNT_LOCAL) { + return; + } + _Py_DECREF_STAT_INC(); + if (_Py_IsOwnedByCurrentThread(op)) { + local--; + _Py_atomic_store_uint32_relaxed(&op->ob_ref_local, local); + if (local == 0) { + _Py_MergeZeroLocalRefcount(op); + } + } + else { + _Py_DecRefShared(op); + } +} +#define Py_DECREF(op) Py_DECREF(_PyObject_CAST(op)) + +#elif defined(Py_REF_DEBUG) +static inline void Py_DECREF(const char *filename, int lineno, PyObject *op) +{ + if (op->ob_refcnt <= 0) { + _Py_NegativeRefcount(filename, lineno, op); + } + if (_Py_IsImmortal(op)) { + return; + } + _Py_DECREF_STAT_INC(); + _Py_DECREF_DecRefTotal(); + if (--op->ob_refcnt == 0) { + _Py_Dealloc(op); + } +} +#define Py_DECREF(op) Py_DECREF(__FILE__, __LINE__, _PyObject_CAST(op)) + +#else +static inline Py_ALWAYS_INLINE void Py_DECREF(PyObject *op) +{ + // Non-limited C API and limited C API for Python 3.9 and older access + // directly PyObject.ob_refcnt. + if (_Py_IsImmortal(op)) { + return; + } + _Py_DECREF_STAT_INC(); + if (--op->ob_refcnt == 0) { + _Py_Dealloc(op); + } +} +#define Py_DECREF(op) Py_DECREF(_PyObject_CAST(op)) +#endif + + +/* Safely decref `op` and set `op` to NULL, especially useful in tp_clear + * and tp_dealloc implementations. + * + * Note that "the obvious" code can be deadly: + * + * Py_XDECREF(op); + * op = NULL; + * + * Typically, `op` is something like self->containee, and `self` is done + * using its `containee` member. In the code sequence above, suppose + * `containee` is non-NULL with a refcount of 1. Its refcount falls to + * 0 on the first line, which can trigger an arbitrary amount of code, + * possibly including finalizers (like __del__ methods or weakref callbacks) + * coded in Python, which in turn can release the GIL and allow other threads + * to run, etc. Such code may even invoke methods of `self` again, or cause + * cyclic gc to trigger, but-- oops! --self->containee still points to the + * object being torn down, and it may be in an insane state while being torn + * down. This has in fact been a rich historic source of miserable (rare & + * hard-to-diagnose) segfaulting (and other) bugs. + * + * The safe way is: + * + * Py_CLEAR(op); + * + * That arranges to set `op` to NULL _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. + * + * There are cases where it's safe to use the naive code, but they're brittle. + * For example, if `op` points to a Python integer, you know that destroying + * one of those can't cause problems -- but in part that relies on that + * Python integers aren't currently weakly referencable. Best practice is + * to use Py_CLEAR() even if you can't think of a reason for why you need to. + * + * gh-98724: Use a temporary variable to only evaluate the macro argument once, + * to avoid the duplication of side effects if the argument has side effects. + * + * gh-99701: If the PyObject* type is used with casting arguments to PyObject*, + * the code can be miscompiled with strict aliasing because of type punning. + * With strict aliasing, a compiler considers that two pointers of different + * types cannot read or write the same memory which enables optimization + * opportunities. + * + * If available, use _Py_TYPEOF() to use the 'op' type for temporary variables, + * and so avoid type punning. Otherwise, use memcpy() which causes type erasure + * and so prevents the compiler to reuse an old cached 'op' value after + * Py_CLEAR(). + */ +#ifdef _Py_TYPEOF +#define Py_CLEAR(op) \ + do { \ + _Py_TYPEOF(op)* _tmp_op_ptr = &(op); \ + _Py_TYPEOF(op) _tmp_old_op = (*_tmp_op_ptr); \ + if (_tmp_old_op != NULL) { \ + *_tmp_op_ptr = _Py_NULL; \ + Py_DECREF(_tmp_old_op); \ + } \ + } while (0) +#else +#define Py_CLEAR(op) \ + do { \ + PyObject **_tmp_op_ptr = _Py_CAST(PyObject**, &(op)); \ + PyObject *_tmp_old_op = (*_tmp_op_ptr); \ + if (_tmp_old_op != NULL) { \ + PyObject *_null_ptr = _Py_NULL; \ + memcpy(_tmp_op_ptr, &_null_ptr, sizeof(PyObject*)); \ + Py_DECREF(_tmp_old_op); \ + } \ + } while (0) +#endif + + +/* Function to use in case the object pointer can be NULL: */ +static inline void Py_XINCREF(PyObject *op) +{ + if (op != _Py_NULL) { + Py_INCREF(op); + } +} +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define Py_XINCREF(op) Py_XINCREF(_PyObject_CAST(op)) +#endif + +static inline void Py_XDECREF(PyObject *op) +{ + if (op != _Py_NULL) { + Py_DECREF(op); + } +} +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define Py_XDECREF(op) Py_XDECREF(_PyObject_CAST(op)) +#endif + +// Create a new strong reference to an object: +// increment the reference count of the object and return the object. +PyAPI_FUNC(PyObject*) Py_NewRef(PyObject *obj); + +// Similar to Py_NewRef(), but the object can be NULL. +PyAPI_FUNC(PyObject*) Py_XNewRef(PyObject *obj); + +static inline PyObject* _Py_NewRef(PyObject *obj) +{ + Py_INCREF(obj); + return obj; +} + +static inline PyObject* _Py_XNewRef(PyObject *obj) +{ + Py_XINCREF(obj); + return obj; +} + +// Py_NewRef() and Py_XNewRef() are exported as functions for the stable ABI. +// Names overridden with macros by static inline functions for best +// performances. +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define Py_NewRef(obj) _Py_NewRef(_PyObject_CAST(obj)) +# define Py_XNewRef(obj) _Py_XNewRef(_PyObject_CAST(obj)) +#else +# define Py_NewRef(obj) _Py_NewRef(obj) +# define Py_XNewRef(obj) _Py_XNewRef(obj) +#endif + + +#define Py_CONSTANT_NONE 0 +#define Py_CONSTANT_FALSE 1 +#define Py_CONSTANT_TRUE 2 +#define Py_CONSTANT_ELLIPSIS 3 +#define Py_CONSTANT_NOT_IMPLEMENTED 4 +#define Py_CONSTANT_ZERO 5 +#define Py_CONSTANT_ONE 6 +#define Py_CONSTANT_EMPTY_STR 7 +#define Py_CONSTANT_EMPTY_BYTES 8 +#define Py_CONSTANT_EMPTY_TUPLE 9 + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030d0000 +PyAPI_FUNC(PyObject*) Py_GetConstant(unsigned int constant_id); +PyAPI_FUNC(PyObject*) Py_GetConstantBorrowed(unsigned int constant_id); +#endif + + +/* +_Py_NoneStruct is an object of undefined type which can be used in contexts +where NULL (nil) is not suitable (since NULL often means 'error'). +*/ +PyAPI_DATA(PyObject) _Py_NoneStruct; /* Don't use this directly */ + +#if defined(Py_LIMITED_API) && Py_LIMITED_API+0 >= 0x030D0000 +# define Py_None Py_GetConstantBorrowed(Py_CONSTANT_NONE) +#else +# define Py_None (&_Py_NoneStruct) +#endif + +// Test if an object is the None singleton, the same as "x is None" in Python. +PyAPI_FUNC(int) Py_IsNone(PyObject *x); +#define Py_IsNone(x) Py_Is((x), Py_None) + +/* Macro for returning Py_None from a function */ +#define Py_RETURN_NONE return Py_None + +/* +Py_NotImplemented is a singleton used to signal that an operation is +not implemented for a given type combination. +*/ +PyAPI_DATA(PyObject) _Py_NotImplementedStruct; /* Don't use this directly */ + +#if defined(Py_LIMITED_API) && Py_LIMITED_API+0 >= 0x030D0000 +# define Py_NotImplemented Py_GetConstantBorrowed(Py_CONSTANT_NOT_IMPLEMENTED) +#else +# define Py_NotImplemented (&_Py_NotImplementedStruct) +#endif + +/* Macro for returning Py_NotImplemented from a function */ +#define Py_RETURN_NOTIMPLEMENTED return Py_NotImplemented + +/* Rich comparison opcodes */ +#define Py_LT 0 +#define Py_LE 1 +#define Py_EQ 2 +#define Py_NE 3 +#define Py_GT 4 +#define Py_GE 5 + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030A0000 +/* Result of calling PyIter_Send */ +typedef enum { + PYGEN_RETURN = 0, + PYGEN_ERROR = -1, + PYGEN_NEXT = 1, +} PySendResult; +#endif + +/* + * Macro for implementing rich comparisons + * + * Needs to be a macro because any C-comparable type can be used. + */ +#define Py_RETURN_RICHCOMPARE(val1, val2, op) \ + do { \ + switch (op) { \ + case Py_EQ: if ((val1) == (val2)) Py_RETURN_TRUE; Py_RETURN_FALSE; \ + case Py_NE: if ((val1) != (val2)) Py_RETURN_TRUE; Py_RETURN_FALSE; \ + case Py_LT: if ((val1) < (val2)) Py_RETURN_TRUE; Py_RETURN_FALSE; \ + case Py_GT: if ((val1) > (val2)) Py_RETURN_TRUE; Py_RETURN_FALSE; \ + case Py_LE: if ((val1) <= (val2)) Py_RETURN_TRUE; Py_RETURN_FALSE; \ + case Py_GE: if ((val1) >= (val2)) Py_RETURN_TRUE; Py_RETURN_FALSE; \ + default: \ + Py_UNREACHABLE(); \ + } \ + } while (0) + + +/* +More conventions +================ + +Argument Checking +----------------- + +Functions that take objects as arguments normally don't check for nil +arguments, but they do check the type of the argument, and return an +error if the function doesn't apply to the type. + +Failure Modes +------------- + +Functions may fail for a variety of reasons, including running out of +memory. This is communicated to the caller in two ways: an error string +is set (see errors.h), and the function result differs: functions that +normally return a pointer return NULL for failure, functions returning +an integer return -1 (which could be a legal return value too!), and +other functions return 0 for success and -1 for failure. +Callers should always check for errors before using the result. If +an error was set, the caller must either explicitly clear it, or pass +the error on to its caller. + +Reference Counts +---------------- + +It takes a while to get used to the proper usage of reference counts. + +Functions that create an object set the reference count to 1; such new +objects must be stored somewhere or destroyed again with Py_DECREF(). +Some functions that 'store' objects, such as PyTuple_SetItem() and +PyList_SetItem(), +don't increment the reference count of the object, since the most +frequent use is to store a fresh object. Functions that 'retrieve' +objects, such as PyTuple_GetItem() and PyDict_GetItemString(), also +don't increment +the reference count, since most frequently the object is only looked at +quickly. Thus, to retrieve an object and store it again, the caller +must call Py_INCREF() explicitly. + +NOTE: functions that 'consume' a reference count, like +PyList_SetItem(), consume the reference even if the object wasn't +successfully stored, to simplify error handling. + +It seems attractive to make other functions that take an object as +argument consume a reference count; however, this may quickly get +confusing (even the current practice is already confusing). Consider +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 + + +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 +# ifdef Py_GIL_DISABLED + flags = _Py_atomic_load_ulong_relaxed(&type->tp_flags); +# else + flags = type->tp_flags; +# endif +#endif + return ((flags & feature) != 0); +} + +#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); +} +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define PyType_Check(op) PyType_Check(_PyObject_CAST(op)) +#endif + +#define _PyType_CAST(op) \ + (assert(PyType_Check(op)), _Py_CAST(PyTypeObject*, (op))) + +static inline int PyType_CheckExact(PyObject *op) { + return Py_IS_TYPE(op, &PyType_Type); +} +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define PyType_CheckExact(op) PyType_CheckExact(_PyObject_CAST(op)) +#endif + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030d0000 +PyAPI_FUNC(PyObject *) PyType_GetModuleByDef(PyTypeObject *, PyModuleDef *); +#endif + +#ifdef __cplusplus +} +#endif +#endif // !Py_OBJECT_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/objimpl.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/objimpl.h new file mode 100644 index 000000000..56472a72e --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/objimpl.h @@ -0,0 +1,211 @@ +// The PyObject_ memory family: high-level object memory interfaces. +// See pymem.h for the low-level PyMem_ family. + +#ifndef Py_OBJIMPL_H +#define Py_OBJIMPL_H +#ifdef __cplusplus +extern "C" { +#endif + +/* BEWARE: + + Each interface exports both functions and macros. Extension modules should + use the functions, to ensure binary compatibility across Python versions. + Because the Python implementation is free to change internal details, and + the macros may (or may not) expose details for speed, if you do use the + macros you must recompile your extensions with each Python release. + + Never mix calls to PyObject_ memory functions with calls to the platform + malloc/realloc/ calloc/free, or with calls to PyMem_. +*/ + +/* +Functions and macros for modules that implement new object types. + + - PyObject_New(type, typeobj) allocates memory for a new object of the given + type, and initializes part of it. 'type' must be the C structure type used + to represent the object, and 'typeobj' the address of the corresponding + type object. Reference count and type pointer are filled in; the rest of + the bytes of the object are *undefined*! The resulting expression type is + 'type *'. The size of the object is determined by the tp_basicsize field + of the type object. + + - PyObject_NewVar(type, typeobj, n) is similar but allocates a variable-size + object with room for n items. In addition to the refcount and type pointer + fields, this also fills in the ob_size field. + + - PyObject_Free(op) releases the memory allocated for an object. It does not + run a destructor -- it only frees the memory. + + - PyObject_Init(op, typeobj) and PyObject_InitVar(op, typeobj, n) don't + allocate memory. Instead of a 'type' parameter, they take a pointer to a + new object (allocated by an arbitrary allocator), and initialize its object + header fields. + +Note that objects created with PyObject_{New, NewVar} are allocated using the +specialized Python allocator (implemented in obmalloc.c), if WITH_PYMALLOC is +enabled. In addition, a special debugging allocator is used if Py_DEBUG +macro is also defined. + +In case a specific form of memory management is needed (for example, if you +must use the platform malloc heap(s), or shared memory, or C++ local storage or +operator new), you must first allocate the object with your custom allocator, +then pass its pointer to PyObject_{Init, InitVar} for filling in its Python- +specific fields: reference count, type pointer, possibly others. You should +be aware that Python has no control over these objects because they don't +cooperate with the Python memory manager. Such objects may not be eligible +for automatic garbage collection and you have to make sure that they are +released accordingly whenever their destructor gets called (cf. the specific +form of memory management you're using). + +Unless you have specific memory management requirements, use +PyObject_{New, NewVar, Del}. +*/ + +/* + * Raw object memory interface + * =========================== + */ + +/* Functions to call the same malloc/realloc/free as used by Python's + object allocator. If WITH_PYMALLOC is enabled, these may differ from + the platform malloc/realloc/free. The Python object allocator is + designed for fast, cache-conscious allocation of many "small" objects, + and with low hidden memory overhead. + + PyObject_Malloc(0) returns a unique non-NULL pointer if possible. + + PyObject_Realloc(NULL, n) acts like PyObject_Malloc(n). + PyObject_Realloc(p != NULL, 0) does not return NULL, or free the memory + at p. + + Returned pointers must be checked for NULL explicitly; no action is + performed on failure other than to return NULL (no warning it printed, no + exception is set, etc). + + For allocating objects, use PyObject_{New, NewVar} instead whenever + possible. The PyObject_{Malloc, Realloc, Free} family is exposed + so that you can exploit Python's small-block allocator for non-object + uses. If you must use these routines to allocate object memory, make sure + the object gets initialized via PyObject_{Init, InitVar} after obtaining + the raw memory. +*/ +PyAPI_FUNC(void *) PyObject_Malloc(size_t size); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 +PyAPI_FUNC(void *) PyObject_Calloc(size_t nelem, size_t elsize); +#endif +PyAPI_FUNC(void *) PyObject_Realloc(void *ptr, size_t new_size); +PyAPI_FUNC(void) PyObject_Free(void *ptr); + + +// Deprecated aliases only kept for backward compatibility. +// PyObject_Del and PyObject_DEL are defined with no parameter to be able to +// use them as function pointers (ex: tp_free = PyObject_Del). +#define PyObject_MALLOC PyObject_Malloc +#define PyObject_REALLOC PyObject_Realloc +#define PyObject_FREE PyObject_Free +#define PyObject_Del PyObject_Free +#define PyObject_DEL PyObject_Free + + +/* + * Generic object allocator interface + * ================================== + */ + +/* Functions */ +PyAPI_FUNC(PyObject *) PyObject_Init(PyObject *, PyTypeObject *); +PyAPI_FUNC(PyVarObject *) PyObject_InitVar(PyVarObject *, + PyTypeObject *, Py_ssize_t); + +#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)) + + +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_NewVar(type, typeobj, n) \ + ( (type *) _PyObject_NewVar((typeobj), (n)) ) + +// Alias to PyObject_NewVar(). In Python 3.8, PyObject_NEW_VAR() called +// directly PyObject_MALLOC() with _PyObject_VAR_SIZE(). +#define PyObject_NEW_VAR(type, typeobj, n) PyObject_NewVar(type, (typeobj), (n)) + + +/* + * Garbage Collection Support + * ========================== + */ + +/* C equivalent of gc.collect(). */ +PyAPI_FUNC(Py_ssize_t) PyGC_Collect(void); +/* C API for controlling the state of the garbage collector */ +PyAPI_FUNC(int) PyGC_Enable(void); +PyAPI_FUNC(int) PyGC_Disable(void); +PyAPI_FUNC(int) PyGC_IsEnabled(void); + +/* Test if a type has a GC head */ +#define PyType_IS_GC(t) PyType_HasFeature((t), Py_TPFLAGS_HAVE_GC) + +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)) ) + + + +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 stop tracking this object. + * + * See also private _PyObject_GC_UNTRACK() macro. */ +PyAPI_FUNC(void) PyObject_GC_UnTrack(void *); + +PyAPI_FUNC(void) PyObject_GC_Del(void *); + +#define PyObject_GC_New(type, typeobj) \ + _Py_CAST(type*, _PyObject_GC_New(typeobj)) +#define PyObject_GC_NewVar(type, typeobj, n) \ + _Py_CAST(type*, _PyObject_GC_NewVar((typeobj), (n))) + +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 + * "visit" and "arg". This is intended to keep tp_traverse functions + * looking as much alike as possible. + */ +#define Py_VISIT(op) \ + do { \ + if (op) { \ + 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 + +#ifdef __cplusplus +} +#endif +#endif // !Py_OBJIMPL_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/opcode.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/opcode.h new file mode 100644 index 000000000..2619b6900 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/opcode.h @@ -0,0 +1,42 @@ +#ifndef Py_OPCODE_H +#define Py_OPCODE_H +#ifdef __cplusplus +extern "C" { +#endif + +#include "opcode_ids.h" + + +#define NB_ADD 0 +#define NB_AND 1 +#define NB_FLOOR_DIVIDE 2 +#define NB_LSHIFT 3 +#define NB_MATRIX_MULTIPLY 4 +#define NB_MULTIPLY 5 +#define NB_REMAINDER 6 +#define NB_OR 7 +#define NB_POWER 8 +#define NB_RSHIFT 9 +#define NB_SUBTRACT 10 +#define NB_TRUE_DIVIDE 11 +#define NB_XOR 12 +#define NB_INPLACE_ADD 13 +#define NB_INPLACE_AND 14 +#define NB_INPLACE_FLOOR_DIVIDE 15 +#define NB_INPLACE_LSHIFT 16 +#define NB_INPLACE_MATRIX_MULTIPLY 17 +#define NB_INPLACE_MULTIPLY 18 +#define NB_INPLACE_REMAINDER 19 +#define NB_INPLACE_OR 20 +#define NB_INPLACE_POWER 21 +#define NB_INPLACE_RSHIFT 22 +#define NB_INPLACE_SUBTRACT 23 +#define NB_INPLACE_TRUE_DIVIDE 24 +#define NB_INPLACE_XOR 25 + +#define NB_OPARG_LAST 25 + +#ifdef __cplusplus +} +#endif +#endif /* !Py_OPCODE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/opcode_ids.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/opcode_ids.h new file mode 100644 index 000000000..647f7c0ec --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/opcode_ids.h @@ -0,0 +1,244 @@ +// This file is generated by Tools/cases_generator/opcode_id_generator.py +// from: +// Python/bytecodes.c +// Do not edit! + +#ifndef Py_OPCODE_IDS_H +#define Py_OPCODE_IDS_H +#ifdef __cplusplus +extern "C" { +#endif + +/* Instruction opcodes for compiled code */ +#define CACHE 0 +#define BEFORE_ASYNC_WITH 1 +#define BEFORE_WITH 2 +#define BINARY_OP_INPLACE_ADD_UNICODE 3 +#define BINARY_SLICE 4 +#define BINARY_SUBSCR 5 +#define CHECK_EG_MATCH 6 +#define CHECK_EXC_MATCH 7 +#define CLEANUP_THROW 8 +#define DELETE_SUBSCR 9 +#define END_ASYNC_FOR 10 +#define END_FOR 11 +#define END_SEND 12 +#define EXIT_INIT_CHECK 13 +#define FORMAT_SIMPLE 14 +#define FORMAT_WITH_SPEC 15 +#define GET_AITER 16 +#define RESERVED 17 +#define GET_ANEXT 18 +#define GET_ITER 19 +#define GET_LEN 20 +#define GET_YIELD_FROM_ITER 21 +#define INTERPRETER_EXIT 22 +#define LOAD_ASSERTION_ERROR 23 +#define LOAD_BUILD_CLASS 24 +#define LOAD_LOCALS 25 +#define MAKE_FUNCTION 26 +#define MATCH_KEYS 27 +#define MATCH_MAPPING 28 +#define MATCH_SEQUENCE 29 +#define NOP 30 +#define POP_EXCEPT 31 +#define POP_TOP 32 +#define PUSH_EXC_INFO 33 +#define PUSH_NULL 34 +#define RETURN_GENERATOR 35 +#define RETURN_VALUE 36 +#define SETUP_ANNOTATIONS 37 +#define STORE_SLICE 38 +#define STORE_SUBSCR 39 +#define TO_BOOL 40 +#define UNARY_INVERT 41 +#define UNARY_NEGATIVE 42 +#define UNARY_NOT 43 +#define WITH_EXCEPT_START 44 +#define BINARY_OP 45 +#define BUILD_CONST_KEY_MAP 46 +#define BUILD_LIST 47 +#define BUILD_MAP 48 +#define BUILD_SET 49 +#define BUILD_SLICE 50 +#define BUILD_STRING 51 +#define BUILD_TUPLE 52 +#define CALL 53 +#define CALL_FUNCTION_EX 54 +#define CALL_INTRINSIC_1 55 +#define CALL_INTRINSIC_2 56 +#define CALL_KW 57 +#define COMPARE_OP 58 +#define CONTAINS_OP 59 +#define CONVERT_VALUE 60 +#define COPY 61 +#define COPY_FREE_VARS 62 +#define DELETE_ATTR 63 +#define DELETE_DEREF 64 +#define DELETE_FAST 65 +#define DELETE_GLOBAL 66 +#define DELETE_NAME 67 +#define DICT_MERGE 68 +#define DICT_UPDATE 69 +#define ENTER_EXECUTOR 70 +#define EXTENDED_ARG 71 +#define FOR_ITER 72 +#define GET_AWAITABLE 73 +#define IMPORT_FROM 74 +#define IMPORT_NAME 75 +#define IS_OP 76 +#define JUMP_BACKWARD 77 +#define JUMP_BACKWARD_NO_INTERRUPT 78 +#define JUMP_FORWARD 79 +#define LIST_APPEND 80 +#define LIST_EXTEND 81 +#define LOAD_ATTR 82 +#define LOAD_CONST 83 +#define LOAD_DEREF 84 +#define LOAD_FAST 85 +#define LOAD_FAST_AND_CLEAR 86 +#define LOAD_FAST_CHECK 87 +#define LOAD_FAST_LOAD_FAST 88 +#define LOAD_FROM_DICT_OR_DEREF 89 +#define LOAD_FROM_DICT_OR_GLOBALS 90 +#define LOAD_GLOBAL 91 +#define LOAD_NAME 92 +#define LOAD_SUPER_ATTR 93 +#define MAKE_CELL 94 +#define MAP_ADD 95 +#define MATCH_CLASS 96 +#define POP_JUMP_IF_FALSE 97 +#define POP_JUMP_IF_NONE 98 +#define POP_JUMP_IF_NOT_NONE 99 +#define POP_JUMP_IF_TRUE 100 +#define RAISE_VARARGS 101 +#define RERAISE 102 +#define RETURN_CONST 103 +#define SEND 104 +#define SET_ADD 105 +#define SET_FUNCTION_ATTRIBUTE 106 +#define SET_UPDATE 107 +#define STORE_ATTR 108 +#define STORE_DEREF 109 +#define STORE_FAST 110 +#define STORE_FAST_LOAD_FAST 111 +#define STORE_FAST_STORE_FAST 112 +#define STORE_GLOBAL 113 +#define STORE_NAME 114 +#define SWAP 115 +#define UNPACK_EX 116 +#define UNPACK_SEQUENCE 117 +#define YIELD_VALUE 118 +#define RESUME 149 +#define BINARY_OP_ADD_FLOAT 150 +#define BINARY_OP_ADD_INT 151 +#define BINARY_OP_ADD_UNICODE 152 +#define BINARY_OP_MULTIPLY_FLOAT 153 +#define BINARY_OP_MULTIPLY_INT 154 +#define BINARY_OP_SUBTRACT_FLOAT 155 +#define BINARY_OP_SUBTRACT_INT 156 +#define BINARY_SUBSCR_DICT 157 +#define BINARY_SUBSCR_GETITEM 158 +#define BINARY_SUBSCR_LIST_INT 159 +#define BINARY_SUBSCR_STR_INT 160 +#define BINARY_SUBSCR_TUPLE_INT 161 +#define CALL_ALLOC_AND_ENTER_INIT 162 +#define CALL_BOUND_METHOD_EXACT_ARGS 163 +#define CALL_BOUND_METHOD_GENERAL 164 +#define CALL_BUILTIN_CLASS 165 +#define CALL_BUILTIN_FAST 166 +#define CALL_BUILTIN_FAST_WITH_KEYWORDS 167 +#define CALL_BUILTIN_O 168 +#define CALL_ISINSTANCE 169 +#define CALL_LEN 170 +#define CALL_LIST_APPEND 171 +#define CALL_METHOD_DESCRIPTOR_FAST 172 +#define CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS 173 +#define CALL_METHOD_DESCRIPTOR_NOARGS 174 +#define CALL_METHOD_DESCRIPTOR_O 175 +#define CALL_NON_PY_GENERAL 176 +#define CALL_PY_EXACT_ARGS 177 +#define CALL_PY_GENERAL 178 +#define CALL_STR_1 179 +#define CALL_TUPLE_1 180 +#define CALL_TYPE_1 181 +#define COMPARE_OP_FLOAT 182 +#define COMPARE_OP_INT 183 +#define COMPARE_OP_STR 184 +#define CONTAINS_OP_DICT 185 +#define CONTAINS_OP_SET 186 +#define FOR_ITER_GEN 187 +#define FOR_ITER_LIST 188 +#define FOR_ITER_RANGE 189 +#define FOR_ITER_TUPLE 190 +#define LOAD_ATTR_CLASS 191 +#define LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN 192 +#define LOAD_ATTR_INSTANCE_VALUE 193 +#define LOAD_ATTR_METHOD_LAZY_DICT 194 +#define LOAD_ATTR_METHOD_NO_DICT 195 +#define LOAD_ATTR_METHOD_WITH_VALUES 196 +#define LOAD_ATTR_MODULE 197 +#define LOAD_ATTR_NONDESCRIPTOR_NO_DICT 198 +#define LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES 199 +#define LOAD_ATTR_PROPERTY 200 +#define LOAD_ATTR_SLOT 201 +#define LOAD_ATTR_WITH_HINT 202 +#define LOAD_GLOBAL_BUILTIN 203 +#define LOAD_GLOBAL_MODULE 204 +#define LOAD_SUPER_ATTR_ATTR 205 +#define LOAD_SUPER_ATTR_METHOD 206 +#define RESUME_CHECK 207 +#define SEND_GEN 208 +#define STORE_ATTR_INSTANCE_VALUE 209 +#define STORE_ATTR_SLOT 210 +#define STORE_ATTR_WITH_HINT 211 +#define STORE_SUBSCR_DICT 212 +#define STORE_SUBSCR_LIST_INT 213 +#define TO_BOOL_ALWAYS_TRUE 214 +#define TO_BOOL_BOOL 215 +#define TO_BOOL_INT 216 +#define TO_BOOL_LIST 217 +#define TO_BOOL_NONE 218 +#define TO_BOOL_STR 219 +#define UNPACK_SEQUENCE_LIST 220 +#define UNPACK_SEQUENCE_TUPLE 221 +#define UNPACK_SEQUENCE_TWO_TUPLE 222 +#define INSTRUMENTED_RESUME 236 +#define INSTRUMENTED_END_FOR 237 +#define INSTRUMENTED_END_SEND 238 +#define INSTRUMENTED_RETURN_VALUE 239 +#define INSTRUMENTED_RETURN_CONST 240 +#define INSTRUMENTED_YIELD_VALUE 241 +#define INSTRUMENTED_LOAD_SUPER_ATTR 242 +#define INSTRUMENTED_FOR_ITER 243 +#define INSTRUMENTED_CALL 244 +#define INSTRUMENTED_CALL_KW 245 +#define INSTRUMENTED_CALL_FUNCTION_EX 246 +#define INSTRUMENTED_INSTRUCTION 247 +#define INSTRUMENTED_JUMP_FORWARD 248 +#define INSTRUMENTED_JUMP_BACKWARD 249 +#define INSTRUMENTED_POP_JUMP_IF_TRUE 250 +#define INSTRUMENTED_POP_JUMP_IF_FALSE 251 +#define INSTRUMENTED_POP_JUMP_IF_NONE 252 +#define INSTRUMENTED_POP_JUMP_IF_NOT_NONE 253 +#define INSTRUMENTED_LINE 254 +#define JUMP 256 +#define JUMP_NO_INTERRUPT 257 +#define LOAD_CLOSURE 258 +#define LOAD_METHOD 259 +#define LOAD_SUPER_METHOD 260 +#define LOAD_ZERO_SUPER_ATTR 261 +#define LOAD_ZERO_SUPER_METHOD 262 +#define POP_BLOCK 263 +#define SETUP_CLEANUP 264 +#define SETUP_FINALLY 265 +#define SETUP_WITH 266 +#define STORE_FAST_MAYBE_NULL 267 + +#define HAVE_ARGUMENT 44 +#define MIN_INSTRUMENTED_OPCODE 236 + +#ifdef __cplusplus +} +#endif +#endif /* !Py_OPCODE_IDS_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/osdefs.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/osdefs.h new file mode 100644 index 000000000..2599e87a9 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/osdefs.h @@ -0,0 +1,57 @@ +// Operating system dependencies. +// +// Define constants: +// +// - ALTSEP +// - DELIM +// - MAXPATHLEN +// - SEP + +#ifndef Py_OSDEFS_H +#define Py_OSDEFS_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef MS_WINDOWS +# define SEP L'\\' +# define ALTSEP L'/' +# define MAXPATHLEN 256 +# define DELIM L';' +#endif + +#ifdef __VXWORKS__ +# define DELIM L';' +#endif + +/* Filename separator */ +#ifndef SEP +# define SEP L'/' +#endif + +/* Max pathname length */ +#ifdef __hpux +# include +# include +# ifndef PATH_MAX +# define PATH_MAX MAXPATHLEN +# endif +#endif + +#ifndef MAXPATHLEN +# if defined(PATH_MAX) && PATH_MAX > 1024 +# define MAXPATHLEN PATH_MAX +# else +# define MAXPATHLEN 1024 +# endif +#endif + +/* Search path entry delimiter */ +#ifndef DELIM +# define DELIM L':' +#endif + +#ifdef __cplusplus +} +#endif +#endif // !Py_OSDEFS_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/osmodule.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/osmodule.h new file mode 100644 index 000000000..9095c2fdd --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/osmodule.h @@ -0,0 +1,17 @@ + +/* os module interface */ + +#ifndef Py_OSMODULE_H +#define Py_OSMODULE_H +#ifdef __cplusplus +extern "C" { +#endif + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03060000 +PyAPI_FUNC(PyObject *) PyOS_FSPath(PyObject *path); +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_OSMODULE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/patchlevel.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/patchlevel.h new file mode 100644 index 000000000..977f1b037 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/patchlevel.h @@ -0,0 +1,35 @@ + +/* Python version identification scheme. + + When the major or minor version changes, the VERSION variable in + configure.ac must also be changed. + + There is also (independent) API version information in modsupport.h. +*/ + +/* Values for PY_RELEASE_LEVEL */ +#define PY_RELEASE_LEVEL_ALPHA 0xA +#define PY_RELEASE_LEVEL_BETA 0xB +#define PY_RELEASE_LEVEL_GAMMA 0xC /* For release candidates */ +#define PY_RELEASE_LEVEL_FINAL 0xF /* Serial should be 0 here */ + /* Higher for patch releases */ + +/* Version parsed out into numeric values */ +/*--start constants--*/ +#define PY_MAJOR_VERSION 3 +#define PY_MINOR_VERSION 13 +#define PY_MICRO_VERSION 0 +#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_FINAL +#define PY_RELEASE_SERIAL 0 + +/* Version as a string */ +#define PY_VERSION "3.13.0+" +/*--end constants--*/ + +/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2. + Use this for numeric comparisons, e.g. #if PY_VERSION_HEX >= ... */ +#define PY_VERSION_HEX ((PY_MAJOR_VERSION << 24) | \ + (PY_MINOR_VERSION << 16) | \ + (PY_MICRO_VERSION << 8) | \ + (PY_RELEASE_LEVEL << 4) | \ + (PY_RELEASE_SERIAL << 0)) diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/py_curses.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/py_curses.h new file mode 100644 index 000000000..79b1b01fc --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/py_curses.h @@ -0,0 +1,116 @@ + +#ifndef Py_CURSES_H +#define Py_CURSES_H + +#ifdef __APPLE__ +/* +** On Mac OS X 10.2 [n]curses.h and stdlib.h use different guards +** against multiple definition of wchar_t. +*/ +#ifdef _BSD_WCHAR_T_DEFINED_ +#define _WCHAR_T +#endif +#endif /* __APPLE__ */ + +/* On FreeBSD, [n]curses.h and stdlib.h/wchar.h use different guards + against multiple definition of wchar_t and wint_t. */ +#if defined(__FreeBSD__) && defined(_XOPEN_SOURCE_EXTENDED) +# ifndef __wchar_t +# define __wchar_t +# endif +# ifndef __wint_t +# define __wint_t +# endif +#endif + +#if defined(WINDOW_HAS_FLAGS) && defined(__APPLE__) +/* gh-109617, gh-115383: we can rely on the default value for NCURSES_OPAQUE on + most platforms, but not on macOS. This is because, starting with Xcode 15, + Apple-provided ncurses.h comes from ncurses 6 (which defaults to opaque + structs) but can still be linked to older versions of ncurses dynamic + libraries which don't provide functions such as is_pad() to deal with opaque + structs. Setting NCURSES_OPAQUE to 0 is harmless in all ncurses releases to + this date (provided that a thread-safe implementation is not required), but + this might change in the future. This fix might become irrelevant once + support for macOS 13 or earlier is dropped. */ +#define NCURSES_OPAQUE 0 +#endif + +#if defined(HAVE_NCURSESW_NCURSES_H) +# include +#elif defined(HAVE_NCURSESW_CURSES_H) +# include +#elif defined(HAVE_NCURSES_NCURSES_H) +# include +#elif defined(HAVE_NCURSES_CURSES_H) +# include +#elif defined(HAVE_NCURSES_H) +# include +#elif defined(HAVE_CURSES_H) +# include +#endif + +#ifdef NCURSES_VERSION +/* configure was checking , but we will + use , which has some or all these features. */ +#if !defined(WINDOW_HAS_FLAGS) && \ + (NCURSES_VERSION_PATCH+0 < 20070303 || !(NCURSES_OPAQUE+0)) +/* the WINDOW flags field was always accessible in ncurses prior to 20070303; + after that, it depends on the value of NCURSES_OPAQUE. */ +#define WINDOW_HAS_FLAGS 1 +#endif +#if !defined(HAVE_CURSES_IS_PAD) && NCURSES_VERSION_PATCH+0 >= 20090906 +#define HAVE_CURSES_IS_PAD 1 +#endif +#ifndef MVWDELCH_IS_EXPRESSION +#define MVWDELCH_IS_EXPRESSION 1 +#endif +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#define PyCurses_API_pointers 4 + +/* Type declarations */ + +typedef struct { + PyObject_HEAD + WINDOW *win; + char *encoding; +} PyCursesWindowObject; + +#define PyCursesWindow_Check(v) Py_IS_TYPE((v), &PyCursesWindow_Type) + +#define PyCurses_CAPSULE_NAME "_curses._C_API" + + +#ifdef CURSES_MODULE +/* This section is used when compiling _cursesmodule.c */ + +#else +/* This section is used in modules that use the _cursesmodule API */ + +static void **PyCurses_API; + +#define PyCursesWindow_Type (*_PyType_CAST(PyCurses_API[0])) +#define PyCursesSetupTermCalled {if (! ((int (*)(void))PyCurses_API[1]) () ) return NULL;} +#define PyCursesInitialised {if (! ((int (*)(void))PyCurses_API[2]) () ) return NULL;} +#define PyCursesInitialisedColor {if (! ((int (*)(void))PyCurses_API[3]) () ) return NULL;} + +#define import_curses() \ + PyCurses_API = (void **)PyCapsule_Import(PyCurses_CAPSULE_NAME, 1); + +#endif + +/* general error messages */ +static const char catchall_ERR[] = "curses function returned ERR"; +static const char catchall_NULL[] = "curses function returned NULL"; + +#ifdef __cplusplus +} +#endif + +#endif /* !defined(Py_CURSES_H) */ + diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyatomic.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyatomic.h new file mode 100644 index 000000000..2ce2c81cf --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyatomic.h @@ -0,0 +1,16 @@ +#ifndef Py_ATOMIC_H +#define Py_ATOMIC_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_ATOMIC_H +# include "cpython/pyatomic.h" +# undef Py_CPYTHON_ATOMIC_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_ATOMIC_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pybuffer.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pybuffer.h new file mode 100644 index 000000000..ca1c6058d --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pybuffer.h @@ -0,0 +1,145 @@ +/* Public Py_buffer API */ + +#ifndef Py_BUFFER_H +#define Py_BUFFER_H +#ifdef __cplusplus +extern "C" { +#endif + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030b0000 + +/* === New Buffer API ============================================ + * Limited API and stable ABI since Python 3.11 + * + * Py_buffer struct layout and size is now part of the stable abi3. The + * struct layout and size must not be changed in any way, as it would + * break the ABI. + * + */ + +typedef struct { + 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 *); + +/* 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(const Py_buffer *view, const 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, const Py_buffer *view, + Py_ssize_t len, char order); + +PyAPI_FUNC(int) PyBuffer_FromContiguous(const Py_buffer *view, const 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); + +/* Maximum number of dimensions */ +#define PyBUF_MAX_NDIM 64 + +/* Flags for getting buffers. Keep these in sync with inspect.BufferFlags. */ +#define PyBUF_SIMPLE 0 +#define PyBUF_WRITABLE 0x0001 + +#ifndef Py_LIMITED_API +/* we used to include an E, backwards compatible alias */ +#define PyBUF_WRITEABLE PyBUF_WRITABLE +#endif + +#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 + +#endif /* !Py_LIMITED_API || Py_LIMITED_API >= 3.11 */ + +#ifdef __cplusplus +} +#endif +#endif /* Py_BUFFER_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pycapsule.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pycapsule.h new file mode 100644 index 000000000..666b9f867 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pycapsule.h @@ -0,0 +1,58 @@ + +/* Capsule objects let you wrap a C "void *" pointer in a Python + object. They're a way of passing data through the Python interpreter + without creating your own custom type. + + Capsules are used for communication between extension modules. + They provide a way for an extension module to export a C interface + to other extension modules, so that extension modules can use the + Python import mechanism to link to one another. + + For more information, please see "c-api/capsule.html" in the + documentation. +*/ + +#ifndef Py_CAPSULE_H +#define Py_CAPSULE_H +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_DATA(PyTypeObject) PyCapsule_Type; + +typedef void (*PyCapsule_Destructor)(PyObject *); + +#define PyCapsule_CheckExact(op) Py_IS_TYPE((op), &PyCapsule_Type) + + +PyAPI_FUNC(PyObject *) PyCapsule_New( + void *pointer, + const char *name, + PyCapsule_Destructor destructor); + +PyAPI_FUNC(void *) PyCapsule_GetPointer(PyObject *capsule, const char *name); + +PyAPI_FUNC(PyCapsule_Destructor) PyCapsule_GetDestructor(PyObject *capsule); + +PyAPI_FUNC(const char *) PyCapsule_GetName(PyObject *capsule); + +PyAPI_FUNC(void *) PyCapsule_GetContext(PyObject *capsule); + +PyAPI_FUNC(int) PyCapsule_IsValid(PyObject *capsule, const char *name); + +PyAPI_FUNC(int) PyCapsule_SetPointer(PyObject *capsule, void *pointer); + +PyAPI_FUNC(int) PyCapsule_SetDestructor(PyObject *capsule, PyCapsule_Destructor destructor); + +PyAPI_FUNC(int) PyCapsule_SetName(PyObject *capsule, const char *name); + +PyAPI_FUNC(int) PyCapsule_SetContext(PyObject *capsule, void *context); + +PyAPI_FUNC(void *) PyCapsule_Import( + const char *name, /* UTF-8 encoded string */ + int no_block); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_CAPSULE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyconfig-android-aarch64.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyconfig-android-aarch64.h new file mode 100644 index 000000000..5f0e5839e --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyconfig-android-aarch64.h @@ -0,0 +1,2015 @@ +/* pyconfig.h. Generated from pyconfig.h.in by configure. */ +/* pyconfig.h.in. Generated from configure.ac by autoheader. */ + + +#ifndef Py_PYCONFIG_H +#define Py_PYCONFIG_H + + +/* 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 */ + +/* 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 */ + +/* The normal alignment of `long', in bytes. */ +#define ALIGNOF_LONG 8 + +/* The normal alignment of `max_align_t', in bytes. */ +#define ALIGNOF_MAX_ALIGN_T 16 + +/* The normal alignment of `size_t', in bytes. */ +#define ALIGNOF_SIZE_T 8 + +/* Alternative SOABI used in debug build to load C extensions built in release + mode */ +/* #undef ALT_SOABI */ + +/* The Android API level. */ +#define ANDROID_API_LEVEL 21 + +/* Define if C doubles are 64-bit IEEE 754 binary format, stored in ARM + mixed-endian order (byte order 45670123) */ +/* #undef DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 */ + +/* Define if C doubles are 64-bit IEEE 754 binary format, stored with the most + significant byte first */ +/* #undef DOUBLE_IS_BIG_ENDIAN_IEEE754 */ + +/* Define if C doubles are 64-bit IEEE 754 binary format, stored with the + least significant byte first */ +#define DOUBLE_IS_LITTLE_ENDIAN_IEEE754 1 + +/* 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 if getpgrp() must be called as getpgrp(0). */ +/* #undef GETPGRP_HAVE_ARG */ + +/* Define if you have the 'accept' function. */ +#define HAVE_ACCEPT 1 + +/* Define to 1 if you have the `accept4' function. */ +#define HAVE_ACCEPT4 1 + +/* Define to 1 if you have the `acosh' function. */ +#define HAVE_ACOSH 1 + +/* struct addrinfo (netdb.h) */ +#define HAVE_ADDRINFO 1 + +/* Define to 1 if you have the `alarm' function. */ +#define HAVE_ALARM 1 + +/* Define if aligned memory access is required */ +/* #undef HAVE_ALIGNED_REQUIRED */ + +/* Define to 1 if you have the header file. */ +#define HAVE_ALLOCA_H 1 + +/* Define this if your time.h defines altzone. */ +/* #undef HAVE_ALTZONE */ + +/* Define to 1 if you have the `asinh' function. */ +#define HAVE_ASINH 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ASM_TYPES_H 1 + +/* Define to 1 if you have the `atanh' function. */ +#define HAVE_ATANH 1 + +/* Define if you have the 'bind' function. */ +#define HAVE_BIND 1 + +/* Define to 1 if you have the `bind_textdomain_codeset' function. */ +/* #undef HAVE_BIND_TEXTDOMAIN_CODESET */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_BLUETOOTH_BLUETOOTH_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_BLUETOOTH_H */ + +/* Define if mbstowcs(NULL, "text", 0) does not return the number of wide + chars that would be converted. */ +/* #undef HAVE_BROKEN_MBSTOWCS */ + +/* Define if nice() returns success/failure instead of the new priority. */ +/* #undef HAVE_BROKEN_NICE */ + +/* Define if the system reports an invalid PIPE_BUF value. */ +/* #undef HAVE_BROKEN_PIPE_BUF */ + +/* Define if poll() sets errno on invalid file descriptors. */ +/* #undef HAVE_BROKEN_POLL */ + +/* Define if the Posix semaphores do not work on your system */ +/* #undef HAVE_BROKEN_POSIX_SEMAPHORES */ + +/* Define if pthread_sigmask() does not work on your system. */ +/* #undef HAVE_BROKEN_PTHREAD_SIGMASK */ + +/* define to 1 if your sem_getvalue is broken. */ +#define HAVE_BROKEN_SEM_GETVALUE 1 + +/* Define if 'unsetenv' does not return an int. */ +/* #undef HAVE_BROKEN_UNSETENV */ + +/* Has builtin __atomic_load_n() and __atomic_store_n() functions */ +#define HAVE_BUILTIN_ATOMIC 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_BZLIB_H 1 + +/* Define to 1 if you have the 'chflags' function. */ +/* #undef HAVE_CHFLAGS */ + +/* Define to 1 if you have the `chmod' function. */ +#define HAVE_CHMOD 1 + +/* Define to 1 if you have the `chown' function. */ +#define HAVE_CHOWN 1 + +/* Define if you have the 'chroot' function. */ +/* #undef HAVE_CHROOT */ + +/* Define to 1 if you have the `clock' function. */ +#define HAVE_CLOCK 1 + +/* Define to 1 if you have the `clock_getres' function. */ +#define HAVE_CLOCK_GETRES 1 + +/* Define to 1 if you have the `clock_gettime' function. */ +#define HAVE_CLOCK_GETTIME 1 + +/* Define to 1 if you have the `clock_nanosleep' function. */ +/* #undef HAVE_CLOCK_NANOSLEEP */ + +/* Define to 1 if you have the `clock_settime' function. */ +/* #undef HAVE_CLOCK_SETTIME */ + +/* Define to 1 if the system has the type `clock_t'. */ +#define HAVE_CLOCK_T 1 + +/* Define to 1 if you have the `closefrom' function. */ +/* #undef HAVE_CLOSEFROM */ + +/* Define to 1 if you have the `close_range' function. */ +/* #undef HAVE_CLOSE_RANGE */ + +/* Define if the C compiler supports computed gotos. */ +/* #undef HAVE_COMPUTED_GOTOS */ + +/* Define to 1 if you have the `confstr' function. */ +/* #undef HAVE_CONFSTR */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_CONIO_H */ + +/* Define if you have the 'connect' function. */ +#define HAVE_CONNECT 1 + +/* Define to 1 if you have the `copy_file_range' function. */ +/* #undef HAVE_COPY_FILE_RANGE */ + +/* Define to 1 if you have the `ctermid' function. */ +/* #undef HAVE_CTERMID */ + +/* Define if you have the 'ctermid_r' function. */ +/* #undef HAVE_CTERMID_R */ + +/* Define if you have the 'filter' function. */ +/* #undef HAVE_CURSES_FILTER */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_CURSES_H */ + +/* Define if you have the 'has_key' function. */ +/* #undef HAVE_CURSES_HAS_KEY */ + +/* Define if you have the 'immedok' function. */ +/* #undef HAVE_CURSES_IMMEDOK */ + +/* Define if you have the 'is_pad' function. */ +/* #undef HAVE_CURSES_IS_PAD */ + +/* Define if you have the 'is_term_resized' function. */ +/* #undef HAVE_CURSES_IS_TERM_RESIZED */ + +/* Define if you have the 'resizeterm' function. */ +/* #undef HAVE_CURSES_RESIZETERM */ + +/* Define if you have the 'resize_term' function. */ +/* #undef HAVE_CURSES_RESIZE_TERM */ + +/* Define if you have the 'syncok' function. */ +/* #undef HAVE_CURSES_SYNCOK */ + +/* Define if you have the 'typeahead' function. */ +/* #undef HAVE_CURSES_TYPEAHEAD */ + +/* Define if you have the 'use_env' function. */ +/* #undef HAVE_CURSES_USE_ENV */ + +/* Define if you have the 'wchgat' function. */ +/* #undef HAVE_CURSES_WCHGAT */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_DB_H */ + +/* Define to 1 if you have the declaration of `RTLD_DEEPBIND', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_DEEPBIND 0 + +/* Define to 1 if you have the declaration of `RTLD_GLOBAL', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_GLOBAL 1 + +/* Define to 1 if you have the declaration of `RTLD_LAZY', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_LAZY 1 + +/* Define to 1 if you have the declaration of `RTLD_LOCAL', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_LOCAL 1 + +/* Define to 1 if you have the declaration of `RTLD_MEMBER', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_MEMBER 0 + +/* Define to 1 if you have the declaration of `RTLD_NODELETE', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_NODELETE 1 + +/* Define to 1 if you have the declaration of `RTLD_NOLOAD', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_NOLOAD 1 + +/* Define to 1 if you have the declaration of `RTLD_NOW', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_NOW 1 + +/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. + */ +/* #undef HAVE_DECL_TZNAME */ + +/* Define to 1 if you have the device macros. */ +#define HAVE_DEVICE_MACROS 1 + +/* Define to 1 if you have the /dev/ptc device file. */ +/* #undef HAVE_DEV_PTC */ + +/* Define to 1 if you have the /dev/ptmx device file. */ +/* #undef HAVE_DEV_PTMX */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_DIRECT_H */ + +/* Define to 1 if the dirent structure has a d_type field */ +#define HAVE_DIRENT_D_TYPE 1 + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +#define HAVE_DIRENT_H 1 + +/* Define if you have the 'dirfd' function or macro. */ +#define HAVE_DIRFD 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if you have the `dlopen' function. */ +#define HAVE_DLOPEN 1 + +/* Define to 1 if you have the `dup' function. */ +#define HAVE_DUP 1 + +/* Define to 1 if you have the `dup2' function. */ +#define HAVE_DUP2 1 + +/* Define to 1 if you have the `dup3' function. */ +#define HAVE_DUP3 1 + +/* Define if you have the '_dyld_shared_cache_contains_path' function. */ +/* #undef HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH */ + +/* Defined when any dynamic module loading is enabled. */ +#define HAVE_DYNAMIC_LOADING 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_EDITLINE_READLINE_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_ENDIAN_H 1 + +/* Define if you have the 'epoll_create' function. */ +#define HAVE_EPOLL 1 + +/* Define if you have the 'epoll_create1' function. */ +#define HAVE_EPOLL_CREATE1 1 + +/* Define to 1 if you have the `erf' function. */ +#define HAVE_ERF 1 + +/* Define to 1 if you have the `erfc' function. */ +#define HAVE_ERFC 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ERRNO_H 1 + +/* Define if you have the 'eventfd' function. */ +#define HAVE_EVENTFD 1 + +/* 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 `expm1' function. */ +#define HAVE_EXPM1 1 + +/* Define to 1 if you have the `faccessat' function. */ +#define HAVE_FACCESSAT 1 + +/* Define if you have the 'fchdir' function. */ +#define HAVE_FCHDIR 1 + +/* Define to 1 if you have the `fchmod' function. */ +#define HAVE_FCHMOD 1 + +/* Define to 1 if you have the `fchmodat' function. */ +/* #undef HAVE_FCHMODAT */ + +/* Define to 1 if you have the `fchown' function. */ +#define HAVE_FCHOWN 1 + +/* Define to 1 if you have the `fchownat' function. */ +#define HAVE_FCHOWNAT 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_FCNTL_H 1 + +/* Define if you have the 'fdatasync' function. */ +#define HAVE_FDATASYNC 1 + +/* 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 `fexecve' function. */ +/* #undef HAVE_FEXECVE */ + +/* Define if you have the 'ffi_closure_alloc' function. */ +#define HAVE_FFI_CLOSURE_ALLOC 1 + +/* Define if you have the 'ffi_prep_cif_var' function. */ +#define HAVE_FFI_PREP_CIF_VAR 1 + +/* Define if you have the 'ffi_prep_closure_loc' function. */ +#define HAVE_FFI_PREP_CLOSURE_LOC 1 + +/* Define to 1 if you have the `flock' function. */ +#define HAVE_FLOCK 1 + +/* Define to 1 if you have the `fork' function. */ +#define HAVE_FORK 1 + +/* Define to 1 if you have the `fork1' function. */ +/* #undef HAVE_FORK1 */ + +/* Define to 1 if you have the `forkpty' function. */ +/* #undef HAVE_FORKPTY */ + +/* Define to 1 if you have the `fpathconf' function. */ +#define HAVE_FPATHCONF 1 + +/* Define to 1 if you have the `fseek64' function. */ +/* #undef HAVE_FSEEK64 */ + +/* Define to 1 if you have the `fseeko' function. */ +#define HAVE_FSEEKO 1 + +/* Define to 1 if you have the `fstatat' function. */ +#define HAVE_FSTATAT 1 + +/* Define to 1 if you have the `fstatvfs' function. */ +#define HAVE_FSTATVFS 1 + +/* Define if you have the 'fsync' function. */ +#define HAVE_FSYNC 1 + +/* Define to 1 if you have the `ftell64' function. */ +/* #undef HAVE_FTELL64 */ + +/* Define to 1 if you have the `ftello' function. */ +#define HAVE_FTELLO 1 + +/* Define to 1 if you have the `ftime' function. */ +/* #undef HAVE_FTIME */ + +/* Define to 1 if you have the `ftruncate' function. */ +#define HAVE_FTRUNCATE 1 + +/* Define to 1 if you have the `futimens' function. */ +#define HAVE_FUTIMENS 1 + +/* Define to 1 if you have the `futimes' function. */ +/* #undef HAVE_FUTIMES */ + +/* Define to 1 if you have the `futimesat' function. */ +/* #undef HAVE_FUTIMESAT */ + +/* Define to 1 if you have the `gai_strerror' function. */ +#define HAVE_GAI_STRERROR 1 + +/* Define if we can use gcc inline assembler to get and set mc68881 fpcr */ +/* #undef HAVE_GCC_ASM_FOR_MC68881 */ + +/* Define if we can use x64 gcc inline assembler */ +/* #undef HAVE_GCC_ASM_FOR_X64 */ + +/* Define if we can use gcc inline assembler to get and set x87 control word + */ +/* #undef HAVE_GCC_ASM_FOR_X87 */ + +/* Define if your compiler provides __uint128_t */ +#define HAVE_GCC_UINT128_T 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_GDBM_DASH_NDBM_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_GDBM_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_GDBM_NDBM_H */ + +/* Define if you have the getaddrinfo function. */ +#define HAVE_GETADDRINFO 1 + +/* Define this if you have flockfile(), getc_unlocked(), and funlockfile() */ +#define HAVE_GETC_UNLOCKED 1 + +/* Define to 1 if you have the `getegid' function. */ +#define HAVE_GETEGID 1 + +/* Define to 1 if you have the `getentropy' function. */ +/* #undef HAVE_GETENTROPY */ + +/* Define to 1 if you have the `geteuid' function. */ +#define HAVE_GETEUID 1 + +/* Define to 1 if you have the `getgid' function. */ +#define HAVE_GETGID 1 + +/* Define to 1 if you have the `getgrent' function. */ +/* #undef HAVE_GETGRENT */ + +/* Define to 1 if you have the `getgrgid' function. */ +#define HAVE_GETGRGID 1 + +/* Define to 1 if you have the `getgrgid_r' function. */ +/* #undef HAVE_GETGRGID_R */ + +/* Define to 1 if you have the `getgrnam_r' function. */ +/* #undef HAVE_GETGRNAM_R */ + +/* Define to 1 if you have the `getgrouplist' function. */ +#define HAVE_GETGROUPLIST 1 + +/* Define to 1 if you have the `getgroups' function. */ +#define HAVE_GETGROUPS 1 + +/* Define if you have the 'gethostbyaddr' function. */ +#define HAVE_GETHOSTBYADDR 1 + +/* Define to 1 if you have the `gethostbyname' function. */ +#define HAVE_GETHOSTBYNAME 1 + +/* Define this if you have some version of gethostbyname_r() */ +#define HAVE_GETHOSTBYNAME_R 1 + +/* Define this if you have the 3-arg version of gethostbyname_r(). */ +/* #undef HAVE_GETHOSTBYNAME_R_3_ARG */ + +/* Define this if you have the 5-arg version of gethostbyname_r(). */ +/* #undef HAVE_GETHOSTBYNAME_R_5_ARG */ + +/* Define this if you have the 6-arg version of gethostbyname_r(). */ +#define HAVE_GETHOSTBYNAME_R_6_ARG 1 + +/* Define to 1 if you have the `gethostname' function. */ +#define HAVE_GETHOSTNAME 1 + +/* Define to 1 if you have the `getitimer' function. */ +#define HAVE_GETITIMER 1 + +/* Define to 1 if you have the `getloadavg' function. */ +/* #undef HAVE_GETLOADAVG */ + +/* Define to 1 if you have the `getlogin' function. */ +#define HAVE_GETLOGIN 1 + +/* Define to 1 if you have the `getnameinfo' function. */ +#define HAVE_GETNAMEINFO 1 + +/* Define if you have the 'getpagesize' function. */ +#define HAVE_GETPAGESIZE 1 + +/* Define if you have the 'getpeername' function. */ +#define HAVE_GETPEERNAME 1 + +/* Define to 1 if you have the `getpgid' function. */ +#define HAVE_GETPGID 1 + +/* Define to 1 if you have the `getpgrp' function. */ +#define HAVE_GETPGRP 1 + +/* Define to 1 if you have the `getpid' function. */ +#define HAVE_GETPID 1 + +/* Define to 1 if you have the `getppid' function. */ +#define HAVE_GETPPID 1 + +/* Define to 1 if you have the `getpriority' function. */ +#define HAVE_GETPRIORITY 1 + +/* Define if you have the 'getprotobyname' function. */ +#define HAVE_GETPROTOBYNAME 1 + +/* Define to 1 if you have the `getpwent' function. */ +/* #undef HAVE_GETPWENT */ + +/* Define to 1 if you have the `getpwnam_r' function. */ +#define HAVE_GETPWNAM_R 1 + +/* Define to 1 if you have the `getpwuid' function. */ +#define HAVE_GETPWUID 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 */ + +/* Define to 1 if the Linux getrandom() syscall is available */ +#define HAVE_GETRANDOM_SYSCALL 1 + +/* Define to 1 if you have the `getresgid' function. */ +#define HAVE_GETRESGID 1 + +/* Define to 1 if you have the `getresuid' function. */ +#define HAVE_GETRESUID 1 + +/* Define to 1 if you have the `getrusage' function. */ +#define HAVE_GETRUSAGE 1 + +/* Define if you have the 'getservbyname' function. */ +#define HAVE_GETSERVBYNAME 1 + +/* Define if you have the 'getservbyport' function. */ +#define HAVE_GETSERVBYPORT 1 + +/* Define to 1 if you have the `getsid' function. */ +#define HAVE_GETSID 1 + +/* Define if you have the 'getsockname' function. */ +#define HAVE_GETSOCKNAME 1 + +/* Define to 1 if you have the `getspent' function. */ +/* #undef HAVE_GETSPENT */ + +/* Define to 1 if you have the `getspnam' function. */ +/* #undef HAVE_GETSPNAM */ + +/* Define to 1 if you have the `getuid' function. */ +#define HAVE_GETUID 1 + +/* Define to 1 if you have the `getwd' function. */ +/* #undef HAVE_GETWD */ + +/* Define if glibc has incorrect _FORTIFY_SOURCE wrappers for memmove and + bcopy. */ +/* #undef HAVE_GLIBC_MEMMOVE_BUG */ + +/* Define to 1 if you have the `grantpt' function. */ +#define HAVE_GRANTPT 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_GRP_H 1 + +/* Define if you have the 'hstrerror' function. */ +#define HAVE_HSTRERROR 1 + +/* Define this if you have le64toh() */ +#define HAVE_HTOLE64 1 + +/* Define to 1 if you have the `if_nameindex' function. */ +/* #undef HAVE_IF_NAMEINDEX */ + +/* Define if you have the 'inet_aton' function. */ +#define HAVE_INET_ATON 1 + +/* Define if you have the 'inet_ntoa' function. */ +#define HAVE_INET_NTOA 1 + +/* Define if you have the 'inet_pton' function. */ +#define HAVE_INET_PTON 1 + +/* Define to 1 if you have the `initgroups' function. */ +/* #undef HAVE_INITGROUPS */ + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_IO_H */ + +/* Define if gcc has the ipa-pure-const bug. */ +/* #undef HAVE_IPA_PURE_CONST_BUG */ + +/* Define to 1 if you have the `kill' function. */ +#define HAVE_KILL 1 + +/* Define to 1 if you have the `killpg' function. */ +#define HAVE_KILLPG 1 + +/* Define if you have the 'kqueue' function. */ +/* #undef HAVE_KQUEUE */ + +/* Define to 1 if you have the header file. */ +#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.) */ +/* #undef HAVE_LARGEFILE_SUPPORT */ + +/* Define to 1 if you have the 'lchflags' function. */ +/* #undef HAVE_LCHFLAGS */ + +/* Define to 1 if you have the `lchmod' function. */ +/* #undef HAVE_LCHMOD */ + +/* Define to 1 if you have the `lchown' function. */ +#define HAVE_LCHOWN 1 + +/* Define to 1 if you want to build _blake2 module with libb2 */ +/* #undef HAVE_LIBB2 */ + +/* Define to 1 if you have the `db' library (-ldb). */ +/* #undef HAVE_LIBDB */ + +/* Define to 1 if you have the `dl' library (-ldl). */ +#define HAVE_LIBDL 1 + +/* Define to 1 if you have the `dld' library (-ldld). */ +/* #undef HAVE_LIBDLD */ + +/* Define to 1 if you have the `ieee' library (-lieee). */ +/* #undef HAVE_LIBIEEE */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LIBINTL_H */ + +/* Define to 1 if you have the `resolv' library (-lresolv). */ +/* #undef HAVE_LIBRESOLV */ + +/* Define to 1 if you have the `sendfile' library (-lsendfile). */ +/* #undef HAVE_LIBSENDFILE */ + +/* Define to 1 if you have the `sqlite3' library (-lsqlite3). */ +#define HAVE_LIBSQLITE3 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LIBUTIL_H */ + +/* Define if you have the 'link' function. */ +#define HAVE_LINK 1 + +/* Define to 1 if you have the `linkat' function. */ +#define HAVE_LINKAT 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_AUXVEC_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_CAN_BCM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_CAN_H 1 + +/* Define to 1 if you have the 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 to 1 if you have the 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 header file. */ +#define HAVE_LINUX_FS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_LIMITS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_MEMFD_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_NETLINK_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_QRTR_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_RANDOM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_SOUNDCARD_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_TIPC_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_VM_SOCKETS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_WAIT_H 1 + +/* Define if you have the 'listen' function. */ +#define HAVE_LISTEN 1 + +/* Define to 1 if you have the `lockf' function. */ +/* #undef HAVE_LOCKF */ + +/* Define to 1 if you have the `log1p' function. */ +#define HAVE_LOG1P 1 + +/* Define to 1 if you have the `log2' function. */ +#define HAVE_LOG2 1 + +/* Define to 1 if you have the `login_tty' function. */ +/* #undef HAVE_LOGIN_TTY */ + +/* 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. */ +#define HAVE_LSTAT 1 + +/* Define to 1 if you have the `lutimes' function. */ +/* #undef HAVE_LUTIMES */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LZMA_H */ + +/* 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 to 1 if you have the `memrchr' function. */ +#define HAVE_MEMRCHR 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_MINIX_CONFIG_H */ + +/* Define to 1 if you have the `mkdirat' function. */ +#define HAVE_MKDIRAT 1 + +/* Define to 1 if you have the `mkfifo' function. */ +#define HAVE_MKFIFO 1 + +/* Define to 1 if you have the `mkfifoat' function. */ +/* #undef HAVE_MKFIFOAT */ + +/* Define to 1 if you have the `mknod' function. */ +#define HAVE_MKNOD 1 + +/* Define to 1 if you have the `mknodat' function. */ +#define HAVE_MKNODAT 1 + +/* Define to 1 if you have the `mktime' function. */ +#define HAVE_MKTIME 1 + +/* Define to 1 if you have the `mmap' function. */ +#define HAVE_MMAP 1 + +/* Define to 1 if you have the `mremap' function. */ +#define HAVE_MREMAP 1 + +/* Define to 1 if you have the `nanosleep' function. */ +#define HAVE_NANOSLEEP 1 + +/* Define if you have the 'ncurses' library */ +/* #undef HAVE_NCURSES */ + +/* Define if you have the 'ncursesw' library */ +/* #undef HAVE_NCURSESW */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSESW_CURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSESW_NCURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSESW_PANEL_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSES_CURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSES_NCURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSES_PANEL_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NDBM_H */ + +/* Define to 1 if you have the header file, and it defines `DIR'. */ +/* #undef HAVE_NDIR_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NETCAN_CAN_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_NETDB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_NETINET_IN_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NETLINK_NETLINK_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_NETPACKET_PACKET_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_NET_ETHERNET_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_NET_IF_H 1 + +/* Define to 1 if you have the `nice' function. */ +#define HAVE_NICE 1 + +/* Define if the internal form of wchar_t in non-Unicode locales is not + Unicode. */ +/* #undef HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION */ + +/* Define to 1 if you have the `openat' function. */ +#define HAVE_OPENAT 1 + +/* Define to 1 if you have the `opendir' function. */ +#define HAVE_OPENDIR 1 + +/* Define to 1 if you have the `openpty' function. */ +/* #undef HAVE_OPENPTY */ + +/* Define if you have the 'panel' library */ +/* #undef HAVE_PANEL */ + +/* Define if you have the 'panelw' library */ +/* #undef HAVE_PANELW */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_PANEL_H */ + +/* Define to 1 if you have the `pathconf' function. */ +#define HAVE_PATHCONF 1 + +/* Define to 1 if you have the `pause' function. */ +#define HAVE_PAUSE 1 + +/* Define to 1 if you have the `pipe' function. */ +#define HAVE_PIPE 1 + +/* Define to 1 if you have the `pipe2' function. */ +#define HAVE_PIPE2 1 + +/* Define to 1 if you have the `plock' function. */ +/* #undef HAVE_PLOCK */ + +/* Define to 1 if you have the `poll' function. */ +#define HAVE_POLL 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_POLL_H 1 + +/* Define to 1 if you have the `posix_fadvise' function. */ +#define HAVE_POSIX_FADVISE 1 + +/* Define to 1 if you have the `posix_fallocate' function. */ +#define HAVE_POSIX_FALLOCATE 1 + +/* Define to 1 if you have the `posix_openpt' function. */ +#define HAVE_POSIX_OPENPT 1 + +/* Define to 1 if you have the `posix_spawn' function. */ +/* #undef HAVE_POSIX_SPAWN */ + +/* Define to 1 if you have the `posix_spawnp' function. */ +/* #undef HAVE_POSIX_SPAWNP */ + +/* Define to 1 if you have the `posix_spawn_file_actions_addclosefrom_np' + function. */ +/* #undef HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSEFROM_NP */ + +/* Define to 1 if you have the `pread' function. */ +#define HAVE_PREAD 1 + +/* Define to 1 if you have the `preadv' function. */ +/* #undef HAVE_PREADV */ + +/* Define to 1 if you have the `preadv2' function. */ +/* #undef HAVE_PREADV2 */ + +/* Define if you have the 'prlimit' function. */ +#define HAVE_PRLIMIT 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_PROCESS_H */ + +/* Define to 1 if you have the `process_vm_readv' function. */ +/* #undef HAVE_PROCESS_VM_READV */ + +/* 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_cond_timedwait_relative_np' function. + */ +/* #undef HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE_NP */ + +/* Defined for Solaris 2.6 bug in pthread header. */ +/* #undef HAVE_PTHREAD_DESTRUCTOR */ + +/* Define to 1 if you have the `pthread_getcpuclockid' function. */ +#define HAVE_PTHREAD_GETCPUCLOCKID 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_PTHREAD_H 1 + +/* Define to 1 if you have the `pthread_init' function. */ +/* #undef HAVE_PTHREAD_INIT */ + +/* Define to 1 if you have the `pthread_kill' function. */ +#define HAVE_PTHREAD_KILL 1 + +/* Define to 1 if you have the `pthread_sigmask' function. */ +#define HAVE_PTHREAD_SIGMASK 1 + +/* Define if platform requires stubbed pthreads support */ +/* #undef HAVE_PTHREAD_STUBS */ + +/* Define to 1 if you have the `ptsname' function. */ +#define HAVE_PTSNAME 1 + +/* Define to 1 if you have the `ptsname_r' function. */ +#define HAVE_PTSNAME_R 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_PTY_H 1 + +/* Define to 1 if you have the `pwrite' function. */ +#define HAVE_PWRITE 1 + +/* Define to 1 if you have the `pwritev' function. */ +/* #undef HAVE_PWRITEV */ + +/* Define to 1 if you have the `pwritev2' function. */ +/* #undef HAVE_PWRITEV2 */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_READLINE_READLINE_H */ + +/* Define to 1 if you have the `readlink' function. */ +#define HAVE_READLINK 1 + +/* Define to 1 if you have the `readlinkat' function. */ +#define HAVE_READLINKAT 1 + +/* Define to 1 if you have the `readv' function. */ +#define HAVE_READV 1 + +/* Define to 1 if you have the `realpath' function. */ +#define HAVE_REALPATH 1 + +/* Define if you have the 'recvfrom' function. */ +#define HAVE_RECVFROM 1 + +/* Define to 1 if you have the `renameat' function. */ +#define HAVE_RENAMEAT 1 + +/* Define if readline supports append_history */ +/* #undef HAVE_RL_APPEND_HISTORY */ + +/* Define if you can turn off readline's signal handling. */ +/* #undef HAVE_RL_CATCH_SIGNAL */ + +/* Define to 1 if the system has the type `rl_compdisp_func_t'. */ +/* #undef HAVE_RL_COMPDISP_FUNC_T */ + +/* Define if you have readline 2.2 */ +/* #undef HAVE_RL_COMPLETION_APPEND_CHARACTER */ + +/* Define if you have readline 4.0 */ +/* #undef HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK */ + +/* Define if you have readline 4.2 */ +/* #undef HAVE_RL_COMPLETION_MATCHES */ + +/* Define if you have rl_completion_suppress_append */ +/* #undef HAVE_RL_COMPLETION_SUPPRESS_APPEND */ + +/* Define if you have readline 4.0 */ +/* #undef HAVE_RL_PRE_INPUT_HOOK */ + +/* Define if you have readline 4.0 */ +/* #undef HAVE_RL_RESIZE_TERMINAL */ + +/* 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 + +/* Define to 1 if you have the header file. */ +#define HAVE_SCHED_H 1 + +/* Define to 1 if you have the `sched_rr_get_interval' function. */ +#define HAVE_SCHED_RR_GET_INTERVAL 1 + +/* Define to 1 if you have the `sched_setaffinity' function. */ +#define HAVE_SCHED_SETAFFINITY 1 + +/* Define to 1 if you have the `sched_setparam' function. */ +#define HAVE_SCHED_SETPARAM 1 + +/* Define to 1 if you have the `sched_setscheduler' function. */ +#define HAVE_SCHED_SETSCHEDULER 1 + +/* Define to 1 if you have the `sem_clockwait' function. */ +/* #undef HAVE_SEM_CLOCKWAIT */ + +/* Define to 1 if you have the `sem_getvalue' function. */ +#define HAVE_SEM_GETVALUE 1 + +/* Define to 1 if you have the `sem_open' function. */ +/* #undef HAVE_SEM_OPEN */ + +/* Define to 1 if you have the `sem_timedwait' function. */ +#define HAVE_SEM_TIMEDWAIT 1 + +/* Define to 1 if you have the `sem_unlink' function. */ +/* #undef HAVE_SEM_UNLINK */ + +/* Define to 1 if you have the `sendfile' function. */ +#define HAVE_SENDFILE 1 + +/* Define if you have the 'sendto' function. */ +#define HAVE_SENDTO 1 + +/* Define to 1 if you have the `setegid' function. */ +/* #undef HAVE_SETEGID */ + +/* Define to 1 if you have the `seteuid' function. */ +/* #undef HAVE_SETEUID */ + +/* Define to 1 if you have the `setgid' function. */ +/* #undef HAVE_SETGID */ + +/* Define if you have the 'setgroups' function. */ +#define HAVE_SETGROUPS 1 + +/* Define to 1 if you have the `sethostname' function. */ +/* #undef HAVE_SETHOSTNAME */ + +/* Define to 1 if you have the `setitimer' function. */ +#define HAVE_SETITIMER 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SETJMP_H 1 + +/* Define to 1 if you have the `setlocale' function. */ +#define HAVE_SETLOCALE 1 + +/* Define to 1 if you have the `setns' function. */ +#define HAVE_SETNS 1 + +/* Define to 1 if you have the `setpgid' function. */ +#define HAVE_SETPGID 1 + +/* Define to 1 if you have the `setpgrp' function. */ +#define HAVE_SETPGRP 1 + +/* Define to 1 if you have the `setpriority' function. */ +#define HAVE_SETPRIORITY 1 + +/* Define to 1 if you have the `setregid' function. */ +/* #undef HAVE_SETREGID */ + +/* Define to 1 if you have the `setresgid' function. */ +/* #undef HAVE_SETRESGID */ + +/* Define to 1 if you have the `setresuid' function. */ +/* #undef HAVE_SETRESUID */ + +/* Define to 1 if you have the `setreuid' function. */ +/* #undef HAVE_SETREUID */ + +/* Define to 1 if you have the `setsid' function. */ +#define HAVE_SETSID 1 + +/* Define if you have the 'setsockopt' function. */ +#define HAVE_SETSOCKOPT 1 + +/* Define to 1 if you have the `setuid' function. */ +/* #undef HAVE_SETUID */ + +/* Define to 1 if you have the `setvbuf' function. */ +#define HAVE_SETVBUF 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SHADOW_H */ + +/* Define to 1 if you have the `shm_open' function. */ +/* #undef HAVE_SHM_OPEN */ + +/* Define to 1 if you have the `shm_unlink' function. */ +/* #undef HAVE_SHM_UNLINK */ + +/* Define to 1 if you have the `shutdown' function. */ +#define HAVE_SHUTDOWN 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 `si_band' is a member of `siginfo_t'. */ +#define HAVE_SIGINFO_T_SI_BAND 1 + +/* Define to 1 if you have the `siginterrupt' function. */ +#define HAVE_SIGINTERRUPT 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SIGNAL_H 1 + +/* Define to 1 if you have the `sigpending' function. */ +#define HAVE_SIGPENDING 1 + +/* Define to 1 if you have the `sigrelse' function. */ +/* #undef HAVE_SIGRELSE */ + +/* Define to 1 if you have the `sigtimedwait' function. */ +/* #undef HAVE_SIGTIMEDWAIT */ + +/* Define to 1 if you have the `sigwait' function. */ +#define HAVE_SIGWAIT 1 + +/* Define to 1 if you have the `sigwaitinfo' function. */ +/* #undef HAVE_SIGWAITINFO */ + +/* Define to 1 if you have the `snprintf' function. */ +#define HAVE_SNPRINTF 1 + +/* struct sockaddr_alg (linux/if_alg.h) */ +#define HAVE_SOCKADDR_ALG 1 + +/* Define if sockaddr has sa_len member */ +/* #undef HAVE_SOCKADDR_SA_LEN */ + +/* struct sockaddr_storage (sys/socket.h) */ +#define HAVE_SOCKADDR_STORAGE 1 + +/* Define if you have the 'socket' function. */ +#define HAVE_SOCKET 1 + +/* Define if you have the 'socketpair' function. */ +#define HAVE_SOCKETPAIR 1 + +/* Define to 1 if the system has the type `socklen_t'. */ +#define HAVE_SOCKLEN_T 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SPAWN_H 1 + +/* Define to 1 if you have the `splice' function. */ +#define HAVE_SPLICE 1 + +/* Define to 1 if the system has the type `ssize_t'. */ +#define HAVE_SSIZE_T 1 + +/* Define to 1 if you have the `statvfs' function. */ +#define HAVE_STATVFS 1 + +/* Define if you have struct stat.st_mtim.tv_nsec */ +#define HAVE_STAT_TV_NSEC 1 + +/* Define if you have struct stat.st_mtimensec */ +/* #undef HAVE_STAT_TV_NSEC2 */ + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDIO_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Has stdatomic.h with atomic_int and atomic_uintptr_t */ +#define HAVE_STD_ATOMIC 1 + +/* Define to 1 if you have the `strftime' function. */ +#define HAVE_STRFTIME 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `strlcpy' function. */ +#define HAVE_STRLCPY 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_STROPTS_H */ + +/* 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 + +/* Define to 1 if `pw_passwd' is a member of `struct passwd'. */ +#define HAVE_STRUCT_PASSWD_PW_PASSWD 1 + +/* Define to 1 if `st_birthtime' is a member of `struct stat'. */ +/* #undef HAVE_STRUCT_STAT_ST_BIRTHTIME */ + +/* Define to 1 if `st_blksize' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_BLKSIZE 1 + +/* Define to 1 if `st_blocks' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_BLOCKS 1 + +/* Define to 1 if `st_flags' is a member of `struct stat'. */ +/* #undef HAVE_STRUCT_STAT_ST_FLAGS */ + +/* Define to 1 if `st_gen' is a member of `struct stat'. */ +/* #undef HAVE_STRUCT_STAT_ST_GEN */ + +/* Define to 1 if `st_rdev' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_RDEV 1 + +/* Define to 1 if `tm_zone' is a member of `struct tm'. */ +#define HAVE_STRUCT_TM_TM_ZONE 1 + +/* Define if you have the 'symlink' function. */ +#define HAVE_SYMLINK 1 + +/* Define to 1 if you have the `symlinkat' function. */ +#define HAVE_SYMLINKAT 1 + +/* Define to 1 if you have the `sync' function. */ +#define HAVE_SYNC 1 + +/* Define to 1 if you have the `sysconf' function. */ +#define HAVE_SYSCONF 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYSEXITS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYSLOG_H 1 + +/* Define to 1 if you have the `system' function. */ +#define HAVE_SYSTEM 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_AUDIOIO_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_AUXV_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_BSDTTY_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_DEVPOLL_H */ + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +/* #undef HAVE_SYS_DIR_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_ENDIAN_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_EPOLL_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_EVENTFD_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_EVENT_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_FILE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_IOCTL_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_KERN_CONTROL_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_LOADAVG_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_LOCK_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_MEMFD_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_MKDEV_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_MMAN_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_MODEM_H */ + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +/* #undef HAVE_SYS_NDIR_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_POLL_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_RANDOM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_RESOURCE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SELECT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SENDFILE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SOCKET_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SOUNDCARD_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STATVFS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SYSCALL_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SYSMACROS_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SYS_DOMAIN_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_TERMIO_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIMERFD_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIMES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_UIO_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_UN_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_UTSNAME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_WAIT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_XATTR_H 1 + +/* Define to 1 if you have the `tcgetpgrp' function. */ +#define HAVE_TCGETPGRP 1 + +/* Define to 1 if you have the `tcsetpgrp' function. */ +#define HAVE_TCSETPGRP 1 + +/* Define to 1 if you have the `tempnam' function. */ +#define HAVE_TEMPNAM 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_TERMIOS_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_TERM_H */ + +/* Define to 1 if you have the `timegm' function. */ +#define HAVE_TIMEGM 1 + +/* Define if you have the 'timerfd_create' function. */ +#define HAVE_TIMERFD_CREATE 1 + +/* Define to 1 if you have the `times' function. */ +#define HAVE_TIMES 1 + +/* Define to 1 if you have the `tmpfile' function. */ +#define HAVE_TMPFILE 1 + +/* Define to 1 if you have the `tmpnam' function. */ +#define HAVE_TMPNAM 1 + +/* Define to 1 if you have the `tmpnam_r' function. */ +/* #undef HAVE_TMPNAM_R */ + +/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use + `HAVE_STRUCT_TM_TM_ZONE' instead. */ +#define HAVE_TM_ZONE 1 + +/* Define to 1 if you have the `truncate' function. */ +#define HAVE_TRUNCATE 1 + +/* Define to 1 if you have the `ttyname' function. */ +#define HAVE_TTYNAME 1 + +/* Define to 1 if you don't have `tm_zone' but do have the external array + `tzname'. */ +/* #undef HAVE_TZNAME */ + +/* Define to 1 if you have the `umask' function. */ +#define HAVE_UMASK 1 + +/* Define to 1 if you have the `uname' function. */ +#define HAVE_UNAME 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to 1 if you have the `unlinkat' function. */ +#define HAVE_UNLINKAT 1 + +/* Define to 1 if you have the `unlockpt' function. */ +#define HAVE_UNLOCKPT 1 + +/* Define to 1 if you have the `unshare' function. */ +#define HAVE_UNSHARE 1 + +/* Define if you have a useable wchar_t type defined in wchar.h; useable means + wchar_t must be an unsigned type with at least 16 bits. (see + Include/unicodeobject.h). */ +/* #undef HAVE_USABLE_WCHAR_T */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_UTIL_H */ + +/* Define to 1 if you have the `utimensat' function. */ +#define HAVE_UTIMENSAT 1 + +/* Define to 1 if you have the `utimes' function. */ +#define HAVE_UTIMES 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UTIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UTMP_H 1 + +/* Define to 1 if you have the `uuid_create' function. */ +/* #undef HAVE_UUID_CREATE */ + +/* Define to 1 if you have the `uuid_enc_be' function. */ +/* #undef HAVE_UUID_ENC_BE */ + +/* Define if uuid_generate_time_safe() exists. */ +/* #undef HAVE_UUID_GENERATE_TIME_SAFE */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_UUID_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_UUID_UUID_H */ + +/* Define to 1 if you have the `vfork' function. */ +#define HAVE_VFORK 1 + +/* Define to 1 if you have the `wait' function. */ +#define HAVE_WAIT 1 + +/* Define to 1 if you have the `wait3' function. */ +/* #undef HAVE_WAIT3 */ + +/* Define to 1 if you have the `wait4' function. */ +#define HAVE_WAIT4 1 + +/* Define to 1 if you have the `waitid' function. */ +#define HAVE_WAITID 1 + +/* Define to 1 if you have the `waitpid' function. */ +#define HAVE_WAITPID 1 + +/* Define if the compiler provides a wchar.h header file. */ +#define HAVE_WCHAR_H 1 + +/* Define to 1 if you have the `wcscoll' function. */ +#define HAVE_WCSCOLL 1 + +/* Define to 1 if you have the `wcsftime' function. */ +#define HAVE_WCSFTIME 1 + +/* Define to 1 if you have the `wcsxfrm' function. */ +#define HAVE_WCSXFRM 1 + +/* Define to 1 if you have the `wmemcmp' function. */ +#define HAVE_WMEMCMP 1 + +/* Define if tzset() actually switches the local timezone in a meaningful way. + */ +/* #undef HAVE_WORKING_TZSET */ + +/* Define to 1 if you have the `writev' function. */ +#define HAVE_WRITEV 1 + +/* Define if the zlib library has inflateCopy */ +#define HAVE_ZLIB_COPY 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ZLIB_H 1 + +/* Define to 1 if you have the `_getpty' function. */ +/* #undef HAVE__GETPTY */ + +/* Define to 1 if the system has the type `__uint128_t'. */ +#define HAVE___UINT128_T 1 + +/* Define to 1 if `major', `minor', and `makedev' are declared in . + */ +/* #undef MAJOR_IN_MKDEV */ + +/* Define to 1 if `major', `minor', and `makedev' are declared in + . */ +#define MAJOR_IN_SYSMACROS 1 + +/* Define if mvwdelch in curses.h is an expression. */ +/* #undef MVWDELCH_IS_EXPRESSION */ + +/* Define to the address where bug reports for this package should be sent. */ +/* #undef PACKAGE_BUGREPORT */ + +/* Define to the full name of this package. */ +/* #undef PACKAGE_NAME */ + +/* Define to the full name and version of this package. */ +/* #undef PACKAGE_STRING */ + +/* Define to the one symbol short name of this package. */ +/* #undef PACKAGE_TARNAME */ + +/* Define to the home page for this package. */ +/* #undef PACKAGE_URL */ + +/* Define to the version of this package. */ +/* #undef PACKAGE_VERSION */ + +/* Define if POSIX semaphores aren't enabled on your system */ +/* #undef POSIX_SEMAPHORES_NOT_ENABLED */ + +/* Define if pthread_key_t is compatible with int. */ +#define PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT 1 + +/* Defined if PTHREAD_SCOPE_SYSTEM supported. */ +/* #undef PTHREAD_SYSTEM_SCHED_SUPPORTED */ + +/* Define as the preferred size in bits of long digits */ +/* #undef PYLONG_BITS_IN_DIGIT */ + +/* enabled builtin hash modules */ +#define PY_BUILTIN_HASHLIB_HASHES "md5,sha1,sha2,sha3,blake2" + +/* Define if you want to coerce the C locale to a UTF-8 based locale */ +#define PY_COERCE_C_LOCALE 1 + +/* Define to 1 if you have the perf trampoline. */ +/* #undef PY_HAVE_PERF_TRAMPOLINE */ + +/* Define to 1 to build the sqlite module with loadable extensions support. */ +/* #undef PY_SQLITE_ENABLE_LOAD_EXTENSION */ + +/* Define if SQLite was compiled with the serialize API */ +#define PY_SQLITE_HAVE_SERIALIZE 1 + +/* Default cipher suites list for ssl module. 1: Python's preferred selection, + 2: leave OpenSSL defaults untouched, 0: custom string */ +#define PY_SSL_DEFAULT_CIPHERS 1 + +/* Cipher suite string for PY_SSL_DEFAULT_CIPHERS=0 */ +/* #undef PY_SSL_DEFAULT_CIPHER_STRING */ + +/* PEP 11 Support tier (1, 2, 3 or 0 for unsupported) */ +#define PY_SUPPORT_TIER 3 + +/* Define if you want to build an interpreter with many run-time checks. */ +/* #undef Py_DEBUG */ + +/* Defined if Python is built as a shared library. */ +#define Py_ENABLE_SHARED 1 + +/* Define if you want to disable the GIL */ +/* #undef Py_GIL_DISABLED */ + +/* Define hash algorithm for str, bytes and memoryview. SipHash24: 1, FNV: 2, + SipHash13: 3, externally defined: 0 */ +/* #undef Py_HASH_ALGORITHM */ + +/* Define if rl_startup_hook takes arguments */ +/* #undef Py_RL_STARTUP_HOOK_TAKES_ARGS */ + +/* Define if you want to enable internal statistics gathering. */ +/* #undef Py_STATS */ + +/* The version of SunOS/Solaris as reported by `uname -r' without the dot. */ +/* #undef Py_SUNOS_VERSION */ + +/* 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 if i>>j for signed int i does not extend the sign bit when i < 0 */ +/* #undef SIGNED_RIGHT_SHIFT_ZERO_FILLS */ + +/* The size of `double', as computed by sizeof. */ +#define SIZEOF_DOUBLE 8 + +/* The size of `float', as computed by sizeof. */ +#define SIZEOF_FLOAT 4 + +/* The size of `fpos_t', as computed by sizeof. */ +#define SIZEOF_FPOS_T 8 + +/* The size of `int', as computed by sizeof. */ +#define SIZEOF_INT 4 + +/* The size of `long', as computed by sizeof. */ +#define SIZEOF_LONG 8 + +/* The size of `long double', as computed by sizeof. */ +#define SIZEOF_LONG_DOUBLE 16 + +/* The size of `long long', as computed by sizeof. */ +#define SIZEOF_LONG_LONG 8 + +/* The size of `off_t', as computed by sizeof. */ +#define SIZEOF_OFF_T 8 + +/* The size of `pid_t', as computed by sizeof. */ +#define SIZEOF_PID_T 4 + +/* The size of `pthread_key_t', as computed by sizeof. */ +#define SIZEOF_PTHREAD_KEY_T 4 + +/* The size of `pthread_t', as computed by sizeof. */ +#define SIZEOF_PTHREAD_T 8 + +/* The size of `short', as computed by sizeof. */ +#define SIZEOF_SHORT 2 + +/* The size of `size_t', as computed by sizeof. */ +#define SIZEOF_SIZE_T 8 + +/* The size of `time_t', as computed by sizeof. */ +#define SIZEOF_TIME_T 8 + +/* The size of `uintptr_t', as computed by sizeof. */ +#define SIZEOF_UINTPTR_T 8 + +/* The size of `void *', as computed by sizeof. */ +#define SIZEOF_VOID_P 8 + +/* The size of `wchar_t', as computed by sizeof. */ +#define SIZEOF_WCHAR_T 4 + +/* The size of `_Bool', as computed by sizeof. */ +#define SIZEOF__BOOL 1 + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define if you can safely include both and + (which you can't on SCO ODT 3.0). */ +#define SYS_SELECT_WITH_SYS_TIME 1 + +/* Custom thread stack size depending on chosen sanitizer runtimes. */ +/* #undef THREAD_STACK_SIZE */ + +/* Library needed by timemodule.c: librt may be needed for clock_gettime() */ +/* #undef TIMEMODULE_LIB */ + +/* Define to 1 if your declares `struct tm'. */ +/* #undef TM_IN_SYS_TIME */ + +/* Define if you want to use computed gotos in ceval.c. */ +/* #undef USE_COMPUTED_GOTOS */ + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# define _ALL_SOURCE 1 +#endif +/* Enable general extensions on macOS. */ +#ifndef _DARWIN_C_SOURCE +# define _DARWIN_C_SOURCE 1 +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# define __EXTENSIONS__ 1 +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +#endif +/* Enable X/Open compliant socket functions that do not require linking + with -lxnet on HP-UX 11.11. */ +#ifndef _HPUX_ALT_XOPEN_SOCKET_API +# define _HPUX_ALT_XOPEN_SOCKET_API 1 +#endif +/* Identify the host operating system as Minix. + This macro does not affect the system headers' behavior. + A future release of Autoconf may stop defining this macro. */ +#ifndef _MINIX +/* # undef _MINIX */ +#endif +/* Enable general extensions on NetBSD. + Enable NetBSD compatibility extensions on Minix. */ +#ifndef _NETBSD_SOURCE +# define _NETBSD_SOURCE 1 +#endif +/* Enable OpenBSD compatibility extensions on NetBSD. + Oddly enough, this does nothing on OpenBSD. */ +#ifndef _OPENBSD_SOURCE +# define _OPENBSD_SOURCE 1 +#endif +/* Define to 1 if needed for POSIX-compatible behavior. */ +#ifndef _POSIX_SOURCE +/* # undef _POSIX_SOURCE */ +#endif +/* Define to 2 if needed for POSIX-compatible behavior. */ +#ifndef _POSIX_1_SOURCE +/* # undef _POSIX_1_SOURCE */ +#endif +/* Enable POSIX-compatible threading on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# define _POSIX_PTHREAD_SEMANTICS 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */ +#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ +# define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */ +#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ +# define __STDC_WANT_IEC_60559_BFP_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */ +#ifndef __STDC_WANT_IEC_60559_DFP_EXT__ +# define __STDC_WANT_IEC_60559_DFP_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ +#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ +# define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-3:2015. */ +#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ +# define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */ +#ifndef __STDC_WANT_LIB_EXT2__ +# define __STDC_WANT_LIB_EXT2__ 1 +#endif +/* Enable extensions specified by ISO/IEC 24747:2009. */ +#ifndef __STDC_WANT_MATH_SPEC_FUNCS__ +# define __STDC_WANT_MATH_SPEC_FUNCS__ 1 +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# define _TANDEM_SOURCE 1 +#endif +/* Enable X/Open extensions. Define to 500 only if necessary + to make mbstate_t available. */ +#ifndef _XOPEN_SOURCE +# define _XOPEN_SOURCE 700 +#endif + + +/* Define if WINDOW in curses.h offers a field _flags. */ +/* #undef WINDOW_HAS_FLAGS */ + +/* 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 + +/* Define if you want to compile in DTrace support */ +/* #undef WITH_DTRACE */ + +/* Define if you want to use the new-style (Openstep, Rhapsody, MacOS) dynamic + linker (dyld) instead of the old-style (NextStep) dynamic linker (rld). + Dyld is necessary to support frameworks. */ +/* #undef WITH_DYLD */ + +/* Define to build the readline module against libedit. */ +/* #undef WITH_EDITLINE */ + +/* Define if you want to compile in object freelists optimization */ +#define WITH_FREELISTS 1 + +/* Define to 1 if libintl is needed for locale functions. */ +/* #undef WITH_LIBINTL */ + +/* Define if you want to compile in mimalloc memory allocator. */ +#define WITH_MIMALLOC 1 + +/* Define if you want to produce an OpenStep/Rhapsody framework (shared + library plus accessory files). */ +/* #undef WITH_NEXT_FRAMEWORK */ + +/* Define if you want to compile in Python-specific mallocs */ +#define WITH_PYMALLOC 1 + +/* Define if you want pymalloc to be disabled when running under valgrind */ +/* #undef WITH_VALGRIND */ + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +/* # undef WORDS_BIGENDIAN */ +# endif +#endif + +/* Define if arithmetic is subject to x87-style double rounding issue */ +/* #undef X87_DOUBLE_ROUNDING */ + +/* Define on OpenBSD to activate all library features */ +/* #undef _BSD_SOURCE */ + +/* Define on Darwin to activate all library features */ +#define _DARWIN_C_SOURCE 1 + +/* This must be set to 64 on some systems to enable large file support. */ +#define _FILE_OFFSET_BITS 64 + +/* Define to include mbstate_t for mbrtowc */ +/* #undef _INCLUDE__STDC_A1_SOURCE */ + +/* This must be defined on some systems to enable large file support. */ +#define _LARGEFILE_SOURCE 1 + +/* This must be defined on AIX systems to enable large file support. */ +/* #undef _LARGE_FILES */ + +/* Define on NetBSD to activate all library features */ +#define _NETBSD_SOURCE 1 + +/* Define to activate features from IEEE Stds 1003.1-2008 */ +#define _POSIX_C_SOURCE 200809L + +/* Define if you have POSIX threads, and your system does not define that. */ +/* #undef _POSIX_THREADS */ + +/* framework name */ +#define _PYTHONFRAMEWORK "" + +/* Define to force use of thread-safe errno, h_errno, and other functions */ +#define _REENTRANT 1 + +/* Define to 1 if you want to emulate getpid() on WASI */ +/* #undef _WASI_EMULATED_GETPID */ + +/* Define to 1 if you want to emulate process clocks on WASI */ +/* #undef _WASI_EMULATED_PROCESS_CLOCKS */ + +/* Define to 1 if you want to emulate signals on WASI */ +/* #undef _WASI_EMULATED_SIGNAL */ + +/* Define to the level of X/Open that your system supports */ +#define _XOPEN_SOURCE 700 + +/* Define to activate Unix95-and-earlier features */ +#define _XOPEN_SOURCE_EXTENDED 1 + +/* Define on FreeBSD to activate all library features */ +#define __BSD_VISIBLE 1 + +/* Define to 'long' if does not define clock_t. */ +/* #undef clock_t */ + +/* Define to empty if `const' does not conform to ANSI C. */ +/* #undef const */ + +/* Define to `int' if doesn't define. */ +/* #undef gid_t */ + +/* Define to `int' if does not define. */ +/* #undef mode_t */ + +/* Define to `long int' if does not define. */ +/* #undef off_t */ + +/* Define as a signed integer type capable of holding a process identifier. */ +/* #undef pid_t */ + +/* Define to empty if the keyword does not work. */ +/* #undef signed */ + +/* Define to `unsigned int' if does not define. */ +/* #undef size_t */ + +/* Define to 'int' if does not define. */ +/* #undef socklen_t */ + +/* Define to `int' if doesn't define. */ +/* #undef uid_t */ + + +/* Define the macros needed if on a UnixWare 7.x system. */ +#if defined(__USLC__) && defined(__SCO_VERSION__) +#define STRICT_SYSV_CURSES /* Don't use ncurses extensions */ +#endif + +#endif /*Py_PYCONFIG_H*/ + diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyconfig-android-x86_64.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyconfig-android-x86_64.h new file mode 100644 index 000000000..34c3e0221 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyconfig-android-x86_64.h @@ -0,0 +1,2015 @@ +/* pyconfig.h. Generated from pyconfig.h.in by configure. */ +/* pyconfig.h.in. Generated from configure.ac by autoheader. */ + + +#ifndef Py_PYCONFIG_H +#define Py_PYCONFIG_H + + +/* 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 */ + +/* 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 */ + +/* The normal alignment of `long', in bytes. */ +#define ALIGNOF_LONG 8 + +/* The normal alignment of `max_align_t', in bytes. */ +#define ALIGNOF_MAX_ALIGN_T 16 + +/* The normal alignment of `size_t', in bytes. */ +#define ALIGNOF_SIZE_T 8 + +/* Alternative SOABI used in debug build to load C extensions built in release + mode */ +/* #undef ALT_SOABI */ + +/* The Android API level. */ +#define ANDROID_API_LEVEL 21 + +/* Define if C doubles are 64-bit IEEE 754 binary format, stored in ARM + mixed-endian order (byte order 45670123) */ +/* #undef DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 */ + +/* Define if C doubles are 64-bit IEEE 754 binary format, stored with the most + significant byte first */ +/* #undef DOUBLE_IS_BIG_ENDIAN_IEEE754 */ + +/* Define if C doubles are 64-bit IEEE 754 binary format, stored with the + least significant byte first */ +#define DOUBLE_IS_LITTLE_ENDIAN_IEEE754 1 + +/* 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 if getpgrp() must be called as getpgrp(0). */ +/* #undef GETPGRP_HAVE_ARG */ + +/* Define if you have the 'accept' function. */ +#define HAVE_ACCEPT 1 + +/* Define to 1 if you have the `accept4' function. */ +#define HAVE_ACCEPT4 1 + +/* Define to 1 if you have the `acosh' function. */ +#define HAVE_ACOSH 1 + +/* struct addrinfo (netdb.h) */ +#define HAVE_ADDRINFO 1 + +/* Define to 1 if you have the `alarm' function. */ +#define HAVE_ALARM 1 + +/* Define if aligned memory access is required */ +/* #undef HAVE_ALIGNED_REQUIRED */ + +/* Define to 1 if you have the header file. */ +#define HAVE_ALLOCA_H 1 + +/* Define this if your time.h defines altzone. */ +/* #undef HAVE_ALTZONE */ + +/* Define to 1 if you have the `asinh' function. */ +#define HAVE_ASINH 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ASM_TYPES_H 1 + +/* Define to 1 if you have the `atanh' function. */ +#define HAVE_ATANH 1 + +/* Define if you have the 'bind' function. */ +#define HAVE_BIND 1 + +/* Define to 1 if you have the `bind_textdomain_codeset' function. */ +/* #undef HAVE_BIND_TEXTDOMAIN_CODESET */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_BLUETOOTH_BLUETOOTH_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_BLUETOOTH_H */ + +/* Define if mbstowcs(NULL, "text", 0) does not return the number of wide + chars that would be converted. */ +/* #undef HAVE_BROKEN_MBSTOWCS */ + +/* Define if nice() returns success/failure instead of the new priority. */ +/* #undef HAVE_BROKEN_NICE */ + +/* Define if the system reports an invalid PIPE_BUF value. */ +/* #undef HAVE_BROKEN_PIPE_BUF */ + +/* Define if poll() sets errno on invalid file descriptors. */ +/* #undef HAVE_BROKEN_POLL */ + +/* Define if the Posix semaphores do not work on your system */ +/* #undef HAVE_BROKEN_POSIX_SEMAPHORES */ + +/* Define if pthread_sigmask() does not work on your system. */ +/* #undef HAVE_BROKEN_PTHREAD_SIGMASK */ + +/* define to 1 if your sem_getvalue is broken. */ +#define HAVE_BROKEN_SEM_GETVALUE 1 + +/* Define if 'unsetenv' does not return an int. */ +/* #undef HAVE_BROKEN_UNSETENV */ + +/* Has builtin __atomic_load_n() and __atomic_store_n() functions */ +#define HAVE_BUILTIN_ATOMIC 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_BZLIB_H 1 + +/* Define to 1 if you have the 'chflags' function. */ +/* #undef HAVE_CHFLAGS */ + +/* Define to 1 if you have the `chmod' function. */ +#define HAVE_CHMOD 1 + +/* Define to 1 if you have the `chown' function. */ +#define HAVE_CHOWN 1 + +/* Define if you have the 'chroot' function. */ +/* #undef HAVE_CHROOT */ + +/* Define to 1 if you have the `clock' function. */ +#define HAVE_CLOCK 1 + +/* Define to 1 if you have the `clock_getres' function. */ +#define HAVE_CLOCK_GETRES 1 + +/* Define to 1 if you have the `clock_gettime' function. */ +#define HAVE_CLOCK_GETTIME 1 + +/* Define to 1 if you have the `clock_nanosleep' function. */ +/* #undef HAVE_CLOCK_NANOSLEEP */ + +/* Define to 1 if you have the `clock_settime' function. */ +/* #undef HAVE_CLOCK_SETTIME */ + +/* Define to 1 if the system has the type `clock_t'. */ +#define HAVE_CLOCK_T 1 + +/* Define to 1 if you have the `closefrom' function. */ +/* #undef HAVE_CLOSEFROM */ + +/* Define to 1 if you have the `close_range' function. */ +/* #undef HAVE_CLOSE_RANGE */ + +/* Define if the C compiler supports computed gotos. */ +/* #undef HAVE_COMPUTED_GOTOS */ + +/* Define to 1 if you have the `confstr' function. */ +/* #undef HAVE_CONFSTR */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_CONIO_H */ + +/* Define if you have the 'connect' function. */ +#define HAVE_CONNECT 1 + +/* Define to 1 if you have the `copy_file_range' function. */ +/* #undef HAVE_COPY_FILE_RANGE */ + +/* Define to 1 if you have the `ctermid' function. */ +/* #undef HAVE_CTERMID */ + +/* Define if you have the 'ctermid_r' function. */ +/* #undef HAVE_CTERMID_R */ + +/* Define if you have the 'filter' function. */ +/* #undef HAVE_CURSES_FILTER */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_CURSES_H */ + +/* Define if you have the 'has_key' function. */ +/* #undef HAVE_CURSES_HAS_KEY */ + +/* Define if you have the 'immedok' function. */ +/* #undef HAVE_CURSES_IMMEDOK */ + +/* Define if you have the 'is_pad' function. */ +/* #undef HAVE_CURSES_IS_PAD */ + +/* Define if you have the 'is_term_resized' function. */ +/* #undef HAVE_CURSES_IS_TERM_RESIZED */ + +/* Define if you have the 'resizeterm' function. */ +/* #undef HAVE_CURSES_RESIZETERM */ + +/* Define if you have the 'resize_term' function. */ +/* #undef HAVE_CURSES_RESIZE_TERM */ + +/* Define if you have the 'syncok' function. */ +/* #undef HAVE_CURSES_SYNCOK */ + +/* Define if you have the 'typeahead' function. */ +/* #undef HAVE_CURSES_TYPEAHEAD */ + +/* Define if you have the 'use_env' function. */ +/* #undef HAVE_CURSES_USE_ENV */ + +/* Define if you have the 'wchgat' function. */ +/* #undef HAVE_CURSES_WCHGAT */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_DB_H */ + +/* Define to 1 if you have the declaration of `RTLD_DEEPBIND', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_DEEPBIND 0 + +/* Define to 1 if you have the declaration of `RTLD_GLOBAL', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_GLOBAL 1 + +/* Define to 1 if you have the declaration of `RTLD_LAZY', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_LAZY 1 + +/* Define to 1 if you have the declaration of `RTLD_LOCAL', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_LOCAL 1 + +/* Define to 1 if you have the declaration of `RTLD_MEMBER', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_MEMBER 0 + +/* Define to 1 if you have the declaration of `RTLD_NODELETE', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_NODELETE 1 + +/* Define to 1 if you have the declaration of `RTLD_NOLOAD', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_NOLOAD 1 + +/* Define to 1 if you have the declaration of `RTLD_NOW', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_NOW 1 + +/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. + */ +/* #undef HAVE_DECL_TZNAME */ + +/* Define to 1 if you have the device macros. */ +#define HAVE_DEVICE_MACROS 1 + +/* Define to 1 if you have the /dev/ptc device file. */ +/* #undef HAVE_DEV_PTC */ + +/* Define to 1 if you have the /dev/ptmx device file. */ +/* #undef HAVE_DEV_PTMX */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_DIRECT_H */ + +/* Define to 1 if the dirent structure has a d_type field */ +#define HAVE_DIRENT_D_TYPE 1 + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +#define HAVE_DIRENT_H 1 + +/* Define if you have the 'dirfd' function or macro. */ +#define HAVE_DIRFD 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if you have the `dlopen' function. */ +#define HAVE_DLOPEN 1 + +/* Define to 1 if you have the `dup' function. */ +#define HAVE_DUP 1 + +/* Define to 1 if you have the `dup2' function. */ +#define HAVE_DUP2 1 + +/* Define to 1 if you have the `dup3' function. */ +#define HAVE_DUP3 1 + +/* Define if you have the '_dyld_shared_cache_contains_path' function. */ +/* #undef HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH */ + +/* Defined when any dynamic module loading is enabled. */ +#define HAVE_DYNAMIC_LOADING 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_EDITLINE_READLINE_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_ENDIAN_H 1 + +/* Define if you have the 'epoll_create' function. */ +#define HAVE_EPOLL 1 + +/* Define if you have the 'epoll_create1' function. */ +#define HAVE_EPOLL_CREATE1 1 + +/* Define to 1 if you have the `erf' function. */ +#define HAVE_ERF 1 + +/* Define to 1 if you have the `erfc' function. */ +#define HAVE_ERFC 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ERRNO_H 1 + +/* Define if you have the 'eventfd' function. */ +#define HAVE_EVENTFD 1 + +/* 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 `expm1' function. */ +#define HAVE_EXPM1 1 + +/* Define to 1 if you have the `faccessat' function. */ +#define HAVE_FACCESSAT 1 + +/* Define if you have the 'fchdir' function. */ +#define HAVE_FCHDIR 1 + +/* Define to 1 if you have the `fchmod' function. */ +#define HAVE_FCHMOD 1 + +/* Define to 1 if you have the `fchmodat' function. */ +/* #undef HAVE_FCHMODAT */ + +/* Define to 1 if you have the `fchown' function. */ +#define HAVE_FCHOWN 1 + +/* Define to 1 if you have the `fchownat' function. */ +#define HAVE_FCHOWNAT 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_FCNTL_H 1 + +/* Define if you have the 'fdatasync' function. */ +#define HAVE_FDATASYNC 1 + +/* 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 `fexecve' function. */ +/* #undef HAVE_FEXECVE */ + +/* Define if you have the 'ffi_closure_alloc' function. */ +#define HAVE_FFI_CLOSURE_ALLOC 1 + +/* Define if you have the 'ffi_prep_cif_var' function. */ +#define HAVE_FFI_PREP_CIF_VAR 1 + +/* Define if you have the 'ffi_prep_closure_loc' function. */ +#define HAVE_FFI_PREP_CLOSURE_LOC 1 + +/* Define to 1 if you have the `flock' function. */ +#define HAVE_FLOCK 1 + +/* Define to 1 if you have the `fork' function. */ +#define HAVE_FORK 1 + +/* Define to 1 if you have the `fork1' function. */ +/* #undef HAVE_FORK1 */ + +/* Define to 1 if you have the `forkpty' function. */ +/* #undef HAVE_FORKPTY */ + +/* Define to 1 if you have the `fpathconf' function. */ +#define HAVE_FPATHCONF 1 + +/* Define to 1 if you have the `fseek64' function. */ +/* #undef HAVE_FSEEK64 */ + +/* Define to 1 if you have the `fseeko' function. */ +#define HAVE_FSEEKO 1 + +/* Define to 1 if you have the `fstatat' function. */ +#define HAVE_FSTATAT 1 + +/* Define to 1 if you have the `fstatvfs' function. */ +#define HAVE_FSTATVFS 1 + +/* Define if you have the 'fsync' function. */ +#define HAVE_FSYNC 1 + +/* Define to 1 if you have the `ftell64' function. */ +/* #undef HAVE_FTELL64 */ + +/* Define to 1 if you have the `ftello' function. */ +#define HAVE_FTELLO 1 + +/* Define to 1 if you have the `ftime' function. */ +/* #undef HAVE_FTIME */ + +/* Define to 1 if you have the `ftruncate' function. */ +#define HAVE_FTRUNCATE 1 + +/* Define to 1 if you have the `futimens' function. */ +#define HAVE_FUTIMENS 1 + +/* Define to 1 if you have the `futimes' function. */ +/* #undef HAVE_FUTIMES */ + +/* Define to 1 if you have the `futimesat' function. */ +/* #undef HAVE_FUTIMESAT */ + +/* Define to 1 if you have the `gai_strerror' function. */ +#define HAVE_GAI_STRERROR 1 + +/* Define if we can use gcc inline assembler to get and set mc68881 fpcr */ +/* #undef HAVE_GCC_ASM_FOR_MC68881 */ + +/* Define if we can use x64 gcc inline assembler */ +#define HAVE_GCC_ASM_FOR_X64 1 + +/* Define if we can use gcc inline assembler to get and set x87 control word + */ +#define HAVE_GCC_ASM_FOR_X87 1 + +/* Define if your compiler provides __uint128_t */ +#define HAVE_GCC_UINT128_T 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_GDBM_DASH_NDBM_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_GDBM_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_GDBM_NDBM_H */ + +/* Define if you have the getaddrinfo function. */ +#define HAVE_GETADDRINFO 1 + +/* Define this if you have flockfile(), getc_unlocked(), and funlockfile() */ +#define HAVE_GETC_UNLOCKED 1 + +/* Define to 1 if you have the `getegid' function. */ +#define HAVE_GETEGID 1 + +/* Define to 1 if you have the `getentropy' function. */ +/* #undef HAVE_GETENTROPY */ + +/* Define to 1 if you have the `geteuid' function. */ +#define HAVE_GETEUID 1 + +/* Define to 1 if you have the `getgid' function. */ +#define HAVE_GETGID 1 + +/* Define to 1 if you have the `getgrent' function. */ +/* #undef HAVE_GETGRENT */ + +/* Define to 1 if you have the `getgrgid' function. */ +#define HAVE_GETGRGID 1 + +/* Define to 1 if you have the `getgrgid_r' function. */ +/* #undef HAVE_GETGRGID_R */ + +/* Define to 1 if you have the `getgrnam_r' function. */ +/* #undef HAVE_GETGRNAM_R */ + +/* Define to 1 if you have the `getgrouplist' function. */ +#define HAVE_GETGROUPLIST 1 + +/* Define to 1 if you have the `getgroups' function. */ +#define HAVE_GETGROUPS 1 + +/* Define if you have the 'gethostbyaddr' function. */ +#define HAVE_GETHOSTBYADDR 1 + +/* Define to 1 if you have the `gethostbyname' function. */ +#define HAVE_GETHOSTBYNAME 1 + +/* Define this if you have some version of gethostbyname_r() */ +#define HAVE_GETHOSTBYNAME_R 1 + +/* Define this if you have the 3-arg version of gethostbyname_r(). */ +/* #undef HAVE_GETHOSTBYNAME_R_3_ARG */ + +/* Define this if you have the 5-arg version of gethostbyname_r(). */ +/* #undef HAVE_GETHOSTBYNAME_R_5_ARG */ + +/* Define this if you have the 6-arg version of gethostbyname_r(). */ +#define HAVE_GETHOSTBYNAME_R_6_ARG 1 + +/* Define to 1 if you have the `gethostname' function. */ +#define HAVE_GETHOSTNAME 1 + +/* Define to 1 if you have the `getitimer' function. */ +#define HAVE_GETITIMER 1 + +/* Define to 1 if you have the `getloadavg' function. */ +/* #undef HAVE_GETLOADAVG */ + +/* Define to 1 if you have the `getlogin' function. */ +#define HAVE_GETLOGIN 1 + +/* Define to 1 if you have the `getnameinfo' function. */ +#define HAVE_GETNAMEINFO 1 + +/* Define if you have the 'getpagesize' function. */ +#define HAVE_GETPAGESIZE 1 + +/* Define if you have the 'getpeername' function. */ +#define HAVE_GETPEERNAME 1 + +/* Define to 1 if you have the `getpgid' function. */ +#define HAVE_GETPGID 1 + +/* Define to 1 if you have the `getpgrp' function. */ +#define HAVE_GETPGRP 1 + +/* Define to 1 if you have the `getpid' function. */ +#define HAVE_GETPID 1 + +/* Define to 1 if you have the `getppid' function. */ +#define HAVE_GETPPID 1 + +/* Define to 1 if you have the `getpriority' function. */ +#define HAVE_GETPRIORITY 1 + +/* Define if you have the 'getprotobyname' function. */ +#define HAVE_GETPROTOBYNAME 1 + +/* Define to 1 if you have the `getpwent' function. */ +/* #undef HAVE_GETPWENT */ + +/* Define to 1 if you have the `getpwnam_r' function. */ +#define HAVE_GETPWNAM_R 1 + +/* Define to 1 if you have the `getpwuid' function. */ +#define HAVE_GETPWUID 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 */ + +/* Define to 1 if the Linux getrandom() syscall is available */ +#define HAVE_GETRANDOM_SYSCALL 1 + +/* Define to 1 if you have the `getresgid' function. */ +#define HAVE_GETRESGID 1 + +/* Define to 1 if you have the `getresuid' function. */ +#define HAVE_GETRESUID 1 + +/* Define to 1 if you have the `getrusage' function. */ +#define HAVE_GETRUSAGE 1 + +/* Define if you have the 'getservbyname' function. */ +#define HAVE_GETSERVBYNAME 1 + +/* Define if you have the 'getservbyport' function. */ +#define HAVE_GETSERVBYPORT 1 + +/* Define to 1 if you have the `getsid' function. */ +#define HAVE_GETSID 1 + +/* Define if you have the 'getsockname' function. */ +#define HAVE_GETSOCKNAME 1 + +/* Define to 1 if you have the `getspent' function. */ +/* #undef HAVE_GETSPENT */ + +/* Define to 1 if you have the `getspnam' function. */ +/* #undef HAVE_GETSPNAM */ + +/* Define to 1 if you have the `getuid' function. */ +#define HAVE_GETUID 1 + +/* Define to 1 if you have the `getwd' function. */ +/* #undef HAVE_GETWD */ + +/* Define if glibc has incorrect _FORTIFY_SOURCE wrappers for memmove and + bcopy. */ +/* #undef HAVE_GLIBC_MEMMOVE_BUG */ + +/* Define to 1 if you have the `grantpt' function. */ +#define HAVE_GRANTPT 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_GRP_H 1 + +/* Define if you have the 'hstrerror' function. */ +#define HAVE_HSTRERROR 1 + +/* Define this if you have le64toh() */ +#define HAVE_HTOLE64 1 + +/* Define to 1 if you have the `if_nameindex' function. */ +/* #undef HAVE_IF_NAMEINDEX */ + +/* Define if you have the 'inet_aton' function. */ +#define HAVE_INET_ATON 1 + +/* Define if you have the 'inet_ntoa' function. */ +#define HAVE_INET_NTOA 1 + +/* Define if you have the 'inet_pton' function. */ +#define HAVE_INET_PTON 1 + +/* Define to 1 if you have the `initgroups' function. */ +/* #undef HAVE_INITGROUPS */ + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_IO_H */ + +/* Define if gcc has the ipa-pure-const bug. */ +/* #undef HAVE_IPA_PURE_CONST_BUG */ + +/* Define to 1 if you have the `kill' function. */ +#define HAVE_KILL 1 + +/* Define to 1 if you have the `killpg' function. */ +#define HAVE_KILLPG 1 + +/* Define if you have the 'kqueue' function. */ +/* #undef HAVE_KQUEUE */ + +/* Define to 1 if you have the header file. */ +#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.) */ +/* #undef HAVE_LARGEFILE_SUPPORT */ + +/* Define to 1 if you have the 'lchflags' function. */ +/* #undef HAVE_LCHFLAGS */ + +/* Define to 1 if you have the `lchmod' function. */ +/* #undef HAVE_LCHMOD */ + +/* Define to 1 if you have the `lchown' function. */ +#define HAVE_LCHOWN 1 + +/* Define to 1 if you want to build _blake2 module with libb2 */ +/* #undef HAVE_LIBB2 */ + +/* Define to 1 if you have the `db' library (-ldb). */ +/* #undef HAVE_LIBDB */ + +/* Define to 1 if you have the `dl' library (-ldl). */ +#define HAVE_LIBDL 1 + +/* Define to 1 if you have the `dld' library (-ldld). */ +/* #undef HAVE_LIBDLD */ + +/* Define to 1 if you have the `ieee' library (-lieee). */ +/* #undef HAVE_LIBIEEE */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LIBINTL_H */ + +/* Define to 1 if you have the `resolv' library (-lresolv). */ +/* #undef HAVE_LIBRESOLV */ + +/* Define to 1 if you have the `sendfile' library (-lsendfile). */ +/* #undef HAVE_LIBSENDFILE */ + +/* Define to 1 if you have the `sqlite3' library (-lsqlite3). */ +#define HAVE_LIBSQLITE3 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LIBUTIL_H */ + +/* Define if you have the 'link' function. */ +#define HAVE_LINK 1 + +/* Define to 1 if you have the `linkat' function. */ +#define HAVE_LINKAT 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_AUXVEC_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_CAN_BCM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_CAN_H 1 + +/* Define to 1 if you have the 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 to 1 if you have the 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 header file. */ +#define HAVE_LINUX_FS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_LIMITS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_MEMFD_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_NETLINK_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_QRTR_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_RANDOM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_SOUNDCARD_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_TIPC_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_VM_SOCKETS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_WAIT_H 1 + +/* Define if you have the 'listen' function. */ +#define HAVE_LISTEN 1 + +/* Define to 1 if you have the `lockf' function. */ +/* #undef HAVE_LOCKF */ + +/* Define to 1 if you have the `log1p' function. */ +#define HAVE_LOG1P 1 + +/* Define to 1 if you have the `log2' function. */ +#define HAVE_LOG2 1 + +/* Define to 1 if you have the `login_tty' function. */ +/* #undef HAVE_LOGIN_TTY */ + +/* 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. */ +#define HAVE_LSTAT 1 + +/* Define to 1 if you have the `lutimes' function. */ +/* #undef HAVE_LUTIMES */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LZMA_H */ + +/* 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 to 1 if you have the `memrchr' function. */ +#define HAVE_MEMRCHR 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_MINIX_CONFIG_H */ + +/* Define to 1 if you have the `mkdirat' function. */ +#define HAVE_MKDIRAT 1 + +/* Define to 1 if you have the `mkfifo' function. */ +#define HAVE_MKFIFO 1 + +/* Define to 1 if you have the `mkfifoat' function. */ +/* #undef HAVE_MKFIFOAT */ + +/* Define to 1 if you have the `mknod' function. */ +#define HAVE_MKNOD 1 + +/* Define to 1 if you have the `mknodat' function. */ +#define HAVE_MKNODAT 1 + +/* Define to 1 if you have the `mktime' function. */ +#define HAVE_MKTIME 1 + +/* Define to 1 if you have the `mmap' function. */ +#define HAVE_MMAP 1 + +/* Define to 1 if you have the `mremap' function. */ +#define HAVE_MREMAP 1 + +/* Define to 1 if you have the `nanosleep' function. */ +#define HAVE_NANOSLEEP 1 + +/* Define if you have the 'ncurses' library */ +/* #undef HAVE_NCURSES */ + +/* Define if you have the 'ncursesw' library */ +/* #undef HAVE_NCURSESW */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSESW_CURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSESW_NCURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSESW_PANEL_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSES_CURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSES_NCURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSES_PANEL_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NDBM_H */ + +/* Define to 1 if you have the header file, and it defines `DIR'. */ +/* #undef HAVE_NDIR_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NETCAN_CAN_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_NETDB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_NETINET_IN_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NETLINK_NETLINK_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_NETPACKET_PACKET_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_NET_ETHERNET_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_NET_IF_H 1 + +/* Define to 1 if you have the `nice' function. */ +#define HAVE_NICE 1 + +/* Define if the internal form of wchar_t in non-Unicode locales is not + Unicode. */ +/* #undef HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION */ + +/* Define to 1 if you have the `openat' function. */ +#define HAVE_OPENAT 1 + +/* Define to 1 if you have the `opendir' function. */ +#define HAVE_OPENDIR 1 + +/* Define to 1 if you have the `openpty' function. */ +/* #undef HAVE_OPENPTY */ + +/* Define if you have the 'panel' library */ +/* #undef HAVE_PANEL */ + +/* Define if you have the 'panelw' library */ +/* #undef HAVE_PANELW */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_PANEL_H */ + +/* Define to 1 if you have the `pathconf' function. */ +#define HAVE_PATHCONF 1 + +/* Define to 1 if you have the `pause' function. */ +#define HAVE_PAUSE 1 + +/* Define to 1 if you have the `pipe' function. */ +#define HAVE_PIPE 1 + +/* Define to 1 if you have the `pipe2' function. */ +#define HAVE_PIPE2 1 + +/* Define to 1 if you have the `plock' function. */ +/* #undef HAVE_PLOCK */ + +/* Define to 1 if you have the `poll' function. */ +#define HAVE_POLL 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_POLL_H 1 + +/* Define to 1 if you have the `posix_fadvise' function. */ +#define HAVE_POSIX_FADVISE 1 + +/* Define to 1 if you have the `posix_fallocate' function. */ +#define HAVE_POSIX_FALLOCATE 1 + +/* Define to 1 if you have the `posix_openpt' function. */ +#define HAVE_POSIX_OPENPT 1 + +/* Define to 1 if you have the `posix_spawn' function. */ +/* #undef HAVE_POSIX_SPAWN */ + +/* Define to 1 if you have the `posix_spawnp' function. */ +/* #undef HAVE_POSIX_SPAWNP */ + +/* Define to 1 if you have the `posix_spawn_file_actions_addclosefrom_np' + function. */ +/* #undef HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSEFROM_NP */ + +/* Define to 1 if you have the `pread' function. */ +#define HAVE_PREAD 1 + +/* Define to 1 if you have the `preadv' function. */ +/* #undef HAVE_PREADV */ + +/* Define to 1 if you have the `preadv2' function. */ +/* #undef HAVE_PREADV2 */ + +/* Define if you have the 'prlimit' function. */ +#define HAVE_PRLIMIT 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_PROCESS_H */ + +/* Define to 1 if you have the `process_vm_readv' function. */ +/* #undef HAVE_PROCESS_VM_READV */ + +/* 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_cond_timedwait_relative_np' function. + */ +/* #undef HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE_NP */ + +/* Defined for Solaris 2.6 bug in pthread header. */ +/* #undef HAVE_PTHREAD_DESTRUCTOR */ + +/* Define to 1 if you have the `pthread_getcpuclockid' function. */ +#define HAVE_PTHREAD_GETCPUCLOCKID 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_PTHREAD_H 1 + +/* Define to 1 if you have the `pthread_init' function. */ +/* #undef HAVE_PTHREAD_INIT */ + +/* Define to 1 if you have the `pthread_kill' function. */ +#define HAVE_PTHREAD_KILL 1 + +/* Define to 1 if you have the `pthread_sigmask' function. */ +#define HAVE_PTHREAD_SIGMASK 1 + +/* Define if platform requires stubbed pthreads support */ +/* #undef HAVE_PTHREAD_STUBS */ + +/* Define to 1 if you have the `ptsname' function. */ +#define HAVE_PTSNAME 1 + +/* Define to 1 if you have the `ptsname_r' function. */ +#define HAVE_PTSNAME_R 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_PTY_H 1 + +/* Define to 1 if you have the `pwrite' function. */ +#define HAVE_PWRITE 1 + +/* Define to 1 if you have the `pwritev' function. */ +/* #undef HAVE_PWRITEV */ + +/* Define to 1 if you have the `pwritev2' function. */ +/* #undef HAVE_PWRITEV2 */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_READLINE_READLINE_H */ + +/* Define to 1 if you have the `readlink' function. */ +#define HAVE_READLINK 1 + +/* Define to 1 if you have the `readlinkat' function. */ +#define HAVE_READLINKAT 1 + +/* Define to 1 if you have the `readv' function. */ +#define HAVE_READV 1 + +/* Define to 1 if you have the `realpath' function. */ +#define HAVE_REALPATH 1 + +/* Define if you have the 'recvfrom' function. */ +#define HAVE_RECVFROM 1 + +/* Define to 1 if you have the `renameat' function. */ +#define HAVE_RENAMEAT 1 + +/* Define if readline supports append_history */ +/* #undef HAVE_RL_APPEND_HISTORY */ + +/* Define if you can turn off readline's signal handling. */ +/* #undef HAVE_RL_CATCH_SIGNAL */ + +/* Define to 1 if the system has the type `rl_compdisp_func_t'. */ +/* #undef HAVE_RL_COMPDISP_FUNC_T */ + +/* Define if you have readline 2.2 */ +/* #undef HAVE_RL_COMPLETION_APPEND_CHARACTER */ + +/* Define if you have readline 4.0 */ +/* #undef HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK */ + +/* Define if you have readline 4.2 */ +/* #undef HAVE_RL_COMPLETION_MATCHES */ + +/* Define if you have rl_completion_suppress_append */ +/* #undef HAVE_RL_COMPLETION_SUPPRESS_APPEND */ + +/* Define if you have readline 4.0 */ +/* #undef HAVE_RL_PRE_INPUT_HOOK */ + +/* Define if you have readline 4.0 */ +/* #undef HAVE_RL_RESIZE_TERMINAL */ + +/* 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 + +/* Define to 1 if you have the header file. */ +#define HAVE_SCHED_H 1 + +/* Define to 1 if you have the `sched_rr_get_interval' function. */ +#define HAVE_SCHED_RR_GET_INTERVAL 1 + +/* Define to 1 if you have the `sched_setaffinity' function. */ +#define HAVE_SCHED_SETAFFINITY 1 + +/* Define to 1 if you have the `sched_setparam' function. */ +#define HAVE_SCHED_SETPARAM 1 + +/* Define to 1 if you have the `sched_setscheduler' function. */ +#define HAVE_SCHED_SETSCHEDULER 1 + +/* Define to 1 if you have the `sem_clockwait' function. */ +/* #undef HAVE_SEM_CLOCKWAIT */ + +/* Define to 1 if you have the `sem_getvalue' function. */ +#define HAVE_SEM_GETVALUE 1 + +/* Define to 1 if you have the `sem_open' function. */ +/* #undef HAVE_SEM_OPEN */ + +/* Define to 1 if you have the `sem_timedwait' function. */ +#define HAVE_SEM_TIMEDWAIT 1 + +/* Define to 1 if you have the `sem_unlink' function. */ +/* #undef HAVE_SEM_UNLINK */ + +/* Define to 1 if you have the `sendfile' function. */ +#define HAVE_SENDFILE 1 + +/* Define if you have the 'sendto' function. */ +#define HAVE_SENDTO 1 + +/* Define to 1 if you have the `setegid' function. */ +/* #undef HAVE_SETEGID */ + +/* Define to 1 if you have the `seteuid' function. */ +/* #undef HAVE_SETEUID */ + +/* Define to 1 if you have the `setgid' function. */ +/* #undef HAVE_SETGID */ + +/* Define if you have the 'setgroups' function. */ +#define HAVE_SETGROUPS 1 + +/* Define to 1 if you have the `sethostname' function. */ +/* #undef HAVE_SETHOSTNAME */ + +/* Define to 1 if you have the `setitimer' function. */ +#define HAVE_SETITIMER 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SETJMP_H 1 + +/* Define to 1 if you have the `setlocale' function. */ +#define HAVE_SETLOCALE 1 + +/* Define to 1 if you have the `setns' function. */ +#define HAVE_SETNS 1 + +/* Define to 1 if you have the `setpgid' function. */ +#define HAVE_SETPGID 1 + +/* Define to 1 if you have the `setpgrp' function. */ +#define HAVE_SETPGRP 1 + +/* Define to 1 if you have the `setpriority' function. */ +#define HAVE_SETPRIORITY 1 + +/* Define to 1 if you have the `setregid' function. */ +/* #undef HAVE_SETREGID */ + +/* Define to 1 if you have the `setresgid' function. */ +/* #undef HAVE_SETRESGID */ + +/* Define to 1 if you have the `setresuid' function. */ +/* #undef HAVE_SETRESUID */ + +/* Define to 1 if you have the `setreuid' function. */ +/* #undef HAVE_SETREUID */ + +/* Define to 1 if you have the `setsid' function. */ +#define HAVE_SETSID 1 + +/* Define if you have the 'setsockopt' function. */ +#define HAVE_SETSOCKOPT 1 + +/* Define to 1 if you have the `setuid' function. */ +/* #undef HAVE_SETUID */ + +/* Define to 1 if you have the `setvbuf' function. */ +#define HAVE_SETVBUF 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SHADOW_H */ + +/* Define to 1 if you have the `shm_open' function. */ +/* #undef HAVE_SHM_OPEN */ + +/* Define to 1 if you have the `shm_unlink' function. */ +/* #undef HAVE_SHM_UNLINK */ + +/* Define to 1 if you have the `shutdown' function. */ +#define HAVE_SHUTDOWN 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 `si_band' is a member of `siginfo_t'. */ +#define HAVE_SIGINFO_T_SI_BAND 1 + +/* Define to 1 if you have the `siginterrupt' function. */ +#define HAVE_SIGINTERRUPT 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SIGNAL_H 1 + +/* Define to 1 if you have the `sigpending' function. */ +#define HAVE_SIGPENDING 1 + +/* Define to 1 if you have the `sigrelse' function. */ +/* #undef HAVE_SIGRELSE */ + +/* Define to 1 if you have the `sigtimedwait' function. */ +/* #undef HAVE_SIGTIMEDWAIT */ + +/* Define to 1 if you have the `sigwait' function. */ +#define HAVE_SIGWAIT 1 + +/* Define to 1 if you have the `sigwaitinfo' function. */ +/* #undef HAVE_SIGWAITINFO */ + +/* Define to 1 if you have the `snprintf' function. */ +#define HAVE_SNPRINTF 1 + +/* struct sockaddr_alg (linux/if_alg.h) */ +#define HAVE_SOCKADDR_ALG 1 + +/* Define if sockaddr has sa_len member */ +/* #undef HAVE_SOCKADDR_SA_LEN */ + +/* struct sockaddr_storage (sys/socket.h) */ +#define HAVE_SOCKADDR_STORAGE 1 + +/* Define if you have the 'socket' function. */ +#define HAVE_SOCKET 1 + +/* Define if you have the 'socketpair' function. */ +#define HAVE_SOCKETPAIR 1 + +/* Define to 1 if the system has the type `socklen_t'. */ +#define HAVE_SOCKLEN_T 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SPAWN_H 1 + +/* Define to 1 if you have the `splice' function. */ +#define HAVE_SPLICE 1 + +/* Define to 1 if the system has the type `ssize_t'. */ +#define HAVE_SSIZE_T 1 + +/* Define to 1 if you have the `statvfs' function. */ +#define HAVE_STATVFS 1 + +/* Define if you have struct stat.st_mtim.tv_nsec */ +#define HAVE_STAT_TV_NSEC 1 + +/* Define if you have struct stat.st_mtimensec */ +/* #undef HAVE_STAT_TV_NSEC2 */ + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDIO_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Has stdatomic.h with atomic_int and atomic_uintptr_t */ +#define HAVE_STD_ATOMIC 1 + +/* Define to 1 if you have the `strftime' function. */ +#define HAVE_STRFTIME 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `strlcpy' function. */ +#define HAVE_STRLCPY 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_STROPTS_H */ + +/* 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 + +/* Define to 1 if `pw_passwd' is a member of `struct passwd'. */ +#define HAVE_STRUCT_PASSWD_PW_PASSWD 1 + +/* Define to 1 if `st_birthtime' is a member of `struct stat'. */ +/* #undef HAVE_STRUCT_STAT_ST_BIRTHTIME */ + +/* Define to 1 if `st_blksize' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_BLKSIZE 1 + +/* Define to 1 if `st_blocks' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_BLOCKS 1 + +/* Define to 1 if `st_flags' is a member of `struct stat'. */ +/* #undef HAVE_STRUCT_STAT_ST_FLAGS */ + +/* Define to 1 if `st_gen' is a member of `struct stat'. */ +/* #undef HAVE_STRUCT_STAT_ST_GEN */ + +/* Define to 1 if `st_rdev' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_RDEV 1 + +/* Define to 1 if `tm_zone' is a member of `struct tm'. */ +#define HAVE_STRUCT_TM_TM_ZONE 1 + +/* Define if you have the 'symlink' function. */ +#define HAVE_SYMLINK 1 + +/* Define to 1 if you have the `symlinkat' function. */ +#define HAVE_SYMLINKAT 1 + +/* Define to 1 if you have the `sync' function. */ +#define HAVE_SYNC 1 + +/* Define to 1 if you have the `sysconf' function. */ +#define HAVE_SYSCONF 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYSEXITS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYSLOG_H 1 + +/* Define to 1 if you have the `system' function. */ +#define HAVE_SYSTEM 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_AUDIOIO_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_AUXV_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_BSDTTY_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_DEVPOLL_H */ + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +/* #undef HAVE_SYS_DIR_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_ENDIAN_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_EPOLL_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_EVENTFD_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_EVENT_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_FILE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_IOCTL_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_KERN_CONTROL_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_LOADAVG_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_LOCK_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_MEMFD_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_MKDEV_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_MMAN_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_MODEM_H */ + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +/* #undef HAVE_SYS_NDIR_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_POLL_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_RANDOM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_RESOURCE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SELECT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SENDFILE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SOCKET_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SOUNDCARD_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STATVFS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SYSCALL_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SYSMACROS_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SYS_DOMAIN_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_TERMIO_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIMERFD_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIMES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_UIO_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_UN_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_UTSNAME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_WAIT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_XATTR_H 1 + +/* Define to 1 if you have the `tcgetpgrp' function. */ +#define HAVE_TCGETPGRP 1 + +/* Define to 1 if you have the `tcsetpgrp' function. */ +#define HAVE_TCSETPGRP 1 + +/* Define to 1 if you have the `tempnam' function. */ +#define HAVE_TEMPNAM 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_TERMIOS_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_TERM_H */ + +/* Define to 1 if you have the `timegm' function. */ +#define HAVE_TIMEGM 1 + +/* Define if you have the 'timerfd_create' function. */ +#define HAVE_TIMERFD_CREATE 1 + +/* Define to 1 if you have the `times' function. */ +#define HAVE_TIMES 1 + +/* Define to 1 if you have the `tmpfile' function. */ +#define HAVE_TMPFILE 1 + +/* Define to 1 if you have the `tmpnam' function. */ +#define HAVE_TMPNAM 1 + +/* Define to 1 if you have the `tmpnam_r' function. */ +/* #undef HAVE_TMPNAM_R */ + +/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use + `HAVE_STRUCT_TM_TM_ZONE' instead. */ +#define HAVE_TM_ZONE 1 + +/* Define to 1 if you have the `truncate' function. */ +#define HAVE_TRUNCATE 1 + +/* Define to 1 if you have the `ttyname' function. */ +#define HAVE_TTYNAME 1 + +/* Define to 1 if you don't have `tm_zone' but do have the external array + `tzname'. */ +/* #undef HAVE_TZNAME */ + +/* Define to 1 if you have the `umask' function. */ +#define HAVE_UMASK 1 + +/* Define to 1 if you have the `uname' function. */ +#define HAVE_UNAME 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to 1 if you have the `unlinkat' function. */ +#define HAVE_UNLINKAT 1 + +/* Define to 1 if you have the `unlockpt' function. */ +#define HAVE_UNLOCKPT 1 + +/* Define to 1 if you have the `unshare' function. */ +#define HAVE_UNSHARE 1 + +/* Define if you have a useable wchar_t type defined in wchar.h; useable means + wchar_t must be an unsigned type with at least 16 bits. (see + Include/unicodeobject.h). */ +/* #undef HAVE_USABLE_WCHAR_T */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_UTIL_H */ + +/* Define to 1 if you have the `utimensat' function. */ +#define HAVE_UTIMENSAT 1 + +/* Define to 1 if you have the `utimes' function. */ +#define HAVE_UTIMES 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UTIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UTMP_H 1 + +/* Define to 1 if you have the `uuid_create' function. */ +/* #undef HAVE_UUID_CREATE */ + +/* Define to 1 if you have the `uuid_enc_be' function. */ +/* #undef HAVE_UUID_ENC_BE */ + +/* Define if uuid_generate_time_safe() exists. */ +/* #undef HAVE_UUID_GENERATE_TIME_SAFE */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_UUID_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_UUID_UUID_H */ + +/* Define to 1 if you have the `vfork' function. */ +#define HAVE_VFORK 1 + +/* Define to 1 if you have the `wait' function. */ +#define HAVE_WAIT 1 + +/* Define to 1 if you have the `wait3' function. */ +/* #undef HAVE_WAIT3 */ + +/* Define to 1 if you have the `wait4' function. */ +#define HAVE_WAIT4 1 + +/* Define to 1 if you have the `waitid' function. */ +#define HAVE_WAITID 1 + +/* Define to 1 if you have the `waitpid' function. */ +#define HAVE_WAITPID 1 + +/* Define if the compiler provides a wchar.h header file. */ +#define HAVE_WCHAR_H 1 + +/* Define to 1 if you have the `wcscoll' function. */ +#define HAVE_WCSCOLL 1 + +/* Define to 1 if you have the `wcsftime' function. */ +#define HAVE_WCSFTIME 1 + +/* Define to 1 if you have the `wcsxfrm' function. */ +#define HAVE_WCSXFRM 1 + +/* Define to 1 if you have the `wmemcmp' function. */ +#define HAVE_WMEMCMP 1 + +/* Define if tzset() actually switches the local timezone in a meaningful way. + */ +/* #undef HAVE_WORKING_TZSET */ + +/* Define to 1 if you have the `writev' function. */ +#define HAVE_WRITEV 1 + +/* Define if the zlib library has inflateCopy */ +#define HAVE_ZLIB_COPY 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ZLIB_H 1 + +/* Define to 1 if you have the `_getpty' function. */ +/* #undef HAVE__GETPTY */ + +/* Define to 1 if the system has the type `__uint128_t'. */ +#define HAVE___UINT128_T 1 + +/* Define to 1 if `major', `minor', and `makedev' are declared in . + */ +/* #undef MAJOR_IN_MKDEV */ + +/* Define to 1 if `major', `minor', and `makedev' are declared in + . */ +#define MAJOR_IN_SYSMACROS 1 + +/* Define if mvwdelch in curses.h is an expression. */ +/* #undef MVWDELCH_IS_EXPRESSION */ + +/* Define to the address where bug reports for this package should be sent. */ +/* #undef PACKAGE_BUGREPORT */ + +/* Define to the full name of this package. */ +/* #undef PACKAGE_NAME */ + +/* Define to the full name and version of this package. */ +/* #undef PACKAGE_STRING */ + +/* Define to the one symbol short name of this package. */ +/* #undef PACKAGE_TARNAME */ + +/* Define to the home page for this package. */ +/* #undef PACKAGE_URL */ + +/* Define to the version of this package. */ +/* #undef PACKAGE_VERSION */ + +/* Define if POSIX semaphores aren't enabled on your system */ +/* #undef POSIX_SEMAPHORES_NOT_ENABLED */ + +/* Define if pthread_key_t is compatible with int. */ +#define PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT 1 + +/* Defined if PTHREAD_SCOPE_SYSTEM supported. */ +/* #undef PTHREAD_SYSTEM_SCHED_SUPPORTED */ + +/* Define as the preferred size in bits of long digits */ +/* #undef PYLONG_BITS_IN_DIGIT */ + +/* enabled builtin hash modules */ +#define PY_BUILTIN_HASHLIB_HASHES "md5,sha1,sha2,sha3,blake2" + +/* Define if you want to coerce the C locale to a UTF-8 based locale */ +#define PY_COERCE_C_LOCALE 1 + +/* Define to 1 if you have the perf trampoline. */ +/* #undef PY_HAVE_PERF_TRAMPOLINE */ + +/* Define to 1 to build the sqlite module with loadable extensions support. */ +/* #undef PY_SQLITE_ENABLE_LOAD_EXTENSION */ + +/* Define if SQLite was compiled with the serialize API */ +#define PY_SQLITE_HAVE_SERIALIZE 1 + +/* Default cipher suites list for ssl module. 1: Python's preferred selection, + 2: leave OpenSSL defaults untouched, 0: custom string */ +#define PY_SSL_DEFAULT_CIPHERS 1 + +/* Cipher suite string for PY_SSL_DEFAULT_CIPHERS=0 */ +/* #undef PY_SSL_DEFAULT_CIPHER_STRING */ + +/* PEP 11 Support tier (1, 2, 3 or 0 for unsupported) */ +#define PY_SUPPORT_TIER 3 + +/* Define if you want to build an interpreter with many run-time checks. */ +/* #undef Py_DEBUG */ + +/* Defined if Python is built as a shared library. */ +#define Py_ENABLE_SHARED 1 + +/* Define if you want to disable the GIL */ +/* #undef Py_GIL_DISABLED */ + +/* Define hash algorithm for str, bytes and memoryview. SipHash24: 1, FNV: 2, + SipHash13: 3, externally defined: 0 */ +/* #undef Py_HASH_ALGORITHM */ + +/* Define if rl_startup_hook takes arguments */ +/* #undef Py_RL_STARTUP_HOOK_TAKES_ARGS */ + +/* Define if you want to enable internal statistics gathering. */ +/* #undef Py_STATS */ + +/* The version of SunOS/Solaris as reported by `uname -r' without the dot. */ +/* #undef Py_SUNOS_VERSION */ + +/* 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 if i>>j for signed int i does not extend the sign bit when i < 0 */ +/* #undef SIGNED_RIGHT_SHIFT_ZERO_FILLS */ + +/* The size of `double', as computed by sizeof. */ +#define SIZEOF_DOUBLE 8 + +/* The size of `float', as computed by sizeof. */ +#define SIZEOF_FLOAT 4 + +/* The size of `fpos_t', as computed by sizeof. */ +#define SIZEOF_FPOS_T 8 + +/* The size of `int', as computed by sizeof. */ +#define SIZEOF_INT 4 + +/* The size of `long', as computed by sizeof. */ +#define SIZEOF_LONG 8 + +/* The size of `long double', as computed by sizeof. */ +#define SIZEOF_LONG_DOUBLE 16 + +/* The size of `long long', as computed by sizeof. */ +#define SIZEOF_LONG_LONG 8 + +/* The size of `off_t', as computed by sizeof. */ +#define SIZEOF_OFF_T 8 + +/* The size of `pid_t', as computed by sizeof. */ +#define SIZEOF_PID_T 4 + +/* The size of `pthread_key_t', as computed by sizeof. */ +#define SIZEOF_PTHREAD_KEY_T 4 + +/* The size of `pthread_t', as computed by sizeof. */ +#define SIZEOF_PTHREAD_T 8 + +/* The size of `short', as computed by sizeof. */ +#define SIZEOF_SHORT 2 + +/* The size of `size_t', as computed by sizeof. */ +#define SIZEOF_SIZE_T 8 + +/* The size of `time_t', as computed by sizeof. */ +#define SIZEOF_TIME_T 8 + +/* The size of `uintptr_t', as computed by sizeof. */ +#define SIZEOF_UINTPTR_T 8 + +/* The size of `void *', as computed by sizeof. */ +#define SIZEOF_VOID_P 8 + +/* The size of `wchar_t', as computed by sizeof. */ +#define SIZEOF_WCHAR_T 4 + +/* The size of `_Bool', as computed by sizeof. */ +#define SIZEOF__BOOL 1 + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define if you can safely include both and + (which you can't on SCO ODT 3.0). */ +#define SYS_SELECT_WITH_SYS_TIME 1 + +/* Custom thread stack size depending on chosen sanitizer runtimes. */ +/* #undef THREAD_STACK_SIZE */ + +/* Library needed by timemodule.c: librt may be needed for clock_gettime() */ +/* #undef TIMEMODULE_LIB */ + +/* Define to 1 if your declares `struct tm'. */ +/* #undef TM_IN_SYS_TIME */ + +/* Define if you want to use computed gotos in ceval.c. */ +/* #undef USE_COMPUTED_GOTOS */ + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# define _ALL_SOURCE 1 +#endif +/* Enable general extensions on macOS. */ +#ifndef _DARWIN_C_SOURCE +# define _DARWIN_C_SOURCE 1 +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# define __EXTENSIONS__ 1 +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +#endif +/* Enable X/Open compliant socket functions that do not require linking + with -lxnet on HP-UX 11.11. */ +#ifndef _HPUX_ALT_XOPEN_SOCKET_API +# define _HPUX_ALT_XOPEN_SOCKET_API 1 +#endif +/* Identify the host operating system as Minix. + This macro does not affect the system headers' behavior. + A future release of Autoconf may stop defining this macro. */ +#ifndef _MINIX +/* # undef _MINIX */ +#endif +/* Enable general extensions on NetBSD. + Enable NetBSD compatibility extensions on Minix. */ +#ifndef _NETBSD_SOURCE +# define _NETBSD_SOURCE 1 +#endif +/* Enable OpenBSD compatibility extensions on NetBSD. + Oddly enough, this does nothing on OpenBSD. */ +#ifndef _OPENBSD_SOURCE +# define _OPENBSD_SOURCE 1 +#endif +/* Define to 1 if needed for POSIX-compatible behavior. */ +#ifndef _POSIX_SOURCE +/* # undef _POSIX_SOURCE */ +#endif +/* Define to 2 if needed for POSIX-compatible behavior. */ +#ifndef _POSIX_1_SOURCE +/* # undef _POSIX_1_SOURCE */ +#endif +/* Enable POSIX-compatible threading on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# define _POSIX_PTHREAD_SEMANTICS 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */ +#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ +# define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */ +#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ +# define __STDC_WANT_IEC_60559_BFP_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */ +#ifndef __STDC_WANT_IEC_60559_DFP_EXT__ +# define __STDC_WANT_IEC_60559_DFP_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ +#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ +# define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-3:2015. */ +#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ +# define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */ +#ifndef __STDC_WANT_LIB_EXT2__ +# define __STDC_WANT_LIB_EXT2__ 1 +#endif +/* Enable extensions specified by ISO/IEC 24747:2009. */ +#ifndef __STDC_WANT_MATH_SPEC_FUNCS__ +# define __STDC_WANT_MATH_SPEC_FUNCS__ 1 +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# define _TANDEM_SOURCE 1 +#endif +/* Enable X/Open extensions. Define to 500 only if necessary + to make mbstate_t available. */ +#ifndef _XOPEN_SOURCE +# define _XOPEN_SOURCE 700 +#endif + + +/* Define if WINDOW in curses.h offers a field _flags. */ +/* #undef WINDOW_HAS_FLAGS */ + +/* 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 + +/* Define if you want to compile in DTrace support */ +/* #undef WITH_DTRACE */ + +/* Define if you want to use the new-style (Openstep, Rhapsody, MacOS) dynamic + linker (dyld) instead of the old-style (NextStep) dynamic linker (rld). + Dyld is necessary to support frameworks. */ +/* #undef WITH_DYLD */ + +/* Define to build the readline module against libedit. */ +/* #undef WITH_EDITLINE */ + +/* Define if you want to compile in object freelists optimization */ +#define WITH_FREELISTS 1 + +/* Define to 1 if libintl is needed for locale functions. */ +/* #undef WITH_LIBINTL */ + +/* Define if you want to compile in mimalloc memory allocator. */ +#define WITH_MIMALLOC 1 + +/* Define if you want to produce an OpenStep/Rhapsody framework (shared + library plus accessory files). */ +/* #undef WITH_NEXT_FRAMEWORK */ + +/* Define if you want to compile in Python-specific mallocs */ +#define WITH_PYMALLOC 1 + +/* Define if you want pymalloc to be disabled when running under valgrind */ +/* #undef WITH_VALGRIND */ + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +/* # undef WORDS_BIGENDIAN */ +# endif +#endif + +/* Define if arithmetic is subject to x87-style double rounding issue */ +/* #undef X87_DOUBLE_ROUNDING */ + +/* Define on OpenBSD to activate all library features */ +/* #undef _BSD_SOURCE */ + +/* Define on Darwin to activate all library features */ +#define _DARWIN_C_SOURCE 1 + +/* This must be set to 64 on some systems to enable large file support. */ +#define _FILE_OFFSET_BITS 64 + +/* Define to include mbstate_t for mbrtowc */ +/* #undef _INCLUDE__STDC_A1_SOURCE */ + +/* This must be defined on some systems to enable large file support. */ +#define _LARGEFILE_SOURCE 1 + +/* This must be defined on AIX systems to enable large file support. */ +/* #undef _LARGE_FILES */ + +/* Define on NetBSD to activate all library features */ +#define _NETBSD_SOURCE 1 + +/* Define to activate features from IEEE Stds 1003.1-2008 */ +#define _POSIX_C_SOURCE 200809L + +/* Define if you have POSIX threads, and your system does not define that. */ +/* #undef _POSIX_THREADS */ + +/* framework name */ +#define _PYTHONFRAMEWORK "" + +/* Define to force use of thread-safe errno, h_errno, and other functions */ +#define _REENTRANT 1 + +/* Define to 1 if you want to emulate getpid() on WASI */ +/* #undef _WASI_EMULATED_GETPID */ + +/* Define to 1 if you want to emulate process clocks on WASI */ +/* #undef _WASI_EMULATED_PROCESS_CLOCKS */ + +/* Define to 1 if you want to emulate signals on WASI */ +/* #undef _WASI_EMULATED_SIGNAL */ + +/* Define to the level of X/Open that your system supports */ +#define _XOPEN_SOURCE 700 + +/* Define to activate Unix95-and-earlier features */ +#define _XOPEN_SOURCE_EXTENDED 1 + +/* Define on FreeBSD to activate all library features */ +#define __BSD_VISIBLE 1 + +/* Define to 'long' if does not define clock_t. */ +/* #undef clock_t */ + +/* Define to empty if `const' does not conform to ANSI C. */ +/* #undef const */ + +/* Define to `int' if doesn't define. */ +/* #undef gid_t */ + +/* Define to `int' if does not define. */ +/* #undef mode_t */ + +/* Define to `long int' if does not define. */ +/* #undef off_t */ + +/* Define as a signed integer type capable of holding a process identifier. */ +/* #undef pid_t */ + +/* Define to empty if the keyword does not work. */ +/* #undef signed */ + +/* Define to `unsigned int' if does not define. */ +/* #undef size_t */ + +/* Define to 'int' if does not define. */ +/* #undef socklen_t */ + +/* Define to `int' if doesn't define. */ +/* #undef uid_t */ + + +/* Define the macros needed if on a UnixWare 7.x system. */ +#if defined(__USLC__) && defined(__SCO_VERSION__) +#define STRICT_SYSV_CURSES /* Don't use ncurses extensions */ +#endif + +#endif /*Py_PYCONFIG_H*/ + diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyconfig-ios-arm64.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyconfig-ios-arm64.h new file mode 100644 index 000000000..449939abe --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyconfig-ios-arm64.h @@ -0,0 +1,2015 @@ +/* pyconfig.h. Generated from pyconfig.h.in by configure. */ +/* pyconfig.h.in. Generated from configure.ac by autoheader. */ + + +#ifndef Py_PYCONFIG_H +#define Py_PYCONFIG_H + + +/* 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 */ + +/* 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 */ + +/* The normal alignment of `long', in bytes. */ +#define ALIGNOF_LONG 8 + +/* The normal alignment of `max_align_t', in bytes. */ +#define ALIGNOF_MAX_ALIGN_T 8 + +/* The normal alignment of `size_t', in bytes. */ +#define ALIGNOF_SIZE_T 8 + +/* 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 */ + +/* Define if C doubles are 64-bit IEEE 754 binary format, stored in ARM + mixed-endian order (byte order 45670123) */ +/* #undef DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 */ + +/* Define if C doubles are 64-bit IEEE 754 binary format, stored with the most + significant byte first */ +/* #undef DOUBLE_IS_BIG_ENDIAN_IEEE754 */ + +/* Define if C doubles are 64-bit IEEE 754 binary format, stored with the + least significant byte first */ +#define DOUBLE_IS_LITTLE_ENDIAN_IEEE754 1 + +/* 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 if getpgrp() must be called as getpgrp(0). */ +/* #undef GETPGRP_HAVE_ARG */ + +/* Define if you have the 'accept' function. */ +#define HAVE_ACCEPT 1 + +/* Define to 1 if you have the `accept4' function. */ +/* #undef HAVE_ACCEPT4 */ + +/* Define to 1 if you have the `acosh' function. */ +#define HAVE_ACOSH 1 + +/* struct addrinfo (netdb.h) */ +#define HAVE_ADDRINFO 1 + +/* Define to 1 if you have the `alarm' function. */ +#define HAVE_ALARM 1 + +/* Define if aligned memory access is required */ +#define HAVE_ALIGNED_REQUIRED 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ALLOCA_H 1 + +/* Define this if your time.h defines altzone. */ +/* #undef HAVE_ALTZONE */ + +/* Define to 1 if you have the `asinh' function. */ +#define HAVE_ASINH 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_ASM_TYPES_H */ + +/* Define to 1 if you have the `atanh' function. */ +#define HAVE_ATANH 1 + +/* Define if you have the 'bind' function. */ +#define HAVE_BIND 1 + +/* Define to 1 if you have the `bind_textdomain_codeset' function. */ +/* #undef HAVE_BIND_TEXTDOMAIN_CODESET */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_BLUETOOTH_BLUETOOTH_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_BLUETOOTH_H */ + +/* Define if mbstowcs(NULL, "text", 0) does not return the number of wide + chars that would be converted. */ +/* #undef HAVE_BROKEN_MBSTOWCS */ + +/* Define if nice() returns success/failure instead of the new priority. */ +/* #undef HAVE_BROKEN_NICE */ + +/* Define if the system reports an invalid PIPE_BUF value. */ +/* #undef HAVE_BROKEN_PIPE_BUF */ + +/* Define if poll() sets errno on invalid file descriptors. */ +/* #undef HAVE_BROKEN_POLL */ + +/* Define if the Posix semaphores do not work on your system */ +/* #undef HAVE_BROKEN_POSIX_SEMAPHORES */ + +/* Define if pthread_sigmask() does not work on your system. */ +/* #undef HAVE_BROKEN_PTHREAD_SIGMASK */ + +/* define to 1 if your sem_getvalue is broken. */ +#define HAVE_BROKEN_SEM_GETVALUE 1 + +/* Define if 'unsetenv' does not return an int. */ +/* #undef HAVE_BROKEN_UNSETENV */ + +/* Has builtin __atomic_load_n() and __atomic_store_n() functions */ +#define HAVE_BUILTIN_ATOMIC 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_BZLIB_H */ + +/* Define to 1 if you have the 'chflags' function. */ +#define HAVE_CHFLAGS 1 + +/* Define to 1 if you have the `chmod' function. */ +#define HAVE_CHMOD 1 + +/* Define to 1 if you have the `chown' function. */ +#define HAVE_CHOWN 1 + +/* Define if you have the 'chroot' function. */ +#define HAVE_CHROOT 1 + +/* Define to 1 if you have the `clock' function. */ +#define HAVE_CLOCK 1 + +/* Define to 1 if you have the `clock_getres' function. */ +#define HAVE_CLOCK_GETRES 1 + +/* Define to 1 if you have the `clock_gettime' function. */ +#define HAVE_CLOCK_GETTIME 1 + +/* Define to 1 if you have the `clock_nanosleep' function. */ +/* #undef HAVE_CLOCK_NANOSLEEP */ + +/* Define to 1 if you have the `clock_settime' function. */ +/* #undef HAVE_CLOCK_SETTIME */ + +/* Define to 1 if the system has the type `clock_t'. */ +#define HAVE_CLOCK_T 1 + +/* Define to 1 if you have the `closefrom' function. */ +/* #undef HAVE_CLOSEFROM */ + +/* Define to 1 if you have the `close_range' function. */ +/* #undef HAVE_CLOSE_RANGE */ + +/* Define if the C compiler supports computed gotos. */ +/* #undef HAVE_COMPUTED_GOTOS */ + +/* Define to 1 if you have the `confstr' function. */ +#define HAVE_CONFSTR 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_CONIO_H */ + +/* Define if you have the 'connect' function. */ +#define HAVE_CONNECT 1 + +/* Define to 1 if you have the `copy_file_range' function. */ +/* #undef HAVE_COPY_FILE_RANGE */ + +/* Define to 1 if you have the `ctermid' function. */ +#define HAVE_CTERMID 1 + +/* Define if you have the 'ctermid_r' function. */ +#define HAVE_CTERMID_R 1 + +/* Define if you have the 'filter' function. */ +/* #undef HAVE_CURSES_FILTER */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_CURSES_H */ + +/* Define if you have the 'has_key' function. */ +/* #undef HAVE_CURSES_HAS_KEY */ + +/* Define if you have the 'immedok' function. */ +/* #undef HAVE_CURSES_IMMEDOK */ + +/* Define if you have the 'is_pad' function. */ +/* #undef HAVE_CURSES_IS_PAD */ + +/* Define if you have the 'is_term_resized' function. */ +/* #undef HAVE_CURSES_IS_TERM_RESIZED */ + +/* Define if you have the 'resizeterm' function. */ +/* #undef HAVE_CURSES_RESIZETERM */ + +/* Define if you have the 'resize_term' function. */ +/* #undef HAVE_CURSES_RESIZE_TERM */ + +/* Define if you have the 'syncok' function. */ +/* #undef HAVE_CURSES_SYNCOK */ + +/* Define if you have the 'typeahead' function. */ +/* #undef HAVE_CURSES_TYPEAHEAD */ + +/* Define if you have the 'use_env' function. */ +/* #undef HAVE_CURSES_USE_ENV */ + +/* Define if you have the 'wchgat' function. */ +/* #undef HAVE_CURSES_WCHGAT */ + +/* Define to 1 if you have the header file. */ +#define HAVE_DB_H 1 + +/* Define to 1 if you have the declaration of `RTLD_DEEPBIND', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_DEEPBIND 0 + +/* Define to 1 if you have the declaration of `RTLD_GLOBAL', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_GLOBAL 1 + +/* Define to 1 if you have the declaration of `RTLD_LAZY', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_LAZY 1 + +/* Define to 1 if you have the declaration of `RTLD_LOCAL', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_LOCAL 1 + +/* Define to 1 if you have the declaration of `RTLD_MEMBER', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_MEMBER 0 + +/* Define to 1 if you have the declaration of `RTLD_NODELETE', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_NODELETE 1 + +/* Define to 1 if you have the declaration of `RTLD_NOLOAD', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_NOLOAD 1 + +/* Define to 1 if you have the declaration of `RTLD_NOW', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_NOW 1 + +/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. + */ +/* #undef HAVE_DECL_TZNAME */ + +/* Define to 1 if you have the device macros. */ +#define HAVE_DEVICE_MACROS 1 + +/* Define to 1 if you have the /dev/ptc device file. */ +/* #undef HAVE_DEV_PTC */ + +/* Define to 1 if you have the /dev/ptmx device file. */ +/* #undef HAVE_DEV_PTMX */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_DIRECT_H */ + +/* Define to 1 if the dirent structure has a d_type field */ +#define HAVE_DIRENT_D_TYPE 1 + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +#define HAVE_DIRENT_H 1 + +/* Define if you have the 'dirfd' function or macro. */ +#define HAVE_DIRFD 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if you have the `dlopen' function. */ +#define HAVE_DLOPEN 1 + +/* Define to 1 if you have the `dup' function. */ +#define HAVE_DUP 1 + +/* Define to 1 if you have the `dup2' function. */ +#define HAVE_DUP2 1 + +/* Define to 1 if you have the `dup3' function. */ +/* #undef HAVE_DUP3 */ + +/* Define if you have the '_dyld_shared_cache_contains_path' function. */ +#define HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH 1 + +/* Defined when any dynamic module loading is enabled. */ +#define HAVE_DYNAMIC_LOADING 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_EDITLINE_READLINE_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_ENDIAN_H 1 + +/* Define if you have the 'epoll_create' function. */ +/* #undef HAVE_EPOLL */ + +/* Define if you have the 'epoll_create1' function. */ +/* #undef HAVE_EPOLL_CREATE1 */ + +/* Define to 1 if you have the `erf' function. */ +#define HAVE_ERF 1 + +/* Define to 1 if you have the `erfc' function. */ +#define HAVE_ERFC 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ERRNO_H 1 + +/* Define if you have the 'eventfd' function. */ +/* #undef HAVE_EVENTFD */ + +/* 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 `expm1' function. */ +#define HAVE_EXPM1 1 + +/* Define to 1 if you have the `faccessat' function. */ +#define HAVE_FACCESSAT 1 + +/* Define if you have the 'fchdir' function. */ +#define HAVE_FCHDIR 1 + +/* Define to 1 if you have the `fchmod' function. */ +#define HAVE_FCHMOD 1 + +/* Define to 1 if you have the `fchmodat' function. */ +#define HAVE_FCHMODAT 1 + +/* Define to 1 if you have the `fchown' function. */ +#define HAVE_FCHOWN 1 + +/* Define to 1 if you have the `fchownat' function. */ +#define HAVE_FCHOWNAT 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_FCNTL_H 1 + +/* Define if you have the 'fdatasync' function. */ +/* #undef HAVE_FDATASYNC */ + +/* 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 `fexecve' function. */ +/* #undef HAVE_FEXECVE */ + +/* Define if you have the 'ffi_closure_alloc' function. */ +#define HAVE_FFI_CLOSURE_ALLOC 1 + +/* Define if you have the 'ffi_prep_cif_var' function. */ +#define HAVE_FFI_PREP_CIF_VAR 1 + +/* Define if you have the 'ffi_prep_closure_loc' function. */ +#define HAVE_FFI_PREP_CLOSURE_LOC 1 + +/* Define to 1 if you have the `flock' function. */ +#define HAVE_FLOCK 1 + +/* Define to 1 if you have the `fork' function. */ +#define HAVE_FORK 1 + +/* Define to 1 if you have the `fork1' function. */ +/* #undef HAVE_FORK1 */ + +/* Define to 1 if you have the `forkpty' function. */ +#define HAVE_FORKPTY 1 + +/* Define to 1 if you have the `fpathconf' function. */ +#define HAVE_FPATHCONF 1 + +/* Define to 1 if you have the `fseek64' function. */ +/* #undef HAVE_FSEEK64 */ + +/* Define to 1 if you have the `fseeko' function. */ +#define HAVE_FSEEKO 1 + +/* Define to 1 if you have the `fstatat' function. */ +#define HAVE_FSTATAT 1 + +/* Define to 1 if you have the `fstatvfs' function. */ +#define HAVE_FSTATVFS 1 + +/* Define if you have the 'fsync' function. */ +#define HAVE_FSYNC 1 + +/* Define to 1 if you have the `ftell64' function. */ +/* #undef HAVE_FTELL64 */ + +/* Define to 1 if you have the `ftello' function. */ +#define HAVE_FTELLO 1 + +/* Define to 1 if you have the `ftime' function. */ +#define HAVE_FTIME 1 + +/* Define to 1 if you have the `ftruncate' function. */ +#define HAVE_FTRUNCATE 1 + +/* Define to 1 if you have the `futimens' function. */ +#define HAVE_FUTIMENS 1 + +/* Define to 1 if you have the `futimes' function. */ +#define HAVE_FUTIMES 1 + +/* Define to 1 if you have the `futimesat' function. */ +/* #undef HAVE_FUTIMESAT */ + +/* Define to 1 if you have the `gai_strerror' function. */ +#define HAVE_GAI_STRERROR 1 + +/* Define if we can use gcc inline assembler to get and set mc68881 fpcr */ +/* #undef HAVE_GCC_ASM_FOR_MC68881 */ + +/* Define if we can use x64 gcc inline assembler */ +/* #undef HAVE_GCC_ASM_FOR_X64 */ + +/* Define if we can use gcc inline assembler to get and set x87 control word + */ +/* #undef HAVE_GCC_ASM_FOR_X87 */ + +/* Define if your compiler provides __uint128_t */ +#define HAVE_GCC_UINT128_T 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_GDBM_DASH_NDBM_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_GDBM_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_GDBM_NDBM_H */ + +/* Define if you have the getaddrinfo function. */ +#define HAVE_GETADDRINFO 1 + +/* Define this if you have flockfile(), getc_unlocked(), and funlockfile() */ +#define HAVE_GETC_UNLOCKED 1 + +/* Define to 1 if you have the `getegid' function. */ +#define HAVE_GETEGID 1 + +/* Define to 1 if you have the `getentropy' function. */ +/* #undef HAVE_GETENTROPY */ + +/* Define to 1 if you have the `geteuid' function. */ +#define HAVE_GETEUID 1 + +/* Define to 1 if you have the `getgid' function. */ +#define HAVE_GETGID 1 + +/* Define to 1 if you have the `getgrent' function. */ +#define HAVE_GETGRENT 1 + +/* Define to 1 if you have the `getgrgid' function. */ +#define HAVE_GETGRGID 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 + +/* Define to 1 if you have the `getgroups' function. */ +/* #undef HAVE_GETGROUPS */ + +/* Define if you have the 'gethostbyaddr' function. */ +#define HAVE_GETHOSTBYADDR 1 + +/* Define to 1 if you have the `gethostbyname' function. */ +#define HAVE_GETHOSTBYNAME 1 + +/* Define this if you have some version of gethostbyname_r() */ +/* #undef HAVE_GETHOSTBYNAME_R */ + +/* Define this if you have the 3-arg version of gethostbyname_r(). */ +/* #undef HAVE_GETHOSTBYNAME_R_3_ARG */ + +/* Define this if you have the 5-arg version of gethostbyname_r(). */ +/* #undef HAVE_GETHOSTBYNAME_R_5_ARG */ + +/* Define this if you have the 6-arg version of gethostbyname_r(). */ +/* #undef HAVE_GETHOSTBYNAME_R_6_ARG */ + +/* Define to 1 if you have the `gethostname' function. */ +#define HAVE_GETHOSTNAME 1 + +/* Define to 1 if you have the `getitimer' function. */ +#define HAVE_GETITIMER 1 + +/* Define to 1 if you have the `getloadavg' function. */ +#define HAVE_GETLOADAVG 1 + +/* Define to 1 if you have the `getlogin' function. */ +#define HAVE_GETLOGIN 1 + +/* Define to 1 if you have the `getnameinfo' function. */ +#define HAVE_GETNAMEINFO 1 + +/* Define if you have the 'getpagesize' function. */ +#define HAVE_GETPAGESIZE 1 + +/* Define if you have the 'getpeername' function. */ +#define HAVE_GETPEERNAME 1 + +/* Define to 1 if you have the `getpgid' function. */ +#define HAVE_GETPGID 1 + +/* Define to 1 if you have the `getpgrp' function. */ +#define HAVE_GETPGRP 1 + +/* Define to 1 if you have the `getpid' function. */ +#define HAVE_GETPID 1 + +/* Define to 1 if you have the `getppid' function. */ +#define HAVE_GETPPID 1 + +/* Define to 1 if you have the `getpriority' function. */ +#define HAVE_GETPRIORITY 1 + +/* Define if you have the 'getprotobyname' function. */ +#define HAVE_GETPROTOBYNAME 1 + +/* 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' function. */ +#define HAVE_GETPWUID 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 */ + +/* Define to 1 if the Linux getrandom() syscall is available */ +/* #undef HAVE_GETRANDOM_SYSCALL */ + +/* Define to 1 if you have the `getresgid' function. */ +/* #undef HAVE_GETRESGID */ + +/* Define to 1 if you have the `getresuid' function. */ +/* #undef HAVE_GETRESUID */ + +/* Define to 1 if you have the `getrusage' function. */ +#define HAVE_GETRUSAGE 1 + +/* Define if you have the 'getservbyname' function. */ +#define HAVE_GETSERVBYNAME 1 + +/* Define if you have the 'getservbyport' function. */ +#define HAVE_GETSERVBYPORT 1 + +/* Define to 1 if you have the `getsid' function. */ +#define HAVE_GETSID 1 + +/* Define if you have the 'getsockname' function. */ +#define HAVE_GETSOCKNAME 1 + +/* Define to 1 if you have the `getspent' function. */ +/* #undef HAVE_GETSPENT */ + +/* Define to 1 if you have the `getspnam' function. */ +/* #undef HAVE_GETSPNAM */ + +/* Define to 1 if you have the `getuid' function. */ +#define HAVE_GETUID 1 + +/* Define to 1 if you have the `getwd' function. */ +#define HAVE_GETWD 1 + +/* Define if glibc has incorrect _FORTIFY_SOURCE wrappers for memmove and + bcopy. */ +/* #undef HAVE_GLIBC_MEMMOVE_BUG */ + +/* Define to 1 if you have the `grantpt' function. */ +#define HAVE_GRANTPT 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_GRP_H 1 + +/* Define if you have the 'hstrerror' function. */ +#define HAVE_HSTRERROR 1 + +/* Define this if you have le64toh() */ +/* #undef HAVE_HTOLE64 */ + +/* Define to 1 if you have the `if_nameindex' function. */ +#define HAVE_IF_NAMEINDEX 1 + +/* Define if you have the 'inet_aton' function. */ +#define HAVE_INET_ATON 1 + +/* Define if you have the 'inet_ntoa' function. */ +#define HAVE_INET_NTOA 1 + +/* Define if you have the 'inet_pton' function. */ +#define HAVE_INET_PTON 1 + +/* Define to 1 if you have the `initgroups' function. */ +#define HAVE_INITGROUPS 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_IO_H */ + +/* Define if gcc has the ipa-pure-const bug. */ +/* #undef HAVE_IPA_PURE_CONST_BUG */ + +/* Define to 1 if you have the `kill' function. */ +#define HAVE_KILL 1 + +/* Define to 1 if you have the `killpg' function. */ +#define HAVE_KILLPG 1 + +/* Define if you have the 'kqueue' function. */ +#define HAVE_KQUEUE 1 + +/* Define to 1 if you have the header file. */ +#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.) */ +/* #undef HAVE_LARGEFILE_SUPPORT */ + +/* Define to 1 if you have the 'lchflags' function. */ +#define HAVE_LCHFLAGS 1 + +/* Define to 1 if you have the `lchmod' function. */ +#define HAVE_LCHMOD 1 + +/* Define to 1 if you have the `lchown' function. */ +#define HAVE_LCHOWN 1 + +/* Define to 1 if you want to build _blake2 module with libb2 */ +/* #undef HAVE_LIBB2 */ + +/* Define to 1 if you have the `db' library (-ldb). */ +/* #undef HAVE_LIBDB */ + +/* Define to 1 if you have the `dl' library (-ldl). */ +#define HAVE_LIBDL 1 + +/* Define to 1 if you have the `dld' library (-ldld). */ +/* #undef HAVE_LIBDLD */ + +/* Define to 1 if you have the `ieee' library (-lieee). */ +/* #undef HAVE_LIBIEEE */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LIBINTL_H */ + +/* Define to 1 if you have the `resolv' library (-lresolv). */ +/* #undef HAVE_LIBRESOLV */ + +/* Define to 1 if you have the `sendfile' library (-lsendfile). */ +/* #undef HAVE_LIBSENDFILE */ + +/* Define to 1 if you have the `sqlite3' library (-lsqlite3). */ +#define HAVE_LIBSQLITE3 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LIBUTIL_H */ + +/* Define if you have the 'link' function. */ +#define HAVE_LINK 1 + +/* Define to 1 if you have the `linkat' function. */ +#define HAVE_LINKAT 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_AUXVEC_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_CAN_BCM_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_CAN_H */ + +/* Define to 1 if you have the 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 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 header file. */ +/* #undef HAVE_LINUX_FS_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_LIMITS_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_MEMFD_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_NETLINK_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_QRTR_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_RANDOM_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_SOUNDCARD_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_TIPC_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_VM_SOCKETS_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_WAIT_H */ + +/* Define if you have the 'listen' function. */ +#define HAVE_LISTEN 1 + +/* Define to 1 if you have the `lockf' function. */ +#define HAVE_LOCKF 1 + +/* Define to 1 if you have the `log1p' function. */ +#define HAVE_LOG1P 1 + +/* Define to 1 if you have the `log2' function. */ +#define HAVE_LOG2 1 + +/* Define to 1 if you have the `login_tty' function. */ +#define HAVE_LOGIN_TTY 1 + +/* 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. */ +#define HAVE_LSTAT 1 + +/* Define to 1 if you have the `lutimes' function. */ +#define HAVE_LUTIMES 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LZMA_H */ + +/* 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 to 1 if you have the `memrchr' function. */ +/* #undef HAVE_MEMRCHR */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_MINIX_CONFIG_H */ + +/* Define to 1 if you have the `mkdirat' function. */ +#define HAVE_MKDIRAT 1 + +/* Define to 1 if you have the `mkfifo' function. */ +#define HAVE_MKFIFO 1 + +/* Define to 1 if you have the `mkfifoat' function. */ +#define HAVE_MKFIFOAT 1 + +/* Define to 1 if you have the `mknod' function. */ +#define HAVE_MKNOD 1 + +/* Define to 1 if you have the `mknodat' function. */ +#define HAVE_MKNODAT 1 + +/* Define to 1 if you have the `mktime' function. */ +#define HAVE_MKTIME 1 + +/* Define to 1 if you have the `mmap' function. */ +#define HAVE_MMAP 1 + +/* Define to 1 if you have the `mremap' function. */ +/* #undef HAVE_MREMAP */ + +/* Define to 1 if you have the `nanosleep' function. */ +#define HAVE_NANOSLEEP 1 + +/* Define if you have the 'ncurses' library */ +/* #undef HAVE_NCURSES */ + +/* Define if you have the 'ncursesw' library */ +/* #undef HAVE_NCURSESW */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSESW_CURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSESW_NCURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSESW_PANEL_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSES_CURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSES_NCURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSES_PANEL_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_NDBM_H 1 + +/* Define to 1 if you have the header file, and it defines `DIR'. */ +/* #undef HAVE_NDIR_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NETCAN_CAN_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_NETDB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_NETINET_IN_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NETLINK_NETLINK_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NETPACKET_PACKET_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_NET_ETHERNET_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_NET_IF_H 1 + +/* Define to 1 if you have the `nice' function. */ +#define HAVE_NICE 1 + +/* Define if the internal form of wchar_t in non-Unicode locales is not + Unicode. */ +/* #undef HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION */ + +/* Define to 1 if you have the `openat' function. */ +#define HAVE_OPENAT 1 + +/* Define to 1 if you have the `opendir' function. */ +#define HAVE_OPENDIR 1 + +/* Define to 1 if you have the `openpty' function. */ +#define HAVE_OPENPTY 1 + +/* Define if you have the 'panel' library */ +/* #undef HAVE_PANEL */ + +/* Define if you have the 'panelw' library */ +/* #undef HAVE_PANELW */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_PANEL_H */ + +/* Define to 1 if you have the `pathconf' function. */ +#define HAVE_PATHCONF 1 + +/* Define to 1 if you have the `pause' function. */ +#define HAVE_PAUSE 1 + +/* Define to 1 if you have the `pipe' function. */ +#define HAVE_PIPE 1 + +/* Define to 1 if you have the `pipe2' function. */ +/* #undef HAVE_PIPE2 */ + +/* Define to 1 if you have the `plock' function. */ +/* #undef HAVE_PLOCK */ + +/* Define to 1 if you have the `poll' function. */ +#define HAVE_POLL 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_POLL_H 1 + +/* Define to 1 if you have the `posix_fadvise' function. */ +/* #undef HAVE_POSIX_FADVISE */ + +/* Define to 1 if you have the `posix_fallocate' function. */ +/* #undef HAVE_POSIX_FALLOCATE */ + +/* Define to 1 if you have the `posix_openpt' function. */ +#define HAVE_POSIX_OPENPT 1 + +/* 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_spawn_file_actions_addclosefrom_np' + function. */ +/* #undef HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSEFROM_NP */ + +/* Define to 1 if you have the `pread' function. */ +#define HAVE_PREAD 1 + +/* Define to 1 if you have the `preadv' function. */ +#define HAVE_PREADV 1 + +/* Define to 1 if you have the `preadv2' function. */ +/* #undef HAVE_PREADV2 */ + +/* Define if you have the 'prlimit' function. */ +/* #undef HAVE_PRLIMIT */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_PROCESS_H */ + +/* Define to 1 if you have the `process_vm_readv' function. */ +/* #undef HAVE_PROCESS_VM_READV */ + +/* 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_cond_timedwait_relative_np' function. + */ +#define HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE_NP 1 + +/* Defined for Solaris 2.6 bug in pthread header. */ +/* #undef HAVE_PTHREAD_DESTRUCTOR */ + +/* Define to 1 if you have the `pthread_getcpuclockid' function. */ +/* #undef HAVE_PTHREAD_GETCPUCLOCKID */ + +/* Define to 1 if you have the header file. */ +#define HAVE_PTHREAD_H 1 + +/* Define to 1 if you have the `pthread_init' function. */ +/* #undef HAVE_PTHREAD_INIT */ + +/* Define to 1 if you have the `pthread_kill' function. */ +#define HAVE_PTHREAD_KILL 1 + +/* Define to 1 if you have the `pthread_sigmask' function. */ +#define HAVE_PTHREAD_SIGMASK 1 + +/* Define if platform requires stubbed pthreads support */ +/* #undef HAVE_PTHREAD_STUBS */ + +/* Define to 1 if you have the `ptsname' function. */ +#define HAVE_PTSNAME 1 + +/* Define to 1 if you have the `ptsname_r' function. */ +#define HAVE_PTSNAME_R 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_PTY_H */ + +/* Define to 1 if you have the `pwrite' function. */ +#define HAVE_PWRITE 1 + +/* Define to 1 if you have the `pwritev' function. */ +#define HAVE_PWRITEV 1 + +/* Define to 1 if you have the `pwritev2' function. */ +/* #undef HAVE_PWRITEV2 */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_READLINE_READLINE_H */ + +/* Define to 1 if you have the `readlink' function. */ +#define HAVE_READLINK 1 + +/* Define to 1 if you have the `readlinkat' function. */ +#define HAVE_READLINKAT 1 + +/* Define to 1 if you have the `readv' function. */ +#define HAVE_READV 1 + +/* Define to 1 if you have the `realpath' function. */ +#define HAVE_REALPATH 1 + +/* Define if you have the 'recvfrom' function. */ +#define HAVE_RECVFROM 1 + +/* Define to 1 if you have the `renameat' function. */ +#define HAVE_RENAMEAT 1 + +/* Define if readline supports append_history */ +/* #undef HAVE_RL_APPEND_HISTORY */ + +/* Define if you can turn off readline's signal handling. */ +/* #undef HAVE_RL_CATCH_SIGNAL */ + +/* Define to 1 if the system has the type `rl_compdisp_func_t'. */ +/* #undef HAVE_RL_COMPDISP_FUNC_T */ + +/* Define if you have readline 2.2 */ +/* #undef HAVE_RL_COMPLETION_APPEND_CHARACTER */ + +/* Define if you have readline 4.0 */ +/* #undef HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK */ + +/* Define if you have readline 4.2 */ +/* #undef HAVE_RL_COMPLETION_MATCHES */ + +/* Define if you have rl_completion_suppress_append */ +/* #undef HAVE_RL_COMPLETION_SUPPRESS_APPEND */ + +/* Define if you have readline 4.0 */ +/* #undef HAVE_RL_PRE_INPUT_HOOK */ + +/* Define if you have readline 4.0 */ +/* #undef HAVE_RL_RESIZE_TERMINAL */ + +/* 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 + +/* Define to 1 if you have the header file. */ +#define HAVE_SCHED_H 1 + +/* Define to 1 if you have the `sched_rr_get_interval' function. */ +/* #undef HAVE_SCHED_RR_GET_INTERVAL */ + +/* Define to 1 if you have the `sched_setaffinity' function. */ +/* #undef HAVE_SCHED_SETAFFINITY */ + +/* Define to 1 if you have the `sched_setparam' function. */ +/* #undef HAVE_SCHED_SETPARAM */ + +/* Define to 1 if you have the `sched_setscheduler' function. */ +/* #undef HAVE_SCHED_SETSCHEDULER */ + +/* Define to 1 if you have the `sem_clockwait' function. */ +/* #undef HAVE_SEM_CLOCKWAIT */ + +/* Define to 1 if you have the `sem_getvalue' function. */ +#define HAVE_SEM_GETVALUE 1 + +/* Define to 1 if you have the `sem_open' function. */ +#define HAVE_SEM_OPEN 1 + +/* Define to 1 if you have the `sem_timedwait' function. */ +/* #undef HAVE_SEM_TIMEDWAIT */ + +/* Define to 1 if you have the `sem_unlink' function. */ +#define HAVE_SEM_UNLINK 1 + +/* Define to 1 if you have the `sendfile' function. */ +#define HAVE_SENDFILE 1 + +/* Define if you have the 'sendto' function. */ +#define HAVE_SENDTO 1 + +/* Define to 1 if you have the `setegid' function. */ +#define HAVE_SETEGID 1 + +/* Define to 1 if you have the `seteuid' function. */ +#define HAVE_SETEUID 1 + +/* Define to 1 if you have the `setgid' function. */ +#define HAVE_SETGID 1 + +/* Define if you have the 'setgroups' function. */ +#define HAVE_SETGROUPS 1 + +/* Define to 1 if you have the `sethostname' function. */ +#define HAVE_SETHOSTNAME 1 + +/* Define to 1 if you have the `setitimer' function. */ +#define HAVE_SETITIMER 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SETJMP_H 1 + +/* Define to 1 if you have the `setlocale' function. */ +#define HAVE_SETLOCALE 1 + +/* Define to 1 if you have the `setns' function. */ +/* #undef HAVE_SETNS */ + +/* Define to 1 if you have the `setpgid' function. */ +#define HAVE_SETPGID 1 + +/* Define to 1 if you have the `setpgrp' function. */ +#define HAVE_SETPGRP 1 + +/* Define to 1 if you have the `setpriority' function. */ +#define HAVE_SETPRIORITY 1 + +/* Define to 1 if you have the `setregid' function. */ +#define HAVE_SETREGID 1 + +/* Define to 1 if you have the `setresgid' function. */ +/* #undef HAVE_SETRESGID */ + +/* Define to 1 if you have the `setresuid' function. */ +/* #undef HAVE_SETRESUID */ + +/* Define to 1 if you have the `setreuid' function. */ +#define HAVE_SETREUID 1 + +/* Define to 1 if you have the `setsid' function. */ +#define HAVE_SETSID 1 + +/* Define if you have the 'setsockopt' function. */ +#define HAVE_SETSOCKOPT 1 + +/* Define to 1 if you have the `setuid' function. */ +#define HAVE_SETUID 1 + +/* Define to 1 if you have the `setvbuf' function. */ +#define HAVE_SETVBUF 1 + +/* Define to 1 if you have the 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 `shutdown' function. */ +#define HAVE_SHUTDOWN 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 `si_band' is a member of `siginfo_t'. */ +#define HAVE_SIGINFO_T_SI_BAND 1 + +/* Define to 1 if you have the `siginterrupt' function. */ +#define HAVE_SIGINTERRUPT 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SIGNAL_H 1 + +/* Define to 1 if you have the `sigpending' function. */ +#define HAVE_SIGPENDING 1 + +/* Define to 1 if you have the `sigrelse' function. */ +#define HAVE_SIGRELSE 1 + +/* Define to 1 if you have the `sigtimedwait' function. */ +/* #undef HAVE_SIGTIMEDWAIT */ + +/* Define to 1 if you have the `sigwait' function. */ +#define HAVE_SIGWAIT 1 + +/* Define to 1 if you have the `sigwaitinfo' function. */ +/* #undef HAVE_SIGWAITINFO */ + +/* Define to 1 if you have the `snprintf' function. */ +#define HAVE_SNPRINTF 1 + +/* struct sockaddr_alg (linux/if_alg.h) */ +/* #undef HAVE_SOCKADDR_ALG */ + +/* Define if sockaddr has sa_len member */ +#define HAVE_SOCKADDR_SA_LEN 1 + +/* struct sockaddr_storage (sys/socket.h) */ +#define HAVE_SOCKADDR_STORAGE 1 + +/* Define if you have the 'socket' function. */ +#define HAVE_SOCKET 1 + +/* Define if you have the 'socketpair' function. */ +#define HAVE_SOCKETPAIR 1 + +/* Define to 1 if the system has the type `socklen_t'. */ +#define HAVE_SOCKLEN_T 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SPAWN_H 1 + +/* Define to 1 if you have the `splice' function. */ +/* #undef HAVE_SPLICE */ + +/* Define to 1 if the system has the type `ssize_t'. */ +#define HAVE_SSIZE_T 1 + +/* Define to 1 if you have the `statvfs' function. */ +#define HAVE_STATVFS 1 + +/* Define if you have struct stat.st_mtim.tv_nsec */ +/* #undef HAVE_STAT_TV_NSEC */ + +/* Define if you have struct stat.st_mtimensec */ +#define HAVE_STAT_TV_NSEC2 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDIO_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Has stdatomic.h with atomic_int and atomic_uintptr_t */ +#define HAVE_STD_ATOMIC 1 + +/* Define to 1 if you have the `strftime' function. */ +#define HAVE_STRFTIME 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `strlcpy' function. */ +#define HAVE_STRLCPY 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_STROPTS_H */ + +/* 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 + +/* Define to 1 if `pw_passwd' is a member of `struct passwd'. */ +#define HAVE_STRUCT_PASSWD_PW_PASSWD 1 + +/* Define to 1 if `st_birthtime' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_BIRTHTIME 1 + +/* Define to 1 if `st_blksize' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_BLKSIZE 1 + +/* Define to 1 if `st_blocks' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_BLOCKS 1 + +/* Define to 1 if `st_flags' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_FLAGS 1 + +/* Define to 1 if `st_gen' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_GEN 1 + +/* Define to 1 if `st_rdev' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_RDEV 1 + +/* Define to 1 if `tm_zone' is a member of `struct tm'. */ +#define HAVE_STRUCT_TM_TM_ZONE 1 + +/* Define if you have the 'symlink' function. */ +#define HAVE_SYMLINK 1 + +/* Define to 1 if you have the `symlinkat' function. */ +#define HAVE_SYMLINKAT 1 + +/* Define to 1 if you have the `sync' function. */ +#define HAVE_SYNC 1 + +/* Define to 1 if you have the `sysconf' function. */ +#define HAVE_SYSCONF 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYSEXITS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYSLOG_H 1 + +/* Define to 1 if you have the `system' function. */ +/* #undef HAVE_SYSTEM */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_AUDIOIO_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_AUXV_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_BSDTTY_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_DEVPOLL_H */ + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +/* #undef HAVE_SYS_DIR_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_ENDIAN_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_EPOLL_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_EVENTFD_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_EVENT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_FILE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_IOCTL_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_KERN_CONTROL_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_LOADAVG_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_LOCK_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_MEMFD_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_MKDEV_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_MMAN_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_MODEM_H */ + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +/* #undef HAVE_SYS_NDIR_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_POLL_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_RANDOM_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_RESOURCE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SELECT_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SENDFILE_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SOCKET_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SOUNDCARD_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STATVFS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SYSCALL_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SYSMACROS_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SYS_DOMAIN_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_TERMIO_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_TIMERFD_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIMES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_UIO_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_UN_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_UTSNAME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_WAIT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_XATTR_H 1 + +/* Define to 1 if you have the `tcgetpgrp' function. */ +#define HAVE_TCGETPGRP 1 + +/* Define to 1 if you have the `tcsetpgrp' function. */ +#define HAVE_TCSETPGRP 1 + +/* Define to 1 if you have the `tempnam' function. */ +#define HAVE_TEMPNAM 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_TERMIOS_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_TERM_H */ + +/* Define to 1 if you have the `timegm' function. */ +#define HAVE_TIMEGM 1 + +/* Define if you have the 'timerfd_create' function. */ +/* #undef HAVE_TIMERFD_CREATE */ + +/* Define to 1 if you have the `times' function. */ +#define HAVE_TIMES 1 + +/* Define to 1 if you have the `tmpfile' function. */ +#define HAVE_TMPFILE 1 + +/* Define to 1 if you have the `tmpnam' function. */ +#define HAVE_TMPNAM 1 + +/* Define to 1 if you have the `tmpnam_r' function. */ +/* #undef HAVE_TMPNAM_R */ + +/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use + `HAVE_STRUCT_TM_TM_ZONE' instead. */ +#define HAVE_TM_ZONE 1 + +/* Define to 1 if you have the `truncate' function. */ +#define HAVE_TRUNCATE 1 + +/* Define to 1 if you have the `ttyname' function. */ +#define HAVE_TTYNAME 1 + +/* Define to 1 if you don't have `tm_zone' but do have the external array + `tzname'. */ +/* #undef HAVE_TZNAME */ + +/* Define to 1 if you have the `umask' function. */ +#define HAVE_UMASK 1 + +/* Define to 1 if you have the `uname' function. */ +#define HAVE_UNAME 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to 1 if you have the `unlinkat' function. */ +#define HAVE_UNLINKAT 1 + +/* Define to 1 if you have the `unlockpt' function. */ +#define HAVE_UNLOCKPT 1 + +/* Define to 1 if you have the `unshare' function. */ +/* #undef HAVE_UNSHARE */ + +/* Define if you have a useable wchar_t type defined in wchar.h; useable means + wchar_t must be an unsigned type with at least 16 bits. (see + Include/unicodeobject.h). */ +/* #undef HAVE_USABLE_WCHAR_T */ + +/* Define to 1 if you have the header file. */ +#define HAVE_UTIL_H 1 + +/* Define to 1 if you have the `utimensat' function. */ +#define HAVE_UTIMENSAT 1 + +/* Define to 1 if you have the `utimes' function. */ +#define HAVE_UTIMES 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UTIME_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_UTMP_H */ + +/* Define to 1 if you have the `uuid_create' function. */ +/* #undef HAVE_UUID_CREATE */ + +/* Define to 1 if you have the `uuid_enc_be' function. */ +/* #undef HAVE_UUID_ENC_BE */ + +/* Define if uuid_generate_time_safe() exists. */ +/* #undef HAVE_UUID_GENERATE_TIME_SAFE */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_UUID_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_UUID_UUID_H 1 + +/* Define to 1 if you have the `vfork' function. */ +#define HAVE_VFORK 1 + +/* Define to 1 if you have the `wait' function. */ +#define HAVE_WAIT 1 + +/* Define to 1 if you have the `wait3' function. */ +#define HAVE_WAIT3 1 + +/* Define to 1 if you have the `wait4' function. */ +#define HAVE_WAIT4 1 + +/* Define to 1 if you have the `waitid' function. */ +#define HAVE_WAITID 1 + +/* Define to 1 if you have the `waitpid' function. */ +#define HAVE_WAITPID 1 + +/* Define if the compiler provides a wchar.h header file. */ +#define HAVE_WCHAR_H 1 + +/* Define to 1 if you have the `wcscoll' function. */ +#define HAVE_WCSCOLL 1 + +/* Define to 1 if you have the `wcsftime' function. */ +#define HAVE_WCSFTIME 1 + +/* Define to 1 if you have the `wcsxfrm' function. */ +#define HAVE_WCSXFRM 1 + +/* Define to 1 if you have the `wmemcmp' function. */ +#define HAVE_WMEMCMP 1 + +/* Define if tzset() actually switches the local timezone in a meaningful way. + */ +/* #undef HAVE_WORKING_TZSET */ + +/* Define to 1 if you have the `writev' function. */ +#define HAVE_WRITEV 1 + +/* Define if the zlib library has inflateCopy */ +#define HAVE_ZLIB_COPY 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ZLIB_H 1 + +/* Define to 1 if you have the `_getpty' function. */ +/* #undef HAVE__GETPTY */ + +/* Define to 1 if the system has the type `__uint128_t'. */ +#define HAVE___UINT128_T 1 + +/* Define to 1 if `major', `minor', and `makedev' are declared in . + */ +/* #undef MAJOR_IN_MKDEV */ + +/* Define to 1 if `major', `minor', and `makedev' are declared in + . */ +/* #undef MAJOR_IN_SYSMACROS */ + +/* Define if mvwdelch in curses.h is an expression. */ +/* #undef MVWDELCH_IS_EXPRESSION */ + +/* Define to the address where bug reports for this package should be sent. */ +/* #undef PACKAGE_BUGREPORT */ + +/* Define to the full name of this package. */ +/* #undef PACKAGE_NAME */ + +/* Define to the full name and version of this package. */ +/* #undef PACKAGE_STRING */ + +/* Define to the one symbol short name of this package. */ +/* #undef PACKAGE_TARNAME */ + +/* Define to the home page for this package. */ +/* #undef PACKAGE_URL */ + +/* Define to the version of this package. */ +/* #undef PACKAGE_VERSION */ + +/* Define if POSIX semaphores aren't enabled on your system */ +/* #undef POSIX_SEMAPHORES_NOT_ENABLED */ + +/* Define if pthread_key_t is compatible with int. */ +/* #undef PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT */ + +/* Defined if PTHREAD_SCOPE_SYSTEM supported. */ +/* #undef PTHREAD_SYSTEM_SCHED_SUPPORTED */ + +/* Define as the preferred size in bits of long digits */ +/* #undef PYLONG_BITS_IN_DIGIT */ + +/* enabled builtin hash modules */ +#define PY_BUILTIN_HASHLIB_HASHES "md5,sha1,sha2,sha3,blake2" + +/* Define if you want to coerce the C locale to a UTF-8 based locale */ +#define PY_COERCE_C_LOCALE 1 + +/* Define to 1 if you have the perf trampoline. */ +/* #undef PY_HAVE_PERF_TRAMPOLINE */ + +/* Define to 1 to build the sqlite module with loadable extensions support. */ +/* #undef PY_SQLITE_ENABLE_LOAD_EXTENSION */ + +/* Define if SQLite was compiled with the serialize API */ +#define PY_SQLITE_HAVE_SERIALIZE 1 + +/* Default cipher suites list for ssl module. 1: Python's preferred selection, + 2: leave OpenSSL defaults untouched, 0: custom string */ +#define PY_SSL_DEFAULT_CIPHERS 1 + +/* Cipher suite string for PY_SSL_DEFAULT_CIPHERS=0 */ +/* #undef PY_SSL_DEFAULT_CIPHER_STRING */ + +/* PEP 11 Support tier (1, 2, 3 or 0 for unsupported) */ +#define PY_SUPPORT_TIER 3 + +/* Define if you want to build an interpreter with many run-time checks. */ +/* #undef Py_DEBUG */ + +/* Defined if Python is built as a shared library. */ +/* #undef Py_ENABLE_SHARED */ + +/* Define if you want to disable the GIL */ +/* #undef Py_GIL_DISABLED */ + +/* Define hash algorithm for str, bytes and memoryview. SipHash24: 1, FNV: 2, + SipHash13: 3, externally defined: 0 */ +/* #undef Py_HASH_ALGORITHM */ + +/* Define if rl_startup_hook takes arguments */ +/* #undef Py_RL_STARTUP_HOOK_TAKES_ARGS */ + +/* Define if you want to enable internal statistics gathering. */ +/* #undef Py_STATS */ + +/* The version of SunOS/Solaris as reported by `uname -r' without the dot. */ +/* #undef Py_SUNOS_VERSION */ + +/* 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 if i>>j for signed int i does not extend the sign bit when i < 0 */ +/* #undef SIGNED_RIGHT_SHIFT_ZERO_FILLS */ + +/* The size of `double', as computed by sizeof. */ +#define SIZEOF_DOUBLE 8 + +/* The size of `float', as computed by sizeof. */ +#define SIZEOF_FLOAT 4 + +/* The size of `fpos_t', as computed by sizeof. */ +#define SIZEOF_FPOS_T 8 + +/* The size of `int', as computed by sizeof. */ +#define SIZEOF_INT 4 + +/* The size of `long', as computed by sizeof. */ +#define SIZEOF_LONG 8 + +/* The size of `long double', as computed by sizeof. */ +#define SIZEOF_LONG_DOUBLE 8 + +/* The size of `long long', as computed by sizeof. */ +#define SIZEOF_LONG_LONG 8 + +/* The size of `off_t', as computed by sizeof. */ +#define SIZEOF_OFF_T 8 + +/* The size of `pid_t', as computed by sizeof. */ +#define SIZEOF_PID_T 4 + +/* The size of `pthread_key_t', as computed by sizeof. */ +#define SIZEOF_PTHREAD_KEY_T 8 + +/* The size of `pthread_t', as computed by sizeof. */ +#define SIZEOF_PTHREAD_T 8 + +/* The size of `short', as computed by sizeof. */ +#define SIZEOF_SHORT 2 + +/* The size of `size_t', as computed by sizeof. */ +#define SIZEOF_SIZE_T 8 + +/* The size of `time_t', as computed by sizeof. */ +#define SIZEOF_TIME_T 8 + +/* The size of `uintptr_t', as computed by sizeof. */ +#define SIZEOF_UINTPTR_T 8 + +/* The size of `void *', as computed by sizeof. */ +#define SIZEOF_VOID_P 8 + +/* The size of `wchar_t', as computed by sizeof. */ +#define SIZEOF_WCHAR_T 4 + +/* The size of `_Bool', as computed by sizeof. */ +#define SIZEOF__BOOL 1 + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define if you can safely include both and + (which you can't on SCO ODT 3.0). */ +#define SYS_SELECT_WITH_SYS_TIME 1 + +/* Custom thread stack size depending on chosen sanitizer runtimes. */ +#define THREAD_STACK_SIZE 0x1000000 + +/* Library needed by timemodule.c: librt may be needed for clock_gettime() */ +/* #undef TIMEMODULE_LIB */ + +/* Define to 1 if your declares `struct tm'. */ +/* #undef TM_IN_SYS_TIME */ + +/* Define if you want to use computed gotos in ceval.c. */ +/* #undef USE_COMPUTED_GOTOS */ + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# define _ALL_SOURCE 1 +#endif +/* Enable general extensions on macOS. */ +#ifndef _DARWIN_C_SOURCE +# define _DARWIN_C_SOURCE 1 +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# define __EXTENSIONS__ 1 +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +#endif +/* Enable X/Open compliant socket functions that do not require linking + with -lxnet on HP-UX 11.11. */ +#ifndef _HPUX_ALT_XOPEN_SOCKET_API +# define _HPUX_ALT_XOPEN_SOCKET_API 1 +#endif +/* Identify the host operating system as Minix. + This macro does not affect the system headers' behavior. + A future release of Autoconf may stop defining this macro. */ +#ifndef _MINIX +/* # undef _MINIX */ +#endif +/* Enable general extensions on NetBSD. + Enable NetBSD compatibility extensions on Minix. */ +#ifndef _NETBSD_SOURCE +# define _NETBSD_SOURCE 1 +#endif +/* Enable OpenBSD compatibility extensions on NetBSD. + Oddly enough, this does nothing on OpenBSD. */ +#ifndef _OPENBSD_SOURCE +# define _OPENBSD_SOURCE 1 +#endif +/* Define to 1 if needed for POSIX-compatible behavior. */ +#ifndef _POSIX_SOURCE +/* # undef _POSIX_SOURCE */ +#endif +/* Define to 2 if needed for POSIX-compatible behavior. */ +#ifndef _POSIX_1_SOURCE +/* # undef _POSIX_1_SOURCE */ +#endif +/* Enable POSIX-compatible threading on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# define _POSIX_PTHREAD_SEMANTICS 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */ +#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ +# define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */ +#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ +# define __STDC_WANT_IEC_60559_BFP_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */ +#ifndef __STDC_WANT_IEC_60559_DFP_EXT__ +# define __STDC_WANT_IEC_60559_DFP_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ +#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ +# define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-3:2015. */ +#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ +# define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */ +#ifndef __STDC_WANT_LIB_EXT2__ +# define __STDC_WANT_LIB_EXT2__ 1 +#endif +/* Enable extensions specified by ISO/IEC 24747:2009. */ +#ifndef __STDC_WANT_MATH_SPEC_FUNCS__ +# define __STDC_WANT_MATH_SPEC_FUNCS__ 1 +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# define _TANDEM_SOURCE 1 +#endif +/* Enable X/Open extensions. Define to 500 only if necessary + to make mbstate_t available. */ +#ifndef _XOPEN_SOURCE +/* # undef _XOPEN_SOURCE */ +#endif + + +/* Define if WINDOW in curses.h offers a field _flags. */ +/* #undef WINDOW_HAS_FLAGS */ + +/* 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 + +/* Define if you want to compile in DTrace support */ +/* #undef WITH_DTRACE */ + +/* Define if you want to use the new-style (Openstep, Rhapsody, MacOS) dynamic + linker (dyld) instead of the old-style (NextStep) dynamic linker (rld). + Dyld is necessary to support frameworks. */ +/* #undef WITH_DYLD */ + +/* Define to build the readline module against libedit. */ +/* #undef WITH_EDITLINE */ + +/* Define if you want to compile in object freelists optimization */ +#define WITH_FREELISTS 1 + +/* Define to 1 if libintl is needed for locale functions. */ +/* #undef WITH_LIBINTL */ + +/* Define if you want to compile in mimalloc memory allocator. */ +#define WITH_MIMALLOC 1 + +/* Define if you want to produce an OpenStep/Rhapsody framework (shared + library plus accessory files). */ +#define WITH_NEXT_FRAMEWORK 1 + +/* Define if you want to compile in Python-specific mallocs */ +#define WITH_PYMALLOC 1 + +/* Define if you want pymalloc to be disabled when running under valgrind */ +/* #undef WITH_VALGRIND */ + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +/* # undef WORDS_BIGENDIAN */ +# endif +#endif + +/* Define if arithmetic is subject to x87-style double rounding issue */ +/* #undef X87_DOUBLE_ROUNDING */ + +/* Define on OpenBSD to activate all library features */ +/* #undef _BSD_SOURCE */ + +/* Define on Darwin to activate all library features */ +#define _DARWIN_C_SOURCE 1 + +/* This must be set to 64 on some systems to enable large file support. */ +#define _FILE_OFFSET_BITS 64 + +/* Define to include mbstate_t for mbrtowc */ +/* #undef _INCLUDE__STDC_A1_SOURCE */ + +/* This must be defined on some systems to enable large file support. */ +#define _LARGEFILE_SOURCE 1 + +/* This must be defined on AIX systems to enable large file support. */ +/* #undef _LARGE_FILES */ + +/* Define on NetBSD to activate all library features */ +#define _NETBSD_SOURCE 1 + +/* Define to activate features from IEEE Stds 1003.1-2008 */ +/* #undef _POSIX_C_SOURCE */ + +/* Define if you have POSIX threads, and your system does not define that. */ +/* #undef _POSIX_THREADS */ + +/* framework name */ +#define _PYTHONFRAMEWORK "Python" + +/* Define to force use of thread-safe errno, h_errno, and other functions */ +#define _REENTRANT 1 + +/* Define to 1 if you want to emulate getpid() on WASI */ +/* #undef _WASI_EMULATED_GETPID */ + +/* Define to 1 if you want to emulate process clocks on WASI */ +/* #undef _WASI_EMULATED_PROCESS_CLOCKS */ + +/* Define to 1 if you want to emulate signals on WASI */ +/* #undef _WASI_EMULATED_SIGNAL */ + +/* Define to the level of X/Open that your system supports */ +/* #undef _XOPEN_SOURCE */ + +/* Define to activate Unix95-and-earlier features */ +/* #undef _XOPEN_SOURCE_EXTENDED */ + +/* Define on FreeBSD to activate all library features */ +#define __BSD_VISIBLE 1 + +/* Define to 'long' if does not define clock_t. */ +/* #undef clock_t */ + +/* Define to empty if `const' does not conform to ANSI C. */ +/* #undef const */ + +/* Define to `int' if doesn't define. */ +/* #undef gid_t */ + +/* Define to `int' if does not define. */ +/* #undef mode_t */ + +/* Define to `long int' if does not define. */ +/* #undef off_t */ + +/* Define as a signed integer type capable of holding a process identifier. */ +/* #undef pid_t */ + +/* Define to empty if the keyword does not work. */ +/* #undef signed */ + +/* Define to `unsigned int' if does not define. */ +/* #undef size_t */ + +/* Define to 'int' if does not define. */ +/* #undef socklen_t */ + +/* Define to `int' if doesn't define. */ +/* #undef uid_t */ + + +/* Define the macros needed if on a UnixWare 7.x system. */ +#if defined(__USLC__) && defined(__SCO_VERSION__) +#define STRICT_SYSV_CURSES /* Don't use ncurses extensions */ +#endif + +#endif /*Py_PYCONFIG_H*/ + diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyconfig-ios-x86_64.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyconfig-ios-x86_64.h new file mode 100644 index 000000000..340fc9b6d --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyconfig-ios-x86_64.h @@ -0,0 +1,2015 @@ +/* pyconfig.h. Generated from pyconfig.h.in by configure. */ +/* pyconfig.h.in. Generated from configure.ac by autoheader. */ + + +#ifndef Py_PYCONFIG_H +#define Py_PYCONFIG_H + + +/* 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 */ + +/* 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 */ + +/* The normal alignment of `long', in bytes. */ +#define ALIGNOF_LONG 8 + +/* The normal alignment of `max_align_t', in bytes. */ +#define ALIGNOF_MAX_ALIGN_T 16 + +/* The normal alignment of `size_t', in bytes. */ +#define ALIGNOF_SIZE_T 8 + +/* 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 */ + +/* Define if C doubles are 64-bit IEEE 754 binary format, stored in ARM + mixed-endian order (byte order 45670123) */ +/* #undef DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 */ + +/* Define if C doubles are 64-bit IEEE 754 binary format, stored with the most + significant byte first */ +/* #undef DOUBLE_IS_BIG_ENDIAN_IEEE754 */ + +/* Define if C doubles are 64-bit IEEE 754 binary format, stored with the + least significant byte first */ +#define DOUBLE_IS_LITTLE_ENDIAN_IEEE754 1 + +/* 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 if getpgrp() must be called as getpgrp(0). */ +/* #undef GETPGRP_HAVE_ARG */ + +/* Define if you have the 'accept' function. */ +#define HAVE_ACCEPT 1 + +/* Define to 1 if you have the `accept4' function. */ +/* #undef HAVE_ACCEPT4 */ + +/* Define to 1 if you have the `acosh' function. */ +#define HAVE_ACOSH 1 + +/* struct addrinfo (netdb.h) */ +#define HAVE_ADDRINFO 1 + +/* Define to 1 if you have the `alarm' function. */ +#define HAVE_ALARM 1 + +/* Define if aligned memory access is required */ +#define HAVE_ALIGNED_REQUIRED 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ALLOCA_H 1 + +/* Define this if your time.h defines altzone. */ +/* #undef HAVE_ALTZONE */ + +/* Define to 1 if you have the `asinh' function. */ +#define HAVE_ASINH 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_ASM_TYPES_H */ + +/* Define to 1 if you have the `atanh' function. */ +#define HAVE_ATANH 1 + +/* Define if you have the 'bind' function. */ +#define HAVE_BIND 1 + +/* Define to 1 if you have the `bind_textdomain_codeset' function. */ +/* #undef HAVE_BIND_TEXTDOMAIN_CODESET */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_BLUETOOTH_BLUETOOTH_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_BLUETOOTH_H */ + +/* Define if mbstowcs(NULL, "text", 0) does not return the number of wide + chars that would be converted. */ +/* #undef HAVE_BROKEN_MBSTOWCS */ + +/* Define if nice() returns success/failure instead of the new priority. */ +/* #undef HAVE_BROKEN_NICE */ + +/* Define if the system reports an invalid PIPE_BUF value. */ +/* #undef HAVE_BROKEN_PIPE_BUF */ + +/* Define if poll() sets errno on invalid file descriptors. */ +/* #undef HAVE_BROKEN_POLL */ + +/* Define if the Posix semaphores do not work on your system */ +/* #undef HAVE_BROKEN_POSIX_SEMAPHORES */ + +/* Define if pthread_sigmask() does not work on your system. */ +/* #undef HAVE_BROKEN_PTHREAD_SIGMASK */ + +/* define to 1 if your sem_getvalue is broken. */ +#define HAVE_BROKEN_SEM_GETVALUE 1 + +/* Define if 'unsetenv' does not return an int. */ +/* #undef HAVE_BROKEN_UNSETENV */ + +/* Has builtin __atomic_load_n() and __atomic_store_n() functions */ +#define HAVE_BUILTIN_ATOMIC 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_BZLIB_H */ + +/* Define to 1 if you have the 'chflags' function. */ +#define HAVE_CHFLAGS 1 + +/* Define to 1 if you have the `chmod' function. */ +#define HAVE_CHMOD 1 + +/* Define to 1 if you have the `chown' function. */ +#define HAVE_CHOWN 1 + +/* Define if you have the 'chroot' function. */ +#define HAVE_CHROOT 1 + +/* Define to 1 if you have the `clock' function. */ +#define HAVE_CLOCK 1 + +/* Define to 1 if you have the `clock_getres' function. */ +#define HAVE_CLOCK_GETRES 1 + +/* Define to 1 if you have the `clock_gettime' function. */ +#define HAVE_CLOCK_GETTIME 1 + +/* Define to 1 if you have the `clock_nanosleep' function. */ +/* #undef HAVE_CLOCK_NANOSLEEP */ + +/* Define to 1 if you have the `clock_settime' function. */ +/* #undef HAVE_CLOCK_SETTIME */ + +/* Define to 1 if the system has the type `clock_t'. */ +#define HAVE_CLOCK_T 1 + +/* Define to 1 if you have the `closefrom' function. */ +/* #undef HAVE_CLOSEFROM */ + +/* Define to 1 if you have the `close_range' function. */ +/* #undef HAVE_CLOSE_RANGE */ + +/* Define if the C compiler supports computed gotos. */ +/* #undef HAVE_COMPUTED_GOTOS */ + +/* Define to 1 if you have the `confstr' function. */ +#define HAVE_CONFSTR 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_CONIO_H */ + +/* Define if you have the 'connect' function. */ +#define HAVE_CONNECT 1 + +/* Define to 1 if you have the `copy_file_range' function. */ +/* #undef HAVE_COPY_FILE_RANGE */ + +/* Define to 1 if you have the `ctermid' function. */ +#define HAVE_CTERMID 1 + +/* Define if you have the 'ctermid_r' function. */ +#define HAVE_CTERMID_R 1 + +/* Define if you have the 'filter' function. */ +/* #undef HAVE_CURSES_FILTER */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_CURSES_H */ + +/* Define if you have the 'has_key' function. */ +/* #undef HAVE_CURSES_HAS_KEY */ + +/* Define if you have the 'immedok' function. */ +/* #undef HAVE_CURSES_IMMEDOK */ + +/* Define if you have the 'is_pad' function. */ +/* #undef HAVE_CURSES_IS_PAD */ + +/* Define if you have the 'is_term_resized' function. */ +/* #undef HAVE_CURSES_IS_TERM_RESIZED */ + +/* Define if you have the 'resizeterm' function. */ +/* #undef HAVE_CURSES_RESIZETERM */ + +/* Define if you have the 'resize_term' function. */ +/* #undef HAVE_CURSES_RESIZE_TERM */ + +/* Define if you have the 'syncok' function. */ +/* #undef HAVE_CURSES_SYNCOK */ + +/* Define if you have the 'typeahead' function. */ +/* #undef HAVE_CURSES_TYPEAHEAD */ + +/* Define if you have the 'use_env' function. */ +/* #undef HAVE_CURSES_USE_ENV */ + +/* Define if you have the 'wchgat' function. */ +/* #undef HAVE_CURSES_WCHGAT */ + +/* Define to 1 if you have the header file. */ +#define HAVE_DB_H 1 + +/* Define to 1 if you have the declaration of `RTLD_DEEPBIND', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_DEEPBIND 0 + +/* Define to 1 if you have the declaration of `RTLD_GLOBAL', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_GLOBAL 1 + +/* Define to 1 if you have the declaration of `RTLD_LAZY', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_LAZY 1 + +/* Define to 1 if you have the declaration of `RTLD_LOCAL', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_LOCAL 1 + +/* Define to 1 if you have the declaration of `RTLD_MEMBER', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_MEMBER 0 + +/* Define to 1 if you have the declaration of `RTLD_NODELETE', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_NODELETE 1 + +/* Define to 1 if you have the declaration of `RTLD_NOLOAD', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_NOLOAD 1 + +/* Define to 1 if you have the declaration of `RTLD_NOW', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_NOW 1 + +/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. + */ +/* #undef HAVE_DECL_TZNAME */ + +/* Define to 1 if you have the device macros. */ +#define HAVE_DEVICE_MACROS 1 + +/* Define to 1 if you have the /dev/ptc device file. */ +/* #undef HAVE_DEV_PTC */ + +/* Define to 1 if you have the /dev/ptmx device file. */ +/* #undef HAVE_DEV_PTMX */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_DIRECT_H */ + +/* Define to 1 if the dirent structure has a d_type field */ +#define HAVE_DIRENT_D_TYPE 1 + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +#define HAVE_DIRENT_H 1 + +/* Define if you have the 'dirfd' function or macro. */ +#define HAVE_DIRFD 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if you have the `dlopen' function. */ +#define HAVE_DLOPEN 1 + +/* Define to 1 if you have the `dup' function. */ +#define HAVE_DUP 1 + +/* Define to 1 if you have the `dup2' function. */ +#define HAVE_DUP2 1 + +/* Define to 1 if you have the `dup3' function. */ +/* #undef HAVE_DUP3 */ + +/* Define if you have the '_dyld_shared_cache_contains_path' function. */ +#define HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH 1 + +/* Defined when any dynamic module loading is enabled. */ +#define HAVE_DYNAMIC_LOADING 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_EDITLINE_READLINE_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_ENDIAN_H 1 + +/* Define if you have the 'epoll_create' function. */ +/* #undef HAVE_EPOLL */ + +/* Define if you have the 'epoll_create1' function. */ +/* #undef HAVE_EPOLL_CREATE1 */ + +/* Define to 1 if you have the `erf' function. */ +#define HAVE_ERF 1 + +/* Define to 1 if you have the `erfc' function. */ +#define HAVE_ERFC 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ERRNO_H 1 + +/* Define if you have the 'eventfd' function. */ +/* #undef HAVE_EVENTFD */ + +/* 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 `expm1' function. */ +#define HAVE_EXPM1 1 + +/* Define to 1 if you have the `faccessat' function. */ +#define HAVE_FACCESSAT 1 + +/* Define if you have the 'fchdir' function. */ +#define HAVE_FCHDIR 1 + +/* Define to 1 if you have the `fchmod' function. */ +#define HAVE_FCHMOD 1 + +/* Define to 1 if you have the `fchmodat' function. */ +#define HAVE_FCHMODAT 1 + +/* Define to 1 if you have the `fchown' function. */ +#define HAVE_FCHOWN 1 + +/* Define to 1 if you have the `fchownat' function. */ +#define HAVE_FCHOWNAT 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_FCNTL_H 1 + +/* Define if you have the 'fdatasync' function. */ +/* #undef HAVE_FDATASYNC */ + +/* 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 `fexecve' function. */ +/* #undef HAVE_FEXECVE */ + +/* Define if you have the 'ffi_closure_alloc' function. */ +#define HAVE_FFI_CLOSURE_ALLOC 1 + +/* Define if you have the 'ffi_prep_cif_var' function. */ +#define HAVE_FFI_PREP_CIF_VAR 1 + +/* Define if you have the 'ffi_prep_closure_loc' function. */ +#define HAVE_FFI_PREP_CLOSURE_LOC 1 + +/* Define to 1 if you have the `flock' function. */ +#define HAVE_FLOCK 1 + +/* Define to 1 if you have the `fork' function. */ +#define HAVE_FORK 1 + +/* Define to 1 if you have the `fork1' function. */ +/* #undef HAVE_FORK1 */ + +/* Define to 1 if you have the `forkpty' function. */ +#define HAVE_FORKPTY 1 + +/* Define to 1 if you have the `fpathconf' function. */ +#define HAVE_FPATHCONF 1 + +/* Define to 1 if you have the `fseek64' function. */ +/* #undef HAVE_FSEEK64 */ + +/* Define to 1 if you have the `fseeko' function. */ +#define HAVE_FSEEKO 1 + +/* Define to 1 if you have the `fstatat' function. */ +#define HAVE_FSTATAT 1 + +/* Define to 1 if you have the `fstatvfs' function. */ +#define HAVE_FSTATVFS 1 + +/* Define if you have the 'fsync' function. */ +#define HAVE_FSYNC 1 + +/* Define to 1 if you have the `ftell64' function. */ +/* #undef HAVE_FTELL64 */ + +/* Define to 1 if you have the `ftello' function. */ +#define HAVE_FTELLO 1 + +/* Define to 1 if you have the `ftime' function. */ +#define HAVE_FTIME 1 + +/* Define to 1 if you have the `ftruncate' function. */ +#define HAVE_FTRUNCATE 1 + +/* Define to 1 if you have the `futimens' function. */ +#define HAVE_FUTIMENS 1 + +/* Define to 1 if you have the `futimes' function. */ +#define HAVE_FUTIMES 1 + +/* Define to 1 if you have the `futimesat' function. */ +/* #undef HAVE_FUTIMESAT */ + +/* Define to 1 if you have the `gai_strerror' function. */ +#define HAVE_GAI_STRERROR 1 + +/* Define if we can use gcc inline assembler to get and set mc68881 fpcr */ +/* #undef HAVE_GCC_ASM_FOR_MC68881 */ + +/* Define if we can use x64 gcc inline assembler */ +#define HAVE_GCC_ASM_FOR_X64 1 + +/* Define if we can use gcc inline assembler to get and set x87 control word + */ +#define HAVE_GCC_ASM_FOR_X87 1 + +/* Define if your compiler provides __uint128_t */ +#define HAVE_GCC_UINT128_T 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_GDBM_DASH_NDBM_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_GDBM_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_GDBM_NDBM_H */ + +/* Define if you have the getaddrinfo function. */ +#define HAVE_GETADDRINFO 1 + +/* Define this if you have flockfile(), getc_unlocked(), and funlockfile() */ +#define HAVE_GETC_UNLOCKED 1 + +/* Define to 1 if you have the `getegid' function. */ +#define HAVE_GETEGID 1 + +/* Define to 1 if you have the `getentropy' function. */ +/* #undef HAVE_GETENTROPY */ + +/* Define to 1 if you have the `geteuid' function. */ +#define HAVE_GETEUID 1 + +/* Define to 1 if you have the `getgid' function. */ +#define HAVE_GETGID 1 + +/* Define to 1 if you have the `getgrent' function. */ +#define HAVE_GETGRENT 1 + +/* Define to 1 if you have the `getgrgid' function. */ +#define HAVE_GETGRGID 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 + +/* Define to 1 if you have the `getgroups' function. */ +/* #undef HAVE_GETGROUPS */ + +/* Define if you have the 'gethostbyaddr' function. */ +#define HAVE_GETHOSTBYADDR 1 + +/* Define to 1 if you have the `gethostbyname' function. */ +#define HAVE_GETHOSTBYNAME 1 + +/* Define this if you have some version of gethostbyname_r() */ +/* #undef HAVE_GETHOSTBYNAME_R */ + +/* Define this if you have the 3-arg version of gethostbyname_r(). */ +/* #undef HAVE_GETHOSTBYNAME_R_3_ARG */ + +/* Define this if you have the 5-arg version of gethostbyname_r(). */ +/* #undef HAVE_GETHOSTBYNAME_R_5_ARG */ + +/* Define this if you have the 6-arg version of gethostbyname_r(). */ +/* #undef HAVE_GETHOSTBYNAME_R_6_ARG */ + +/* Define to 1 if you have the `gethostname' function. */ +#define HAVE_GETHOSTNAME 1 + +/* Define to 1 if you have the `getitimer' function. */ +#define HAVE_GETITIMER 1 + +/* Define to 1 if you have the `getloadavg' function. */ +#define HAVE_GETLOADAVG 1 + +/* Define to 1 if you have the `getlogin' function. */ +#define HAVE_GETLOGIN 1 + +/* Define to 1 if you have the `getnameinfo' function. */ +#define HAVE_GETNAMEINFO 1 + +/* Define if you have the 'getpagesize' function. */ +#define HAVE_GETPAGESIZE 1 + +/* Define if you have the 'getpeername' function. */ +#define HAVE_GETPEERNAME 1 + +/* Define to 1 if you have the `getpgid' function. */ +#define HAVE_GETPGID 1 + +/* Define to 1 if you have the `getpgrp' function. */ +#define HAVE_GETPGRP 1 + +/* Define to 1 if you have the `getpid' function. */ +#define HAVE_GETPID 1 + +/* Define to 1 if you have the `getppid' function. */ +#define HAVE_GETPPID 1 + +/* Define to 1 if you have the `getpriority' function. */ +#define HAVE_GETPRIORITY 1 + +/* Define if you have the 'getprotobyname' function. */ +#define HAVE_GETPROTOBYNAME 1 + +/* 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' function. */ +#define HAVE_GETPWUID 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 */ + +/* Define to 1 if the Linux getrandom() syscall is available */ +/* #undef HAVE_GETRANDOM_SYSCALL */ + +/* Define to 1 if you have the `getresgid' function. */ +/* #undef HAVE_GETRESGID */ + +/* Define to 1 if you have the `getresuid' function. */ +/* #undef HAVE_GETRESUID */ + +/* Define to 1 if you have the `getrusage' function. */ +#define HAVE_GETRUSAGE 1 + +/* Define if you have the 'getservbyname' function. */ +#define HAVE_GETSERVBYNAME 1 + +/* Define if you have the 'getservbyport' function. */ +#define HAVE_GETSERVBYPORT 1 + +/* Define to 1 if you have the `getsid' function. */ +#define HAVE_GETSID 1 + +/* Define if you have the 'getsockname' function. */ +#define HAVE_GETSOCKNAME 1 + +/* Define to 1 if you have the `getspent' function. */ +/* #undef HAVE_GETSPENT */ + +/* Define to 1 if you have the `getspnam' function. */ +/* #undef HAVE_GETSPNAM */ + +/* Define to 1 if you have the `getuid' function. */ +#define HAVE_GETUID 1 + +/* Define to 1 if you have the `getwd' function. */ +#define HAVE_GETWD 1 + +/* Define if glibc has incorrect _FORTIFY_SOURCE wrappers for memmove and + bcopy. */ +/* #undef HAVE_GLIBC_MEMMOVE_BUG */ + +/* Define to 1 if you have the `grantpt' function. */ +#define HAVE_GRANTPT 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_GRP_H 1 + +/* Define if you have the 'hstrerror' function. */ +#define HAVE_HSTRERROR 1 + +/* Define this if you have le64toh() */ +/* #undef HAVE_HTOLE64 */ + +/* Define to 1 if you have the `if_nameindex' function. */ +#define HAVE_IF_NAMEINDEX 1 + +/* Define if you have the 'inet_aton' function. */ +#define HAVE_INET_ATON 1 + +/* Define if you have the 'inet_ntoa' function. */ +#define HAVE_INET_NTOA 1 + +/* Define if you have the 'inet_pton' function. */ +#define HAVE_INET_PTON 1 + +/* Define to 1 if you have the `initgroups' function. */ +#define HAVE_INITGROUPS 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_IO_H */ + +/* Define if gcc has the ipa-pure-const bug. */ +/* #undef HAVE_IPA_PURE_CONST_BUG */ + +/* Define to 1 if you have the `kill' function. */ +#define HAVE_KILL 1 + +/* Define to 1 if you have the `killpg' function. */ +#define HAVE_KILLPG 1 + +/* Define if you have the 'kqueue' function. */ +#define HAVE_KQUEUE 1 + +/* Define to 1 if you have the header file. */ +#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.) */ +/* #undef HAVE_LARGEFILE_SUPPORT */ + +/* Define to 1 if you have the 'lchflags' function. */ +#define HAVE_LCHFLAGS 1 + +/* Define to 1 if you have the `lchmod' function. */ +#define HAVE_LCHMOD 1 + +/* Define to 1 if you have the `lchown' function. */ +#define HAVE_LCHOWN 1 + +/* Define to 1 if you want to build _blake2 module with libb2 */ +/* #undef HAVE_LIBB2 */ + +/* Define to 1 if you have the `db' library (-ldb). */ +/* #undef HAVE_LIBDB */ + +/* Define to 1 if you have the `dl' library (-ldl). */ +#define HAVE_LIBDL 1 + +/* Define to 1 if you have the `dld' library (-ldld). */ +/* #undef HAVE_LIBDLD */ + +/* Define to 1 if you have the `ieee' library (-lieee). */ +/* #undef HAVE_LIBIEEE */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LIBINTL_H */ + +/* Define to 1 if you have the `resolv' library (-lresolv). */ +/* #undef HAVE_LIBRESOLV */ + +/* Define to 1 if you have the `sendfile' library (-lsendfile). */ +/* #undef HAVE_LIBSENDFILE */ + +/* Define to 1 if you have the `sqlite3' library (-lsqlite3). */ +#define HAVE_LIBSQLITE3 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LIBUTIL_H */ + +/* Define if you have the 'link' function. */ +#define HAVE_LINK 1 + +/* Define to 1 if you have the `linkat' function. */ +#define HAVE_LINKAT 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_AUXVEC_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_CAN_BCM_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_CAN_H */ + +/* Define to 1 if you have the 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 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 header file. */ +/* #undef HAVE_LINUX_FS_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_LIMITS_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_MEMFD_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_NETLINK_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_QRTR_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_RANDOM_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_SOUNDCARD_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_TIPC_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_VM_SOCKETS_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_WAIT_H */ + +/* Define if you have the 'listen' function. */ +#define HAVE_LISTEN 1 + +/* Define to 1 if you have the `lockf' function. */ +#define HAVE_LOCKF 1 + +/* Define to 1 if you have the `log1p' function. */ +#define HAVE_LOG1P 1 + +/* Define to 1 if you have the `log2' function. */ +#define HAVE_LOG2 1 + +/* Define to 1 if you have the `login_tty' function. */ +#define HAVE_LOGIN_TTY 1 + +/* 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. */ +#define HAVE_LSTAT 1 + +/* Define to 1 if you have the `lutimes' function. */ +#define HAVE_LUTIMES 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LZMA_H */ + +/* 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 to 1 if you have the `memrchr' function. */ +/* #undef HAVE_MEMRCHR */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_MINIX_CONFIG_H */ + +/* Define to 1 if you have the `mkdirat' function. */ +#define HAVE_MKDIRAT 1 + +/* Define to 1 if you have the `mkfifo' function. */ +#define HAVE_MKFIFO 1 + +/* Define to 1 if you have the `mkfifoat' function. */ +#define HAVE_MKFIFOAT 1 + +/* Define to 1 if you have the `mknod' function. */ +#define HAVE_MKNOD 1 + +/* Define to 1 if you have the `mknodat' function. */ +#define HAVE_MKNODAT 1 + +/* Define to 1 if you have the `mktime' function. */ +#define HAVE_MKTIME 1 + +/* Define to 1 if you have the `mmap' function. */ +#define HAVE_MMAP 1 + +/* Define to 1 if you have the `mremap' function. */ +/* #undef HAVE_MREMAP */ + +/* Define to 1 if you have the `nanosleep' function. */ +#define HAVE_NANOSLEEP 1 + +/* Define if you have the 'ncurses' library */ +/* #undef HAVE_NCURSES */ + +/* Define if you have the 'ncursesw' library */ +/* #undef HAVE_NCURSESW */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSESW_CURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSESW_NCURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSESW_PANEL_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSES_CURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSES_NCURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSES_PANEL_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_NDBM_H 1 + +/* Define to 1 if you have the header file, and it defines `DIR'. */ +/* #undef HAVE_NDIR_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NETCAN_CAN_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_NETDB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_NETINET_IN_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NETLINK_NETLINK_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NETPACKET_PACKET_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_NET_ETHERNET_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_NET_IF_H 1 + +/* Define to 1 if you have the `nice' function. */ +#define HAVE_NICE 1 + +/* Define if the internal form of wchar_t in non-Unicode locales is not + Unicode. */ +/* #undef HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION */ + +/* Define to 1 if you have the `openat' function. */ +#define HAVE_OPENAT 1 + +/* Define to 1 if you have the `opendir' function. */ +#define HAVE_OPENDIR 1 + +/* Define to 1 if you have the `openpty' function. */ +#define HAVE_OPENPTY 1 + +/* Define if you have the 'panel' library */ +/* #undef HAVE_PANEL */ + +/* Define if you have the 'panelw' library */ +/* #undef HAVE_PANELW */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_PANEL_H */ + +/* Define to 1 if you have the `pathconf' function. */ +#define HAVE_PATHCONF 1 + +/* Define to 1 if you have the `pause' function. */ +#define HAVE_PAUSE 1 + +/* Define to 1 if you have the `pipe' function. */ +#define HAVE_PIPE 1 + +/* Define to 1 if you have the `pipe2' function. */ +/* #undef HAVE_PIPE2 */ + +/* Define to 1 if you have the `plock' function. */ +/* #undef HAVE_PLOCK */ + +/* Define to 1 if you have the `poll' function. */ +#define HAVE_POLL 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_POLL_H 1 + +/* Define to 1 if you have the `posix_fadvise' function. */ +/* #undef HAVE_POSIX_FADVISE */ + +/* Define to 1 if you have the `posix_fallocate' function. */ +/* #undef HAVE_POSIX_FALLOCATE */ + +/* Define to 1 if you have the `posix_openpt' function. */ +#define HAVE_POSIX_OPENPT 1 + +/* 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_spawn_file_actions_addclosefrom_np' + function. */ +/* #undef HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSEFROM_NP */ + +/* Define to 1 if you have the `pread' function. */ +#define HAVE_PREAD 1 + +/* Define to 1 if you have the `preadv' function. */ +#define HAVE_PREADV 1 + +/* Define to 1 if you have the `preadv2' function. */ +/* #undef HAVE_PREADV2 */ + +/* Define if you have the 'prlimit' function. */ +/* #undef HAVE_PRLIMIT */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_PROCESS_H */ + +/* Define to 1 if you have the `process_vm_readv' function. */ +/* #undef HAVE_PROCESS_VM_READV */ + +/* 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_cond_timedwait_relative_np' function. + */ +#define HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE_NP 1 + +/* Defined for Solaris 2.6 bug in pthread header. */ +/* #undef HAVE_PTHREAD_DESTRUCTOR */ + +/* Define to 1 if you have the `pthread_getcpuclockid' function. */ +/* #undef HAVE_PTHREAD_GETCPUCLOCKID */ + +/* Define to 1 if you have the header file. */ +#define HAVE_PTHREAD_H 1 + +/* Define to 1 if you have the `pthread_init' function. */ +/* #undef HAVE_PTHREAD_INIT */ + +/* Define to 1 if you have the `pthread_kill' function. */ +#define HAVE_PTHREAD_KILL 1 + +/* Define to 1 if you have the `pthread_sigmask' function. */ +#define HAVE_PTHREAD_SIGMASK 1 + +/* Define if platform requires stubbed pthreads support */ +/* #undef HAVE_PTHREAD_STUBS */ + +/* Define to 1 if you have the `ptsname' function. */ +#define HAVE_PTSNAME 1 + +/* Define to 1 if you have the `ptsname_r' function. */ +#define HAVE_PTSNAME_R 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_PTY_H */ + +/* Define to 1 if you have the `pwrite' function. */ +#define HAVE_PWRITE 1 + +/* Define to 1 if you have the `pwritev' function. */ +#define HAVE_PWRITEV 1 + +/* Define to 1 if you have the `pwritev2' function. */ +/* #undef HAVE_PWRITEV2 */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_READLINE_READLINE_H */ + +/* Define to 1 if you have the `readlink' function. */ +#define HAVE_READLINK 1 + +/* Define to 1 if you have the `readlinkat' function. */ +#define HAVE_READLINKAT 1 + +/* Define to 1 if you have the `readv' function. */ +#define HAVE_READV 1 + +/* Define to 1 if you have the `realpath' function. */ +#define HAVE_REALPATH 1 + +/* Define if you have the 'recvfrom' function. */ +#define HAVE_RECVFROM 1 + +/* Define to 1 if you have the `renameat' function. */ +#define HAVE_RENAMEAT 1 + +/* Define if readline supports append_history */ +/* #undef HAVE_RL_APPEND_HISTORY */ + +/* Define if you can turn off readline's signal handling. */ +/* #undef HAVE_RL_CATCH_SIGNAL */ + +/* Define to 1 if the system has the type `rl_compdisp_func_t'. */ +/* #undef HAVE_RL_COMPDISP_FUNC_T */ + +/* Define if you have readline 2.2 */ +/* #undef HAVE_RL_COMPLETION_APPEND_CHARACTER */ + +/* Define if you have readline 4.0 */ +/* #undef HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK */ + +/* Define if you have readline 4.2 */ +/* #undef HAVE_RL_COMPLETION_MATCHES */ + +/* Define if you have rl_completion_suppress_append */ +/* #undef HAVE_RL_COMPLETION_SUPPRESS_APPEND */ + +/* Define if you have readline 4.0 */ +/* #undef HAVE_RL_PRE_INPUT_HOOK */ + +/* Define if you have readline 4.0 */ +/* #undef HAVE_RL_RESIZE_TERMINAL */ + +/* 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 + +/* Define to 1 if you have the header file. */ +#define HAVE_SCHED_H 1 + +/* Define to 1 if you have the `sched_rr_get_interval' function. */ +/* #undef HAVE_SCHED_RR_GET_INTERVAL */ + +/* Define to 1 if you have the `sched_setaffinity' function. */ +/* #undef HAVE_SCHED_SETAFFINITY */ + +/* Define to 1 if you have the `sched_setparam' function. */ +/* #undef HAVE_SCHED_SETPARAM */ + +/* Define to 1 if you have the `sched_setscheduler' function. */ +/* #undef HAVE_SCHED_SETSCHEDULER */ + +/* Define to 1 if you have the `sem_clockwait' function. */ +/* #undef HAVE_SEM_CLOCKWAIT */ + +/* Define to 1 if you have the `sem_getvalue' function. */ +#define HAVE_SEM_GETVALUE 1 + +/* Define to 1 if you have the `sem_open' function. */ +#define HAVE_SEM_OPEN 1 + +/* Define to 1 if you have the `sem_timedwait' function. */ +/* #undef HAVE_SEM_TIMEDWAIT */ + +/* Define to 1 if you have the `sem_unlink' function. */ +#define HAVE_SEM_UNLINK 1 + +/* Define to 1 if you have the `sendfile' function. */ +#define HAVE_SENDFILE 1 + +/* Define if you have the 'sendto' function. */ +#define HAVE_SENDTO 1 + +/* Define to 1 if you have the `setegid' function. */ +#define HAVE_SETEGID 1 + +/* Define to 1 if you have the `seteuid' function. */ +#define HAVE_SETEUID 1 + +/* Define to 1 if you have the `setgid' function. */ +#define HAVE_SETGID 1 + +/* Define if you have the 'setgroups' function. */ +#define HAVE_SETGROUPS 1 + +/* Define to 1 if you have the `sethostname' function. */ +#define HAVE_SETHOSTNAME 1 + +/* Define to 1 if you have the `setitimer' function. */ +#define HAVE_SETITIMER 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SETJMP_H 1 + +/* Define to 1 if you have the `setlocale' function. */ +#define HAVE_SETLOCALE 1 + +/* Define to 1 if you have the `setns' function. */ +/* #undef HAVE_SETNS */ + +/* Define to 1 if you have the `setpgid' function. */ +#define HAVE_SETPGID 1 + +/* Define to 1 if you have the `setpgrp' function. */ +#define HAVE_SETPGRP 1 + +/* Define to 1 if you have the `setpriority' function. */ +#define HAVE_SETPRIORITY 1 + +/* Define to 1 if you have the `setregid' function. */ +#define HAVE_SETREGID 1 + +/* Define to 1 if you have the `setresgid' function. */ +/* #undef HAVE_SETRESGID */ + +/* Define to 1 if you have the `setresuid' function. */ +/* #undef HAVE_SETRESUID */ + +/* Define to 1 if you have the `setreuid' function. */ +#define HAVE_SETREUID 1 + +/* Define to 1 if you have the `setsid' function. */ +#define HAVE_SETSID 1 + +/* Define if you have the 'setsockopt' function. */ +#define HAVE_SETSOCKOPT 1 + +/* Define to 1 if you have the `setuid' function. */ +#define HAVE_SETUID 1 + +/* Define to 1 if you have the `setvbuf' function. */ +#define HAVE_SETVBUF 1 + +/* Define to 1 if you have the 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 `shutdown' function. */ +#define HAVE_SHUTDOWN 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 `si_band' is a member of `siginfo_t'. */ +#define HAVE_SIGINFO_T_SI_BAND 1 + +/* Define to 1 if you have the `siginterrupt' function. */ +#define HAVE_SIGINTERRUPT 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SIGNAL_H 1 + +/* Define to 1 if you have the `sigpending' function. */ +#define HAVE_SIGPENDING 1 + +/* Define to 1 if you have the `sigrelse' function. */ +#define HAVE_SIGRELSE 1 + +/* Define to 1 if you have the `sigtimedwait' function. */ +/* #undef HAVE_SIGTIMEDWAIT */ + +/* Define to 1 if you have the `sigwait' function. */ +#define HAVE_SIGWAIT 1 + +/* Define to 1 if you have the `sigwaitinfo' function. */ +/* #undef HAVE_SIGWAITINFO */ + +/* Define to 1 if you have the `snprintf' function. */ +#define HAVE_SNPRINTF 1 + +/* struct sockaddr_alg (linux/if_alg.h) */ +/* #undef HAVE_SOCKADDR_ALG */ + +/* Define if sockaddr has sa_len member */ +#define HAVE_SOCKADDR_SA_LEN 1 + +/* struct sockaddr_storage (sys/socket.h) */ +#define HAVE_SOCKADDR_STORAGE 1 + +/* Define if you have the 'socket' function. */ +#define HAVE_SOCKET 1 + +/* Define if you have the 'socketpair' function. */ +#define HAVE_SOCKETPAIR 1 + +/* Define to 1 if the system has the type `socklen_t'. */ +#define HAVE_SOCKLEN_T 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SPAWN_H 1 + +/* Define to 1 if you have the `splice' function. */ +/* #undef HAVE_SPLICE */ + +/* Define to 1 if the system has the type `ssize_t'. */ +#define HAVE_SSIZE_T 1 + +/* Define to 1 if you have the `statvfs' function. */ +#define HAVE_STATVFS 1 + +/* Define if you have struct stat.st_mtim.tv_nsec */ +/* #undef HAVE_STAT_TV_NSEC */ + +/* Define if you have struct stat.st_mtimensec */ +#define HAVE_STAT_TV_NSEC2 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDIO_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Has stdatomic.h with atomic_int and atomic_uintptr_t */ +#define HAVE_STD_ATOMIC 1 + +/* Define to 1 if you have the `strftime' function. */ +#define HAVE_STRFTIME 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `strlcpy' function. */ +#define HAVE_STRLCPY 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_STROPTS_H */ + +/* 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 + +/* Define to 1 if `pw_passwd' is a member of `struct passwd'. */ +#define HAVE_STRUCT_PASSWD_PW_PASSWD 1 + +/* Define to 1 if `st_birthtime' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_BIRTHTIME 1 + +/* Define to 1 if `st_blksize' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_BLKSIZE 1 + +/* Define to 1 if `st_blocks' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_BLOCKS 1 + +/* Define to 1 if `st_flags' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_FLAGS 1 + +/* Define to 1 if `st_gen' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_GEN 1 + +/* Define to 1 if `st_rdev' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_RDEV 1 + +/* Define to 1 if `tm_zone' is a member of `struct tm'. */ +#define HAVE_STRUCT_TM_TM_ZONE 1 + +/* Define if you have the 'symlink' function. */ +#define HAVE_SYMLINK 1 + +/* Define to 1 if you have the `symlinkat' function. */ +#define HAVE_SYMLINKAT 1 + +/* Define to 1 if you have the `sync' function. */ +#define HAVE_SYNC 1 + +/* Define to 1 if you have the `sysconf' function. */ +#define HAVE_SYSCONF 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYSEXITS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYSLOG_H 1 + +/* Define to 1 if you have the `system' function. */ +/* #undef HAVE_SYSTEM */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_AUDIOIO_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_AUXV_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_BSDTTY_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_DEVPOLL_H */ + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +/* #undef HAVE_SYS_DIR_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_ENDIAN_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_EPOLL_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_EVENTFD_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_EVENT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_FILE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_IOCTL_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_KERN_CONTROL_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_LOADAVG_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_LOCK_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_MEMFD_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_MKDEV_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_MMAN_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_MODEM_H */ + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +/* #undef HAVE_SYS_NDIR_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_POLL_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_RANDOM_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_RESOURCE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SELECT_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SENDFILE_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SOCKET_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SOUNDCARD_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STATVFS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SYSCALL_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SYSMACROS_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SYS_DOMAIN_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_TERMIO_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_TIMERFD_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIMES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_UIO_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_UN_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_UTSNAME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_WAIT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_XATTR_H 1 + +/* Define to 1 if you have the `tcgetpgrp' function. */ +#define HAVE_TCGETPGRP 1 + +/* Define to 1 if you have the `tcsetpgrp' function. */ +#define HAVE_TCSETPGRP 1 + +/* Define to 1 if you have the `tempnam' function. */ +#define HAVE_TEMPNAM 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_TERMIOS_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_TERM_H */ + +/* Define to 1 if you have the `timegm' function. */ +#define HAVE_TIMEGM 1 + +/* Define if you have the 'timerfd_create' function. */ +/* #undef HAVE_TIMERFD_CREATE */ + +/* Define to 1 if you have the `times' function. */ +#define HAVE_TIMES 1 + +/* Define to 1 if you have the `tmpfile' function. */ +#define HAVE_TMPFILE 1 + +/* Define to 1 if you have the `tmpnam' function. */ +#define HAVE_TMPNAM 1 + +/* Define to 1 if you have the `tmpnam_r' function. */ +/* #undef HAVE_TMPNAM_R */ + +/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use + `HAVE_STRUCT_TM_TM_ZONE' instead. */ +#define HAVE_TM_ZONE 1 + +/* Define to 1 if you have the `truncate' function. */ +#define HAVE_TRUNCATE 1 + +/* Define to 1 if you have the `ttyname' function. */ +#define HAVE_TTYNAME 1 + +/* Define to 1 if you don't have `tm_zone' but do have the external array + `tzname'. */ +/* #undef HAVE_TZNAME */ + +/* Define to 1 if you have the `umask' function. */ +#define HAVE_UMASK 1 + +/* Define to 1 if you have the `uname' function. */ +#define HAVE_UNAME 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to 1 if you have the `unlinkat' function. */ +#define HAVE_UNLINKAT 1 + +/* Define to 1 if you have the `unlockpt' function. */ +#define HAVE_UNLOCKPT 1 + +/* Define to 1 if you have the `unshare' function. */ +/* #undef HAVE_UNSHARE */ + +/* Define if you have a useable wchar_t type defined in wchar.h; useable means + wchar_t must be an unsigned type with at least 16 bits. (see + Include/unicodeobject.h). */ +/* #undef HAVE_USABLE_WCHAR_T */ + +/* Define to 1 if you have the header file. */ +#define HAVE_UTIL_H 1 + +/* Define to 1 if you have the `utimensat' function. */ +#define HAVE_UTIMENSAT 1 + +/* Define to 1 if you have the `utimes' function. */ +#define HAVE_UTIMES 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UTIME_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_UTMP_H */ + +/* Define to 1 if you have the `uuid_create' function. */ +/* #undef HAVE_UUID_CREATE */ + +/* Define to 1 if you have the `uuid_enc_be' function. */ +/* #undef HAVE_UUID_ENC_BE */ + +/* Define if uuid_generate_time_safe() exists. */ +/* #undef HAVE_UUID_GENERATE_TIME_SAFE */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_UUID_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_UUID_UUID_H 1 + +/* Define to 1 if you have the `vfork' function. */ +#define HAVE_VFORK 1 + +/* Define to 1 if you have the `wait' function. */ +#define HAVE_WAIT 1 + +/* Define to 1 if you have the `wait3' function. */ +#define HAVE_WAIT3 1 + +/* Define to 1 if you have the `wait4' function. */ +#define HAVE_WAIT4 1 + +/* Define to 1 if you have the `waitid' function. */ +#define HAVE_WAITID 1 + +/* Define to 1 if you have the `waitpid' function. */ +#define HAVE_WAITPID 1 + +/* Define if the compiler provides a wchar.h header file. */ +#define HAVE_WCHAR_H 1 + +/* Define to 1 if you have the `wcscoll' function. */ +#define HAVE_WCSCOLL 1 + +/* Define to 1 if you have the `wcsftime' function. */ +#define HAVE_WCSFTIME 1 + +/* Define to 1 if you have the `wcsxfrm' function. */ +#define HAVE_WCSXFRM 1 + +/* Define to 1 if you have the `wmemcmp' function. */ +#define HAVE_WMEMCMP 1 + +/* Define if tzset() actually switches the local timezone in a meaningful way. + */ +/* #undef HAVE_WORKING_TZSET */ + +/* Define to 1 if you have the `writev' function. */ +#define HAVE_WRITEV 1 + +/* Define if the zlib library has inflateCopy */ +#define HAVE_ZLIB_COPY 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ZLIB_H 1 + +/* Define to 1 if you have the `_getpty' function. */ +/* #undef HAVE__GETPTY */ + +/* Define to 1 if the system has the type `__uint128_t'. */ +#define HAVE___UINT128_T 1 + +/* Define to 1 if `major', `minor', and `makedev' are declared in . + */ +/* #undef MAJOR_IN_MKDEV */ + +/* Define to 1 if `major', `minor', and `makedev' are declared in + . */ +/* #undef MAJOR_IN_SYSMACROS */ + +/* Define if mvwdelch in curses.h is an expression. */ +/* #undef MVWDELCH_IS_EXPRESSION */ + +/* Define to the address where bug reports for this package should be sent. */ +/* #undef PACKAGE_BUGREPORT */ + +/* Define to the full name of this package. */ +/* #undef PACKAGE_NAME */ + +/* Define to the full name and version of this package. */ +/* #undef PACKAGE_STRING */ + +/* Define to the one symbol short name of this package. */ +/* #undef PACKAGE_TARNAME */ + +/* Define to the home page for this package. */ +/* #undef PACKAGE_URL */ + +/* Define to the version of this package. */ +/* #undef PACKAGE_VERSION */ + +/* Define if POSIX semaphores aren't enabled on your system */ +/* #undef POSIX_SEMAPHORES_NOT_ENABLED */ + +/* Define if pthread_key_t is compatible with int. */ +/* #undef PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT */ + +/* Defined if PTHREAD_SCOPE_SYSTEM supported. */ +/* #undef PTHREAD_SYSTEM_SCHED_SUPPORTED */ + +/* Define as the preferred size in bits of long digits */ +/* #undef PYLONG_BITS_IN_DIGIT */ + +/* enabled builtin hash modules */ +#define PY_BUILTIN_HASHLIB_HASHES "md5,sha1,sha2,sha3,blake2" + +/* Define if you want to coerce the C locale to a UTF-8 based locale */ +#define PY_COERCE_C_LOCALE 1 + +/* Define to 1 if you have the perf trampoline. */ +/* #undef PY_HAVE_PERF_TRAMPOLINE */ + +/* Define to 1 to build the sqlite module with loadable extensions support. */ +/* #undef PY_SQLITE_ENABLE_LOAD_EXTENSION */ + +/* Define if SQLite was compiled with the serialize API */ +#define PY_SQLITE_HAVE_SERIALIZE 1 + +/* Default cipher suites list for ssl module. 1: Python's preferred selection, + 2: leave OpenSSL defaults untouched, 0: custom string */ +#define PY_SSL_DEFAULT_CIPHERS 1 + +/* Cipher suite string for PY_SSL_DEFAULT_CIPHERS=0 */ +/* #undef PY_SSL_DEFAULT_CIPHER_STRING */ + +/* PEP 11 Support tier (1, 2, 3 or 0 for unsupported) */ +#define PY_SUPPORT_TIER 0 + +/* Define if you want to build an interpreter with many run-time checks. */ +/* #undef Py_DEBUG */ + +/* Defined if Python is built as a shared library. */ +/* #undef Py_ENABLE_SHARED */ + +/* Define if you want to disable the GIL */ +/* #undef Py_GIL_DISABLED */ + +/* Define hash algorithm for str, bytes and memoryview. SipHash24: 1, FNV: 2, + SipHash13: 3, externally defined: 0 */ +/* #undef Py_HASH_ALGORITHM */ + +/* Define if rl_startup_hook takes arguments */ +/* #undef Py_RL_STARTUP_HOOK_TAKES_ARGS */ + +/* Define if you want to enable internal statistics gathering. */ +/* #undef Py_STATS */ + +/* The version of SunOS/Solaris as reported by `uname -r' without the dot. */ +/* #undef Py_SUNOS_VERSION */ + +/* 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 if i>>j for signed int i does not extend the sign bit when i < 0 */ +/* #undef SIGNED_RIGHT_SHIFT_ZERO_FILLS */ + +/* The size of `double', as computed by sizeof. */ +#define SIZEOF_DOUBLE 8 + +/* The size of `float', as computed by sizeof. */ +#define SIZEOF_FLOAT 4 + +/* The size of `fpos_t', as computed by sizeof. */ +#define SIZEOF_FPOS_T 8 + +/* The size of `int', as computed by sizeof. */ +#define SIZEOF_INT 4 + +/* The size of `long', as computed by sizeof. */ +#define SIZEOF_LONG 8 + +/* The size of `long double', as computed by sizeof. */ +#define SIZEOF_LONG_DOUBLE 16 + +/* The size of `long long', as computed by sizeof. */ +#define SIZEOF_LONG_LONG 8 + +/* The size of `off_t', as computed by sizeof. */ +#define SIZEOF_OFF_T 8 + +/* The size of `pid_t', as computed by sizeof. */ +#define SIZEOF_PID_T 4 + +/* The size of `pthread_key_t', as computed by sizeof. */ +#define SIZEOF_PTHREAD_KEY_T 8 + +/* The size of `pthread_t', as computed by sizeof. */ +#define SIZEOF_PTHREAD_T 8 + +/* The size of `short', as computed by sizeof. */ +#define SIZEOF_SHORT 2 + +/* The size of `size_t', as computed by sizeof. */ +#define SIZEOF_SIZE_T 8 + +/* The size of `time_t', as computed by sizeof. */ +#define SIZEOF_TIME_T 8 + +/* The size of `uintptr_t', as computed by sizeof. */ +#define SIZEOF_UINTPTR_T 8 + +/* The size of `void *', as computed by sizeof. */ +#define SIZEOF_VOID_P 8 + +/* The size of `wchar_t', as computed by sizeof. */ +#define SIZEOF_WCHAR_T 4 + +/* The size of `_Bool', as computed by sizeof. */ +#define SIZEOF__BOOL 1 + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define if you can safely include both and + (which you can't on SCO ODT 3.0). */ +#define SYS_SELECT_WITH_SYS_TIME 1 + +/* Custom thread stack size depending on chosen sanitizer runtimes. */ +#define THREAD_STACK_SIZE 0x1000000 + +/* Library needed by timemodule.c: librt may be needed for clock_gettime() */ +/* #undef TIMEMODULE_LIB */ + +/* Define to 1 if your declares `struct tm'. */ +/* #undef TM_IN_SYS_TIME */ + +/* Define if you want to use computed gotos in ceval.c. */ +/* #undef USE_COMPUTED_GOTOS */ + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# define _ALL_SOURCE 1 +#endif +/* Enable general extensions on macOS. */ +#ifndef _DARWIN_C_SOURCE +# define _DARWIN_C_SOURCE 1 +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# define __EXTENSIONS__ 1 +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +#endif +/* Enable X/Open compliant socket functions that do not require linking + with -lxnet on HP-UX 11.11. */ +#ifndef _HPUX_ALT_XOPEN_SOCKET_API +# define _HPUX_ALT_XOPEN_SOCKET_API 1 +#endif +/* Identify the host operating system as Minix. + This macro does not affect the system headers' behavior. + A future release of Autoconf may stop defining this macro. */ +#ifndef _MINIX +/* # undef _MINIX */ +#endif +/* Enable general extensions on NetBSD. + Enable NetBSD compatibility extensions on Minix. */ +#ifndef _NETBSD_SOURCE +# define _NETBSD_SOURCE 1 +#endif +/* Enable OpenBSD compatibility extensions on NetBSD. + Oddly enough, this does nothing on OpenBSD. */ +#ifndef _OPENBSD_SOURCE +# define _OPENBSD_SOURCE 1 +#endif +/* Define to 1 if needed for POSIX-compatible behavior. */ +#ifndef _POSIX_SOURCE +/* # undef _POSIX_SOURCE */ +#endif +/* Define to 2 if needed for POSIX-compatible behavior. */ +#ifndef _POSIX_1_SOURCE +/* # undef _POSIX_1_SOURCE */ +#endif +/* Enable POSIX-compatible threading on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# define _POSIX_PTHREAD_SEMANTICS 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */ +#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ +# define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */ +#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ +# define __STDC_WANT_IEC_60559_BFP_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */ +#ifndef __STDC_WANT_IEC_60559_DFP_EXT__ +# define __STDC_WANT_IEC_60559_DFP_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ +#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ +# define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-3:2015. */ +#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ +# define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */ +#ifndef __STDC_WANT_LIB_EXT2__ +# define __STDC_WANT_LIB_EXT2__ 1 +#endif +/* Enable extensions specified by ISO/IEC 24747:2009. */ +#ifndef __STDC_WANT_MATH_SPEC_FUNCS__ +# define __STDC_WANT_MATH_SPEC_FUNCS__ 1 +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# define _TANDEM_SOURCE 1 +#endif +/* Enable X/Open extensions. Define to 500 only if necessary + to make mbstate_t available. */ +#ifndef _XOPEN_SOURCE +/* # undef _XOPEN_SOURCE */ +#endif + + +/* Define if WINDOW in curses.h offers a field _flags. */ +/* #undef WINDOW_HAS_FLAGS */ + +/* 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 + +/* Define if you want to compile in DTrace support */ +/* #undef WITH_DTRACE */ + +/* Define if you want to use the new-style (Openstep, Rhapsody, MacOS) dynamic + linker (dyld) instead of the old-style (NextStep) dynamic linker (rld). + Dyld is necessary to support frameworks. */ +/* #undef WITH_DYLD */ + +/* Define to build the readline module against libedit. */ +/* #undef WITH_EDITLINE */ + +/* Define if you want to compile in object freelists optimization */ +#define WITH_FREELISTS 1 + +/* Define to 1 if libintl is needed for locale functions. */ +/* #undef WITH_LIBINTL */ + +/* Define if you want to compile in mimalloc memory allocator. */ +#define WITH_MIMALLOC 1 + +/* Define if you want to produce an OpenStep/Rhapsody framework (shared + library plus accessory files). */ +#define WITH_NEXT_FRAMEWORK 1 + +/* Define if you want to compile in Python-specific mallocs */ +#define WITH_PYMALLOC 1 + +/* Define if you want pymalloc to be disabled when running under valgrind */ +/* #undef WITH_VALGRIND */ + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +/* # undef WORDS_BIGENDIAN */ +# endif +#endif + +/* Define if arithmetic is subject to x87-style double rounding issue */ +/* #undef X87_DOUBLE_ROUNDING */ + +/* Define on OpenBSD to activate all library features */ +/* #undef _BSD_SOURCE */ + +/* Define on Darwin to activate all library features */ +#define _DARWIN_C_SOURCE 1 + +/* This must be set to 64 on some systems to enable large file support. */ +#define _FILE_OFFSET_BITS 64 + +/* Define to include mbstate_t for mbrtowc */ +/* #undef _INCLUDE__STDC_A1_SOURCE */ + +/* This must be defined on some systems to enable large file support. */ +#define _LARGEFILE_SOURCE 1 + +/* This must be defined on AIX systems to enable large file support. */ +/* #undef _LARGE_FILES */ + +/* Define on NetBSD to activate all library features */ +#define _NETBSD_SOURCE 1 + +/* Define to activate features from IEEE Stds 1003.1-2008 */ +/* #undef _POSIX_C_SOURCE */ + +/* Define if you have POSIX threads, and your system does not define that. */ +/* #undef _POSIX_THREADS */ + +/* framework name */ +#define _PYTHONFRAMEWORK "Python" + +/* Define to force use of thread-safe errno, h_errno, and other functions */ +#define _REENTRANT 1 + +/* Define to 1 if you want to emulate getpid() on WASI */ +/* #undef _WASI_EMULATED_GETPID */ + +/* Define to 1 if you want to emulate process clocks on WASI */ +/* #undef _WASI_EMULATED_PROCESS_CLOCKS */ + +/* Define to 1 if you want to emulate signals on WASI */ +/* #undef _WASI_EMULATED_SIGNAL */ + +/* Define to the level of X/Open that your system supports */ +/* #undef _XOPEN_SOURCE */ + +/* Define to activate Unix95-and-earlier features */ +/* #undef _XOPEN_SOURCE_EXTENDED */ + +/* Define on FreeBSD to activate all library features */ +#define __BSD_VISIBLE 1 + +/* Define to 'long' if does not define clock_t. */ +/* #undef clock_t */ + +/* Define to empty if `const' does not conform to ANSI C. */ +/* #undef const */ + +/* Define to `int' if doesn't define. */ +/* #undef gid_t */ + +/* Define to `int' if does not define. */ +/* #undef mode_t */ + +/* Define to `long int' if does not define. */ +/* #undef off_t */ + +/* Define as a signed integer type capable of holding a process identifier. */ +/* #undef pid_t */ + +/* Define to empty if the keyword does not work. */ +/* #undef signed */ + +/* Define to `unsigned int' if does not define. */ +/* #undef size_t */ + +/* Define to 'int' if does not define. */ +/* #undef socklen_t */ + +/* Define to `int' if doesn't define. */ +/* #undef uid_t */ + + +/* Define the macros needed if on a UnixWare 7.x system. */ +#if defined(__USLC__) && defined(__SCO_VERSION__) +#define STRICT_SYSV_CURSES /* Don't use ncurses extensions */ +#endif + +#endif /*Py_PYCONFIG_H*/ + diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyconfig.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyconfig.h new file mode 100644 index 000000000..03611a820 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyconfig.h @@ -0,0 +1,19 @@ +#ifdef __APPLE__ + #ifdef __arm64__ + #include "pyconfig-ios-arm64.h" + #endif + + #ifdef __x86_64__ + #include "pyconfig-ios-x86_64.h" + #endif +#endif + +#ifdef __ANDROID__ + #ifdef __aarch64__ + #include "pyconfig-android-aarch64.h" + #endif + + #ifdef __x86_64__ + #include "pyconfig-android-x86_64.h" + #endif +#endif diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pydtrace.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pydtrace.h new file mode 100644 index 000000000..e197d3669 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pydtrace.h @@ -0,0 +1,59 @@ +/* Static DTrace probes interface */ + +#ifndef Py_DTRACE_H +#define Py_DTRACE_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef WITH_DTRACE + +#include "pydtrace_probes.h" + +/* pydtrace_probes.h, on systems with DTrace, is auto-generated to include + `PyDTrace_{PROBE}` and `PyDTrace_{PROBE}_ENABLED()` macros for every probe + defined in pydtrace.d. + + Calling these functions must be guarded by a `PyDTrace_{PROBE}_ENABLED()` + check to minimize performance impact when probing is off. For example: + + if (PyDTrace_FUNCTION_ENTRY_ENABLED()) + PyDTrace_FUNCTION_ENTRY(f); +*/ + +#else + +/* Without DTrace, compile to nothing. */ + +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_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 int PyDTrace_LINE_ENABLED(void) { return 0; } +static inline int PyDTrace_FUNCTION_ENTRY_ENABLED(void) { return 0; } +static inline int PyDTrace_FUNCTION_RETURN_ENABLED(void) { return 0; } +static inline int PyDTrace_GC_START_ENABLED(void) { return 0; } +static inline int PyDTrace_GC_DONE_ENABLED(void) { return 0; } +static inline int PyDTrace_INSTANCE_NEW_START_ENABLED(void) { return 0; } +static inline int PyDTrace_INSTANCE_NEW_DONE_ENABLED(void) { return 0; } +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; } + +#endif /* !WITH_DTRACE */ + +#ifdef __cplusplus +} +#endif +#endif /* !Py_DTRACE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyerrors.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyerrors.h new file mode 100644 index 000000000..5d0028c11 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyerrors.h @@ -0,0 +1,335 @@ +// Error handling definitions + +#ifndef Py_ERRORS_H +#define Py_ERRORS_H +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_FUNC(void) PyErr_SetNone(PyObject *); +PyAPI_FUNC(void) PyErr_SetObject(PyObject *, PyObject *); +PyAPI_FUNC(void) PyErr_SetString( + PyObject *exception, + const char *string /* decoded from utf-8 */ + ); +PyAPI_FUNC(PyObject *) PyErr_Occurred(void); +PyAPI_FUNC(void) PyErr_Clear(void); +PyAPI_FUNC(void) PyErr_Fetch(PyObject **, PyObject **, PyObject **); +PyAPI_FUNC(void) PyErr_Restore(PyObject *, PyObject *, PyObject *); +PyAPI_FUNC(PyObject *) PyErr_GetRaisedException(void); +PyAPI_FUNC(void) PyErr_SetRaisedException(PyObject *); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030b0000 +PyAPI_FUNC(PyObject*) PyErr_GetHandledException(void); +PyAPI_FUNC(void) PyErr_SetHandledException(PyObject *); +#endif +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +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); + +/* Error testing and normalization */ +PyAPI_FUNC(int) PyErr_GivenExceptionMatches(PyObject *, PyObject *); +PyAPI_FUNC(int) PyErr_ExceptionMatches(PyObject *); +PyAPI_FUNC(void) PyErr_NormalizeException(PyObject**, PyObject**, PyObject**); + +/* Traceback manipulation (PEP 3134) */ +PyAPI_FUNC(int) PyException_SetTraceback(PyObject *, PyObject *); +PyAPI_FUNC(PyObject *) PyException_GetTraceback(PyObject *); + +/* Cause manipulation (PEP 3134) */ +PyAPI_FUNC(PyObject *) PyException_GetCause(PyObject *); +PyAPI_FUNC(void) PyException_SetCause(PyObject *, PyObject *); + +/* Context manipulation (PEP 3134) */ +PyAPI_FUNC(PyObject *) PyException_GetContext(PyObject *); +PyAPI_FUNC(void) PyException_SetContext(PyObject *, PyObject *); + + +PyAPI_FUNC(PyObject *) PyException_GetArgs(PyObject *); +PyAPI_FUNC(void) PyException_SetArgs(PyObject *, PyObject *); + +/* */ + +#define PyExceptionClass_Check(x) \ + (PyType_Check((x)) && \ + PyType_FastSubclass((PyTypeObject*)(x), Py_TPFLAGS_BASE_EXC_SUBCLASS)) + +#define PyExceptionInstance_Check(x) \ + PyType_FastSubclass(Py_TYPE(x), Py_TPFLAGS_BASE_EXC_SUBCLASS) + +PyAPI_FUNC(const char *) PyExceptionClass_Name(PyObject *); + +#define PyExceptionInstance_Class(x) _PyObject_CAST(Py_TYPE(x)) + +#define _PyBaseExceptionGroup_Check(x) \ + PyObject_TypeCheck((x), (PyTypeObject *)PyExc_BaseExceptionGroup) + +/* Predefined exceptions */ + +PyAPI_DATA(PyObject *) PyExc_BaseException; +PyAPI_DATA(PyObject *) PyExc_Exception; +PyAPI_DATA(PyObject *) PyExc_BaseExceptionGroup; +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 +PyAPI_DATA(PyObject *) PyExc_StopAsyncIteration; +#endif +PyAPI_DATA(PyObject *) PyExc_StopIteration; +PyAPI_DATA(PyObject *) PyExc_GeneratorExit; +PyAPI_DATA(PyObject *) PyExc_ArithmeticError; +PyAPI_DATA(PyObject *) PyExc_LookupError; + +PyAPI_DATA(PyObject *) PyExc_AssertionError; +PyAPI_DATA(PyObject *) PyExc_AttributeError; +PyAPI_DATA(PyObject *) PyExc_BufferError; +PyAPI_DATA(PyObject *) PyExc_EOFError; +PyAPI_DATA(PyObject *) PyExc_FloatingPointError; +PyAPI_DATA(PyObject *) PyExc_OSError; +PyAPI_DATA(PyObject *) PyExc_ImportError; +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03060000 +PyAPI_DATA(PyObject *) PyExc_ModuleNotFoundError; +#endif +PyAPI_DATA(PyObject *) PyExc_IndexError; +PyAPI_DATA(PyObject *) PyExc_KeyError; +PyAPI_DATA(PyObject *) PyExc_KeyboardInterrupt; +PyAPI_DATA(PyObject *) PyExc_MemoryError; +PyAPI_DATA(PyObject *) PyExc_NameError; +PyAPI_DATA(PyObject *) PyExc_OverflowError; +PyAPI_DATA(PyObject *) PyExc_RuntimeError; +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 +PyAPI_DATA(PyObject *) PyExc_RecursionError; +#endif +PyAPI_DATA(PyObject *) PyExc_NotImplementedError; +PyAPI_DATA(PyObject *) PyExc_SyntaxError; +PyAPI_DATA(PyObject *) PyExc_IndentationError; +PyAPI_DATA(PyObject *) PyExc_TabError; +PyAPI_DATA(PyObject *) PyExc_ReferenceError; +PyAPI_DATA(PyObject *) PyExc_SystemError; +PyAPI_DATA(PyObject *) PyExc_SystemExit; +PyAPI_DATA(PyObject *) PyExc_TypeError; +PyAPI_DATA(PyObject *) PyExc_UnboundLocalError; +PyAPI_DATA(PyObject *) PyExc_UnicodeError; +PyAPI_DATA(PyObject *) PyExc_UnicodeEncodeError; +PyAPI_DATA(PyObject *) PyExc_UnicodeDecodeError; +PyAPI_DATA(PyObject *) PyExc_UnicodeTranslateError; +PyAPI_DATA(PyObject *) PyExc_ValueError; +PyAPI_DATA(PyObject *) PyExc_ZeroDivisionError; + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +PyAPI_DATA(PyObject *) PyExc_BlockingIOError; +PyAPI_DATA(PyObject *) PyExc_BrokenPipeError; +PyAPI_DATA(PyObject *) PyExc_ChildProcessError; +PyAPI_DATA(PyObject *) PyExc_ConnectionError; +PyAPI_DATA(PyObject *) PyExc_ConnectionAbortedError; +PyAPI_DATA(PyObject *) PyExc_ConnectionRefusedError; +PyAPI_DATA(PyObject *) PyExc_ConnectionResetError; +PyAPI_DATA(PyObject *) PyExc_FileExistsError; +PyAPI_DATA(PyObject *) PyExc_FileNotFoundError; +PyAPI_DATA(PyObject *) PyExc_InterruptedError; +PyAPI_DATA(PyObject *) PyExc_IsADirectoryError; +PyAPI_DATA(PyObject *) PyExc_NotADirectoryError; +PyAPI_DATA(PyObject *) PyExc_PermissionError; +PyAPI_DATA(PyObject *) PyExc_ProcessLookupError; +PyAPI_DATA(PyObject *) PyExc_TimeoutError; +#endif + + +/* Compatibility aliases */ +PyAPI_DATA(PyObject *) PyExc_EnvironmentError; +PyAPI_DATA(PyObject *) PyExc_IOError; +#ifdef MS_WINDOWS +PyAPI_DATA(PyObject *) PyExc_WindowsError; +#endif + +/* Predefined warning categories */ +PyAPI_DATA(PyObject *) PyExc_Warning; +PyAPI_DATA(PyObject *) PyExc_UserWarning; +PyAPI_DATA(PyObject *) PyExc_DeprecationWarning; +PyAPI_DATA(PyObject *) PyExc_PendingDeprecationWarning; +PyAPI_DATA(PyObject *) PyExc_SyntaxWarning; +PyAPI_DATA(PyObject *) PyExc_RuntimeWarning; +PyAPI_DATA(PyObject *) PyExc_FutureWarning; +PyAPI_DATA(PyObject *) PyExc_ImportWarning; +PyAPI_DATA(PyObject *) PyExc_UnicodeWarning; +PyAPI_DATA(PyObject *) PyExc_BytesWarning; +PyAPI_DATA(PyObject *) PyExc_EncodingWarning; +PyAPI_DATA(PyObject *) PyExc_ResourceWarning; + + +/* Convenience functions */ + +PyAPI_FUNC(int) PyErr_BadArgument(void); +PyAPI_FUNC(PyObject *) PyErr_NoMemory(void); +PyAPI_FUNC(PyObject *) PyErr_SetFromErrno(PyObject *); +PyAPI_FUNC(PyObject *) PyErr_SetFromErrnoWithFilenameObject( + PyObject *, PyObject *); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03040000 +PyAPI_FUNC(PyObject *) PyErr_SetFromErrnoWithFilenameObjects( + PyObject *, PyObject *, PyObject *); +#endif +PyAPI_FUNC(PyObject *) PyErr_SetFromErrnoWithFilename( + PyObject *exc, + const char *filename /* decoded from the filesystem encoding */ + ); + +PyAPI_FUNC(PyObject *) PyErr_Format( + PyObject *exception, + const char *format, /* ASCII-encoded string */ + ... + ); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 +PyAPI_FUNC(PyObject *) PyErr_FormatV( + PyObject *exception, + const char *format, + va_list vargs); +#endif + +#ifdef MS_WINDOWS +PyAPI_FUNC(PyObject *) PyErr_SetFromWindowsErrWithFilename( + int ierr, + const char *filename /* decoded from the filesystem encoding */ + ); +PyAPI_FUNC(PyObject *) PyErr_SetFromWindowsErr(int); +PyAPI_FUNC(PyObject *) PyErr_SetExcFromWindowsErrWithFilenameObject( + PyObject *,int, PyObject *); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03040000 +PyAPI_FUNC(PyObject *) PyErr_SetExcFromWindowsErrWithFilenameObjects( + PyObject *,int, PyObject *, PyObject *); +#endif +PyAPI_FUNC(PyObject *) PyErr_SetExcFromWindowsErrWithFilename( + PyObject *exc, + int ierr, + const char *filename /* decoded from the filesystem encoding */ + ); +PyAPI_FUNC(PyObject *) PyErr_SetExcFromWindowsErr(PyObject *, int); +#endif /* MS_WINDOWS */ + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03060000 +PyAPI_FUNC(PyObject *) PyErr_SetImportErrorSubclass(PyObject *, PyObject *, + PyObject *, PyObject *); +#endif +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +PyAPI_FUNC(PyObject *) PyErr_SetImportError(PyObject *, PyObject *, + PyObject *); +#endif + +/* Export the old function so that the existing API remains available: */ +PyAPI_FUNC(void) PyErr_BadInternalCall(void); +PyAPI_FUNC(void) _PyErr_BadInternalCall(const char *filename, int lineno); +/* Mask the old API with a call to the new API for code compiled under + Python 2.0: */ +#define PyErr_BadInternalCall() _PyErr_BadInternalCall(__FILE__, __LINE__) + +/* Function to create a new exception */ +PyAPI_FUNC(PyObject *) PyErr_NewException( + const char *name, PyObject *base, PyObject *dict); +PyAPI_FUNC(PyObject *) PyErr_NewExceptionWithDoc( + const char *name, const char *doc, PyObject *base, PyObject *dict); +PyAPI_FUNC(void) PyErr_WriteUnraisable(PyObject *); + + +/* In signalmodule.c */ +PyAPI_FUNC(int) PyErr_CheckSignals(void); +PyAPI_FUNC(void) PyErr_SetInterrupt(void); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030A0000 +PyAPI_FUNC(int) PyErr_SetInterruptEx(int signum); +#endif + +/* Support for adding program text to SyntaxErrors */ +PyAPI_FUNC(void) PyErr_SyntaxLocation( + const char *filename, /* decoded from the filesystem encoding */ + int lineno); +PyAPI_FUNC(void) PyErr_SyntaxLocationEx( + const char *filename, /* decoded from the filesystem encoding */ + int lineno, + int col_offset); +PyAPI_FUNC(PyObject *) PyErr_ProgramText( + const char *filename, /* decoded from the filesystem encoding */ + int lineno); + +/* The following functions are used to create and modify unicode + exceptions from C */ + +/* create a UnicodeDecodeError object */ +PyAPI_FUNC(PyObject *) PyUnicodeDecodeError_Create( + const char *encoding, /* UTF-8 encoded string */ + const char *object, + Py_ssize_t length, + Py_ssize_t start, + Py_ssize_t end, + const char *reason /* UTF-8 encoded string */ + ); + +/* get the encoding attribute */ +PyAPI_FUNC(PyObject *) PyUnicodeEncodeError_GetEncoding(PyObject *); +PyAPI_FUNC(PyObject *) PyUnicodeDecodeError_GetEncoding(PyObject *); + +/* get the object attribute */ +PyAPI_FUNC(PyObject *) PyUnicodeEncodeError_GetObject(PyObject *); +PyAPI_FUNC(PyObject *) PyUnicodeDecodeError_GetObject(PyObject *); +PyAPI_FUNC(PyObject *) PyUnicodeTranslateError_GetObject(PyObject *); + +/* get the value of the start attribute (the int * may not be NULL) + return 0 on success, -1 on failure */ +PyAPI_FUNC(int) PyUnicodeEncodeError_GetStart(PyObject *, Py_ssize_t *); +PyAPI_FUNC(int) PyUnicodeDecodeError_GetStart(PyObject *, Py_ssize_t *); +PyAPI_FUNC(int) PyUnicodeTranslateError_GetStart(PyObject *, Py_ssize_t *); + +/* assign a new value to the start attribute + return 0 on success, -1 on failure */ +PyAPI_FUNC(int) PyUnicodeEncodeError_SetStart(PyObject *, Py_ssize_t); +PyAPI_FUNC(int) PyUnicodeDecodeError_SetStart(PyObject *, Py_ssize_t); +PyAPI_FUNC(int) PyUnicodeTranslateError_SetStart(PyObject *, Py_ssize_t); + +/* get the value of the end attribute (the int *may not be NULL) + return 0 on success, -1 on failure */ +PyAPI_FUNC(int) PyUnicodeEncodeError_GetEnd(PyObject *, Py_ssize_t *); +PyAPI_FUNC(int) PyUnicodeDecodeError_GetEnd(PyObject *, Py_ssize_t *); +PyAPI_FUNC(int) PyUnicodeTranslateError_GetEnd(PyObject *, Py_ssize_t *); + +/* assign a new value to the end attribute + return 0 on success, -1 on failure */ +PyAPI_FUNC(int) PyUnicodeEncodeError_SetEnd(PyObject *, Py_ssize_t); +PyAPI_FUNC(int) PyUnicodeDecodeError_SetEnd(PyObject *, Py_ssize_t); +PyAPI_FUNC(int) PyUnicodeTranslateError_SetEnd(PyObject *, Py_ssize_t); + +/* get the value of the reason attribute */ +PyAPI_FUNC(PyObject *) PyUnicodeEncodeError_GetReason(PyObject *); +PyAPI_FUNC(PyObject *) PyUnicodeDecodeError_GetReason(PyObject *); +PyAPI_FUNC(PyObject *) PyUnicodeTranslateError_GetReason(PyObject *); + +/* assign a new value to the reason attribute + return 0 on success, -1 on failure */ +PyAPI_FUNC(int) PyUnicodeEncodeError_SetReason( + PyObject *exc, + const char *reason /* UTF-8 encoded string */ + ); +PyAPI_FUNC(int) PyUnicodeDecodeError_SetReason( + PyObject *exc, + const char *reason /* UTF-8 encoded string */ + ); +PyAPI_FUNC(int) PyUnicodeTranslateError_SetReason( + PyObject *exc, + const char *reason /* UTF-8 encoded string */ + ); + +PyAPI_FUNC(int) PyOS_snprintf(char *str, size_t size, const char *format, ...) + Py_GCC_ATTRIBUTE((format(printf, 3, 4))); +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 + +#ifdef __cplusplus +} +#endif +#endif /* !Py_ERRORS_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyexpat.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyexpat.h new file mode 100644 index 000000000..9824d099c --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyexpat.h @@ -0,0 +1,57 @@ +/* Stuff to export relevant 'expat' entry points from pyexpat to other + * parser modules, such as cElementTree. */ + +/* note: you must import expat.h before importing this module! */ + +#define PyExpat_CAPI_MAGIC "pyexpat.expat_CAPI 1.1" +#define PyExpat_CAPSULE_NAME "pyexpat.expat_CAPI" + +struct PyExpat_CAPI +{ + char* magic; /* set to PyExpat_CAPI_MAGIC */ + int size; /* set to sizeof(struct PyExpat_CAPI) */ + int MAJOR_VERSION; + int MINOR_VERSION; + int MICRO_VERSION; + /* pointers to selected expat functions. add new functions at + the end, if needed */ + const XML_LChar * (*ErrorString)(enum XML_Error code); + enum XML_Error (*GetErrorCode)(XML_Parser parser); + XML_Size (*GetErrorColumnNumber)(XML_Parser parser); + XML_Size (*GetErrorLineNumber)(XML_Parser parser); + enum XML_Status (*Parse)( + XML_Parser parser, const char *s, int len, int isFinal); + XML_Parser (*ParserCreate_MM)( + const XML_Char *encoding, const XML_Memory_Handling_Suite *memsuite, + const XML_Char *namespaceSeparator); + void (*ParserFree)(XML_Parser parser); + void (*SetCharacterDataHandler)( + XML_Parser parser, XML_CharacterDataHandler handler); + void (*SetCommentHandler)( + XML_Parser parser, XML_CommentHandler handler); + void (*SetDefaultHandlerExpand)( + XML_Parser parser, XML_DefaultHandler handler); + void (*SetElementHandler)( + XML_Parser parser, XML_StartElementHandler start, + XML_EndElementHandler end); + void (*SetNamespaceDeclHandler)( + XML_Parser parser, XML_StartNamespaceDeclHandler start, + XML_EndNamespaceDeclHandler end); + void (*SetProcessingInstructionHandler)( + XML_Parser parser, XML_ProcessingInstructionHandler handler); + void (*SetUnknownEncodingHandler)( + XML_Parser parser, XML_UnknownEncodingHandler handler, + void *encodingHandlerData); + void (*SetUserData)(XML_Parser parser, void *userData); + void (*SetStartDoctypeDeclHandler)(XML_Parser parser, + XML_StartDoctypeDeclHandler start); + enum XML_Status (*SetEncoding)(XML_Parser parser, const XML_Char *encoding); + int (*DefaultUnknownEncodingHandler)( + void *encodingHandlerData, const XML_Char *name, XML_Encoding *info); + /* might be NULL for expat < 2.1.0 */ + int (*SetHashSalt)(XML_Parser parser, unsigned long hash_salt); + /* might be NULL for expat < 2.6.0 */ + XML_Bool (*SetReparseDeferralEnabled)(XML_Parser parser, XML_Bool enabled); + /* always add new stuff to the end! */ +}; + diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyframe.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyframe.h new file mode 100644 index 000000000..13d52312e --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyframe.h @@ -0,0 +1,26 @@ +/* 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 + +/* Return the line of code the frame is currently executing. */ +PyAPI_FUNC(int) PyFrame_GetLineNumber(PyFrameObject *); + +PyAPI_FUNC(PyCodeObject *) PyFrame_GetCode(PyFrameObject *frame); + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_PYFRAME_H +# include "cpython/pyframe.h" +# undef Py_CPYTHON_PYFRAME_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_PYFRAME_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyhash.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyhash.h new file mode 100644 index 000000000..3e23e2758 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyhash.h @@ -0,0 +1,59 @@ +#ifndef Py_HASH_H +#define Py_HASH_H +#ifdef __cplusplus +extern "C" { +#endif + +/* Cutoff for small string DJBX33A optimization in range [1, cutoff). + * + * About 50% of the strings in a typical Python application are smaller than + * 6 to 7 chars. However DJBX33A is vulnerable to hash collision attacks. + * NEVER use DJBX33A for long strings! + * + * A Py_HASH_CUTOFF of 0 disables small string optimization. 32 bit platforms + * should use a smaller cutoff because it is easier to create colliding + * strings. A cutoff of 7 on 64bit platforms and 5 on 32bit platforms should + * provide a decent safety margin. + */ +#ifndef Py_HASH_CUTOFF +# define Py_HASH_CUTOFF 0 +#elif (Py_HASH_CUTOFF > 7 || Py_HASH_CUTOFF < 0) +# error Py_HASH_CUTOFF must in range 0...7. +#endif /* Py_HASH_CUTOFF */ + + +/* Hash algorithm selection + * + * The values for Py_HASH_* are hard-coded in the + * configure script. + * + * - FNV and SIPHASH* are available on all platforms and architectures. + * - With EXTERNAL embedders can provide an alternative implementation with:: + * + * PyHash_FuncDef PyHash_Func = {...}; + * + * XXX: Figure out __declspec() for extern PyHash_FuncDef. + */ +#define Py_HASH_EXTERNAL 0 +#define Py_HASH_SIPHASH24 1 +#define Py_HASH_FNV 2 +#define Py_HASH_SIPHASH13 3 + +#ifndef Py_HASH_ALGORITHM +# ifndef HAVE_ALIGNED_REQUIRED +# define Py_HASH_ALGORITHM Py_HASH_SIPHASH13 +# else +# define Py_HASH_ALGORITHM Py_HASH_FNV +# endif /* uint64_t && uint32_t && aligned */ +#endif /* Py_HASH_ALGORITHM */ + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_HASH_H +# include "cpython/pyhash.h" +# undef Py_CPYTHON_HASH_H +#endif + +#ifdef __cplusplus +} +#endif +#endif // !Py_HASH_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pylifecycle.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pylifecycle.h new file mode 100644 index 000000000..de1bcb1d2 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pylifecycle.h @@ -0,0 +1,80 @@ + +/* Interfaces to configure, query, create & destroy the Python runtime */ + +#ifndef Py_PYLIFECYCLE_H +#define Py_PYLIFECYCLE_H +#ifdef __cplusplus +extern "C" { +#endif + + +/* Initialization and finalization */ +PyAPI_FUNC(void) Py_Initialize(void); +PyAPI_FUNC(void) Py_InitializeEx(int); +PyAPI_FUNC(void) Py_Finalize(void); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03060000 +PyAPI_FUNC(int) Py_FinalizeEx(void); +#endif +PyAPI_FUNC(int) Py_IsInitialized(void); + +/* Subinterpreter support */ +PyAPI_FUNC(PyThreadState *) Py_NewInterpreter(void); +PyAPI_FUNC(void) Py_EndInterpreter(PyThreadState *); + + +/* Py_PyAtExit is for the atexit module, Py_AtExit is for low-level + * exit functions. + */ +PyAPI_FUNC(int) Py_AtExit(void (*func)(void)); + +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_BytesMain(int argc, char **argv); + +/* In pathconfig.c */ +Py_DEPRECATED(3.11) PyAPI_FUNC(void) Py_SetProgramName(const wchar_t *); +Py_DEPRECATED(3.13) PyAPI_FUNC(wchar_t *) Py_GetProgramName(void); + +Py_DEPRECATED(3.11) PyAPI_FUNC(void) Py_SetPythonHome(const wchar_t *); +Py_DEPRECATED(3.13) PyAPI_FUNC(wchar_t *) Py_GetPythonHome(void); + +Py_DEPRECATED(3.13) PyAPI_FUNC(wchar_t *) Py_GetProgramFullPath(void); +Py_DEPRECATED(3.13) PyAPI_FUNC(wchar_t *) Py_GetPrefix(void); +Py_DEPRECATED(3.13) PyAPI_FUNC(wchar_t *) Py_GetExecPrefix(void); +Py_DEPRECATED(3.13) PyAPI_FUNC(wchar_t *) Py_GetPath(void); +#ifdef MS_WINDOWS +int _Py_CheckPython3(void); +#endif + +/* In their own files */ +PyAPI_FUNC(const char *) Py_GetVersion(void); +PyAPI_FUNC(const char *) Py_GetPlatform(void); +PyAPI_FUNC(const char *) Py_GetCopyright(void); +PyAPI_FUNC(const char *) Py_GetCompiler(void); +PyAPI_FUNC(const char *) Py_GetBuildInfo(void); + +/* Signals */ +typedef void (*PyOS_sighandler_t)(int); +PyAPI_FUNC(PyOS_sighandler_t) PyOS_getsig(int); +PyAPI_FUNC(PyOS_sighandler_t) PyOS_setsig(int, PyOS_sighandler_t); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030B0000 +PyAPI_DATA(const unsigned long) Py_Version; +#endif + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030D0000 +PyAPI_FUNC(int) Py_IsFinalizing(void); +#endif + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_PYLIFECYCLE_H +# include "cpython/pylifecycle.h" +# undef Py_CPYTHON_PYLIFECYCLE_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_PYLIFECYCLE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pymacconfig.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pymacconfig.h new file mode 100644 index 000000000..615abe103 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pymacconfig.h @@ -0,0 +1,91 @@ +// This file moves some of the autoconf magic to compile-time when building on +// macOS. This is needed for building 4-way universal binaries and for 64-bit +// universal binaries because the values redefined below aren't configure-time +// constant but only compile-time constant in these scenarios. + +#ifndef PY_MACCONFIG_H +#define PY_MACCONFIG_H +#ifdef __APPLE__ + +#undef ALIGNOF_MAX_ALIGN_T +#undef SIZEOF_LONG +#undef SIZEOF_LONG_DOUBLE +#undef SIZEOF_PTHREAD_T +#undef SIZEOF_SIZE_T +#undef SIZEOF_TIME_T +#undef SIZEOF_VOID_P +#undef SIZEOF__BOOL +#undef SIZEOF_UINTPTR_T +#undef SIZEOF_PTHREAD_T +#undef WORDS_BIGENDIAN +#undef DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 +#undef DOUBLE_IS_BIG_ENDIAN_IEEE754 +#undef DOUBLE_IS_LITTLE_ENDIAN_IEEE754 +#undef HAVE_GCC_ASM_FOR_X87 +#undef HAVE_GCC_ASM_FOR_X64 + +#undef VA_LIST_IS_ARRAY +#if defined(__LP64__) && defined(__x86_64__) +# define VA_LIST_IS_ARRAY 1 +#endif + +#undef HAVE_LARGEFILE_SUPPORT +#ifndef __LP64__ +# define HAVE_LARGEFILE_SUPPORT 1 +#endif + +#undef SIZEOF_LONG +#ifdef __LP64__ +# define SIZEOF__BOOL 1 +# define SIZEOF__BOOL 1 +# define SIZEOF_LONG 8 +# define SIZEOF_PTHREAD_T 8 +# define SIZEOF_SIZE_T 8 +# define SIZEOF_TIME_T 8 +# define SIZEOF_VOID_P 8 +# define SIZEOF_UINTPTR_T 8 +# define SIZEOF_PTHREAD_T 8 +#else +# ifdef __ppc__ +# define SIZEOF__BOOL 4 +# else +# define SIZEOF__BOOL 1 +# endif +# define SIZEOF_LONG 4 +# define SIZEOF_PTHREAD_T 4 +# define SIZEOF_SIZE_T 4 +# define SIZEOF_TIME_T 4 +# define SIZEOF_VOID_P 4 +# define SIZEOF_UINTPTR_T 4 +# define SIZEOF_PTHREAD_T 4 +#endif + +// macOS 10.4 (the first release to support 64-bit code +// at all) only supports 64-bit in the UNIX layer. +// Therefore suppress the toolbox-glue in 64-bit mode. +// +// In 64-bit mode setpgrp always has no arguments, in 32-bit +// mode that depends on the compilation environment +#if defined(__LP64__) +# undef SETPGRP_HAVE_ARG +#endif + +#ifdef __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# define DOUBLE_IS_BIG_ENDIAN_IEEE754 +#else +# define DOUBLE_IS_LITTLE_ENDIAN_IEEE754 +#endif + +#if defined(__i386__) || defined(__x86_64__) +# define HAVE_GCC_ASM_FOR_X87 +# define ALIGNOF_MAX_ALIGN_T 16 +# define HAVE_GCC_ASM_FOR_X64 1 +# define SIZEOF_LONG_DOUBLE 16 +#else +# define ALIGNOF_MAX_ALIGN_T 8 +# define SIZEOF_LONG_DOUBLE 8 +#endif + +#endif // __APPLE__ +#endif // !PY_MACCONFIG_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pymacro.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pymacro.h new file mode 100644 index 000000000..e3e9cd135 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pymacro.h @@ -0,0 +1,193 @@ +#ifndef Py_PYMACRO_H +#define Py_PYMACRO_H + +// gh-91782: On FreeBSD 12, if the _POSIX_C_SOURCE and _XOPEN_SOURCE macros are +// defined, disables C11 support and does not define +// the static_assert() macro. +// https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=255290 +// +// macOS <= 10.10 doesn't define static_assert in assert.h at all despite +// having C11 compiler support. +// +// static_assert is defined in glibc from version 2.16. Compiler support for +// the C11 _Static_assert keyword is in gcc >= 4.6. +// +// MSVC makes static_assert a keyword in C11-17, contrary to the standards. +// +// In C++11 and C2x, static_assert is a keyword, redefining is undefined +// behaviour. So only define if building as C, not C++ (if __cplusplus is +// not defined), and only for C11-17. +#if !defined(static_assert) && (defined(__GNUC__) || defined(__clang__)) \ + && !defined(__cplusplus) && defined(__STDC_VERSION__) \ + && __STDC_VERSION__ >= 201112L && __STDC_VERSION__ <= 201710L +# define static_assert _Static_assert +#endif + +/* Minimum value between x and y */ +#define Py_MIN(x, y) (((x) > (y)) ? (y) : (x)) + +/* Maximum value between x and y */ +#define Py_MAX(x, y) (((x) > (y)) ? (x) : (y)) + +/* Absolute value of the number x */ +#define Py_ABS(x) ((x) < 0 ? -(x) : (x)) + +#define _Py_XSTRINGIFY(x) #x + +/* Convert the argument to a string. For example, Py_STRINGIFY(123) is replaced + with "123" by the preprocessor. Defines are also replaced by their value. + For example Py_STRINGIFY(__LINE__) is replaced by the line number, not + by "__LINE__". */ +#define Py_STRINGIFY(x) _Py_XSTRINGIFY(x) + +/* Get the size of a structure member in bytes */ +#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) + +/* Argument must be a char or an int in [-128, 127] or [0, 255]. */ +#define Py_CHARMASK(c) ((unsigned char)((c) & 0xff)) + +#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L \ + && !defined(__cplusplus)) +# define Py_BUILD_ASSERT_EXPR(cond) \ + ((void)sizeof(struct { int dummy; _Static_assert(cond, #cond); }), \ + 0) +#else + /* Assert a build-time dependency, as an expression. + * + * Your compile will fail if the condition isn't true, or can't be evaluated + * by the compiler. This can be used in an expression: its value is 0. + * + * Example: + * + * #define foo_to_char(foo) \ + * ((char *)(foo) \ + * + Py_BUILD_ASSERT_EXPR(offsetof(struct foo, string) == 0)) + * + * Written by Rusty Russell, public domain, http://ccodearchive.net/ + */ +# define Py_BUILD_ASSERT_EXPR(cond) \ + (sizeof(char [1 - 2*!(cond)]) - 1) +#endif + +#if ((defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) \ + || (defined(__cplusplus) && __cplusplus >= 201103L)) + // Use static_assert() on C11 and newer +# define Py_BUILD_ASSERT(cond) \ + do { \ + static_assert((cond), #cond); \ + } while (0) +#else +# define Py_BUILD_ASSERT(cond) \ + do { \ + (void)Py_BUILD_ASSERT_EXPR(cond); \ + } while(0) +#endif + +/* Get the number of elements in a visible array + + This does not work on pointers, or arrays declared as [], or function + parameters. With correct compiler support, such usage will cause a build + error (see Py_BUILD_ASSERT_EXPR). + + Written by Rusty Russell, public domain, http://ccodearchive.net/ + + Requires at GCC 3.1+ */ +#if (defined(__GNUC__) && !defined(__STRICT_ANSI__) && \ + (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1)) || (__GNUC__ >= 4))) +/* Two gcc extensions. + &a[0] degrades to a pointer: a different type from an array */ +#define Py_ARRAY_LENGTH(array) \ + (sizeof(array) / sizeof((array)[0]) \ + + Py_BUILD_ASSERT_EXPR(!__builtin_types_compatible_p(typeof(array), \ + typeof(&(array)[0])))) +#else +#define Py_ARRAY_LENGTH(array) \ + (sizeof(array) / sizeof((array)[0])) +#endif + + +/* Define macros for inline documentation. */ +#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 +#else +#define PyDoc_STR(str) "" +#endif + +/* Below "a" is a power of 2. */ +/* Round down size "n" to be a multiple of "a". */ +#define _Py_SIZE_ROUND_DOWN(n, a) ((size_t)(n) & ~(size_t)((a) - 1)) +/* Round up size "n" to be a multiple of "a". */ +#define _Py_SIZE_ROUND_UP(n, a) (((size_t)(n) + \ + (size_t)((a) - 1)) & ~(size_t)((a) - 1)) +/* Round pointer "p" down to the closest "a"-aligned address <= "p". */ +#define _Py_ALIGN_DOWN(p, a) ((void *)((uintptr_t)(p) & ~(uintptr_t)((a) - 1))) +/* Round pointer "p" up to the closest "a"-aligned address >= "p". */ +#define _Py_ALIGN_UP(p, a) ((void *)(((uintptr_t)(p) + \ + (uintptr_t)((a) - 1)) & ~(uintptr_t)((a) - 1))) +/* 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)) +#elif defined(_MSC_VER) + // Disable warning C4100: unreferenced formal parameter, + // declare the parameter, + // restore old compiler warnings. +# define Py_UNUSED(name) \ + __pragma(warning(push)) \ + __pragma(warning(suppress: 4100)) \ + _unused_ ## name \ + __pragma(warning(pop)) +#else +# 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 + +#define _Py_CONTAINER_OF(ptr, type, member) \ + (type*)((char*)ptr - offsetof(type, member)) + +// Prevent using an expression as a l-value. +// For example, "int x; _Py_RVALUE(x) = 1;" fails with a compiler error. +#define _Py_RVALUE(EXPR) ((void)0, (EXPR)) + +// Return non-zero if the type is signed, return zero if it's unsigned. +// Use "<= 0" rather than "< 0" to prevent the compiler warning: +// "comparison of unsigned expression in '< 0' is always false". +#define _Py_IS_TYPE_SIGNED(type) ((type)(-1) <= 0) + +#endif /* Py_PYMACRO_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pymath.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pymath.h new file mode 100644 index 000000000..4c1e3d998 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pymath.h @@ -0,0 +1,62 @@ +// Symbols and macros to supply platform-independent interfaces to mathematical +// functions and constants. + +#ifndef Py_PYMATH_H +#define Py_PYMATH_H + +/* High precision definition of pi and e (Euler) + * The values are taken from libc6's math.h. + */ +#ifndef Py_MATH_PIl +#define Py_MATH_PIl 3.1415926535897932384626433832795029L +#endif +#ifndef Py_MATH_PI +#define Py_MATH_PI 3.14159265358979323846 +#endif + +#ifndef Py_MATH_El +#define Py_MATH_El 2.7182818284590452353602874713526625L +#endif + +#ifndef Py_MATH_E +#define Py_MATH_E 2.7182818284590452354 +#endif + +/* Tau (2pi) to 40 digits, taken from tauday.com/tau-digits. */ +#ifndef Py_MATH_TAU +#define Py_MATH_TAU 6.2831853071795864769252867665590057683943L +#endif + +// Py_IS_NAN(X) +// Return 1 if float or double arg is a NaN, else 0. +#define Py_IS_NAN(X) isnan(X) + +// Py_IS_INFINITY(X) +// Return 1 if float or double arg is an infinity, else 0. +#define Py_IS_INFINITY(X) isinf(X) + +// Py_IS_FINITE(X) +// Return 1 if float or double arg is neither infinite nor NAN, else 0. +#define Py_IS_FINITE(X) isfinite(X) + +// Py_INFINITY: Value that evaluates to a positive double infinity. +#ifndef Py_INFINITY +# define Py_INFINITY ((double)INFINITY) +#endif + +/* Py_HUGE_VAL should always be the same as Py_INFINITY. But historically + * this was not reliable and Python did not require IEEE floats and C99 + * conformity. Prefer Py_INFINITY for new code. + */ +#ifndef Py_HUGE_VAL +# define Py_HUGE_VAL HUGE_VAL +#endif + +/* Py_NAN: Value that evaluates to a quiet Not-a-Number (NaN). The sign is + * undefined and normally not relevant, but e.g. fixed for float("nan"). + */ +#if !defined(Py_NAN) +# define Py_NAN ((double)NAN) +#endif + +#endif /* Py_PYMATH_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pymem.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pymem.h new file mode 100644 index 000000000..a80da99e1 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pymem.h @@ -0,0 +1,110 @@ +// The PyMem_ family: low-level memory allocation interfaces. +// See objimpl.h for the PyObject_ memory family. + +#ifndef Py_PYMEM_H +#define Py_PYMEM_H +#ifdef __cplusplus +extern "C" { +#endif + +/* BEWARE: + + Each interface exports both functions and macros. Extension modules should + use the functions, to ensure binary compatibility across Python versions. + Because the Python implementation is free to change internal details, and + the macros may (or may not) expose details for speed, if you do use the + macros you must recompile your extensions with each Python release. + + Never mix calls to PyMem_ with calls to the platform malloc/realloc/ + calloc/free. For example, on Windows different DLLs may end up using + different heaps, and if you use PyMem_Malloc you'll get the memory from the + heap used by the Python DLL; it could be a disaster if you free()'ed that + directly in your own extension. Using PyMem_Free instead ensures Python + can return the memory to the proper heap. As another example, in + a debug build (Py_DEBUG macro), Python wraps all calls to all PyMem_ and + PyObject_ memory functions in special debugging wrappers that add additional + debugging info to dynamic memory blocks. The system routines have no idea + what to do with that stuff, and the Python wrappers have no idea what to do + with raw blocks obtained directly by the system routines then. + + The GIL must be held when using these APIs. +*/ + +/* + * Raw memory interface + * ==================== + */ + +/* Functions + + Functions supplying platform-independent semantics for malloc/realloc/ + free. These functions make sure that allocating 0 bytes returns a distinct + non-NULL pointer (whenever possible -- if we're flat out of memory, NULL + may be returned), even if the platform malloc and realloc don't. + Returned pointers must be checked for NULL explicitly. No action is + performed on failure (no exception is set, no warning is printed, etc). +*/ + +PyAPI_FUNC(void *) PyMem_Malloc(size_t size); +PyAPI_FUNC(void *) PyMem_Calloc(size_t nelem, size_t elsize); +PyAPI_FUNC(void *) PyMem_Realloc(void *ptr, size_t new_size); +PyAPI_FUNC(void) PyMem_Free(void *ptr); + +/* + * Type-oriented memory interface + * ============================== + * + * Allocate memory for n objects of the given type. Returns a new pointer + * or NULL if the request was too large or memory allocation failed. Use + * these macros rather than doing the multiplication yourself so that proper + * overflow checking is always done. + */ + +#define PyMem_New(type, n) \ + ( ((size_t)(n) > PY_SSIZE_T_MAX / sizeof(type)) ? NULL : \ + ( (type *) PyMem_Malloc((n) * sizeof(type)) ) ) + +/* + * The value of (p) is always clobbered by this macro regardless of success. + * The caller MUST check if (p) is NULL afterwards and deal with the memory + * error if so. This means the original value of (p) MUST be saved for the + * caller's memory error handler to not lose track of it. + */ +#define PyMem_Resize(p, type, n) \ + ( (p) = ((size_t)(n) > PY_SSIZE_T_MAX / sizeof(type)) ? NULL : \ + (type *) PyMem_Realloc((p), (n) * sizeof(type)) ) + + +// Deprecated aliases only kept for backward compatibility. +// PyMem_Del and PyMem_DEL are defined with no parameter to be able to use +// them as function pointers (ex: dealloc = PyMem_Del). +#define PyMem_MALLOC(n) PyMem_Malloc((n)) +#define PyMem_NEW(type, n) PyMem_New(type, (n)) +#define PyMem_REALLOC(p, n) PyMem_Realloc((p), (n)) +#define PyMem_RESIZE(p, type, n) PyMem_Resize((p), type, (n)) +#define PyMem_FREE(p) PyMem_Free((p)) +#define PyMem_Del(p) PyMem_Free((p)) +#define PyMem_DEL(p) PyMem_Free((p)) + + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030d0000 +// Memory allocator which doesn't require the GIL to be held. +// Usually, it's just a thin wrapper to functions of the standard C library: +// malloc(), calloc(), realloc() and free(). The difference is that +// tracemalloc can track these memory allocations. +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); +#endif + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_PYMEM_H +# include "cpython/pymem.h" +# undef Py_CPYTHON_PYMEM_H +#endif + +#ifdef __cplusplus +} +#endif +#endif // !Py_PYMEM_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyport.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyport.h new file mode 100644 index 000000000..2ba81a4be --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pyport.h @@ -0,0 +1,609 @@ +#ifndef Py_PYPORT_H +#define Py_PYPORT_H + +#ifndef UCHAR_MAX +# error " header must define UCHAR_MAX" +#endif +#if UCHAR_MAX != 255 +# error "Python's source code assumes C's unsigned char is an 8-bit type" +#endif + + +// Macro to use C++ static_cast<> in the Python C API. +#ifdef __cplusplus +# define _Py_STATIC_CAST(type, expr) static_cast(expr) +#else +# define _Py_STATIC_CAST(type, expr) ((type)(expr)) +#endif +// Macro to use the more powerful/dangerous C-style cast even in C++. +#define _Py_CAST(type, expr) ((type)(expr)) + +// Static inline functions should use _Py_NULL rather than using directly NULL +// to prevent C++ compiler warnings. On C23 and newer and on C++11 and newer, +// _Py_NULL is defined as nullptr. +#if (defined (__STDC_VERSION__) && __STDC_VERSION__ > 201710L) \ + || (defined(__cplusplus) && __cplusplus >= 201103) +# define _Py_NULL nullptr +#else +# define _Py_NULL NULL +#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. + +Please try to make documentation here as clear as possible: by definition, +the stuff here is trying to illuminate C's darkest corners. + +Config #defines referenced here: + +SIGNED_RIGHT_SHIFT_ZERO_FILLS +Meaning: To be defined iff i>>j does not extend the sign bit when i is a + signed integral type and i < 0. +Used in: Py_ARITHMETIC_RIGHT_SHIFT + +Py_DEBUG +Meaning: Extra checks compiled in for debug mode. +Used in: Py_SAFE_DOWNCAST + +**************************************************************************/ + +/* typedefs for some C9X-defined synonyms for integral types. + * + * The names in Python are exactly the same as the C9X names, except with a + * Py_ prefix. Until C9X is universally implemented, this is the only way + * to ensure that Python gets reliable names that don't conflict with names + * in non-Python code that are playing their own tricks to define the C9X + * names. + * + * NOTE: don't go nuts here! Python has no use for *most* of the C9X + * integral synonyms. Only define the ones we actually need. + */ + +/* long long is required. Ensure HAVE_LONG_LONG is defined for compatibility. */ +#ifndef HAVE_LONG_LONG +#define HAVE_LONG_LONG 1 +#endif +#ifndef PY_LONG_LONG +#define PY_LONG_LONG long long +/* If LLONG_MAX is defined in limits.h, use that. */ +#define PY_LLONG_MIN LLONG_MIN +#define PY_LLONG_MAX LLONG_MAX +#define PY_ULLONG_MAX ULLONG_MAX +#endif + +#define PY_UINT32_T uint32_t +#define PY_UINT64_T uint64_t + +/* Signed variants of the above */ +#define PY_INT32_T int32_t +#define PY_INT64_T int64_t + +/* PYLONG_BITS_IN_DIGIT describes the number of bits per "digit" (limb) in the + * PyLongObject implementation (longintrepr.h). It's currently either 30 or 15, + * defaulting to 30. The 15-bit digit option may be removed in the future. + */ +#ifndef PYLONG_BITS_IN_DIGIT +#define PYLONG_BITS_IN_DIGIT 30 +#endif + +/* uintptr_t is the C9X name for an unsigned integral type such that a + * legitimate void* can be cast to uintptr_t and then back to void* again + * without loss of information. Similarly for intptr_t, wrt a signed + * integral type. + */ +typedef uintptr_t Py_uintptr_t; +typedef intptr_t Py_intptr_t; + +/* Py_ssize_t is a signed integral type such that sizeof(Py_ssize_t) == + * sizeof(size_t). C99 doesn't define such a thing directly (size_t is an + * unsigned integral type). See PEP 353 for details. + * PY_SSIZE_T_MAX is the largest positive value of type Py_ssize_t. + */ +#ifdef HAVE_PY_SSIZE_T + +#elif HAVE_SSIZE_T +typedef ssize_t Py_ssize_t; +# define PY_SSIZE_T_MAX SSIZE_MAX +#elif SIZEOF_VOID_P == SIZEOF_SIZE_T +typedef Py_intptr_t Py_ssize_t; +# define PY_SSIZE_T_MAX INTPTR_MAX +#else +# error "Python needs a typedef for Py_ssize_t in pyport.h." +#endif + +/* Smallest negative value of type Py_ssize_t. */ +#define PY_SSIZE_T_MIN (-PY_SSIZE_T_MAX-1) + +/* Py_hash_t is the same size as a pointer. */ +#define SIZEOF_PY_HASH_T SIZEOF_SIZE_T +typedef Py_ssize_t Py_hash_t; +/* Py_uhash_t is the unsigned equivalent needed to calculate numeric hash. */ +#define SIZEOF_PY_UHASH_T SIZEOF_SIZE_T +typedef size_t Py_uhash_t; + +/* Now PY_SSIZE_T_CLEAN is mandatory. This is just for backward compatibility. */ +typedef Py_ssize_t Py_ssize_clean_t; + +/* Largest possible value of size_t. */ +#define PY_SIZE_MAX SIZE_MAX + +/* Macro kept for backward compatibility: use directly "z" in new code. + * + * PY_FORMAT_SIZE_T is a modifier for use in a printf format to convert an + * argument with the width of a size_t or Py_ssize_t: "z" (C99). + */ +#ifndef PY_FORMAT_SIZE_T +# define PY_FORMAT_SIZE_T "z" +#endif + +/* Py_LOCAL can be used instead of static to get the fastest possible calling + * convention for functions that are local to a given module. + * + * Py_LOCAL_INLINE does the same thing, and also explicitly requests inlining, + * for platforms that support that. + * + * NOTE: You can only use this for functions that are entirely local to a + * module; functions that are exported via method tables, callbacks, etc, + * should keep using static. + */ + +#if defined(_MSC_VER) + /* 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 +#endif + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define Py_MEMCPY memcpy +#endif + +#ifdef __cplusplus +/* Move this down here since some C++ #include's don't like to be included + inside an extern "C" */ +extern "C" { +#endif + + +/* Py_ARITHMETIC_RIGHT_SHIFT + * C doesn't define whether a right-shift of a signed integer sign-extends + * or zero-fills. Here a macro to force sign extension: + * Py_ARITHMETIC_RIGHT_SHIFT(TYPE, I, J) + * Return I >> J, forcing sign extension. Arithmetically, return the + * floor of I/2**J. + * Requirements: + * I should have signed integer type. In the terminology of C99, this can + * be either one of the five standard signed integer types (signed char, + * short, int, long, long long) or an extended signed integer type. + * J is an integer >= 0 and strictly less than the number of bits in the + * type of I (because C doesn't define what happens for J outside that + * range either). + * TYPE used to specify the type of I, but is now ignored. It's been left + * in for backwards compatibility with versions <= 2.6 or 3.0. + * Caution: + * I may be evaluated more than once. + */ +#ifdef SIGNED_RIGHT_SHIFT_ZERO_FILLS +#define Py_ARITHMETIC_RIGHT_SHIFT(TYPE, I, J) \ + ((I) < 0 ? -1-((-1-(I)) >> (J)) : (I) >> (J)) +#else +#define Py_ARITHMETIC_RIGHT_SHIFT(TYPE, I, J) ((I) >> (J)) +#endif + +/* Py_FORCE_EXPANSION(X) + * "Simply" returns its argument. However, macro expansions within the + * argument are evaluated. This unfortunate trickery is needed to get + * token-pasting to work as desired in some cases. + */ +#define Py_FORCE_EXPANSION(X) X + +/* Py_SAFE_DOWNCAST(VALUE, WIDE, NARROW) + * Cast VALUE to type NARROW from type WIDE. In Py_DEBUG mode, this + * assert-fails if any information is lost. + * Caution: + * VALUE may be evaluated more than once. + */ +#ifdef Py_DEBUG +# define Py_SAFE_DOWNCAST(VALUE, WIDE, NARROW) \ + (assert(_Py_STATIC_CAST(WIDE, _Py_STATIC_CAST(NARROW, (VALUE))) == (VALUE)), \ + _Py_STATIC_CAST(NARROW, (VALUE))) +#else +# define Py_SAFE_DOWNCAST(VALUE, WIDE, NARROW) _Py_STATIC_CAST(NARROW, (VALUE)) +#endif + + +/* Py_DEPRECATED(version) + * Declare a variable, type, or function deprecated. + * 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); + */ +#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)) +#else +#define Py_DEPRECATED(VERSION_UNUSED) +#endif + +// _Py_DEPRECATED_EXTERNALLY(version) +// Deprecated outside CPython core. +#ifdef Py_BUILD_CORE +#define _Py_DEPRECATED_EXTERNALLY(VERSION_UNUSED) +#else +#define _Py_DEPRECATED_EXTERNALLY(version) Py_DEPRECATED(version) +#endif + + +#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 + * more aggressively and on many target it is placed into special subsection of + * the text section so all hot functions appears close together improving + * locality. + * + * Usage: + * int _Py_HOT_FUNCTION x(void) { return 3; } + * + * Issue #28618: This attribute must not be abused, otherwise it can have a + * negative effect on performance. Only the functions were Python spend most of + * its time must use it. Use a profiler when running performance benchmark + * suite to find these functions. + */ +#if defined(__GNUC__) \ + && ((__GNUC__ >= 5) || (__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) +#define _Py_HOT_FUNCTION __attribute__((hot)) +#else +#define _Py_HOT_FUNCTION +#endif + +// Ask the compiler to always inline a static inline function. The compiler can +// ignore it and decides to not inline the function. +// +// It can be used to inline performance critical static inline functions when +// building Python in debug mode with function inlining disabled. For example, +// MSC disables function inlining when building in debug mode. +// +// Marking blindly a static inline function with Py_ALWAYS_INLINE can result in +// worse performances (due to increased code size for example). The compiler is +// usually smarter than the developer for the cost/benefit analysis. +// +// If Python is built in debug mode (if the Py_DEBUG macro is defined), the +// Py_ALWAYS_INLINE macro does nothing. +// +// It must be specified before the function return type. Usage: +// +// static inline Py_ALWAYS_INLINE int random(void) { return 4; } +#if defined(Py_DEBUG) + // If Python is built in debug mode, usually compiler optimizations are + // disabled. In this case, Py_ALWAYS_INLINE can increase a lot the stack + // memory usage. For example, forcing inlining using gcc -O0 increases the + // stack usage from 6 KB to 15 KB per Python function call. +# define Py_ALWAYS_INLINE +#elif defined(__GNUC__) || defined(__clang__) || defined(__INTEL_COMPILER) +# define Py_ALWAYS_INLINE __attribute__((always_inline)) +#elif defined(_MSC_VER) +# define Py_ALWAYS_INLINE __forceinline +#else +# define Py_ALWAYS_INLINE +#endif + +// Py_NO_INLINE +// Disable inlining on a function. For example, it reduces the C stack +// consumption: useful on LTO+PGO builds which heavily inline code (see +// bpo-33720). +// +// Usage: +// +// Py_NO_INLINE static int random(void) { return 4; } +#if defined(__GNUC__) || defined(__clang__) || defined(__INTEL_COMPILER) +# define Py_NO_INLINE __attribute__ ((noinline)) +#elif defined(_MSC_VER) +# define Py_NO_INLINE __declspec(noinline) +#else +# define Py_NO_INLINE +#endif + +#include "exports.h" + +#ifdef Py_LIMITED_API + // The internal C API must not be used with the limited C API: make sure + // that Py_BUILD_CORE macro is not defined in this case. These 3 macros are + // used by exports.h, so only undefine them afterwards. +# undef Py_BUILD_CORE +# undef Py_BUILD_CORE_BUILTIN +# undef Py_BUILD_CORE_MODULE +#endif + +/* limits.h constants that may be missing */ + +#ifndef INT_MAX +#define INT_MAX 2147483647 +#endif + +#ifndef LONG_MAX +#if SIZEOF_LONG == 4 +#define LONG_MAX 0X7FFFFFFFL +#elif SIZEOF_LONG == 8 +#define LONG_MAX 0X7FFFFFFFFFFFFFFFL +#else +#error "could not set LONG_MAX in pyport.h" +#endif +#endif + +#ifndef LONG_MIN +#define LONG_MIN (-LONG_MAX-1) +#endif + +#ifndef LONG_BIT +#define LONG_BIT (8 * SIZEOF_LONG) +#endif + +#if LONG_BIT != 8 * SIZEOF_LONG +/* 04-Oct-2000 LONG_BIT is apparently (mis)defined as 64 on some recent + * 32-bit platforms using gcc. We try to catch that here at compile-time + * rather than waiting for integer multiplication to trigger bogus + * overflows. + */ +#error "LONG_BIT definition appears wrong for platform (bad gcc/glibc config?)." +#endif + +#ifdef __cplusplus +} +#endif + +/* + * Hide GCC attributes from compilers that don't support them. + */ +#if (!defined(__GNUC__) || __GNUC__ < 2 || \ + (__GNUC__ == 2 && __GNUC_MINOR__ < 7) ) +#define Py_GCC_ATTRIBUTE(x) +#else +#define Py_GCC_ATTRIBUTE(x) __attribute__(x) +#endif + +/* + * Specify alignment on compilers that support it. + */ +#if defined(__GNUC__) && __GNUC__ >= 3 +#define Py_ALIGNED(x) __attribute__((aligned(x))) +#else +#define Py_ALIGNED(x) +#endif + +/* Eliminate end-of-loop code not reached warnings from SunPro C + * when using do{...}while(0) macros + */ +#ifdef __SUNPRO_C +#pragma error_messages (off,E_END_OF_LOOP_CODE_NOT_REACHED) +#endif + +#ifndef Py_LL +#define Py_LL(x) x##LL +#endif + +#ifndef Py_ULL +#define Py_ULL(x) Py_LL(x##U) +#endif + +#define Py_VA_COPY va_copy + +/* + * Convenient macros to deal with endianness of the platform. WORDS_BIGENDIAN is + * detected by configure and defined in pyconfig.h. The code in pyconfig.h + * also takes care of Apple's universal builds. + */ + +#ifdef WORDS_BIGENDIAN +# define PY_BIG_ENDIAN 1 +# define PY_LITTLE_ENDIAN 0 +#else +# define PY_BIG_ENDIAN 0 +# define PY_LITTLE_ENDIAN 1 +#endif + +#ifdef __ANDROID__ + /* The Android langinfo.h header is not used. */ +# undef HAVE_LANGINFO_H +# undef CODESET +#endif + +/* Maximum value of the Windows DWORD type */ +#define PY_DWORD_MAX 4294967295U + +/* This macro used to tell whether Python was built with multithreading + * enabled. Now multithreading is always enabled, but keep the macro + * for compatibility. + */ +#ifndef WITH_THREAD +# define WITH_THREAD +#endif + +/* Some WebAssembly platforms do not provide a working pthread implementation. + * Thread support is stubbed and any attempt to create a new thread fails. + */ +#if (!defined(HAVE_PTHREAD_STUBS) && \ + (!defined(__EMSCRIPTEN__) || defined(__EMSCRIPTEN_PTHREADS__))) +# define Py_CAN_START_THREADS 1 +#endif + +#ifdef WITH_THREAD +# ifdef Py_BUILD_CORE +# ifdef HAVE_THREAD_LOCAL +# error "HAVE_THREAD_LOCAL is already defined" +# endif +# define HAVE_THREAD_LOCAL 1 +# ifdef thread_local +# define _Py_thread_local thread_local +# elif __STDC_VERSION__ >= 201112L && !defined(__STDC_NO_THREADS__) +# define _Py_thread_local _Thread_local +# elif defined(_MSC_VER) /* AKA NT_THREADS */ +# define _Py_thread_local __declspec(thread) +# elif defined(__GNUC__) /* includes clang */ +# define _Py_thread_local __thread +# else + // fall back to the PyThread_tss_*() API, or ignore. +# undef HAVE_THREAD_LOCAL +# endif +# endif +#endif + +#if defined(__ANDROID__) || defined(__VXWORKS__) + // Use UTF-8 as the locale encoding, ignore the LC_CTYPE locale. + // See _Py_GetLocaleEncoding(), PyUnicode_DecodeLocale() + // and PyUnicode_EncodeLocale(). +# define _Py_FORCE_UTF8_LOCALE +#endif + +#if defined(_Py_FORCE_UTF8_LOCALE) || defined(__APPLE__) + // Use UTF-8 as the filesystem encoding. + // See PyUnicode_DecodeFSDefaultAndSize(), PyUnicode_EncodeFSDefault(), + // Py_DecodeLocale() and Py_EncodeLocale(). +# 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 */ +#ifndef _Py_NO_RETURN +#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 +#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 + +// _Py_TYPEOF(expr) gets the type of an expression. +// +// Example: _Py_TYPEOF(x) x_copy = (x); +// +// The macro is only defined if GCC or clang compiler is used. +#if defined(__GNUC__) || defined(__clang__) +# define _Py_TYPEOF(expr) __typeof__(expr) +#endif + + +/* 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 +# if __has_feature(thread_sanitizer) +# if !defined(_Py_THREAD_SANITIZER) +# define _Py_THREAD_SANITIZER +# endif +# endif +#elif defined(__GNUC__) +# if defined(__SANITIZE_ADDRESS__) +# define _Py_ADDRESS_SANITIZER +# endif +# if defined(__SANITIZE_THREAD__) +# define _Py_THREAD_SANITIZER +# endif +#endif + + +/* AIX has __bool__ redefined in it's system header file. */ +#if defined(_AIX) && defined(__bool__) +#undef __bool__ +#endif + +// Make sure we have maximum alignment, even if the current compiler +// does not support max_align_t. Note that: +// - Autoconf reports alignment of unknown types to 0. +// - 'long double' has maximum alignment on *most* platforms, +// looks like the best we can do for pre-C11 compilers. +// - The value is tested, see test_alignof_max_align_t +#if !defined(ALIGNOF_MAX_ALIGN_T) || ALIGNOF_MAX_ALIGN_T == 0 +# undef ALIGNOF_MAX_ALIGN_T +# define ALIGNOF_MAX_ALIGN_T _Alignof(long double) +#endif + +#ifndef PY_CXX_CONST +# ifdef __cplusplus +# define PY_CXX_CONST const +# else +# define PY_CXX_CONST +# endif +#endif + +#if defined(__sgi) && !defined(_SGI_MP_SOURCE) +# define _SGI_MP_SOURCE +#endif + +#endif /* Py_PYPORT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pystate.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pystate.h new file mode 100644 index 000000000..727b8fbff --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pystate.h @@ -0,0 +1,132 @@ +/* Thread and interpreter state structures and their interfaces */ + + +#ifndef Py_PYSTATE_H +#define Py_PYSTATE_H +#ifdef __cplusplus +extern "C" { +#endif + +/* This limitation is for performance and simplicity. If needed it can be +removed (with effort). */ +#define MAX_CO_EXTRA_USERS 255 + +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 +/* New in 3.7 */ +PyAPI_FUNC(int64_t) PyInterpreterState_GetID(PyInterpreterState *); +#endif +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 + +/* State unique per thread */ + +/* New in 3.3 */ +PyAPI_FUNC(int) PyState_AddModule(PyObject*, PyModuleDef*); +PyAPI_FUNC(int) PyState_RemoveModule(PyModuleDef*); +#endif +PyAPI_FUNC(PyObject*) PyState_FindModule(PyModuleDef*); + +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_GetUnchecked() and _PyThreadState_GET(). */ +PyAPI_FUNC(PyThreadState *) PyThreadState_Get(void); + +// Alias to 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 + +typedef + enum {PyGILState_LOCKED, PyGILState_UNLOCKED} + PyGILState_STATE; + + +/* Ensure that the current thread is ready to call the Python + C API, regardless of the current state of Python, or of its + thread lock. This may be called as many times as desired + by a thread so long as each call is matched with a call to + PyGILState_Release(). In general, other thread-state APIs may + be used between _Ensure() and _Release() calls, so long as the + thread-state is restored to its previous state before the Release(). + For example, normal use of the Py_BEGIN_ALLOW_THREADS/ + Py_END_ALLOW_THREADS macros are acceptable. + + The return value is an opaque "handle" to the thread state when + PyGILState_Ensure() was called, and must be passed to + PyGILState_Release() to ensure Python is left in the same state. Even + though recursive calls are allowed, these handles can *not* be shared - + each unique call to PyGILState_Ensure must save the handle for its + call to PyGILState_Release. + + When the function returns, the current thread will hold the GIL. + + Failure is a fatal error. +*/ +PyAPI_FUNC(PyGILState_STATE) PyGILState_Ensure(void); + +/* Release any resources previously acquired. After this call, Python's + state will be the same as it was prior to the corresponding + PyGILState_Ensure() call (but generally this state will be unknown to + the caller, hence the use of the GILState API.) + + Every call to PyGILState_Ensure must be matched by a call to + PyGILState_Release on the same thread. +*/ +PyAPI_FUNC(void) PyGILState_Release(PyGILState_STATE); + +/* Helper/diagnostic function - get the current thread state for + this thread. May return NULL if no GILState API has been used + on the current thread. Note that the main thread always has such a + thread-state, even if no auto-thread-state call has been made + on the main thread. +*/ +PyAPI_FUNC(PyThreadState *) PyGILState_GetThisThreadState(void); + + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_PYSTATE_H +# include "cpython/pystate.h" +# undef Py_CPYTHON_PYSTATE_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_PYSTATE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pystats.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pystats.h new file mode 100644 index 000000000..acfa32201 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pystats.h @@ -0,0 +1,26 @@ +// Statistics on Python performance (public API). +// +// Define _Py_INCREF_STAT_INC() and _Py_DECREF_STAT_INC() used by Py_INCREF() +// and Py_DECREF(). +// +// See Include/cpython/pystats.h for the full API. + +#ifndef Py_PYSTATS_H +#define Py_PYSTATS_H +#ifdef __cplusplus +extern "C" { +#endif + +#if defined(Py_STATS) && !defined(Py_LIMITED_API) +# define Py_CPYTHON_PYSTATS_H +# include "cpython/pystats.h" +# undef Py_CPYTHON_PYSTATS_H +#else +# define _Py_INCREF_STAT_INC() ((void)0) +# define _Py_DECREF_STAT_INC() ((void)0) +#endif // !Py_STATS + +#ifdef __cplusplus +} +#endif +#endif // !Py_PYSTATS_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pystrcmp.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pystrcmp.h new file mode 100644 index 000000000..edb12397e --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pystrcmp.h @@ -0,0 +1,23 @@ +#ifndef Py_STRCMP_H +#define Py_STRCMP_H + +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_FUNC(int) PyOS_mystrnicmp(const char *, const char *, Py_ssize_t); +PyAPI_FUNC(int) PyOS_mystricmp(const char *, const char *); + +#ifdef MS_WINDOWS +#define PyOS_strnicmp strnicmp +#define PyOS_stricmp stricmp +#else +#define PyOS_strnicmp PyOS_mystrnicmp +#define PyOS_stricmp PyOS_mystricmp +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* !Py_STRCMP_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pystrtod.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pystrtod.h new file mode 100644 index 000000000..e83d245eb --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pystrtod.h @@ -0,0 +1,37 @@ +#ifndef Py_STRTOD_H +#define Py_STRTOD_H + +#ifdef __cplusplus +extern "C" { +#endif + + +PyAPI_FUNC(double) PyOS_string_to_double(const char *str, + char **endptr, + PyObject *overflow_exception); + +/* The caller is responsible for calling PyMem_Free to free the buffer + that's is returned. */ +PyAPI_FUNC(char *) PyOS_double_to_string(double val, + char format_code, + int precision, + int flags, + int *type); + +/* PyOS_double_to_string's "flags" parameter can be set to 0 or more of: */ +#define Py_DTSF_SIGN 0x01 /* always add the sign */ +#define Py_DTSF_ADD_DOT_0 0x02 /* if the result is an integer add ".0" */ +#define Py_DTSF_ALT 0x04 /* "alternate" formatting. it's format_code + specific */ +#define Py_DTSF_NO_NEG_0 0x08 /* negative zero result is coerced to 0 */ + +/* PyOS_double_to_string's "type", if non-NULL, will be set to one of: */ +#define Py_DTST_FINITE 0 +#define Py_DTST_INFINITE 1 +#define Py_DTST_NAN 2 + +#ifdef __cplusplus +} +#endif + +#endif /* !Py_STRTOD_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pythonrun.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pythonrun.h new file mode 100644 index 000000000..154c7450c --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pythonrun.h @@ -0,0 +1,49 @@ + +/* Interfaces to parse and execute pieces of python code */ + +#ifndef Py_PYTHONRUN_H +#define Py_PYTHONRUN_H +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_FUNC(PyObject *) Py_CompileString(const char *, const char *, int); + +PyAPI_FUNC(void) PyErr_Print(void); +PyAPI_FUNC(void) PyErr_PrintEx(int); +PyAPI_FUNC(void) PyErr_Display(PyObject *, PyObject *, PyObject *); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030C0000 +PyAPI_FUNC(void) PyErr_DisplayException(PyObject *); +#endif + + +/* Stuff with no proper home (yet) */ +PyAPI_DATA(int) (*PyOS_InputHook)(void); + +/* Stack size, in "pointers" (so we get extra safety margins + on 64-bit platforms). On a 32-bit platform, this translates + to an 8k margin. */ +#define PYOS_STACK_MARGIN 2048 + +#if defined(WIN32) && !defined(MS_WIN64) && !defined(_M_ARM) && defined(_MSC_VER) && _MSC_VER >= 1300 +/* Enable stack checking under Microsoft C */ +// When changing the platforms, ensure PyOS_CheckStack() docs are still correct +#define USE_STACKCHECK +#endif + +#ifdef USE_STACKCHECK +/* Check that we aren't overflowing our stack */ +PyAPI_FUNC(int) PyOS_CheckStack(void); +#endif + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_PYTHONRUN_H +# include "cpython/pythonrun.h" +# undef Py_CPYTHON_PYTHONRUN_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_PYTHONRUN_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pythread.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pythread.h new file mode 100644 index 000000000..a3216c51d --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pythread.h @@ -0,0 +1,112 @@ +#ifndef Py_PYTHREAD_H +#define Py_PYTHREAD_H + +typedef void *PyThread_type_lock; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Return status codes for Python lock acquisition. Chosen for maximum + * backwards compatibility, ie failure -> 0, success -> 1. */ +typedef enum PyLockStatus { + PY_LOCK_FAILURE = 0, + PY_LOCK_ACQUIRED = 1, + PY_LOCK_INTR +} 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(unsigned long) PyThread_get_thread_ident(void); + +#if (defined(__APPLE__) || defined(__linux__) || defined(_WIN32) \ + || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) \ + || defined(__OpenBSD__) || defined(__NetBSD__) \ + || defined(__DragonFly__) || 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 + +// PY_TIMEOUT_T is the integral type used to specify timeouts when waiting +// on a lock (see PyThread_acquire_lock_timed() below). +#define PY_TIMEOUT_T long long + + +/* If microseconds == 0, the call is non-blocking: it returns immediately + even when the lock can't be acquired. + If microseconds > 0, the call waits up to the specified duration. + If microseconds < 0, the call waits until success (or abnormal failure) + + If *microseconds* is greater than PY_TIMEOUT_MAX, clamp the timeout to + PY_TIMEOUT_MAX microseconds. + + If intr_flag is true and the acquire is interrupted by a signal, then the + call will return PY_LOCK_INTR. The caller may reattempt to acquire the + lock. +*/ +PyAPI_FUNC(PyLockStatus) PyThread_acquire_lock_timed(PyThread_type_lock, + PY_TIMEOUT_T microseconds, + int intr_flag); + +PyAPI_FUNC(void) PyThread_release_lock(PyThread_type_lock); + +PyAPI_FUNC(size_t) PyThread_get_stacksize(void); +PyAPI_FUNC(int) PyThread_set_stacksize(size_t); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +PyAPI_FUNC(PyObject*) PyThread_GetInfo(void); +#endif + + +/* Thread Local Storage (TLS) API + TLS API is DEPRECATED. Use Thread Specific Storage (TSS) API. + + The existing TLS API has used int to represent TLS keys across all + 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); + +/* Cleanup after a fork */ +Py_DEPRECATED(3.7) PyAPI_FUNC(void) PyThread_ReInitTLS(void); + + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03070000 +/* New in 3.7 */ +/* Thread Specific Storage (TSS) API */ + +typedef struct _Py_tss_t Py_tss_t; /* opaque */ + +PyAPI_FUNC(Py_tss_t *) PyThread_tss_alloc(void); +PyAPI_FUNC(void) PyThread_tss_free(Py_tss_t *key); + +/* The parameter key must not be NULL. */ +PyAPI_FUNC(int) PyThread_tss_is_created(Py_tss_t *key); +PyAPI_FUNC(int) PyThread_tss_create(Py_tss_t *key); +PyAPI_FUNC(void) PyThread_tss_delete(Py_tss_t *key); +PyAPI_FUNC(int) PyThread_tss_set(Py_tss_t *key, void *value); +PyAPI_FUNC(void *) PyThread_tss_get(Py_tss_t *key); +#endif /* New in 3.7 */ + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_PYTHREAD_H +# include "cpython/pythread.h" +# undef Py_CPYTHON_PYTHREAD_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_PYTHREAD_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pytypedefs.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pytypedefs.h new file mode 100644 index 000000000..e78ed56a3 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/pytypedefs.h @@ -0,0 +1,30 @@ +// Forward declarations of types of the Python C API. +// Declare them at the same place since redefining typedef is a C11 feature. +// Only use a forward declaration if there is an interdependency between two +// header files. + +#ifndef Py_PYTYPEDEFS_H +#define Py_PYTYPEDEFS_H +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct PyModuleDef PyModuleDef; +typedef struct PyModuleDef_Slot PyModuleDef_Slot; +typedef struct PyMethodDef PyMethodDef; +typedef struct PyGetSetDef PyGetSetDef; +typedef struct PyMemberDef PyMemberDef; + +typedef struct _object PyObject; +typedef struct _longobject PyLongObject; +typedef struct _typeobject PyTypeObject; +typedef struct PyCodeObject PyCodeObject; +typedef struct _frame PyFrameObject; + +typedef struct _ts PyThreadState; +typedef struct _is PyInterpreterState; + +#ifdef __cplusplus +} +#endif +#endif // !Py_PYTYPEDEFS_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/rangeobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/rangeobject.h new file mode 100644 index 000000000..d46ce7cd4 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/rangeobject.h @@ -0,0 +1,27 @@ + +/* Range object interface */ + +#ifndef Py_RANGEOBJECT_H +#define Py_RANGEOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +/* +A range object represents an integer range. This is an immutable object; +a range cannot change its value after creation. + +Range objects behave like the corresponding tuple objects except that +they are represented by a start, stop, and step datamembers. +*/ + +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) + +#ifdef __cplusplus +} +#endif +#endif /* !Py_RANGEOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/setobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/setobject.h new file mode 100644 index 000000000..62c9e6b13 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/setobject.h @@ -0,0 +1,49 @@ +/* Set object interface */ + +#ifndef Py_SETOBJECT_H +#define Py_SETOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_DATA(PyTypeObject) PySet_Type; +PyAPI_DATA(PyTypeObject) PyFrozenSet_Type; +PyAPI_DATA(PyTypeObject) PySetIter_Type; + +PyAPI_FUNC(PyObject *) PySet_New(PyObject *); +PyAPI_FUNC(PyObject *) PyFrozenSet_New(PyObject *); + +PyAPI_FUNC(int) PySet_Add(PyObject *set, PyObject *key); +PyAPI_FUNC(int) PySet_Clear(PyObject *set); +PyAPI_FUNC(int) PySet_Contains(PyObject *anyset, PyObject *key); +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_Check(ob) \ + (Py_IS_TYPE((ob), &PyFrozenSet_Type) || \ + PyType_IsSubtype(Py_TYPE(ob), &PyFrozenSet_Type)) + +#define PyAnySet_CheckExact(ob) \ + (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) || \ + PyType_IsSubtype(Py_TYPE(ob), &PySet_Type) || \ + PyType_IsSubtype(Py_TYPE(ob), &PyFrozenSet_Type)) + +#define PySet_CheckExact(op) Py_IS_TYPE(op, &PySet_Type) +#define PySet_Check(ob) \ + (Py_IS_TYPE((ob), &PySet_Type) || \ + PyType_IsSubtype(Py_TYPE(ob), &PySet_Type)) + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_SETOBJECT_H +# include "cpython/setobject.h" +# undef Py_CPYTHON_SETOBJECT_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_SETOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/sliceobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/sliceobject.h new file mode 100644 index 000000000..35e2ea254 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/sliceobject.h @@ -0,0 +1,69 @@ +#ifndef Py_SLICEOBJECT_H +#define Py_SLICEOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +/* The unique ellipsis object "..." */ + +PyAPI_DATA(PyObject) _Py_EllipsisObject; /* Don't use this directly */ + +#if defined(Py_LIMITED_API) && Py_LIMITED_API+0 >= 0x030D0000 +# define Py_Ellipsis Py_GetConstantBorrowed(Py_CONSTANT_ELLIPSIS) +#else +# define Py_Ellipsis (&_Py_EllipsisObject) +#endif + +/* Slice object interface */ + +/* + +A slice object containing start, stop, and step data members (the +names are from range). After much talk with Guido, it was decided to +let these be any arbitrary python type. Py_None stands for omitted values. +*/ +#ifndef Py_LIMITED_API +typedef struct { + PyObject_HEAD + PyObject *start, *stop, *step; /* not NULL */ +} PySliceObject; +#endif + +PyAPI_DATA(PyTypeObject) PySlice_Type; +PyAPI_DATA(PyTypeObject) PyEllipsis_Type; + +#define PySlice_Check(op) Py_IS_TYPE((op), &PySlice_Type) + +PyAPI_FUNC(PyObject *) PySlice_New(PyObject* start, PyObject* stop, + PyObject* step); +#ifndef Py_LIMITED_API +PyAPI_FUNC(PyObject *) _PySlice_FromIndices(Py_ssize_t start, Py_ssize_t stop); +PyAPI_FUNC(int) _PySlice_GetLongIndices(PySliceObject *self, PyObject *length, + PyObject **start_ptr, PyObject **stop_ptr, + PyObject **step_ptr); +#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) +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); + +#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) ( \ + PySlice_Unpack((slice), (start), (stop), (step)) < 0 ? \ + ((*(slicelen) = 0), -1) : \ + ((*(slicelen) = PySlice_AdjustIndices((length), (start), (stop), *(step))), \ + 0)) +PyAPI_FUNC(int) PySlice_Unpack(PyObject *slice, + Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step); +PyAPI_FUNC(Py_ssize_t) PySlice_AdjustIndices(Py_ssize_t length, + Py_ssize_t *start, Py_ssize_t *stop, + Py_ssize_t step); +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_SLICEOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/structmember.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/structmember.h new file mode 100644 index 000000000..f6e8fd829 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/structmember.h @@ -0,0 +1,56 @@ +#ifndef Py_STRUCTMEMBER_H +#define Py_STRUCTMEMBER_H +#ifdef __cplusplus +extern "C" { +#endif + + +/* Interface to map C struct members to Python object attributes + * + * This header is deprecated: new code should not use stuff from here. + * New definitions are in descrobject.h. + * + * However, there's nothing wrong with old code continuing to use it, + * and there's not much mainenance overhead in maintaining a few aliases. + * So, don't be too eager to convert old code. + * + * It uses names not prefixed with Py_. + * It is also *not* included from Python.h and must be included individually. + */ + +#include /* For offsetof (not always provided by Python.h) */ + +/* Types */ +#define T_SHORT Py_T_SHORT +#define T_INT Py_T_INT +#define T_LONG Py_T_LONG +#define T_FLOAT Py_T_FLOAT +#define T_DOUBLE Py_T_DOUBLE +#define T_STRING Py_T_STRING +#define T_OBJECT _Py_T_OBJECT +#define T_CHAR Py_T_CHAR +#define T_BYTE Py_T_BYTE +#define T_UBYTE Py_T_UBYTE +#define T_USHORT Py_T_USHORT +#define T_UINT Py_T_UINT +#define T_ULONG Py_T_ULONG +#define T_STRING_INPLACE Py_T_STRING_INPLACE +#define T_BOOL Py_T_BOOL +#define T_OBJECT_EX Py_T_OBJECT_EX +#define T_LONGLONG Py_T_LONGLONG +#define T_ULONGLONG Py_T_ULONGLONG +#define T_PYSSIZET Py_T_PYSSIZET +#define T_NONE _Py_T_NONE + +/* Flags */ +#define READONLY Py_READONLY +#define PY_AUDIT_READ Py_AUDIT_READ +#define READ_RESTRICTED Py_AUDIT_READ +#define PY_WRITE_RESTRICTED _Py_WRITE_RESTRICTED +#define RESTRICTED (READ_RESTRICTED | PY_WRITE_RESTRICTED) + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_STRUCTMEMBER_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/structseq.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/structseq.h new file mode 100644 index 000000000..29e24fee5 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/structseq.h @@ -0,0 +1,46 @@ + +/* Named tuple object interface */ + +#ifndef Py_STRUCTSEQ_H +#define Py_STRUCTSEQ_H +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct PyStructSequence_Field { + const char *name; + const char *doc; +} PyStructSequence_Field; + +typedef struct PyStructSequence_Desc { + const char *name; + const char *doc; + PyStructSequence_Field *fields; + int n_in_sequence; +} PyStructSequence_Desc; + +PyAPI_DATA(const char * const) PyStructSequence_UnnamedField; + +#ifndef Py_LIMITED_API +PyAPI_FUNC(void) PyStructSequence_InitType(PyTypeObject *type, + PyStructSequence_Desc *desc); +PyAPI_FUNC(int) PyStructSequence_InitType2(PyTypeObject *type, + PyStructSequence_Desc *desc); +#endif +PyAPI_FUNC(PyTypeObject*) PyStructSequence_NewType(PyStructSequence_Desc *desc); + +PyAPI_FUNC(PyObject *) PyStructSequence_New(PyTypeObject* type); + +PyAPI_FUNC(void) PyStructSequence_SetItem(PyObject*, Py_ssize_t, PyObject*); +PyAPI_FUNC(PyObject*) PyStructSequence_GetItem(PyObject*, Py_ssize_t); + +#ifndef Py_LIMITED_API +typedef PyTupleObject PyStructSequence; +#define PyStructSequence_SET_ITEM PyStructSequence_SetItem +#define PyStructSequence_GET_ITEM PyStructSequence_GetItem +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_STRUCTSEQ_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/sysmodule.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/sysmodule.h new file mode 100644 index 000000000..5a0af2e15 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/sysmodule.h @@ -0,0 +1,44 @@ +#ifndef Py_SYSMODULE_H +#define Py_SYSMODULE_H +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_FUNC(PyObject *) PySys_GetObject(const char *); +PyAPI_FUNC(int) PySys_SetObject(const char *, PyObject *); + +Py_DEPRECATED(3.11) PyAPI_FUNC(void) PySys_SetArgv(int, wchar_t **); +Py_DEPRECATED(3.11) PyAPI_FUNC(void) PySys_SetArgvEx(int, wchar_t **, int); + +PyAPI_FUNC(void) PySys_WriteStdout(const char *format, ...) + Py_GCC_ATTRIBUTE((format(printf, 1, 2))); +PyAPI_FUNC(void) PySys_WriteStderr(const char *format, ...) + Py_GCC_ATTRIBUTE((format(printf, 1, 2))); +PyAPI_FUNC(void) PySys_FormatStdout(const char *format, ...); +PyAPI_FUNC(void) PySys_FormatStderr(const char *format, ...); + +Py_DEPRECATED(3.13) PyAPI_FUNC(void) PySys_ResetWarnOptions(void); + +PyAPI_FUNC(PyObject *) PySys_GetXOptions(void); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030d0000 +PyAPI_FUNC(int) PySys_Audit( + const char *event, + const char *argFormat, + ...); + +PyAPI_FUNC(int) PySys_AuditTuple( + const char *event, + PyObject *args); +#endif + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_SYSMODULE_H +# include "cpython/sysmodule.h" +# undef Py_CPYTHON_SYSMODULE_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_SYSMODULE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/traceback.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/traceback.h new file mode 100644 index 000000000..2b40cc9fc --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/traceback.h @@ -0,0 +1,26 @@ +#ifndef Py_TRACEBACK_H +#define Py_TRACEBACK_H +#ifdef __cplusplus +extern "C" { +#endif + +/* Traceback interface */ + +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) + + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_TRACEBACK_H +# include "cpython/traceback.h" +# undef Py_CPYTHON_TRACEBACK_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_TRACEBACK_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/tupleobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/tupleobject.h new file mode 100644 index 000000000..1f9ab54be --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/tupleobject.h @@ -0,0 +1,46 @@ +/* Tuple object interface */ + +#ifndef Py_TUPLEOBJECT_H +#define Py_TUPLEOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +/* +Another generally useful object type is a tuple of object pointers. +For Python, this is an immutable type. C code can change the tuple items +(but not their number), and even use tuples as general-purpose arrays of +object references, but in general only brand new tuples should be mutated, +not ones that might already have been exposed to Python code. + +*** WARNING *** PyTuple_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 tuple. Similarly, PyTuple_GetItem does not increment the +returned item's reference count. +*/ + +PyAPI_DATA(PyTypeObject) PyTuple_Type; +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) + +PyAPI_FUNC(PyObject *) PyTuple_New(Py_ssize_t size); +PyAPI_FUNC(Py_ssize_t) PyTuple_Size(PyObject *); +PyAPI_FUNC(PyObject *) PyTuple_GetItem(PyObject *, Py_ssize_t); +PyAPI_FUNC(int) PyTuple_SetItem(PyObject *, Py_ssize_t, PyObject *); +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 +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_TUPLEOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/typeslots.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/typeslots.h new file mode 100644 index 000000000..506b05580 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/typeslots.h @@ -0,0 +1,88 @@ +/* Do not renumber the file; these numbers are part of the stable ABI. */ +#define Py_bf_getbuffer 1 +#define Py_bf_releasebuffer 2 +#define Py_mp_ass_subscript 3 +#define Py_mp_length 4 +#define Py_mp_subscript 5 +#define Py_nb_absolute 6 +#define Py_nb_add 7 +#define Py_nb_and 8 +#define Py_nb_bool 9 +#define Py_nb_divmod 10 +#define Py_nb_float 11 +#define Py_nb_floor_divide 12 +#define Py_nb_index 13 +#define Py_nb_inplace_add 14 +#define Py_nb_inplace_and 15 +#define Py_nb_inplace_floor_divide 16 +#define Py_nb_inplace_lshift 17 +#define Py_nb_inplace_multiply 18 +#define Py_nb_inplace_or 19 +#define Py_nb_inplace_power 20 +#define Py_nb_inplace_remainder 21 +#define Py_nb_inplace_rshift 22 +#define Py_nb_inplace_subtract 23 +#define Py_nb_inplace_true_divide 24 +#define Py_nb_inplace_xor 25 +#define Py_nb_int 26 +#define Py_nb_invert 27 +#define Py_nb_lshift 28 +#define Py_nb_multiply 29 +#define Py_nb_negative 30 +#define Py_nb_or 31 +#define Py_nb_positive 32 +#define Py_nb_power 33 +#define Py_nb_remainder 34 +#define Py_nb_rshift 35 +#define Py_nb_subtract 36 +#define Py_nb_true_divide 37 +#define Py_nb_xor 38 +#define Py_sq_ass_item 39 +#define Py_sq_concat 40 +#define Py_sq_contains 41 +#define Py_sq_inplace_concat 42 +#define Py_sq_inplace_repeat 43 +#define Py_sq_item 44 +#define Py_sq_length 45 +#define Py_sq_repeat 46 +#define Py_tp_alloc 47 +#define Py_tp_base 48 +#define Py_tp_bases 49 +#define Py_tp_call 50 +#define Py_tp_clear 51 +#define Py_tp_dealloc 52 +#define Py_tp_del 53 +#define Py_tp_descr_get 54 +#define Py_tp_descr_set 55 +#define Py_tp_doc 56 +#define Py_tp_getattr 57 +#define Py_tp_getattro 58 +#define Py_tp_hash 59 +#define Py_tp_init 60 +#define Py_tp_is_gc 61 +#define Py_tp_iter 62 +#define Py_tp_iternext 63 +#define Py_tp_methods 64 +#define Py_tp_new 65 +#define Py_tp_repr 66 +#define Py_tp_richcompare 67 +#define Py_tp_setattr 68 +#define Py_tp_setattro 69 +#define Py_tp_str 70 +#define Py_tp_traverse 71 +#define Py_tp_members 72 +#define Py_tp_getset 73 +#define Py_tp_free 74 +#define Py_nb_matrix_multiply 75 +#define Py_nb_inplace_matrix_multiply 76 +#define Py_am_await 77 +#define Py_am_aiter 78 +#define Py_am_anext 79 +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 +/* New in 3.5 */ +#define Py_tp_finalize 80 +#endif +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030A0000 +/* New in 3.10 */ +#define Py_am_send 81 +#endif diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/unicodeobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/unicodeobject.h new file mode 100644 index 000000000..dee00715b --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/unicodeobject.h @@ -0,0 +1,1021 @@ +#ifndef Py_UNICODEOBJECT_H +#define Py_UNICODEOBJECT_H + +/* + +Unicode implementation based on original code by Fredrik Lundh, +modified by Marc-Andre Lemburg (mal@lemburg.com) according to the +Unicode Integration Proposal. (See +http://www.egenix.com/files/python/unicode-proposal.txt). + +Copyright (c) Corporation for National Research Initiatives. + + + Original header: + -------------------------------------------------------------------- + + * Yet another Unicode string type for Python. This type supports the + * 16-bit Basic Multilingual Plane (BMP) only. + * + * Written by Fredrik Lundh, January 1999. + * + * Copyright (c) 1999 by Secret Labs AB. + * Copyright (c) 1999 by Fredrik Lundh. + * + * fredrik@pythonware.com + * http://www.pythonware.com + * + * -------------------------------------------------------------------- + * This Unicode String Type is + * + * Copyright (c) 1999 by Secret Labs AB + * Copyright (c) 1999 by Fredrik Lundh + * + * By obtaining, using, and/or copying this software and/or its + * associated documentation, you agree that you have read, understood, + * and will comply with the following terms and conditions: + * + * Permission to use, copy, modify, and distribute this software and its + * associated documentation for any purpose and without fee is hereby + * granted, provided that the above copyright notice appears in all + * copies, and that both that copyright notice and this permission notice + * appear in supporting documentation, and that the name of Secret Labs + * AB or the author not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior + * permission. + * + * SECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO + * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS. IN NO EVENT SHALL SECRET LABS AB OR THE AUTHOR BE LIABLE 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. + * -------------------------------------------------------------------- */ + +/* === Internal API ======================================================= */ + +/* --- Internal Unicode Format -------------------------------------------- */ + +/* Python 3.x requires unicode */ +#define Py_USING_UNICODE + +#ifndef SIZEOF_WCHAR_T +#error Must define SIZEOF_WCHAR_T +#endif + +#define Py_UNICODE_SIZE SIZEOF_WCHAR_T + +/* If wchar_t can be used for UCS-4 storage, set Py_UNICODE_WIDE. + Otherwise, Unicode strings are stored as UCS-2 (with limited support + for UTF-16) */ + +#if Py_UNICODE_SIZE >= 4 +#define Py_UNICODE_WIDE +#endif + +/* Set these flags if the platform has "wchar.h" and the + wchar_t type is a 16-bit unsigned type */ +/* #define HAVE_WCHAR_H */ +/* #define HAVE_USABLE_WCHAR_T */ + +/* If the compiler provides a wchar_t type we try to support it + through the interface functions PyUnicode_FromWideChar(), + PyUnicode_AsWideChar() and PyUnicode_AsWideCharString(). */ + +#ifdef HAVE_USABLE_WCHAR_T +# ifndef HAVE_WCHAR_H +# define HAVE_WCHAR_H +# endif +#endif + +/* Py_UCS4 and Py_UCS2 are typedefs for the respective + unicode representations. */ +typedef uint32_t Py_UCS4; +typedef uint16_t Py_UCS2; +typedef uint8_t Py_UCS1; + +#ifdef __cplusplus +extern "C" { +#endif + + +PyAPI_DATA(PyTypeObject) PyUnicode_Type; +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) + +/* --- Constants ---------------------------------------------------------- */ + +/* This Unicode character will be used as replacement character during + decoding if the errors argument is set to "replace". Note: the + Unicode character U+FFFD is the official REPLACEMENT CHARACTER in + Unicode 3.0. */ + +#define Py_UNICODE_REPLACEMENT_CHARACTER ((Py_UCS4) 0xFFFD) + +/* === Public API ========================================================= */ + +/* Similar to PyUnicode_FromUnicode(), but u points to UTF-8 encoded bytes */ +PyAPI_FUNC(PyObject*) PyUnicode_FromStringAndSize( + const char *u, /* UTF-8 encoded string */ + Py_ssize_t size /* size of buffer */ + ); + +/* Similar to PyUnicode_FromUnicode(), but u points to null-terminated + UTF-8 encoded bytes. The size is determined with strlen(). */ +PyAPI_FUNC(PyObject*) PyUnicode_FromString( + const char *u /* UTF-8 encoded string */ + ); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +PyAPI_FUNC(PyObject*) PyUnicode_Substring( + PyObject *str, + Py_ssize_t start, + Py_ssize_t end); +#endif + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +/* Copy the string into a UCS4 buffer including the null character if copy_null + is set. Return NULL and raise an exception on error. Raise a SystemError if + the buffer is smaller than the string. Return buffer on success. + + buflen is the length of the buffer in (Py_UCS4) characters. */ +PyAPI_FUNC(Py_UCS4*) PyUnicode_AsUCS4( + PyObject *unicode, + Py_UCS4* buffer, + Py_ssize_t buflen, + int copy_null); + +/* Copy the string into a UCS4 buffer. A new buffer is allocated using + * PyMem_Malloc; if this fails, NULL is returned with a memory error + exception set. */ +PyAPI_FUNC(Py_UCS4*) PyUnicode_AsUCS4Copy(PyObject *unicode); +#endif + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +/* Get the length of the Unicode object. */ + +PyAPI_FUNC(Py_ssize_t) PyUnicode_GetLength( + PyObject *unicode +); +#endif + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +/* Read a character from the string. */ + +PyAPI_FUNC(Py_UCS4) PyUnicode_ReadChar( + PyObject *unicode, + Py_ssize_t index + ); + +/* Write a character to the string. The string must have been created through + PyUnicode_New, must not be shared, and must not have been hashed yet. + + Return 0 on success, -1 on error. */ + +PyAPI_FUNC(int) PyUnicode_WriteChar( + PyObject *unicode, + Py_ssize_t index, + Py_UCS4 character + ); +#endif + +/* Resize a Unicode object. The length is the number of codepoints. + + *unicode is modified to point to the new (resized) object and 0 + returned on success. + + Try to resize the string in place (which is usually faster than allocating + a new string and copy characters), or create a new string. + + Error handling is implemented as follows: an exception is set, -1 + is returned and *unicode left untouched. + + WARNING: The function doesn't check string content, the result may not be a + string in canonical representation. */ + +PyAPI_FUNC(int) PyUnicode_Resize( + PyObject **unicode, /* Pointer to the Unicode object */ + Py_ssize_t length /* New length */ + ); + +/* Decode obj to a Unicode object. + + bytes, bytearray and other bytes-like objects are decoded according to the + given encoding and error handler. The encoding and error handler can be + NULL to have the interface use UTF-8 and "strict". + + All other objects (including Unicode objects) raise an exception. + + The API returns NULL in case of an error. The caller is responsible + for decref'ing the returned objects. + +*/ + +PyAPI_FUNC(PyObject*) PyUnicode_FromEncodedObject( + PyObject *obj, /* Object */ + const char *encoding, /* encoding */ + const char *errors /* error handling */ + ); + +/* Copy an instance of a Unicode subtype to a new true Unicode object if + necessary. If obj is already a true Unicode object (not a subtype), return + the reference with *incremented* refcount. + + The API returns NULL in case of an error. The caller is responsible + for decref'ing the returned objects. + +*/ + +PyAPI_FUNC(PyObject*) PyUnicode_FromObject( + PyObject *obj /* Object */ + ); + +PyAPI_FUNC(PyObject *) PyUnicode_FromFormatV( + const char *format, /* ASCII-encoded string */ + va_list vargs + ); +PyAPI_FUNC(PyObject *) PyUnicode_FromFormat( + const char *format, /* ASCII-encoded string */ + ... + ); + +PyAPI_FUNC(void) PyUnicode_InternInPlace(PyObject **); +PyAPI_FUNC(PyObject *) PyUnicode_InternFromString( + const char *u /* UTF-8 encoded string */ + ); + +/* --- wchar_t support for platforms which support it --------------------- */ + +#ifdef HAVE_WCHAR_H + +/* Create a Unicode Object from the wchar_t buffer w of the given + size. + + The buffer is copied into the new object. */ + +PyAPI_FUNC(PyObject*) PyUnicode_FromWideChar( + const wchar_t *w, /* wchar_t buffer */ + Py_ssize_t size /* size of buffer */ + ); + +/* Copies the Unicode Object contents into the wchar_t buffer w. At + most size wchar_t characters are copied. + + Note that the resulting wchar_t string may or may not be + 0-terminated. It is the responsibility of the caller to make sure + that the wchar_t string is 0-terminated in case this is required by + the application. + + Returns the number of wchar_t characters copied (excluding a + possibly trailing 0-termination character) or -1 in case of an + error. */ + +PyAPI_FUNC(Py_ssize_t) PyUnicode_AsWideChar( + PyObject *unicode, /* Unicode object */ + wchar_t *w, /* wchar_t buffer */ + Py_ssize_t size /* size of buffer */ + ); + +/* Convert the Unicode object to a wide character string. The output string + always ends with a nul character. If size is not NULL, write the number of + wide characters (excluding the null character) into *size. + + Returns a buffer allocated by PyMem_Malloc() (use PyMem_Free() to free it) + on success. On error, returns NULL, *size is undefined and raises a + MemoryError. */ + +PyAPI_FUNC(wchar_t*) PyUnicode_AsWideCharString( + PyObject *unicode, /* Unicode object */ + Py_ssize_t *size /* number of characters of the result */ + ); + +#endif + +/* --- Unicode ordinals --------------------------------------------------- */ + +/* Create a Unicode Object from the given Unicode code point ordinal. + + The ordinal must be in range(0x110000). A ValueError is + raised in case it is not. + +*/ + +PyAPI_FUNC(PyObject*) PyUnicode_FromOrdinal(int ordinal); + +/* === Builtin Codecs ===================================================== + + Many of these APIs take two arguments encoding and errors. These + parameters encoding and errors have the same semantics as the ones + of the builtin str() API. + + Setting encoding to NULL causes the default encoding (UTF-8) to be used. + + Error handling is set by errors which may also be set to NULL + meaning to use the default handling defined for the codec. Default + error handling for all builtin codecs is "strict" (ValueErrors are + raised). + + The codecs all use a similar interface. Only deviation from the + generic ones are documented. + +*/ + +/* --- Manage the default encoding ---------------------------------------- */ + +/* Returns "utf-8". */ +PyAPI_FUNC(const char*) PyUnicode_GetDefaultEncoding(void); + +/* --- Generic Codecs ----------------------------------------------------- */ + +/* Create a Unicode object by decoding the encoded string s of the + given size. */ + +PyAPI_FUNC(PyObject*) PyUnicode_Decode( + const char *s, /* encoded string */ + Py_ssize_t size, /* size of buffer */ + const char *encoding, /* encoding */ + const char *errors /* error handling */ + ); + +/* Decode a Unicode object unicode and return the result as Python + object. + + This API is DEPRECATED. The only supported standard encoding is rot13. + Use PyCodec_Decode() to decode with rot13 and non-standard codecs + that decode from str. */ + +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. + + This API is DEPRECATED. The only supported standard encoding is rot13. + 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( + PyObject *unicode, /* Unicode object */ + const char *encoding, /* encoding */ + const char *errors /* error handling */ + ); + +/* Encodes a Unicode object and returns the result as Python + object. + + This API is DEPRECATED. It is superseded by PyUnicode_AsEncodedString() + since all standard encodings (except rot13) encode str to bytes. + 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( + 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. */ + +PyAPI_FUNC(PyObject*) PyUnicode_AsEncodedString( + PyObject *unicode, /* Unicode object */ + const char *encoding, /* encoding */ + const char *errors /* error handling */ + ); + +/* Encodes a Unicode object and returns the result as Unicode + object. + + This API is DEPRECATED. The only supported standard encodings is rot13. + 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( + PyObject *unicode, /* Unicode object */ + const char *encoding, /* encoding */ + const char *errors /* error handling */ + ); + +/* Build an encoding map. */ + +PyAPI_FUNC(PyObject*) PyUnicode_BuildEncodingMap( + PyObject* string /* 256 character map */ + ); + +/* --- UTF-7 Codecs ------------------------------------------------------- */ + +PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF7( + const char *string, /* UTF-7 encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors /* error handling */ + ); + +PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF7Stateful( + const char *string, /* UTF-7 encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors, /* error handling */ + Py_ssize_t *consumed /* bytes consumed */ + ); + +/* --- UTF-8 Codecs ------------------------------------------------------- */ + +PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF8( + const char *string, /* UTF-8 encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors /* error handling */ + ); + +PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF8Stateful( + const char *string, /* UTF-8 encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors, /* error handling */ + Py_ssize_t *consumed /* bytes consumed */ + ); + +PyAPI_FUNC(PyObject*) PyUnicode_AsUTF8String( + PyObject *unicode /* Unicode object */ + ); + +/* 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. +*/ + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030A0000 +PyAPI_FUNC(const char *) PyUnicode_AsUTF8AndSize( + PyObject *unicode, + Py_ssize_t *size); +#endif + +/* --- UTF-32 Codecs ------------------------------------------------------ */ + +/* Decodes length bytes from a UTF-32 encoded buffer string and returns + the corresponding Unicode object. + + errors (if non-NULL) defines the error handling. It defaults + to "strict". + + If byteorder is non-NULL, the decoder starts decoding using the + given byte order: + + *byteorder == -1: little endian + *byteorder == 0: native order + *byteorder == 1: big endian + + In native mode, the first four bytes of the stream are checked for a + BOM mark. If found, the BOM mark is analysed, the byte order + adjusted and the BOM skipped. In the other modes, no BOM mark + interpretation is done. After completion, *byteorder is set to the + current byte order at the end of input data. + + If byteorder is NULL, the codec starts in native order mode. + +*/ + +PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF32( + const char *string, /* UTF-32 encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors, /* error handling */ + int *byteorder /* pointer to byteorder to use + 0=native;-1=LE,1=BE; updated on + exit */ + ); + +PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF32Stateful( + const char *string, /* UTF-32 encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors, /* error handling */ + int *byteorder, /* pointer to byteorder to use + 0=native;-1=LE,1=BE; updated on + exit */ + Py_ssize_t *consumed /* bytes consumed */ + ); + +/* Returns a Python string using the UTF-32 encoding in native byte + order. The string always starts with a BOM mark. */ + +PyAPI_FUNC(PyObject*) PyUnicode_AsUTF32String( + PyObject *unicode /* Unicode object */ + ); + +/* Returns a Python string object holding the UTF-32 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. + +*/ + +/* --- UTF-16 Codecs ------------------------------------------------------ */ + +/* Decodes length bytes from a UTF-16 encoded buffer string and returns + the corresponding Unicode object. + + errors (if non-NULL) defines the error handling. It defaults + to "strict". + + If byteorder is non-NULL, the decoder starts decoding using the + given byte order: + + *byteorder == -1: little endian + *byteorder == 0: native order + *byteorder == 1: big endian + + In native mode, the first two bytes of the stream are checked for a + BOM mark. If found, the BOM mark is analysed, the byte order + adjusted and the BOM skipped. In the other modes, no BOM mark + interpretation is done. After completion, *byteorder is set to the + current byte order at the end of input data. + + If byteorder is NULL, the codec starts in native order mode. + +*/ + +PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF16( + const char *string, /* UTF-16 encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors, /* error handling */ + int *byteorder /* pointer to byteorder to use + 0=native;-1=LE,1=BE; updated on + exit */ + ); + +PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF16Stateful( + const char *string, /* UTF-16 encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors, /* error handling */ + int *byteorder, /* pointer to byteorder to use + 0=native;-1=LE,1=BE; updated on + exit */ + Py_ssize_t *consumed /* bytes consumed */ + ); + +/* Returns a Python string using the UTF-16 encoding in native byte + order. The string always starts with a BOM mark. */ + +PyAPI_FUNC(PyObject*) PyUnicode_AsUTF16String( + PyObject *unicode /* Unicode object */ + ); + +/* --- Unicode-Escape Codecs ---------------------------------------------- */ + +PyAPI_FUNC(PyObject*) PyUnicode_DecodeUnicodeEscape( + const char *string, /* Unicode-Escape encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors /* error handling */ + ); + +PyAPI_FUNC(PyObject*) PyUnicode_AsUnicodeEscapeString( + PyObject *unicode /* Unicode object */ + ); + +/* --- Raw-Unicode-Escape Codecs ------------------------------------------ */ + +PyAPI_FUNC(PyObject*) PyUnicode_DecodeRawUnicodeEscape( + const char *string, /* Raw-Unicode-Escape encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors /* error handling */ + ); + +PyAPI_FUNC(PyObject*) PyUnicode_AsRawUnicodeEscapeString( + PyObject *unicode /* Unicode object */ + ); + +/* --- Latin-1 Codecs ----------------------------------------------------- + + Note: Latin-1 corresponds to the first 256 Unicode ordinals. */ + +PyAPI_FUNC(PyObject*) PyUnicode_DecodeLatin1( + const char *string, /* Latin-1 encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors /* error handling */ + ); + +PyAPI_FUNC(PyObject*) PyUnicode_AsLatin1String( + PyObject *unicode /* Unicode object */ + ); + +/* --- ASCII Codecs ------------------------------------------------------- + + Only 7-bit ASCII data is expected. All other codes generate errors. + +*/ + +PyAPI_FUNC(PyObject*) PyUnicode_DecodeASCII( + const char *string, /* ASCII encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors /* error handling */ + ); + +PyAPI_FUNC(PyObject*) PyUnicode_AsASCIIString( + PyObject *unicode /* Unicode object */ + ); + +/* --- Character Map Codecs ----------------------------------------------- + + This codec uses mappings to encode and decode characters. + + Decoding mappings must map byte ordinals (integers in the range from 0 to + 255) to Unicode strings, integers (which are then interpreted as Unicode + ordinals) or None. Unmapped data bytes (ones which cause a LookupError) + as well as mapped to None, 0xFFFE or '\ufffe' are treated as "undefined + mapping" and cause an error. + + Encoding mappings must map Unicode ordinal integers to bytes objects, + integers in the range from 0 to 255 or None. Unmapped character + ordinals (ones which cause a LookupError) as well as mapped to + None are treated as "undefined mapping" and cause an error. + +*/ + +PyAPI_FUNC(PyObject*) PyUnicode_DecodeCharmap( + const char *string, /* Encoded string */ + Py_ssize_t length, /* size of string */ + PyObject *mapping, /* decoding mapping */ + const char *errors /* error handling */ + ); + +PyAPI_FUNC(PyObject*) PyUnicode_AsCharmapString( + PyObject *unicode, /* Unicode object */ + PyObject *mapping /* encoding mapping */ + ); + +/* --- MBCS codecs for Windows -------------------------------------------- */ + +#ifdef MS_WINDOWS +PyAPI_FUNC(PyObject*) PyUnicode_DecodeMBCS( + const char *string, /* MBCS encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors /* error handling */ + ); + +PyAPI_FUNC(PyObject*) PyUnicode_DecodeMBCSStateful( + const char *string, /* MBCS encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors, /* error handling */ + Py_ssize_t *consumed /* bytes consumed */ + ); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +PyAPI_FUNC(PyObject*) PyUnicode_DecodeCodePageStateful( + int code_page, /* code page number */ + const char *string, /* encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors, /* error handling */ + Py_ssize_t *consumed /* bytes consumed */ + ); +#endif + +PyAPI_FUNC(PyObject*) PyUnicode_AsMBCSString( + PyObject *unicode /* Unicode object */ + ); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +PyAPI_FUNC(PyObject*) PyUnicode_EncodeCodePage( + int code_page, /* code page number */ + PyObject *unicode, /* Unicode object */ + const char *errors /* error handling */ + ); +#endif + +#endif /* MS_WINDOWS */ + +/* --- Locale encoding --------------------------------------------------- */ + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +/* Decode a string from the current locale encoding. The decoder is strict if + *surrogateescape* is equal to zero, otherwise it uses the 'surrogateescape' + error handler (PEP 383) to escape undecodable bytes. If a byte sequence can + be decoded as a surrogate character and *surrogateescape* is not equal to + zero, the byte sequence is escaped using the 'surrogateescape' error handler + instead of being decoded. *str* must end with a null character but cannot + contain embedded null characters. */ + +PyAPI_FUNC(PyObject*) PyUnicode_DecodeLocaleAndSize( + const char *str, + Py_ssize_t len, + const char *errors); + +/* Similar to PyUnicode_DecodeLocaleAndSize(), but compute the string + length using strlen(). */ + +PyAPI_FUNC(PyObject*) PyUnicode_DecodeLocale( + const char *str, + const char *errors); + +/* Encode a Unicode object to the current locale encoding. The encoder is + strict is *surrogateescape* is equal to zero, otherwise the + "surrogateescape" error handler is used. Return a bytes object. The string + cannot contain embedded null characters. */ + +PyAPI_FUNC(PyObject*) PyUnicode_EncodeLocale( + PyObject *unicode, + const char *errors + ); +#endif + +/* --- File system encoding ---------------------------------------------- */ + +/* ParseTuple converter: encode str objects to bytes using + PyUnicode_EncodeFSDefault(); bytes objects are output as-is. */ + +PyAPI_FUNC(int) PyUnicode_FSConverter(PyObject*, void*); + +/* ParseTuple converter: decode bytes objects to unicode using + PyUnicode_DecodeFSDefaultAndSize(); str objects are output as-is. */ + +PyAPI_FUNC(int) PyUnicode_FSDecoder(PyObject*, void*); + +/* Decode a null-terminated string from the Python filesystem encoding + and error handler. + + If the string length is known, use PyUnicode_DecodeFSDefaultAndSize(). */ +PyAPI_FUNC(PyObject*) PyUnicode_DecodeFSDefault( + const char *s /* encoded string */ + ); + +/* Decode a string from the Python filesystem encoding and error handler. */ +PyAPI_FUNC(PyObject*) PyUnicode_DecodeFSDefaultAndSize( + const char *s, /* encoded string */ + Py_ssize_t size /* size */ + ); + +/* Encode a Unicode object to the Python filesystem encoding and error handler. + Return bytes. */ +PyAPI_FUNC(PyObject*) PyUnicode_EncodeFSDefault( + PyObject *unicode + ); + +/* --- Methods & Slots ---------------------------------------------------- + + These are capable of handling Unicode objects and strings on input + (we refer to them as strings in the descriptions) and return + Unicode objects or integers as appropriate. */ + +/* Concat two strings giving a new Unicode string. */ + +PyAPI_FUNC(PyObject*) PyUnicode_Concat( + PyObject *left, /* Left string */ + PyObject *right /* Right string */ + ); + +/* Concat two strings and put the result in *pleft + (sets *pleft to NULL on error) */ + +PyAPI_FUNC(void) PyUnicode_Append( + PyObject **pleft, /* Pointer to left string */ + PyObject *right /* Right string */ + ); + +/* Concat two strings, put the result in *pleft and drop the right object + (sets *pleft to NULL on error) */ + +PyAPI_FUNC(void) PyUnicode_AppendAndDel( + PyObject **pleft, /* Pointer to left string */ + PyObject *right /* Right string */ + ); + +/* Split a string giving a list of Unicode strings. + + If sep is NULL, splitting will be done at all whitespace + substrings. Otherwise, splits occur at the given separator. + + At most maxsplit splits will be done. If negative, no limit is set. + + Separators are not included in the resulting list. + +*/ + +PyAPI_FUNC(PyObject*) PyUnicode_Split( + PyObject *s, /* String to split */ + PyObject *sep, /* String separator */ + Py_ssize_t maxsplit /* Maxsplit count */ + ); + +/* Dito, but split at line breaks. + + CRLF is considered to be one line break. Line breaks are not + included in the resulting list. */ + +PyAPI_FUNC(PyObject*) PyUnicode_Splitlines( + PyObject *s, /* String to split */ + int keepends /* If true, line end markers are included */ + ); + +/* Partition a string using a given separator. */ + +PyAPI_FUNC(PyObject*) PyUnicode_Partition( + PyObject *s, /* String to partition */ + PyObject *sep /* String separator */ + ); + +/* Partition a string using a given separator, searching from the end of the + string. */ + +PyAPI_FUNC(PyObject*) PyUnicode_RPartition( + PyObject *s, /* String to partition */ + PyObject *sep /* String separator */ + ); + +/* Split a string giving a list of Unicode strings. + + If sep is NULL, splitting will be done at all whitespace + substrings. Otherwise, splits occur at the given separator. + + At most maxsplit splits will be done. But unlike PyUnicode_Split + PyUnicode_RSplit splits from the end of the string. If negative, + no limit is set. + + Separators are not included in the resulting list. + +*/ + +PyAPI_FUNC(PyObject*) PyUnicode_RSplit( + PyObject *s, /* String to split */ + PyObject *sep, /* String separator */ + Py_ssize_t maxsplit /* Maxsplit count */ + ); + +/* Translate a string 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. + +*/ + +PyAPI_FUNC(PyObject *) PyUnicode_Translate( + PyObject *str, /* String */ + PyObject *table, /* Translate table */ + const char *errors /* error handling */ + ); + +/* Join a sequence of strings using the given separator and return + the resulting Unicode string. */ + +PyAPI_FUNC(PyObject*) PyUnicode_Join( + PyObject *separator, /* Separator string */ + PyObject *seq /* Sequence object */ + ); + +/* Return 1 if substr matches str[start:end] at the given tail end, 0 + otherwise. */ + +PyAPI_FUNC(Py_ssize_t) PyUnicode_Tailmatch( + PyObject *str, /* String */ + PyObject *substr, /* Prefix or Suffix string */ + Py_ssize_t start, /* Start index */ + Py_ssize_t end, /* Stop index */ + int direction /* Tail end: -1 prefix, +1 suffix */ + ); + +/* Return the first position of substr in str[start:end] using the + given search direction or -1 if not found. -2 is returned in case + an error occurred and an exception is set. */ + +PyAPI_FUNC(Py_ssize_t) PyUnicode_Find( + PyObject *str, /* String */ + PyObject *substr, /* Substring to find */ + Py_ssize_t start, /* Start index */ + Py_ssize_t end, /* Stop index */ + int direction /* Find direction: +1 forward, -1 backward */ + ); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +/* Like PyUnicode_Find, but search for single character only. */ +PyAPI_FUNC(Py_ssize_t) PyUnicode_FindChar( + PyObject *str, + Py_UCS4 ch, + Py_ssize_t start, + Py_ssize_t end, + int direction + ); +#endif + +/* Count the number of occurrences of substr in str[start:end]. */ + +PyAPI_FUNC(Py_ssize_t) PyUnicode_Count( + PyObject *str, /* String */ + PyObject *substr, /* Substring to count */ + Py_ssize_t start, /* Start index */ + Py_ssize_t end /* Stop index */ + ); + +/* Replace at most maxcount occurrences of substr in str with replstr + and return the resulting Unicode object. */ + +PyAPI_FUNC(PyObject *) PyUnicode_Replace( + PyObject *str, /* String */ + PyObject *substr, /* Substring to find */ + PyObject *replstr, /* Substring to replace */ + Py_ssize_t maxcount /* Max. number of replacements to apply; + -1 = all */ + ); + +/* Compare two strings and return -1, 0, 1 for less than, equal, + greater than resp. + Raise an exception and return -1 on error. */ + +PyAPI_FUNC(int) PyUnicode_Compare( + PyObject *left, /* Left string */ + PyObject *right /* Right string */ + ); + +/* Compare a Unicode object with C string and return -1, 0, 1 for less than, + 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. + This function does not raise exceptions. */ + +PyAPI_FUNC(int) PyUnicode_CompareWithASCIIString( + PyObject *left, + const char *right /* ASCII-encoded string */ + ); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030D0000 +/* Compare a Unicode object with UTF-8 encoded C string. + Return 1 if they are equal, or 0 otherwise. + This function does not raise exceptions. */ + +PyAPI_FUNC(int) PyUnicode_EqualToUTF8(PyObject *, const char *); +PyAPI_FUNC(int) PyUnicode_EqualToUTF8AndSize(PyObject *, const char *, Py_ssize_t); +#endif + +/* Rich compare two strings and return one of the following: + + - NULL in case an exception was raised + - Py_True or Py_False for successful comparisons + - Py_NotImplemented in case the type combination is unknown + + Possible values for op: + + Py_GT, Py_GE, Py_EQ, Py_NE, Py_LT, Py_LE + +*/ + +PyAPI_FUNC(PyObject *) PyUnicode_RichCompare( + PyObject *left, /* Left string */ + PyObject *right, /* Right string */ + int op /* Operation: Py_EQ, Py_NE, Py_GT, etc. */ + ); + +/* Apply an argument tuple or dictionary to a format string and return + the resulting Unicode string. */ + +PyAPI_FUNC(PyObject *) PyUnicode_Format( + PyObject *format, /* Format string */ + PyObject *args /* Argument tuple or dictionary */ + ); + +/* Checks whether element is contained in container and return 1/0 + accordingly. + + element has to coerce to a one element Unicode string. -1 is + returned in case of an error. */ + +PyAPI_FUNC(int) PyUnicode_Contains( + PyObject *container, /* Container string */ + PyObject *element /* Element string */ + ); + +/* Checks whether argument is a valid identifier. */ + +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 +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_UNICODEOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/warnings.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/warnings.h new file mode 100644 index 000000000..18ac1543a --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/warnings.h @@ -0,0 +1,45 @@ +#ifndef Py_WARNINGS_H +#define Py_WARNINGS_H +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_FUNC(int) PyErr_WarnEx( + PyObject *category, + const char *message, /* UTF-8 encoded string */ + Py_ssize_t stack_level); + +PyAPI_FUNC(int) PyErr_WarnFormat( + PyObject *category, + Py_ssize_t stack_level, + const char *format, /* ASCII-encoded string */ + ...); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03060000 +/* Emit a ResourceWarning warning */ +PyAPI_FUNC(int) PyErr_ResourceWarning( + PyObject *source, + Py_ssize_t stack_level, + const char *format, /* ASCII-encoded string */ + ...); +#endif + +PyAPI_FUNC(int) PyErr_WarnExplicit( + PyObject *category, + const char *message, /* UTF-8 encoded string */ + const char *filename, /* decoded from the filesystem encoding */ + int lineno, + const char *module, /* UTF-8 encoded string */ + PyObject *registry); + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_WARNINGS_H +# include "cpython/warnings.h" +# undef Py_CPYTHON_WARNINGS_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_WARNINGS_H */ + diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/weakrefobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/weakrefobject.h new file mode 100644 index 000000000..a6e71eb17 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Headers/weakrefobject.h @@ -0,0 +1,46 @@ +/* Weak references objects for Python. */ + +#ifndef Py_WEAKREFOBJECT_H +#define Py_WEAKREFOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct _PyWeakReference PyWeakReference; + +PyAPI_DATA(PyTypeObject) _PyWeakref_RefType; +PyAPI_DATA(PyTypeObject) _PyWeakref_ProxyType; +PyAPI_DATA(PyTypeObject) _PyWeakref_CallableProxyType; + +#define PyWeakref_CheckRef(op) PyObject_TypeCheck((op), &_PyWeakref_RefType) +#define PyWeakref_CheckRefExact(op) \ + Py_IS_TYPE((op), &_PyWeakref_RefType) +#define PyWeakref_CheckProxy(op) \ + (Py_IS_TYPE((op), &_PyWeakref_ProxyType) \ + || Py_IS_TYPE((op), &_PyWeakref_CallableProxyType)) + +#define PyWeakref_Check(op) \ + (PyWeakref_CheckRef(op) || PyWeakref_CheckProxy(op)) + + +PyAPI_FUNC(PyObject *) PyWeakref_NewRef(PyObject *ob, + PyObject *callback); +PyAPI_FUNC(PyObject *) PyWeakref_NewProxy(PyObject *ob, + PyObject *callback); +Py_DEPRECATED(3.13) PyAPI_FUNC(PyObject *) PyWeakref_GetObject(PyObject *ref); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030D0000 +PyAPI_FUNC(int) PyWeakref_GetRef(PyObject *ref, PyObject **pobj); +#endif + + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_WEAKREFOBJECT_H +# include "cpython/weakrefobject.h" +# undef Py_CPYTHON_WEAKREFOBJECT_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_WEAKREFOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Info.plist b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Info.plist new file mode 100644 index 000000000..7017b4610 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Info.plist @@ -0,0 +1,34 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + Python + CFBundleGetInfoString + Python Runtime and Library + CFBundleIdentifier + org.python.python + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + Python + CFBundlePackageType + FMWK + CFBundleShortVersionString + 3.13.0 + CFBundleLongVersionString + 3.13.0, (c) 2001-2024 Python Software Foundation. + CFBundleSignature + ???? + CFBundleVersion + 3.13.0 + CFBundleSupportedPlatforms + + iPhoneOS + + MinimumOSVersion + 13.0 + + diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Python b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64/Python.framework/Python new file mode 100755 index 0000000000000000000000000000000000000000..8ebe8784d752a4ce2a9ac2823eb2ef7066022bed GIT binary patch literal 5373488 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 f(bHMvHPc%7f&-gPt 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
~vUI666}q60d1 z7@Me5=o3cZw8?EZ>=!nBUrdVV$!_4i@Vdg69fn?A zmoI}32>yriNG5-@G{_q*4e~|AI;hxIlP8ijDLj$*n8^1+a}I(B9g^EkceG{;&&If0 z7}Ih1>n!BW!$TzoleG)KAUR!yFEep#N$`Bc3g%bzp=O;D*C}<{Rh{H?bN1Dl1Rv5m zRN_d;+erO>>O4)I#o%id^_9^l!M8SG{dv5-$X4&;+x{H;TpRSYoqf;H>D_>Sahz`w z`aBcnr*F5^X4A)k{A>$8^P&9gZ22F;&$i&l5z5cb=Kq9`0@v`fvhD}tXIroj^yW4V zkMy)gMS6_`EtHk` znKjI@#LtKxU5yXA=D2ozgVMDl;DgzIdwn2(B2iBWuz7{$fG zbHYs;kii)0gE2L2>=l#Qzvk)C*P&6K-vN&t;3B!e%^1ZtVicRmBPKYTA#0nM-G5?C zZ&G$1WxvC{$jYB3ClecAdhvz2v4OH7{p97zz))ZmiM%Z5Rep-REb{m$g#B9d|%arVy`IpzV%BHvMpd*0Tpa$V~FPe1uF> ziSD541m_%E#ycM9GAXNzM=lyw_Z0O&QYy_*L}i{<)Kd zroor>lQq9$$ePf!lk7oiZ4#%vOv##Y{@FZR7P=OJ)3T&KS#!4h|8k$K*~0uUB|f>D zd<7zJ&JW6)WyqTrH|rDFmatYzMBW6?3XnImkmF9lfBNB*mArYQP2|meO5T)vaxW@* zQ|`&XsN_w#CkLbC4N&z!ABE@p5ZaoKemH?VBc4g*IFHu$jR7C-3m@$ng>2y-HrmtW z*Bgnq>JeF}8@hMgGREKK&*YiA=Ph7mvyN%~a00wG{qIb}Zv@+fll@@surVHyEd{2g zY$@`Q{u=G962sp}l~r;&Zh73`?fqn2pQrIKlhb3lIEr|ySx zPabu3@8F(X>gqm<{Flt1+1Haw#*Ou7u`l+@W5~D~a%f*)V^v>8e<^*dqP>BzBX`7S z!tSKdcwn~dEB#^BqGU;}pDZb`TEx7Wa1tF&Qn2k#Y5NPp1$$5DJH8>M;5dt8_&|OUCJAJayL5{&wCSpkMOLuJy^FVZmo9rd%47L(T8Xkryt) zL;OVKQ1)JBi-iw*->Q4NkvH4;1?A8hLk`6cjy?GU$ukqD)n0-w*5k{bea?_WJCH+j zlpK14&oO-Jj2`x$^{fR`4xNWR`SKLxM%IbQq4QW*$f6he$)fi4{!`dAbUU)>V%<9@ z_sXX7@%Tfar?DwnH0$Y3>Tr?ABd)@rd)YyGlz5UEnQKKJ72l^Dd{^tqs}YSnhwN$F zwPmx7^;m>V+5w!hku5%D?6wnuG>L&O8|J=H2!B)@ET2Mobcjz69D@Tswd3;fv}|Nm z@o#f8MuGF(?d;3IP~=0==bxCZlLzt!-^pnAK5|IZn(bBo&5&oZk!PHL6M1H=Z^Ii` zH=RYE5gKdojn}8K7Wx=U>r6Ul(m0d84WwBc)S#7XD6|i$Kms256*;MN}m)j`lajFxrTboI+M6RO`T_` zvx+(!sjn``H%_9yUY-zKGv~v+}{-cImrID79P>$KXc&EO2~hlOYVhcVmak{fY?sC9wg>jt}VU! zkH`AngFmg&EV;FsHFp=+JzU@6`YzWGxqia+JaZ6FPF>D;r>ssnoiaM__1s6`U5)4c z^BzB9A@>I5zt4GzN8o48yvK5m`*-2L=FyM&{DjXu2u&A0^HJvM@(%I880#zJEF+nZ zRdQu6SIU+7TftR$rzXnEw-)p{;r#zG{|AKuV^uH+j$Pth6%2xLuIFgWfPt2a;VE|` zV~+dU%zJifT5deoqg+RDJdT6vK1u4U}!;j`cSNmVKR6GKa_b{{d}1$M3fz zGMawPyLH?TrEl`=Zmv`Ly*}oSrr&1jO%HMZ>)3TW&Ouuxhlo?{N0EMwIh2_9Hm(x$ zF8MFn}PNJk-99{K&7p( z&<8thIokU4qM_}+McL2tnJi+Q@6ZPqco6CviJf?->CbsUe6k)&Q2udgH{&0NZ)7&l zOn=USzL9^PVW}1SW;wn%VjEWRKE#M09uOlg_F`4{(M0d#P1m;h&;*+{%_+H+#TH*U6OxAx72h>GddpMrDxDK7 zjUOfJ;(u48{O|738Vd!+`BtyH*zk3813PJ>W@ZpBL;C#h3h9fyTLfGZnYTl#9V15p z_3U)c8S0IA{SeNio>UL2tK7lz*j5!V~g(-@K$V7_13Z7W}c$| zM%RI_u*wyHj(>Lvk_?B&1sUOI6Qqg1?+_UFJRiCLd}ST^i;K}`%6-ChFaY?e)uZ>F@r{a=idM2BRyD?Vp& zOSRoUWZu8Sy#2susTJ6?T?p*?CjTXtN%Smo&7jS-=n0NOD>{$`q`r3gE4IhA{~1;r zI-W)J&B*^B*3@RLy8YtaT93f1^B>67)=}4&tL+fDB640Rti=x4F^_uD2Og&G6#QvA zw`ltsiCMB+?X4XPwVuxH4vu;r+9)tSQOG*~k)%VGA?nra`Jl55c#O|~NaHt)A z$pH=(0QX|}0r^I7#DVNAv34T+rQ%oU#+OE)^Zs(DYira5&TZ1>ytiEAUe0hTzj0{p zM9y(4ztNGq=*FmA&EBFL%$T`m%^U%kMmjW}&R#{7n$RS;3x0YIO#%5=AwAR_l4=m-vn$tH> zt}aZU_TrfE@Dlxo@cEqakaM7V^L*&cPY!s-o=2V&7^DYb@F3p_4DRQK|)fV3tv4Ep>6;Pe!=4G#MONZynuQAaJ>n@eONE zF90Sx=Al<(oH=90gx?QrMsrp~M!;Iyh<~%JO&_r7mQT-A;4 zqX2w41T8E8U$&zI^#GSL;4&|Tu>hAc;1c0NM?s&KjBzNKd$$JBhH@`W9 z9>)A;=`HB2`6fJ^_A0EU72r%=g{AZ$*NMQfV2`!5P@b)_l-j`4GsDV<@2{9pvVrfa z|7q;P_0t^T$R6RN(LMR2*A18Z=V|i<@ULI1zugY4Lyy$cYS(JtkIQU28J^W7`)o#> zR$4`WJL*{X`k0dKw9%QI(`cS2LfhCiEy}<01a$KE5q;m6XA%d=+@6AFbkYv^QR+q> zQZ@jt>EuP1xso+6>#XxV;0g>H&e3sECc;0-Op94Jm4dpWS(;j0r*T;PN zn#rDLu95058*8M1Z;NC-t+gtD=_h-~GtPIMddldxjeaY*(C_*1-*wkE z^ilqIGoLR>`^Q+Pe5cwEe#bm?y#Ws*}Z2-GCtB?%xPmjtcN1#Lsn zs*u*!(>7e%(NMe8Ie1E?`=C$|iz4ltqde*a^_1xC8%u$JDoU8m*!Nu5VZq`z7 z4!E+#*gFyvsVnmBeP8>m<}Lm(<+5{e{Ct)}bE=bj z^(%|37g!6Qw%Zd;HDp59z}gHin8y3*H>51x2;b5CSN+p~)v6!9pz*(!Hmtr9hoW&3 z-C2Bvb{ZJNvD6i%--*l@`~LF44tRb5*aNe{!Nk$vVT^@`W590V0sq(KF?jeabT?9U zLyzkX=0YOtg=x;tgHBzV%rSkPiU|udZ^eVEm@~?!x>~di-%=l2pwAn04~+}P3Sji{ zY&0;6_wDGrpC0Jsen$S7r6KV_*6K3GXCQvnf2~1QpW*F-GsH8&;=*y@58BT@F%R40 z<^Z{BH*n5LHTx2B@o8n5nXf*5WOdtQZ(3)=!Uc^PM#EiR8$UJAvAX2B!a-&SLQW5q~!JxM$8Rrra$2YWkvu%BfQw$~H<+YvL^3eOIc zhcvw1w0tV6w}f^|*hhLq^7V**KHT+0bZ#5{vSc@8wo%|&JljNPJj|Z!FDJ&7<-7** z>_x1BiT$f%Y`)7n_*>3;5|5WWBOZ_4sr)PO zc%AFSH>;$7hgnD3XfxCF54)B;N}1vqxU$AxxR&e(KDE=$HN?JmorfYi(^&bueoKD+ z6k~V;c23E$$$n!`D>{OF=`GB|r;(vGRvBhmXWuwIeOd7P??&f62(0c{Zbi51d!L*W z{Qf_p^S;abC*O(gR=qwids*NQinCDtJ~O>D6CS&bSTNs6_LcaxZ_QJa&40;uA^Mi* zp1EP)_pMQ}viCQDJqy^InI}hH(pkI656qKB?lliS3k(l&oy%2opdP%7W<|$Kc~;?k z=gu$pyKU5|?}$USt}6ct?xi1V&%Sa2NJk!SFMIE^_%iZ`_H`WBduVJwdE+cy3m^8` zwM)_Km!RL@gr0vR`u+{X;D3_6l<{^>wPE(o|JR4K_j|qn#L)1(z4bGl( zWUAf{_+578l;9<;HjKXUwhd7*E<+};;keMAI@EYvbKZDd_}zQ-Py5VwgU_eH>u_{Y zd7h0C50u88d`j}l zz;e?cV*e<6uT(C_d-AE-lxa=ykRy76<(GC~+6%JgDi5yy$RExs2L`<@n0ljf&O)0#K?>B~^`qCSr8tGDEV z%Cpg@y!`iB?L?pYdf$AykY+R&AAiQ36BoWe-}Z{WHO|S8>|?(O{j9uu+|ry;#=K@? z$riI_ResbMFS~L#w$Q_tKgPEC-~2iD_JPM{_Q=klFTy)0l-BD92YN zG_3Mf$V~pXDpnO{PYr17eP(i}!MMA&ZTZ9OXC>!7Q@b0GfnwT1{`3Ww@hsP&rRCHY zTaRFh{hvi!vHx?dw$E>8u>9KECojIo{^6Lt@{{}a%7^h+UHT(W)05=bqs><|W|h#F z{Mzyh$VcZVFI1tKQ(X-HHBT48H|LPgpaJ`!`_31$C%&P&@}%mBeZP%w>-biA-!^1m ze>umw&+v>KhkrZ>?RtyOi@Q_6KC z^)?>1{dM19U%Xpa2Yf^O;uSNT$XJi3p9Pdx9XEWzXlj8kgo$}!P6u;?_>!;zmf=^; zB+vh+q16dSYA0oatJCeg;wQkz_t$ya+&p}fpuK4IyaK_yJpb&L2Tnxy$gZOQpXdJv zKlC)+@qToV?2CFwi~zlMobQch?CdLE4bUELh(*RpfbP`4$6xjx*m z_P?4w%eQB(v)4@x&g46L9&}i+xn*5hsTJD23mnImG4LC^{^h~S2ki3W-7?+mInj9s zndGQr4@tQndar^e6z%;C^etygbc?c~|zu2|itj-4Q2mUY-8cRi`az@F zn4$h2L&wp*;=jt08Z#5Ek*s^{>TeQ~OmVK4vbC2Z%>>lfB!#}%3a(xEZ zDEC5m0WjqH~x{HJIMdGP-U!~E`8tS@XgUV*eUs5zN0hVIR%_04Nlzvz7Ub0-}KI5j^pQ6W4 zEL#)CE}}A3&l)!sUZUI;luI^})P5n~tDh>(=a!FLq?C+pNH=Zxz zxD2@nKM%5AK)DzyFEhrMUY0s1qqryu{T^FxhOK{ZzqZeodklEUQ{mWhGeXNp8clVx z(7T13rSN59si5VW{nS^%xNpNoawU4K@?s^^!P*i^Ut?=3e9YuQQ5HDX0EcY%a}d>=&eO zIhT|Fft=s1>(ft$>8E8|IbsBVh;4;jGr=EYU-`)q^W{F<3OrGIhGe*Bm{%p!FAYAc z{gOqO246B+uP!s@?M44Tv5>WrzE7EE(~HJZvYT}20(9wi@5Gb2jAI+)SV+#qDeNW4 zL3YjLEZA&hDxImVF}85F(>@@&Naaap0flGt|kPd%C6WMhiZ=fo&|)*we;xu9K)gi~3{x znL|J2H?;87eo3&H_X(>r#+SvLHzjr$*8EwPTeilFt>0%}bVcT`uooQxAK;+xyUI&~ zirbpBI(L=k3RjNoATCmU;+bS`=e`~KXU>rG3Hlq)8VNnxwiJgRJ=k0{hc!Q|nZKHM zE71)#Z>MtASk*ztnzxxVc*ebG>Z9zx65SjW-Ng2(;Nqa-8|LF*Kkxa0i-Ur(ly9xR z(}x_#hbmt!dviPgH*_}_ddo^VpWY4=TdlsS50d9%$03&99{poKy|qAlgN?^}?3(U) zbmQY|$JV;`?}hVY>(o4R$Mqn%{<)v?95apNO7^G;hAiya|LnXk6Mc;yWZt6}SoFnJ z^Zp8ODjwspuYF^C3K|tWe)dc3^Y{bH*thx5wmnVr2bj;}Ys{Y(##(J}<0@VwzI;_o z+oB7X|ETRd!IAiT;g|4{XXsf$M48&p4foQqT|1M3#4n!=>LdDV; zb}UUYzWurMNqfCm@6q2cv}e8d@7Umm$&YzV?}@`5>iai%uXw8r+6lwYTOE5O^Qcq& zJ;#I>57YkdKBWEU^&UR@Fu71AGuv@rHzH@;fV}ZZ9jAJIgFoFXK`i0<87M52gUezu|{^oi(e)#&#HeISld1X)@^z(T%F?V65;xk z9n%j#>@7y;c!>9kQ8^5s(|+ApJAxbA=S$H#Zw9pAsp`?MyV!4wvGLDkj)?am>mhI2_6X_TJa3o$ zr#VwO-arrNe-~w~J@sV|IQN44IL3gyT5HK8xL!E~Mx&Q34{QYOwDB6hHT-;aM(}{g=uJcaP!5|`?k(DJ zY=#!?z)upOoiO;SG)_LHa*~6v#XYTj&c~pEr;(8sc_%h1zNi~o&yzlbKO+$ukB~D7 z-(h1JzOAFFM(=a9`)QL{A+=AAXZ$*mP1KP_Ki>J(xh=w52YUFY_}@dHbJ5STO!iTL zBdg!z;(~h~^)!|6ez3aULT}RA*+aX^ZxN0>?Oe_~@l2ZOYwo06a`H6FQHLDeB$CRe2un18(VIMO?Farn+VK z%w%ooq3)y9&Doh5naq_ib$hs1-8!RKF@WEXv(G8+Vtxs4dS-mwepbY@R-W~M_bSFE z)x;hH&cdFP`O;xDPvm>lvr^_6&zOSnZgj^6%69;-Xy9RRs(Gn)?fLd`=FYXup=+2+ z3*lcS#nidrRk`OY7TDV@IN0bUMYOUijVe znP<~F{&CMCmHEO<_RHYI>`J0NXjitE9r)lAc!!T;iS}d=SGwdF`%G{9(YKb&Bscoo zUrGpm6*(}8JTom^J9w{L<}c!}c=3r#Eg1}*a*1qI0r*ZWxi56qM>Au%9~?F_cGAVS zR|g92g%9L_$L(tZtA35W`HOMJP0c6GnlQ4*n~PQ!;G3!0?<-mJ24|h%JK?@~&0o3y zS8``w!?`EF8EMQt%>5L@v$!PtnXQ7mB&F#7XR1~dOd;ND#V?U}rz2A`_A6Fpj4z2p zf2_3S``X>;IKWf;7OzrocChtD)C6DOc4C11ua@9EoF07T*Jshkb zr(YMx8Ts+p8fMW(ZBbE;moY6VGLkONTbQ`9C?QmlZqyJrP+pR5ynM|i&uqPyKK#1s ziv<@`z9I$P30qbiy5tuxHs&0GAM4vAUTzUx+%75Xllly?_SzMOgxwULU(f!YH-bWr~;Ia83##Z;DbB%8{KKQPwdSgPr9_ZK$J@@Bw)Ee_HYlZ9zCz%iOL5VK+ zVRK&wUiN_>&FOuz$zy|;>@|^}_GZhMypwlV0jHi_8T0&k=t%3Lo-K%ZK8oi)&PX)y zZ)7G%x73m6PPWW;av?TGh5L4*k{+7iO)9zjHSfQ`A1J4Usz9U1pgO}+`k|%K4UyKBP$lCjCh;H{IBId zdVaZYbjs442^n)r$sM|gSdgRe?ZwQW$YtcwU6a?Yd=t-Ndzeap#CPP6DdKtw*9p)D zHqsQo_U)My^7_7I{p#V{Oul^-nj6@US@c6=S#&NsPi0JGiA3rdSnkr8{u<=(Q-3?a zc^DX@YjWC`A}3bDBY|s)&OnUKPkFMU1fHlfT5X;vo_u6{bjyR-OAly&!sl~>2f5}Z zr-u>9g#^!snnuxxvk{1*9q>|rz`CFqXC)$TH` zEjgS0rZICG_hI5~R}g<2As)|-4N`o{7-Db!PJE1begd}Sne0te9aGRrZzTS7EawP( zm6*p0V#HgR|2o$^>cl)=%r`d>!y2W0mGe$A^9`)4Q72~h9pac~u|NID=(sT}uW7k_ z<>c%!Q;BbU=bq0Tn#G>BWK8}8k%@~{bw&_bO!{?|oSE9uH9bi1&Z|>uJ_nYb1;PlN+#Gpl?Wyz?S>xg^g z$~;Jk5}#BGKexUeV;p}AT6Vv^j<(%zuOVhE+Ci+KzAy3AlyGIyO^G^jU76n`o{%|L zTR%H6n(y8wrt9sAAk{Tga-IXKV!n5U)`IQLP$(faPeVqXY<`e zeHX`XOrrMx<4a4E+>&4zy}72x^1(57)}AWMPsKZPh4hGE{hZER8OGZ~Zh z@QqSpS29g=_B8G*hbcdJoPfvT$Ktojr86BoyXV8?yl3;#7n1M^Ip;Fb|5twRnPBnK zeVp&o##k%nT|6oW9+g0xQUu;n34h}(khYC$rorDPSh*(qd5@ikbR_29|FZm4o+ZvQ#_X{dE6o^>e>UC3UW)Mu>|H$D*GbdoFb zlC?g)o?)*~uM4NXh}zp?9()~6==uIF02+;!_1_EU|io?R95d^*qF_32&K={v!# z6~lwhwT|-Q`}JJ6IL}+g;_NDrT^k>e%A04qpi{Ct;4`2;`T5Oetk-%P(}{L)RMCtpFV+k#PiKmFQKb4F1nkunLRDaV}r z6XpDp4;)w%fK|4{OfP4tu|^+VQ`K(8b^~k0*-R^rb}_I9fHhHVQtx75RogDCZr;S@ zz_<9GkxOg4N7O{NG-oXKCMMJ(dlti=7T@DrTKf%ejrN&H*1Mkkje_wy`smg<8lAO_ z{*}=`;l+hr{rdxOUr+yb(m%>A7|plW)4$QcF^c{rI{kZra@da-NG~(#mvZQ7JSQ@4 z=wG2O)-4Itj{up1R+s6Z8CfUtcsk zi*Y*odNcm?gn-7(7zds>H;D4%k=yr(XSmPusbf8JK(;v5x6o?G*ehRa7JDEpxq%!w z&mm8gk^3gf{QMMq#aw@s{7~{q`Ank|8f4E4IU^?Gk0d{0F);Z%6rj6PoamNM*p0Q?NfTT&NA|0Ba{7Hblu9CTG(kfue>oA|Aph{*p8oL zC4P=)jo^=wg@3Z0_|YTqKgE!)@Aq@a$Nv!VM$51@pWME%&6iC~f#Z)X^FCzh)m7e& zmJc!vY@?DkWJIv}RVwB&iTxkMMjv&2MYkmxFUwvgJT$_yWn=09|6{zwijv=9%t&3w z%^8C%`rD7B&lxkeXu${Om^|{n21;2|FL(Ssihb5u(2L-`=v^uE9UH&T1*-)kuv#z!D|HTp)qp04gY_h|D&N}+-%MP( zk6bn__&e0kTwv<_=D4M`#pH`ZW{BYPLl?IEK9QM4y~>AD3;j)}e$kn2=SvNJ5n8Kb zFYZ9wIQBGa{JOc$XIxV0+Z~+IqFlUL;9oT8hXyODxAi9r+AR8;n-_$aqzy@*U(E}C zhW8o+@fCMm)gK>Y9;R;`H;n12iUr9(0lAz`;iR>d;baE z!^>W|i1x92_w6BF4)4+)QUjZl<`_I{x7&|O@x)=;yuxX7D46o}9-R07cXZ2#okbOE z*Y%AfPKTT}g~;O1!PiP2aee&#c2(J({ifOInQ0OteRkv4GWyNh!J5aJo!H)F*YkC3(EZ**!yl-m{pweX z7L<)P=IVcT-G&V12Po`>uah%H_Rba9vc8DDShgVf`HAycvWxf2cs|%zywOfP?5oBC z#nZ_y^FM*n0LF`~HW(w1vFGE|tc9N(gEzkgZ+^_&l%cgg0*?-GuUL~s#A{Tg8hiCk8@4v~9`{y_FnX)Np`Uzh z$RSH4w?d0cs>U08E61E~FHhJ;+(ow?w^F4salVBo&QqO=WAU*+e5mic>G!9L?7Z&= zF;J8{&sM((8qxYW?LG408j0w$M&t-_p?-9>fN3<2VqNUdg_~vP!X+QudiacTq|QKB z{0ceQeoCH;S+k8`l4nfgRMw&|8e>RVo(^tYis7>Uk*+dSu>ExQ+gbvyaJR8`<5rM9b5u;Is|C|`Uy;bDg-9YZO zD)hq*y6`&Qs$^~(Z!VW zpl=T>SK^dYtf2UZzRUBEY7}nWcbczyw}N%vedpm`^?#Cg_mP98n!F^Jvu7s2xM0iO z+(jN1UAxJ{qU&Mu>galeygJHDnd=|j_{CvzvAh(Mi{(Ga#qw)%vAj$!mOwqZE9qZ0 z_)xAJt@n%3`=(ho7CUdK_K6G%6Kz{CIj|gdU^@b=eK7rhkPD{|X5}8`C&FX-uQw?iv>UF`;*$hd9rN=W9C79GgpyqFLk) z8knzXw&@Al&(F`-G~4uA&vVVV;M>J^z9!|x-F7%yp2a#oD7?ecKrFofTy7=7J?DRr zTj{DHax1B?`9tJZQh(?0uCKq?!qngH?r8Z%^mjNP=ll3LKfuTN9zM>Kj*qh!`?F$$ zbKu1d=owQl<6L{zApDQJGw>V9hG6F+NVno}-#}KE-|?PL8%_1BN7#9HYi-^0X?&X8 zOBQfrGfVL~wknT`vyTGb+ve=n_~6f*?EEX?_>=SJFei4?PIx7<*HSBY&F1V!;?WzE zL%x6aG~w5r8^(v_k0%zBILN~Ik9P`j*m8oQJgktXTlagb`j_K^NeTJK}@fo(_ zD;=t?SEx%e-PyH6`^IABD&c85I27*ckn>zWb&HU3hRzCw(AwII11a% zXmsB(=)hyqg^5*Mo5cB0Zq5>qb%wEWl_&?SVi8Yx<1PJkmGn=at)D7(I-Pp;zZ2ft zj_!ZJQ?&XZvIKHhpy;#MP0&$wU(fxk2u)+jJ;ix>aH%t zkMOL554zGJ-b?A2Xk>#nx$U*ou z%^C@W6aR8;oBJ&C3GDcHAgdxj$%m0C9T6K+WGZK~EQHpOLywLy zUJle3EeK4Sm9I7~+O+D2 z_63J$24|U6uPJ!GdUe4GDZXGZmxt^ z{0UgY`S^s@Px2qApH~0aTdsN^#ipQ~*Uf$X8x_JSoYDv!s>ANzsE~Xnjr6a!-f#6U z5WoLV)4pY#e2{XDz^gh`zK8Wt^&SR}7lHQ$;C%sDp9j`XV67Fb)7dABpHcl=h|O?^m$)YJ6mu95^nbduv=AxHkd!eODXf zzkAP(hh{7=a_{@qvO}B5-7#Y}c~t4gK>X)A{n1_~wRv0Bnu1%aRu?=*pYDXVUHsQ$ zbKW`OqVfCaUv`d-+bLW%W|9*h=iTcy*tjnfURD=89-ltvyO*TSd7fBV^+UKjLQI@+ zF`qb8;X`Y(aI}v8z0Mij#q{s_DgCtJgZJ5eGyfr}4e^*(T-Geq1zZsXY|;fOxoN*^2Pqxz!uo^|?ojy5%> ziP(Yl+(Vq9@cU2Cvu$?XmjB!H>>1!0Zl1MdX`Y!it>7(op4l`E4(XTr!yY?p%$8A3 z{SqB^GIqkT=9He{KS}9iJ*cg>`=a@zGS8R5dl?Vm*N;4=Z%SzQE8zJy@T&PF+Iyb) z)C|25#bM1SwY$=tPw;N-DYy2wFXTKS_I>x@JCuB_a_gXH(UjoR+?D+@7Ct?*U>1D; z=CkJfH0->$p1tu9z7ej=4o&wP3j)e}Gn#xi(70%`(}G=kP(nm=M}3$AFA$A10{aR2 zCEoR5%-kU^!Qx#$=v;Yx1fOEiWh2x56lDB=8rE$#fBK)o`V6oP2WuCxBkuUe!fK7b zgL7i5EPPjCU+lSyHP}qEY+^ly$TW%AS@I`Dh=YXR>?lj1wi z!>dGB+h|+(e-ys^JUpSAF>d5tEqpAS^;0~ekvYDDIer&&{PT?0&G0YwC8g;qKAq3i z%k?g^@1`k-aO3RPVlx7yxl6C3UA`!;O$oMcI?vBIa|Qn z1lqfqy1we*O=IvB_o`p_PjY`3_fK$5vz{e}e9p5E@Y%=rJs%a4EmLLn{BztN;v6~2 zZFS5o7iVE`(uWW1r(x*u3}+d4Pc?%-#BTrBg=X-_*zSMwtoib3uXI6sU*2QyL!*15 zbGxv&cMV|+9km-7`?8_m$LT$`*8M}+O3ysmZ!68=Y;45{FQu(PZKclmO2!|q&A(Bn z+8hez*YzG8JWfpQ*|j$zW8a9ZeFHN0Cy~9cCsy}5VmsojSY1~xE&#_Xe-hnu6?qOM zS9`fH;NF$r|MSTC@v_SX+25axEzNh)ca|uZw{iCM19dTafph_UnJ*dlPPcf($BAWG1ok#P>m>%yi~njOVS3)SW`j6CYd?IPmFw^W zbV0@W*g59BJG;{Au9l469Ua*gUXPp(EyzD~7iY@0l%LGM%A4AF`ZA-pmK=lrB}Vzc zev!+j_XOWO1s$Ei_tQ=v(znkFO3#WNPvs3L}xB&KZ}pKkb_?|mi`N%|1fmwXTIc;cO~m=^MT4jW4CfLTC~C#tbjM?F$NWH znKdRkiL&UQ#&HF_y2qPK9)d}Y==Y&%l&O8+tf{*g|2}2Ph=0{yTAdRh+EE#6JRX}F zR9qo3m$I8Lv7Ws%BN%n)ga73}W9)|Na~ATJg;TCBPL&U3sPfCmKc({ZT#wS8_Eudz zO!*e%K9%p_nqb=HXAe`J7+9;kN%@UV`Adc=pXHP<=33^IpEykUWym2G{9Hp$`O(9a zC#J)OpKG2|-lV+no#Wzrb3eYNYa}ush5st%llD6vWX!9+#h$AP#7i^IRi8I+lH58J zj`t(C2*z%%)lQplAp2CsJ9Xqz$A1|&_0UEZbKT+t=xk~?_qNGP_54=aZq7AorZE1w z-#?Ap>wB@~w&{WPa%F09DV;&0D9_FOx;eOr+EHE|9$)8+`BOC=)Z60eD*Ypz9|2r z{`>Yvxla&Ic;4K9-~I^q8=dD5_20KY$bFgf{DJ=a_RZXfoaguT-?wk%KF@jno&Njw zd%3T6p4a!^w||rSTN&HtiH04EBV04S3E*0M(w(DwRF3g$77f5(tTAB>#hbI>!FgU| zzUFml?YO1ZH_I*$X5zCB{|>p6@u~3o0y&&_Fci(SIAgMnYX)=jGqjfhj)+6owY{9H z=;ScEgC9C6yM6M~qqIE@x~PRt*6|%@ha~3me+sZqqffQ;sRUWjdQP9DgKK@u#s_5} zt1W;pX}=~uyYZsA+%px24#pXKeAq<~A2Nc9KR3+6SF?z{?&fSB^@F&zKpV2U=xoBf z@c-XL=eMgpa8nCz@ORtox%8dp&^Pl{>zqs9i(}x2XDyri9Y_z zKb}DQ72xeK?OV@3WUjY>U(Ka$TusL9DDqhX@Kk_{R`g%14&VukPBLv=JOlnThCb%H zp6A8D!uo5$G7ebs99TTSVm){0(u6Kvk{k$KyvQ}rX^(xJb~(4bsdjrM#7%ryd!u67 z6D_&zDXy-se#LAGKDYkMoce)pu=)=>^++y}Z04?eU4q%^o7+|feT!}DfcvdGmea8D z!nak&D|{a&Zo!hthmpBGPaty-vv=*(F5W}O2VaeD$p$`b^t*i7)2zG;+mwIcz~#Xo zewQ;i(EW&C*&Ur`4C+S@tDa%t=+b-OP#w_V1+g7}HE#y10dw(R}}dtDTRetc~C_4}3-I z*p4xEOE!_qVpDczaA(4|my8)vx8!?`jY~E!{_c`s=Y31+8o#@wKJj}?GNG5zNye%% z*rnEkpKCr>erRRo7Yn>e&j0IfwEvU0*?Rxc>+JvJZ?^tVFSY-Z$JzQn`5OCww*9|k zRMGt_DpwSEE+OtQmpn4?YW1ZKd7zp2SgjY$#G{GtJX&2u#WX-m1)^3E52&h)I)D$vAh3{atq0^R67^BpJ%l>&h=vKO#C+} z(@7cXEzln9as2;Ju1Q>f!__3uvEVxl%-5W8aO1$-hZ|s4oZw!{Yiy+#52Te7*=N)I z?C(loe-|>+*OUWnFd7+6yxG8SCqLjx>0(YP&e7yNtuE$UU=BJ0&lrDa-_C`!`Qh=N z=*sZ1Xw=izG2PAs;>Ll;##q`q@`$!D`92h9B^~*3o%u6e=S@#&R9smm`@(wAA<=<% zrN2Er_zSLU-<^S;W(I%0(tNphJ2`%Mw&%*(K_4{IXP+ZB?Wy&*oD9R4l*i~9^hMdB zwx9z)wjS8N##lmQ@RmKz#6xU{rovXfjkJK)M!{ptnQ5U7z_jc#ubMUcfhYQDbar4IgUr&%?+AL91vl?lht%&?&rs(P^w#9b#_n8nD(%a= z+|~hhtwaY<`NQa@--Ca?#hSGb`QTC7dndkbJbON@_Y0AmUZlRk`q2pgP+#E1cE7nM zA`{p#i)n$C*dXQidW*GhpX5#8eJP>8?v?z1n)ivU@9sCxvL{V8PM)>9&!*~3R(PC? zJA?0pyKJtk&y8u!_YL&*t$5l&4yhy#>7^0aSC$51$$LduzC#F~X^zG25^D@y`f{&mim7tN#7{^&h5w$<#CM zwd+@#&rrYmHiP|yf-?sl_8HZaYS$y5+`ZIuUras6oOBCEB`nv$eG&__bC70razKzj}a$S z!1Z}(L%N9Y^IQ5QndrBSquxg)U&H@@D;!;9<4AEzo2fI2u`JB9zdP>WD2cHwWKV_a zdfCBI5@S}FYSbLSUiGr-!Jncrn*#0BQI83(3*puJrrW8<1lNV^9n`Z9rydhr7p8z4 z=0k_-xzw)bFl9DUPl;q&>UoAapfOWEL*e!ga@TG!{hennGsz1xs#APGG>aTeeqds| zvFZKwh!K2qJ@%%RMzA+vw7It7OWuLc{3$v&i@Hj{llFTGCU^Wxz!UpCEgfCsfA}kt zm;T)xllY?PNqi9+nCTgpX#Ll{Vf5W^ME|&%a&?T8VEiN394B{#?832jM8#Wm4I}G) z>2YMeNkiL#Kd<-5u65W)2a^Rq#e1z~DYR3KEp52E%AC5ohOm>D=skQo>31I-AFB zYqy?m;uIuLDu>^|@6KkPO{;fgyi=LZer$41{7!i%kn@n0jw?_3aB`mJ+U>|vW1amo zg0TyoY9I0zI4)OT3~YF}BmYFtdTS2id(<8Z{;$%1`MV`|y~943UF^+}+{N7NJ?Z^jqlDqx_ zO}g@?Rp;l+`M#!L9ObS5*WYOWr@Zz5YPH9E)c?0f7u|2Q z@5r0`X>XwHGkx}l%Ra;H1B-eSUe?)1-PqEtJQB(HUSyM{ed2s}<^DA#n8&s3g^yVF z?+PQXrj`G`du9jOfB8}%I3jop^l&G8Tjgg+hrW`bxjQb($=^b**gsyxSzJ@i;MJ1x zxoV&B$GBfM#n>(X1F-e6>z ze5ZQq;kDXtJ^4Q$-r6*hy(P#heqzMBwOLAexsjFZV{A-iVy%f?>hf_d`$#eN&xRyFXHt*va2ZELRc{TbR<9rSsg zXk4~w{a?m^@vjGe72V<^&p;+?RRi;iy;?5?w#5ajK8TL1UR}A$%_CpyO^IC38g+&~ zJ_cTzypuZd_mQ(^VyK%uamvZ^rS`$X02s3;1G1EB1JDeo=B! zuVg!&cRy*dy?HyAv_FK+$vG$(p+t=QS?)e$tvX%uUqx3L#N1GoWpU1ku zKJ(c+2PzkuSj#wO;semWVU45o8jUOVM8;xmLF_l{cqUq+u2r$mbq*B!vi62q>+m&@ z%Y`$9S?}KPmb4xIUQyed^zCo-Z99I@7V=4`?_t)H70}D|z~PRqi;r=ao!uhZUdGV6S!Su_#4q1&>zwxVPfAjwte59%bdS% zosA29Uzs>-ekC~~*E#1pZFsalr*aANaXmR!U3j)++wfrT*!vo}oX-Gz12%%zzuI|! z8d%ec|0+J7659HhWf$2i`RELB{TFj>pl+S>UP~^HeCGKNx}%mK-k)r|lnbxOg;x|J zuM{H(xjG+wB{O5fz1oIhNWX23-dnt6VrUzElYe_4EZxXJ!@(dwYZqhO zy``uvmVP^+LD_{^A9vSH_E@=R2P^lqQ?7`0{!YpXpRUbC_*@Rp5k5ce!1_Dj9InqF zb^6@W%i1`IJ!&rRgGt>-UK`c20176&5vAoPG~pJK1|P--&?jh?614;Bqy+Y_Mffe zn>)LREtQV{K{T!{ycAx$Ub!(+L(=nilP6zss#%4|PR#2?so3zyuS)D}WIyZClQ&%1 z7LCTYt@Wff{sO;ytv5MxaK2IgOLYEIEAfr9ZoYbIMDS^@Co)C`W&3Ac!@hZW@YB#6 zeCv2NdSMm$4>(IKIT1V8wCo)Z2d*s&29_@fvbX;x-$Z|-@A{&kZ}~*+@vKRCqH*hg zqc^+t$hV$??EV_h?tphbiR@hKnG{(!3!gppKH}lr%Y1w7Rqk=ceE<2?Gh4LhJIAZo za630u4t!918%U10I|tjFZ(9cYB-x89o4xEW zi~oi3tj)-4;gRIoWnLB2XXUk89(Qib0mUG*f25AJ%8~_&t~tH}IK%ig`p$!5pXm9q zQ-)*Xm>9Z|@#va~jRV>L=p1}$tbvxU@7Op@t~v**+G=xRXyuM`TiSc0d$6Hy_H~T2 zY^bvuJxwj-?#$ohX_~F^(3-l`TwsrTdgv!}?ESGV*kXL(r}F)1{w*q}yutKmB0280 z7qim&ueDw0LtSrQ+ZB)G-wxk~*T~kT`NTI1W(@v(wbrLW%I_7f3h`HU%boxnF0b)1 zPByPe4^5+g;)TSObcXToOAe6^M?8le=d<39^Z60+18+WS2LHC*44&e9@u|bm_z~j$ zpE!np@={~olh~ntK`er3XW`$YqfSmb;Opqo+LRu8H*{{xV#y-RFXdO)no~j^+(Kf2m$UB6Zh?;4S!fyx5KtEwH3>_4>AMjPsH z!rJOpoSzryLatRC39F~As&??CHn7!OZItkR+SWzN&U)=Ttjf?Kn)Q-!^Za5Ly3z)QZK{|Don@I1#yYkonun+7i}2 z`<3j4@Y-|vQP!7|lOxFMlp6X~1etZDJ)iejG%_LL{Reb_ji+k}8^uKCna%?r>V1;l zLq}b|wdc*p=v%D(Sp?nd%xLkH>+9m1=JURr^;2{0lfSgT+5bj#4>_7rTE&Z}%+*mpcl{sHfDJS|JqKda2fV0Egm(J#D}@O#iy|ewhBfruXPHL-qe<-YW-- z_~wW0u^v|U=DY@c^Dnvjb}QrW%5y$5YrbqOztb2Y$ECw>8dzf{Dvutx+0A+-U!Ju$ zet;a_eTihxEtZxp}L{KoJbyEBtHT*RDI%zr)C94~QNiR{;Lo*D2O zl~HVxa>z{Jm&Z^0lXiGLFCX)=H<|vft-4&gUeeC9pE&g0s@n=)ho5D^6W|?5W#lHW z@FqlNz>8+U2lkolYl7eJoM6m-{OsaGw^x0oK(-)!+~u*~YY*r5t7hn2g`~g3`+#k= zU@IdAUGtXzd-eZ0_R|P1!B>0QTXPIp_nq?AJjS(QyfLqm_=PlJXk9UJX)0IZvx)08 zg7=%uJ#;|Ho0XEGvc1+>$-4I+jM=+(P`;$(&^@i^wygd1h}^HUeth4P*4Q%g?w!lN zE&Q`L4_>VNY_+x0%O$s^hA#bPe3Rgd;3x9|TU80?;c|Tr+-d%BcI5aM$hGv?M<&kM zQ8ryXHz{D@Dlu|BYr62RHCbaLIevN|P~hXc>F{gf_XBm{M|j}B_M-$0{=elNl_#9; z%>Bfn%faglAG!OsXL}^-p>>qr4Q4AFT$8=t=>eL zO%^<(A~WzS%n00CK#r}s8l$gd8sjS%vxDTpe2zSuYttUixXm0LlC552ud&;MUC$jm zw;hLe#&?2)$Dp6L9Qt{2E3 zx@haS^m%jD?FE_awQ7NmV(XC&bPx0?Sd?eRnUlND(~XgFhntUYHhPEyN-s#6f6j^> zDC&;xZk8XM{hs1Av129qDJ$@GYi-F|`*mw=;oAPA=-Dj>xfrY*gV4-2{+)A!vitz4)ncC4c*VX6T~K9mq|*o#x5l?o%!d&THn!gNd|S!8(m&a`;3{#3yIs>sp2k zDp|~gZi@n|3l8(`kt5PyCxm`Wj(21|%T9`8KBZ{w>Q%At|I>MIFefs}MY(K_QLb~} zW7~-^zi$BszHN{FmOZ6b-Nnq4HQ-s_HG4B6JD}5BY3mXGS8(Q|fovE;Z?2U6i}fr3 z9}K_~D@^jd0DB>Q=+ad>BXG2ObMnK`i&1rVK@Rok{eI`Y$$Q@j`@N6%SM&Y=<875+ zefKKq)?w$rWX95Xr!4QT;D2TR|8_sVfgWNqrt@5KdziI9>|tLk^~&~m-ZQ=z?;7x| zT{yn|6Xc!GHFjqj>5*dmrjk!`PR8gloJ}n~rsF5)wkWT5Y#r*ur~&o*Xlvw!&n$SW z-jB{>Zq4=Ileo0a<8RC@Ms7aqJ>G&JIsx9C2VZXUBsAuBThD8{h;t-XWPIof^cdCy zUs6J1>oYlxKHmG@jn0*PdWLi8-@``OBzv;xwcVE0nCq5J`90Z4!8>;4U4hr)f(Ik# z+m+wLmQctzCq$y+^d{}d9$Sd-k=$6j(P8`cqMt?JpCM3b{<>lTM5Td;e&^k~r^?=AX+&MMLOL{C2Uuu0}>aR0Afvq~`ot4A(QC5KWkG}A=Dlo^ zFW`@14*~Z7jL>u3%NBDQynWqkG&XxCM`nNv>GBqz?X5kOX{JQXjwWP7Gq@=a-ZU0^ z;r+{eJK31jsCr)H9$N)M$b zezVE>riilo#$at0&fIV0`{$dzvEQ)2)8cV0_~`Y`GW63Xd{gc>ZogVt8H&+d3RTHd{${AkWP5cw^2pzC%Gp|9t&Mk05s~`7kSf$$D+FZhMeH$Z`IxVePF_PUlkQSDJhvEieW@=*;|8^O0HHhy} zug{uqe&*W-=37c=SFYtppQrNM*5Q}oN<4F;QLk}K4b{Lm^p3oYjg`n(t=zZzPR{=X zw8}$ zkG9kwOKzs$ve#vINC!;`eT{x2Bh0n>Lk>C7Vk`YC2G7!mj{WG|7R7%y@xA^ZJa^WT zH8-%wj9%GhVJ7*pS9_yF_Un$zKg;1@Q!btnh6 z9iOcIiMlr#i|DiQ$ni*_RIDc^}2DJun{Ajm32RG-cSZW!LOtyzrgxHgz`ZBO{O}QbJ=`hZH9oPQ$-S zoWIuo%D7qi=#Q_|dQ&4ih&6l$8TWGzemb~!WqqARumD+Ku)KP@&j-5sJU#Ck(WBzF zKTTghMW4&*`%-YQ1UdgE&QFLBHoXu{lkFy*-#@5d`FJ#sOGk0xniyj(j~y1&&0O|ysu%4P<`^ltg0#~=%xL6+$)Fs&(EIS zl6l5FzLRzAqu{XDDSI*RClWuc@5E~?`OmI%wfsI|$%Fj2Z1~{tD7ckeBcG4jm3-fG z;d9I9Gstsn_GZn77#L)WnTS1SGBB+M<}iFA?5w+C_(8q3?xuy>et2$+V4Qr3kza_t zDjV5fVi+U$B_VCM>#4nq@hIK|#gX4>ANZg;_dQsPW z$)w%LF?**QO%2|n-mHtT(T_cuzgpvSv;2x5em3Ei*vyw@^Bp#1#g+CTvsOsIhF&Y6 zr{!F=M^Ao0p8*{@V*u{t-z;AQ{uQg#to}oL1N)p6xZAPa-0j$I?zZ|Yx&8|JTlW!T z-YNRa0WiCVlC5UZhC4qh@Rtae(z9PjUY8y2j5FRj$QPQMt?UC9|GOlGy)%pj{_5R- zfUjHm! z-#E&76iI{N6?wr@P96 zUA8dJA*2uM>6`S*vGh$oaK-m1{zGwUYZlU9{-2io#+oR3?ZB9E^TW`m<#T~=X+4yl zYT>9fG5GrsdDX@kb49O}@TI%ST{hXAyyMr+ZiDbv@N=5fv$6UZN09PZ#quex<(t{=xpM2$;2`B`ugfk54BK6{Txc} z{(;`p-j@$X-T0dG);SZNKHM5-#n((_{+)B;S$@;6e-{77J_lZW$XzQ2@|um$&7A*N z?136vA7@oa-fIBrjvzc644ihuP-ldm}$Bba{ZTBv@7rz@a?wg(* zw{-nhPtjh+XSVWMA$#wY9Zv1Z4_L)_)y{W1kK3vbx#MZ-Rvn#;yT)oFc0-MumzukI|e6x={PdbM}ZA58f8T@_1ej`cevV^f`9jGo?<)f|21f%zT#zy4^o)vWJ z%fGR5)khb4kb%9(e{qaOJo4ZOG<(C=O3s_DdU6Z@jpOkh&0CeX z=t{2bMn+=<`#1iZ-tO(38-$!Mx{%)a1~fPVnEnPXK8vm7geRl3fwC!m*)LpRq#Ki8l?EaZGNkG0owFq=e?m6y{#*YG5{UrsoF64BMi zp&#a7uW63#B$lGLj{C#Vp7t2LLB3Gs&+gg{ujjeWbYOm3aX4P?y^OcYZ?nEhW2}{n zuWrfjD1V4}(l(ywnaQ0YzG>io6f$Ka^K?4)dEZCS8;EmN9->-gsBY-Mh)-xtVES;mTFVo#Ces?7LDQv>z>(oYGbwKKQ2H2lhY?*@ySPdB2DERv(ND`{1V!1N)`* z)Ijeyi3yawZs7agyW&#@)8RL8o_x;v`us}+^?7T(L!Ynywx!SC@9OYs)4eyr#Zc>s zAKcDiymPpwaIN*E1XeJQGac5@jn7aBXhs{tV<}P|Ubh8NkDxLTT^sf22>>tgG*+1IsNe&bSTumH%nKcKVSY$M%&}JHET;7Sz)JPn>+&$MDn5B)BKbR+<#t^gH z;0(;c>f3?M5V|{_4*wUtUBDu}Q8?89W&GFr<)eM+#p#!9vC6f8Z~1U2cfZ!7@CnIp z;v?suVb`}Vt-sLTGYGBh8iZC}%7#{6|CXl-d)1J%GF;q?O)n*fL@yI8dYKSVJU{td zSqF`fXeECbdimTSv{DYO{J@*inaSEE`zbzi@Symdq2pgpvF_$#UwRE0qaiM5eidt4 z^$}ZVFGdDIM?Ic}+_6vN0Dgs6#bAhL5}_ISH}*p_704J`S42A&pVNL4Y`ls!ej2$w zYh(&zt@HKl7)#C#y#EqtX9~0<9r8J3pH5^S(d%mH^}y+w`OA^>)P6Sd-9ATW-skAd zQ^`{ynT6|WjXBr7b^n_DupM)yGh;JCCg(r+NZpDZ?1_}5=0E+4wakK#{)o1-fmi!I z1f$)j6wCg9cd^k_Or7|g?%%~XdcTD}W+e{ZhyT3JXv(Ghfpy4=2740L7cFS@&dS$! ze_-BZVXGRf@5j+|C-L22F#H%8vIf+706BE9vI&%x?M3a~%o;bay^F!~e^EwrD*R;A z))dYg(0FDMGo$%9Se-vDvd=QG#{DhHfvKSs=F_d;)vOSo;W`zq`8pI{=6Py-2Lz<$+p;dt$Fp{4bNCI zWGp|Eoo?Bs=EFyjPa6J9W1MV_vB4OhmmBVXIlupQ?}cjt{>!E=uaW1j3HJK14>^`K z5?uJfh1*}@qRQBS4CIX@at4SGTx5a^pM#48aFNS5x3Q-0(^?Nc==T!Yr&TX8s8-xt zBDj%X-v@4{gRAM-J1>X7&xF5gP3|_oyLA&hq#2uTsAJ<+$r$_LCAHXTO!R=!ocr0# zGu>a#d?AN=po2N3y|1IFXAJdZQqKW%(^ji~bdGG=8dzsN`oQSb)vHw3Heh`VTHt@X z{ulACnfCOYHWsK2@#E(y!~ebdpN-6Lz3Fche05r1DBsO>w8_~N$15xt_5boXf8&eY z6~wTO3DgrWAle=sPZ^%6tq$rvp|;6ix3i z+UfY4(@sqPu5{WN^GfuV!oN-wsRp4taj?(aN3E%K^EV*ILo77!doJ8^mY71 zH{G1KAbgg^e3Q&Kv3yZ{O*)5(Z6UjEE;^zwwClgmY%yHBfn!U{@%ZwWuP}lu9Qy(> zJ5Bno5*@v#Y8L#*kq41Bg?M6tCO9ot~vx25M|>?f8UpB#GQ|41G>zdoIz zaOQRs-D>c&;(gA3b8>4CLudP?#Jf9~JG+6g!QKP3xo-~;^MgFCugC^tf;aZFr?~rZ z?&Dr@phe)IlJDeS+u*VMYlF#HyRzSy9sKrsPt!N~4xP%jn-DA8;4${D;hAqyQ80OV zQqaWqkxyHSN4X0;R$_@wjR|MySze|DBvH{jlwD$X0@4h}Kn0&WKG64>CVsw$)MR)D^#dGNI25?w~Eo&ok zS)(JDNsqXawJ448tKxl|blcI!eEBA^Gic3zWear`K`W{Y{4LSi-otwG1Ip;zn>oL{ z75{r7<&!A~?)&W4;NFRwNDeK4R{LrF!gD6h+>Vd+Sv%)aHu`niJsA&6)|VVt^Y!?q zbZ=VYo+(D~RmQRoUfo7JIgCRkXNKm1!|HSA`*E`If<9+bK zyWQ_s0iV8?UKIQN&-p%$KE2C#vHmB)opH}3r|%h|E3Cd}H2z6)Gjmk<4YOYh-g{j5 zt!F)yEw%gK&TV0%UfKuWob>S1;7M}eHpXZ|UtJSInO0pB8c*<^Sh3?p#DKp~eYSsu zJ9O@1Q$@>e%AI+ zVOzHQtFcRV`kZFr>>m28aa3%`oz&f5Zh}+Jw!z#%xj$kPQyZeU9OhXMI!yvH3}+_V zvG?$SZ02-nyxHiFmmKDgtYe*A%>9g$wTA-8Adg{N_%3TltvMzVsQ>QPqu#twHP6b- z(VZ2mIj;kJmYpp=RL1(Zn6tBd@rjMgMtMHDsn`gW$#eV&bkCQ^j;H zgC}^&9i{g0N0eVi|6^s@YH%YMP2z`3{lMn8VS5x=Z87&VIDfYfHrAU#VXJXrD{)}E z=YF4Gu*F>nTXsKeb?`ecXA`)vN#-oVw%U!|?8kS+r^K#jvX_frFCrcSd--PB%eTFH z?~-=>1MqtEOxa`l*D1e2tQ9o39Gv+_S@%y!-qQHw#S_<#T`-Thk23a-8fMuk$%F8y zUA~S>T^_YL`@mJfqiY7QKO0+v__4-1a{!OegvX0Vi{BT*U&}Zf4jW70Fnkmr$7bL1 z`TcE7pBsF6h&F(Svi8|H@XXEG7bgV&V~DcS*UL<^lYRM-rO5TQ%)dtP>&IRrI@J8q znm7DB+J_zoZU28rk6q}QvGf?AeU~1^8_YYj@8f(r`%wACq1!53 z&e%MNEoYZ(Ik(z$?2OOw>y7kmYkh;3tvCzjuWV9<8Z*%ty4v^QrCZ=zS`&Z$+F5Hq z1G>YWFnu~O>iqY=blzu;#y`z_U)rqv(zKlXhp1yObh80ox)EL~c}02R+<=fbu-N^_Q%piNJE2b&&HBLX*jfor#Y@`rQU(N0)aLnhB9Q_6W3$ znA~WZlRNi4jc;yt?0%2bQ1nk{w;W*Isw1YxjYU7eTG(O5qNj!~dc=-J9}3Uq?)bcI z<2i!v_0QsYBQ!lEo&$s8xqUc1KQcU?+b_U#f`#Y3|2OblbP0G)u<`sLaq;YtMki2w zvtkKSLqBrxTr_oXJpcM(8_zk(HvRvA@qGxo-s;SgQ-5^k$&sk+iN|*w>BsXKX!sFm zcuyYB(_Q31NQK__!%y;&fuxhjeiJ5++poL` zYsyK8o$02^iN40f&TlW7#xtLpD4SGGI`+7Ncw^7A-~_$S%DEujEFGK7RG#IKf4+yg zCcQ>JNbOnFKJktC{`LPE@K&gO=I{V_PdPGQ`82bCzj+bw+&$$@JIM(-!Pu>s5+A&> z68oNkO;`2%u`?$)c4m98to#b8p>;JjkC(kP33~D&A7-(?u;CqBhE-fcHtUdN&{@#a zH{qAv$N{oXuA;q`GtoV)yD8s?XFlZ6)fXMQ%6d7v8(;YG$V)a|Wxyv-Lsx5|t6w^F zRl(T~M~O98Y?#JK|3z0PsDB_`RXTKaLNovm6RS~m0{1;txq|0rTraYeyJ8+O&pZ2h+Qgwn!TCn_%t)Y z#d7HDe?wEL(A1|{*R1?=jETk~m2rS}EZ*Rb`+n9kjr&2ymT>@P+Z@*r-mMY z--=%w`1BjzwZ~ojS}}YY=bvpox8*^`J;#a1w|F`0uik0Ru=!C+sGfRMN1~NK#g3m5 z{VZpmihf$Cr;>I`_xI~Z-TQ3)=po*nA=bo=BhEBTE2cs=-dui~5B1V@`3WQ9IkU{=iiD83)f z_qBZAf{k{gW1m$$PYzN~tPj+W{3G9I9)~ATMn~Tjram_tb zExW9bXiI^A;e7k%_=@K5#zV9%Lr(@?)o z2JO3jvFea4W%WgMIDHvQ9oTKeac_y$=g7P2_Gd4&A1GG)>JM3BTe`dr z*wOpj_Cu%3PDcrWI{#d3tF3RH-_{2=|BAQ|;_%n9*JQooP;4KOrR$;F)dTlI=2r^y zOZyt7>&tJH3GTIKN&njh9&_NMImG=W!sqkQ*{iAp1-bl3mkJaUgILA0(yBl~gq(87 z0rNhpzBAVnm}`a5WI1u-Tp-Ar}1@n8MzU~V{dw!3wTm+>xA55KA;zocaEE^jmA zetx~mP3e~1&w6ju)zD>3WPoGRV>oM4ZTHjD`QOCy3XQRJD&j3e|A1BwTlcbq_3L{k zIB@x~AAWKWe`sF(r12H?#JA8tja{o~ya;;cUe9wG!(4b=A$s|8%IH}U^y5p{xcWjX z89!{GHL-plyRV)|H+ac)`1ofBD@Pr~A?}gxUwWqGkaYi|*`=pS_zpVnlifisf+2MHquojL8i6VJ_vhKepRDHbgD~ zE8eDuym|O)BKxuX?}Of2sCOT8LjCzl)ve@>Fs)p)nWh=(f)~CG&fg)w_Uq=jfWDCq z`jyqUu2Q)k+LFzV|Lyu;#sAmOX4d$a|6{RtM0M^gdgn}d-Anh3SUPS*#ub^Kv4L)U zeKX^V7K|f@*-I0QIeJ#iGx5z=ssFd^H+~zLTy?y}{@u*45GOWq;i+lprFLDTmX1r9 zWYr}fU|(G`Mp$)qle2oJZ$SM#%N}I}|DF0R*!~~l-aWpm>gfO9`y2x2Bmn|RfLt^Q zXiY#xlxszE0%$`(6pYu}613_`0$4;X@s3l8qBc2zRZ9x7wuI6P81)ft zZTqxONzm4WKot>45Xkra*_Y%b1Pkr&_4@sBUi<95*IsMZ%&b|nX3fk(rftC9Y1cRK z`j~#nR(+`%yoR36xJfZ$TLS2?L2S6l(0dijp5KqL6Jflnc|THiJl5OV2hK;g z7T?cCe#lQW5*is$KJr(F&_w&8%xks&W z5#Q1X4+#%>4jxji@zb?`c@`e*^Y|2RJeT`eF}VQ>u~r2Y23ZX`*?r5uQ#*uhCp0{dAh?&naeKt%2wEn6dpZY+khg%bqK} zz5xBTJ3Jb{QONpeWVQ5%5_J82=&pi4gYhAK{r3*M;qy)VWOH|G4?gPB+hudlKwr=A zAqH`dVp4uMrd(?t@vBu9J7-U27t4N)o%2%m{IEk0wC$)}{o;Vb@~ag-#xRc4xensG z%`>QQJvfo<8qZJutd|MGp;8nXd@MsIQa4hLC# zTRNxjLww2D$E{Ev7IeeS+wdKe|HC%+NVCwFZ$|fa*K)Rh7VAXEZ>%EIsF+N@!|mq_ zwO@C9PKV4!}e2wqcUTGYB934||DM#=(kYDKG=*F@2#)(N!T}hct&L9cWkM3o!g7)}} zY&Ix6nsPU@Z+N=?T{_vQ5M9T^pQkG`=W?UMLm7=%`M4dz_9{H5V#ikuU)2FSzd_ATYE8X@B;D>blyM&7`_@B!EHm=?0Cdo|ALB-?|*sgWf$w%K$k2Y%Z@PEDq zxa(N6E%(Hh%{}ty$}&$hcBwdQ8%C&@ybI01U24XaEhG1U#<6elvenJr(V@QBu~bH7 zw;ePOdSb}u1l-Y_*>WLvxoFOcxX{nl&$TbtzDAMy?@JR7qFR(QTl3rVshkx++sK3Z z;bv4>F?(h^;P({0BTr#8`+k||SCja^pE>0K>xU}zr&9L$woyiVf1eANCm(sg6nmTI z{XBf4htV&Cb)5QS@fv(o+B>#vS?_54_~SzRD3?k9rqaIx@Q`!xk(D|0vuvo=$Wbjh zi_7qtA05I!yi8^F&DuuK!6oFq$a^es+;|~oWFTVk#A0x=6c~!3>m*`%m(j*t))<00 zWATdB`@JJV8Q2Lk+0&dv?hNIM+|T|ceMGHQ}TKJtElqhAMKw3|lD9r!)=M-Tnf z?0k-X+Oi(Iet&ek?$1BOhTngPQI6k5M?HJY{w>3J?(*B)``fov;nQBKSbO@UoUW{y zbF1*{_d!RW;VbJ4pSk6?LFaUQsid<%-ppQdbljmFE z=kvRo-`)ITUhs_^#cvkBh5QD1JmoRH*G})%+nD~TcR=VJ_MWA;tu_0$q;V$5bjDus zV&mXYXu%mY?`;P!kDr+Q{>uj*w(#Qek?>;m)9JtaTzFAG`={D?34eYE{$u?wvGL+Q z7hcxWFZX_WOZ%3MRv#Z(85z^JtgK(RK1QgIG4wHpKE}|;82T7PA7kia41J8T`xr?d zBb`1n9^F1>(Z{RlV+Q;3`0JI^ua#5%{mSM>^eZcbuW}X}<)3)_h4LON-sGV!#>hRx zxTbNPWM*!f9I<3$p~`@_M)0Qn%u2@k^78|WhO;-mmNB%Ru@pWoq!U@Z<>1gA8^YmI z;OXQcdn^ctJMd?7ap;!UbFZE|ICP&2hm-MTd-=qp@4L_5`3HV8J@FSY7e4tSh`;Es zTi)U?eA`_9DuuVu8J|pjamN+9roC!khiV^&A>I?;iU0i2>Ld8?Ny9Uv!tl;` zm1_;x_qcw*^$^#iTn~C0Z%1zy-^yQTe)B^sFQkus9h#O{H1$DKA2jtrQ{O$$ zL(}!pRDKwr@V#g%p9zC}pT!Z6d{)Q2d=KL>I--BsMP~o9492t%UU|ptU!Q8pQ0ha5 zzLRFWy4aGT{aez=MN43~lFYxR|p8fNjD>r=gZ0e`?R23G5f~ zO*H+~xt*6#M}O{r#{bjlo*nw6t$V)Pec#;DJ<%tlp^MhG9lENmfA&-!KghA=D_IB1 zKT!Hf_qYsK|CAl5Nx5R!-_rh+-&Bl|-&$YkUgs|qJNXcvVI8TpWYw|2d-B11Te<ZPF;w^i zK5mvK7Gqy&!RKV2`FNsq|EU8WPb{G90m{Pg*Y9CXSW3A)lnZj5O_{0zrIhs*rY$Z_ z-1Snsm5(rRRDMo_L-HS!erfxF*?vwFenOrg-dQ<5=!g9-p8dL#S(ox|1O4kMCJy}@ ze>{7=pN2kpKkM(q>={+FkDl(VahLNyoBun#spI}{A^E_Gl_%EUii=&m;IUc1T0~4Y z-?28b&K>gM-{a%RRMcCoJIezM3D=h8b0`bIJ5 zZ}UW1d!M@3{^eR|YhY*C03!@$b+1o-Bu=wz1Gs?)4yuj~ z*i88UY8`s5{6<6YK?{6f?GM2R2jH2P@c~^6FUU{n3G)ey9|{IMkyu9Ae^K@xcm~_r zf@;dOQ*Ig8Vt8iPfMt}$evSQC_KeHno4}!VYme3D8P_+?_MzLzd)r@6`>S2~=|$dE z0k@kspo;#@0e;2!{N<^Wt4PeyV}CaQBmKKq{`?mXGG1AM50`Yyb=dA^bDhIg<77B} zkUfZJg*&m~O(QmD+0k+MG{?fjzR(jJ@YOibK1O_H$ANW)uRE@bUh3*&Ex9wLo%l<5 zGDsaRKL&xjgnoqEFzj(}+iaeH>f|Zw5v^_GSdaOfHE$5RZ#?Trtsk{c()!Va*M7$O zQFVRqeWRlIQFDPYB=BGf@3FIl`FC~d(Bcn2YhvvwXiY5t9n~ot8g&(^u7zQBtwU$* z^b_k^59MoB{_e2ymCP5HG5*&^;{T)dE^wx5y-gb?byYsNaMAsg4-n_89N@&ywP
YY<DU%xpo7a#%ZPm`!|t~N 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 z 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

@PqhuXElcXn_dRH66Ny>_eq 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%0D>G~Uc_ovRMuvy`4O2wO_}#|H4a zle&7JDYR{~IxF??uf9jDi!;OeR=S3GV2D1dumRye&x@ZoQzvT^XM2;sh-K+cYk{NU zUBZ!v&xTh3=MdvaCKL_MK6ehC)fR%w^FLnGG7~*OGGX4ld8rxjL!ECM@0>}WhI|+g z-s-$|ANoe$YQN3Zw=#Y-*N1Dvx9@Y!@4K2GdYo`bK0ffy=rz^ouA(1!efMT)NHN(x zKkshTnRD?-oy$STan4=#?c1y4NVj=>pucW&2KPkEpV#i_E-?>(x1jTX*Ejdn&%4Vz zm~Za)*v6A3WBqa>N(Q4VlVh;_i|9zq2^@J4o=~f}x?4BL(8HdJ_}ee_t((&+f2rtz z`ZrxZ?{j1O|B2e8>}{XeN{Dq#XCEae&yrm{*y>hXC1hn{0wIgLis2o?4daK&$q`AK zyYQ?8Ja^^JL00!fzQ@L1UkD9M43yOGM9#f=89&gzk$uZ6;|2IxF01Q@T@v72d?@h+ ze6`4xiNp>}&ZlbDPKUNsZ#S3sTFh7egk1T*lW#&ts^+qdW9*wJ_L%+5y%*ME{fdj$ zv3A|pdL+1KXeQ&EX{|i6GXD0hF3s3?xccElK3@HkLGWs5WZrmUOz@gF1E~#e?GbRm zoMRt+=E3E}h=20UR_n`E@!m7~e&go{|K>ycw+RZted+xFX}Ws*XWixhBquB%U43XA zXUZ*|}bt!y4YL z-`CrwI&`^f%84OuRSfC9Iwyv7hUD8p<+rq2sY;`#KD@c_`4hwAc<<)Pji-&}oIi;I zpD45{y&{)}!C~KXYPoqq1||-l7fis>T3bft!h(Cafra0@e}z^bEy{cT#MB5H=RNjUV&rzOwYdbe*;@ ze8;?(G3$`~;^CFxq{ZLZXy)uG`Y^tl(cIgf$sw}G%lz-hLzcJVD?tB_AotX7zwYW{S!o|yw1IS{T}EpF97cP_C@F0>FC3IeB{hWrJH)!FM1bm zu-9Fjcrx{#xsSXPI4mi$jK9ab?j~DKpzmhj`TP3~9%Vhtr7w+BGBUhz?O&~h@&jLs zoL&#S*JB^YJb5z6qK%T_%HIxIeSJ;q8H?EFtR>v>z>lJ%)!L#f~^K%pHtx|N2 z9330~v+{6;lb_qC21oPZVb0iaRzv=PK*;s;G*mt_F8N8x{dn6a(%!rimL zn|Ao4c&YBq?eMIngSFhjI<(i%{Cr>IdU%z)*2nQtJjtGmhczEgo)rB(-nF-J6Ms|Z zd%f1BIX5$BdtC+|CZFiC?%rD6k4wz0Prh$1+;eo5R_Q8RFLiX4&mA;hYp|X;!tk|v z&S+P_yS?>N46XCt&3EbLJg9~5WGQ-Ngq(g0pQ4w~uitLhJ@h{Fvwws$=>EPu;HM#* z@5oQWIiroP-f!k|?h)~!rym^O$#+&L-?%Zx)mf*Q zx(f7Iw?0z4xdWuHe?v6GSm}11*d&G@^tTpn0glG6bXVHn9)I<*s;(mOZTw78a!uX- zE4YVL-^m}@1W)qz8BU*}?K^%htqEUcJ?&s)m( z#qf1gdx-X5rLFX!Vq)gV!#@6sh?66&zU6z^6j1L6C|h3@R$wMCo}o};J<4R zDYx10E~ppTLqoS;JQ5yLlDHcF5guYqT*v-S9c=rL-S=~u`(^z6m2+X>?L^5Cmli|8 z(1~ulN_;?-_Z$}wV$)A6`DFYx`nA@3&*${rPu0O}gJ#9E%HUb;v%=l~^E3O5Q62ud zy}+;cgQYE@0*?=;z}k4d;qk?Z^JyDn&ST%OcHfU*opWEipOtTsJyy&IU!JjZ>)4xH z7;6GP$C>!W7X-P7q|{2sp&oPMP|^vK$Po3Xm@zql@R`xX^g~^p$bb&!*8(3>9z!MX zn?16pneVOzCv4rf?^@Nbx4*i*irZxT!x4|p{)Ys-B9|wvIx@aIwtsl$u@8Ou`3VE5 zCq*u8-RS7X?!VdfCtNz&!rBDG`Ot~{w}bH~)Vuc(Y_95h8hDNJZ>Z@jOZ<4_+Yexe(qAX| z9P-g!z6~7rmlydhy(h*Ezcb%^^)3q-d6U;L zMhu)4zfyE+u7mx6|6m`K zB|^YmIP3Rqh@3IihF$H{hE4X^F{}_gcquWi?w0Px7jkgdTVF|jswLBjfg>X%pS5m+ zZ|QYw+|`RuN_p4b4nN9W`%%u?n>Y{dU3-|=%on70gbuv+4yX2u);`D7ekn^l#r!*& zzjy7+IFH`U9_dcPBs|&VmxDXfC0zfqca7m;_+$@I@3-EQcfP{OJI~jj_<-(86y8MM zvEdEQ7(auTM|kJp{ifsX%r{FNKjQaTXTERq~Qg}{YfPF5t><6YUUng;k6Hc*xMLLV|G;*Seyfqs}nHZxt_ds)chB;|I@ZCQ5 zWwi6GeQ4-xt6%igk}n2Za_LaHer_EA#bv#Ho4rP77j0^<1FTEA7=}y^$v#-Rk;ROkYlp z;T8Su8iAr&<&fPBjNEWdd@Um}(Z%?-m zlyx1;THO3C=w9;1*p|z{=@4-#osEm2TPTll&%I7Pcb!F>cvO7DRLR54KDx2ue6ajo zvr8X+zwydZ_YQ4rFJD+x0}J0fw3*}WoGa_hBX{rB`02U^8NY>%kDmX*W2>$zKJ>f! zbF6gcw+XyBpiBgIURh^kVvfC1Cz*(>@wSsp%(X#epD@=xI=dHk()H_{c`X4~+0QdW z@)@1VH}*O+d-6N*u=n(SrAGTIrF-A5=t8H_PO1y@BoPZwN zf!AlY_g%*O+JB*o4!7D~0)F%PyMn*TM_=jft7G3MCclgh)d5b}YdIvl z?~zsZTB>9}l_gr~`BilM{_$lH1kJ88+VU}{OR)xD(G zYFT`!)jeA|Oz_wO`XCT!aR=@jj6{L7*TjJwe?M2ww;@0VDa^;`0Q`XKT(|6l^{n;FhF++IcL3P zSJweg#lGi`3&gkI9f-endm#QgadgRpGXmDCcY(8VtQ9AZNH5`C(aU?4M`rjVu&#}v zzktIfn#a7E+`WR`AsMM}-P}B#bG`OtYvVUXAM_=8DW60i+mSu*0H4fz@U+7n$NX(= zypBBAI^ab4xko8m0Z1(&4A5o@i6j;h&X*_O84Q>^A(=+ZH{e!LjEZ+9KBud=zfn0sMg5O6fuUTEab>wMV(K`HJ!JSC;SJUKL)y^g+!w zP^hI?K^8J z*~ocU{#T9*c=Y@{#+er^udfp zc4)u)p+jyijfXC-6E0ufIdJW0>7<`xE|QPPg%^}ZB0sTyFZ=sm$EM%hyoA5KvQT5J zb;gL&w`|5={_Q<#))g;+7R>zaaQ@dgZY<+#^fQ+6n$qKCtrt~ zSeyIprF`pMN5Iu-+)pbhUf%V(_`(`|bdZFAT870)=! zn48wB`DxvCH)#xe4Rw5*g#MvF`Ts_I)6-Twc02Ec=ez^XnRQEF^}8?m-GYLIVhgfk zWP6(Y4&BoftT^%Qf_~=yyY2iA0;3f#VT(`)$csaU#-Xz${Lk>Git6~_dVk$HtzSat zNpLJS4qiMwcz%a$eSXaUfvOXu)LQcDrLqCsZ&%cH_j>i(JeJ7+A+oZqUBKYp`K=SyFtZXB?a?v=0a{hbvRU!Mn#Xm36duuASa z%Bpq!Fu*7=nfY9pTJnpF`g3>KLj&WF@P9YYWrs{HDDIlZ9**MtWU^pXLjT`&1ZToO z6Q+z~bj0j?t%cM1|EUjp4|#L(;_Ismi|Q)^V_#M~L-+l|8+Gq-0e#3`*Yn4)?M}w_ zn-?6lW%i&IUDNrW{PlRCaCE)=4kM5=O+CGnrVp~tYrZ7%$aMWZ&^mA9%&PiVoj&fu zN9paOivJ7gV=DPEj}iYWJl_6$uKupBspbx;1tI<}t;vkD1G)TAZ?Ec$OqyP7_pkX~ zHrlFfbH+pt)+jn~GL+bsUO4tg&c2m%lB>3KW*stG^%9U;7?>{zcY#Q_iZY zSDV+$skh?vx8v>J+D|!aU&7iW{O`^?sK1?g-}TSTyr=WG=3P1HPy-*0vz&3FyL%@^ zhGpg*+}&GS#lFn`hP7~W3H%SaUB|b}oUwzu=u`V~Jh33!-sn7^_K)6L?X7Hl`LntU z3Q;SgBjj73OFyI0LFREzPJ5O7J98Os#ZNA_CWhFr0Ot<0XPVP&=G6HXuw+in?3MZc zEyg?}{K(W(t%bqB`8_+j_@Dmf)8Ev>Te>3rAELj)Lh@mUThC8HZcGh~GG}CK-TA#~ z&s%d6EgT$C;2q z_D*;i)Zc}`|1fJ|^J|<1E~uVg$L|?dXma&y11C=zR8()BXT_@vtjWleu4OxVYm4Tf ztMctQ{ap%gT4=>5a8_}4VSQI@JFtV^-2X%T-&IhQc#GW3H}Rz^Cw>!nKdrO3_Ey%l z06lRI{%ebGX7oGcMAd4pAff<9%Z@+w zPJD@XoA4>s(Z>t?4Lp&DnX^{8=Zr(lNBAb*YW0s@qI>Jb_m<(iozWkiGf)_R)8T2e z1L(OtFRGBvP?XUB)9`Vf1)he$u?3aZc}rGU3p=pK?uV}(J8!{Bw-yemkHXjVUhQ|_ zKhyX6dzt<|j`QV=Y5L-SWY)&9XIKk&qWkDvMwL~xW$aRG_hr~AMGaPbhtqZkIzxzl z##`)Zpx^Gx_s}i_ctm*!dIm4S3K2Z!cm` zpQTUcN6pPpLb{A_P`|x$T{64`d!ATYLuJ!=>a#{)IF%Y!=y}~ye0Jt}#RT9|Y;4!b zdWStPADjJ6=G`as4*jhiU!ncoG3oEB^bTFKlXE7>v#ph_; zsJllEV7=>b-ZA$-@H~t^O>@8Ny;S24=4;x#Ww-f(-V@8QtVc$y@xCvy=XJZ@<14RJ zzt@}?pT^!#i|8z6aiWuVJgSwZ$hV|euuFPz+%^y+(wyNz?~HSoN2*Lx;L%~|VJ zxiJsd2N4l0*%NQyw!UubKBMpH_N^acbe)sJ8w;n0H{Nn&bXHNIsA%?5Xs0l|xNyvcl>yx)-P&vSDQm-ULSUfDs7sPfc_&{f(t zL+@~Gv(m)gySp1-UVQk73xkK){WML8PoDE(B~{Tz8r zyio9=eucN62Ek`&{(gRL`Wa0>$JzaydrW-quYnK#2yZ_(2|k1K_wysu&nWsi$?oUI zW8!bnPbYUEdi%LT@F~jQPrd19B>jZ#ewvPnZ=)aGi|Fm=62T{wzn?{>pK|)KCX#=N ze-9jb;+S~bQ?~Ek+t+94OZZd4yj=UUtc<`|!jgMuC^XcmX{8%ykuE~q67BjC`j){Mdd5JzWj|lWHf4k-o zFg90d;talv@UDt?L!fQtKF9~J_I`7oLVLB*H(t8!gl===JMNhTt#N``Yj!-zeQ)OM z!gAuV@wv{NHHPY_{tf;dA(r)LetUV1c(TPg;WO7b{wmg_wWfVD@7%P_I_rbR$jQ-- z^JYdj&c|O9vO-UX0)_k(@l*0NGWNl0d~g+k81_fT#>$PqzKvZapNaO@A|`a~1)PN$ zVawzlvJrHyIeY>+j@fx>Cf@?z#0q>U^4kbb`Pyy@mUPu2=bBFrZ(P9-`S%OtH))>9 z|NQ9x8vV~YR`8?z{LS>&gfD6-KS9=8x(Iy$+!U`K>(qlMwzkj;M6szeb8FnWx13zU zg`L!k_dbvFTruIL{7j>d>+Ym>0rw$_e|puj43Z7XK^2kHTY zsNJK#6@Qd)pd3GFY?S$^2sr8@x zBfbFODEqt^{YQMY%H!v+0;aa#byUJ)4E&Z4Mxm{-gRI@{-}!9CT}&&(?xN=YvbLz^U`_`<{zmrN8m{_6)OOe4hGxr?*YE>DNZu&pykux;?#Z z?*i`~{HQPO>1*ui_t{I~pY|lep0wkiIqm@a(Z<}h4}yLB+r4c~@My&}uIBgB>!{)K zQQ&<|@PK%~20yeH@2>y`2f};R?DOLN`t$SSeOG^c`X0QO{gnIx_h}pe|DOZK!v8m; z{`mjm@Ar@Y7X$BH{4epr|6w`!f7}0L@c(@9aew$9W(+U>M;-kCHFNgje>*-N;rey- zos0hqdFJB(i3h;{BOUyo1ODH`7+(C}8Opxb{$TL`WC#D_>dV3Z2g+@@-^#Om`2XMR zX)gYM{Q&#%PLn_We;xeaeC@x6|4G(*Aikee+-#1{lJ1}H{|`CAUi_bX5cn_Hdhve` zb?fr+{RzNIy0h?IyhQx|q@!#Ye-aoQnc(3ghaUircLT>mPORAFpp=3@=`{Clxp@6cp1F9vl<@@PkVlS$(sE>E;!4Kr zMUJc^{_?*|Og*ABU(dzsN_-y&;_JEm`dA-)ed4+O^N$%Gd=+gZ9Da>ow7gXK`nZ41 zEjM21#ZlD-$>=5p^~uxinjZ#7mkt0&gUFVGEZyV`_@t|w91o7lPa)YO-K5&!XhGsJ zbdyMG$;x;5R`nNa&`mD*e7I!^u}aBk#p>{Tm4wlWF7oWhVF%ccB4e1f;uCgu3Up2V; z1%s>Qi4x*-N$Li@!#C2Smw~IR(W9aJ-E*L6@zWCN(eTG?oZ?=Q0&F#SsBEisf5H!f zKA|y^_tvz?w%bX*Y_5L%%(MHa@AKFXqZiZH(06VAc^-3(I(l&ZD>lEBUV0vTD?K0| z|2mDnTz=V09KD@bk@)2=Z_4mXJ-2usg{(xdc|FgQBmyb!Iz}^&|I2dUckQBvj69U2eZJ3^T>Zd7rxong>&I|;{o6o zaNsB2@SAsR_(>O+eKLwO@l%&r#=h9VyXKqw&Wo62?c?9DR_&zy6xu7VW-+;Qm)wku z{M*2*I!`Zpzjp!tUB`C$i8F@mC-p5G%ElG)pO3Is32w82MJKt=z0_2B78^==Uc_Z~ zSKupX#~w+3tfu8n@?5F|p)GHHVpjD6@(L@5Y*{md|Htv0a}N^({jIhZSa!UFC2=-cYsf12t^Qms~ZPnJQLwSDYsrb9VG0iWc z`QTUT!vAsuZLS|g42bV!m%86A;k!=!S)GeNl~Q}vTUEWv`-pEA(w{}m(i$tUrSXtd zqiU%rhO}VFdq%!m_}5*!y!y|nM&WKU4-UnD+}(I*f6kr)kDb8O&=Ee4ooiKV((2wx zjXXVTA!bN?s+_%DIf~z=KPMm6;3Tk>j`c128_9f<e~wA<6rAN zWWv12Niz!v)rX03{1DqpKD1`#KxOiLS}Qw_H)kZw^L2JjM11qDm7hL7KJrHV9F{&z*yyQA5jv-tYZ}MZQFNqVsaw7xCa8c*f;Cqo3KLXK+sA zzfYWaJ3m*AvsTFmF`xNG53|~)7FfF89bHve1Zf9W?aeQg?+YSj4R)6ei+ zbQK@`o_VI&h*H_HC_dUPUH3*e z2H;=Q`8%lJ#3dKN|K7Yiym35vX*Iy)7GT1&)&;;swfWYu?puJ#Z1J`nm;~WZ(3gRU z=u~qNY%1VAs>^e|2R7e!U^CN!O$G4}7dGd4VAGuHH9qw!bch<+4Z!Z}z-AM4CU_`b zcCq3l9#|xpm)+OM#A)=U{V+241G}$~YzXCjFuyO+mug$>ByWa1w7Bp}@YFq@$)Cfg z(ZRb5#w2>+cNcak2cWEL5V-+k7+3a`atD!}TdVOWRtIb!bb#|S8h_sn7eexMy zf%D-9vyh$VwZI>Y9|?Zd8rpocIe!hmYN$NqxcFO(?fdq=4}Z~G@2#{}>7Iimd$!{o zcrG~n<|k^?G6+R#qVaumHx0Pk@c*&*=J8Qg_y7N$gk>fH3nU>dY7($^f~~EUMcP^> zL2VM++G1#}wk1HV189}H;!*CSw<^pr)GvZ5yPYPf@FOH=u13 z(nXXd1B85^uXFFo+)O5jt^F*&$M26kGWXuIyw7_(@AE#dd#-f1I8b%C1Rhx3RqQC; zmELYPGILt|Iy(lrC~lC>lGDzY&c2*`#N4YvUtC`1C%Uj>`L4nIX%4(R5MXYY?ByJ> zOXVDI*ojXq!e`P}5I+?4=7FHYJ_+-{(XS>O#?o(e5WlmZ=jm-O^xABPPiiwg_xxw- zNIvo#HI%vcHP>(St{BTyb(V*!h2Ug=p>6? zaatVCqU|3m7bf1qzHu?}1~PClzvv9U-+Xgc`ta+GJq<=jo8Dn!_&=_5@!^B%!k6Ix zbG(Za;9Z^)&ZbbjarAljY@#OQ9ApnrXBVN9X1{DDdvk1n_vMpYz|Yxy@`?k;&pTW} zUp9{R=aV~cCQmYCU_N;>ZA;fj)1T%-V0-tZ#Vdmmo2p(~qx^fO17uBhVN4ECo>PZ@sE;thJ&BKJRP zzUeeq@?SXlI_!X0<*ah_pbj5>?HG8J7~cE?`bpn2UO~)%2C-ouFNpcY?_hGpvw@Hk ze+RZBIo05+n|$`wM7!6qXS;^?11iAlDRxkQ6#?+U#9Fz;O0hd?Tk5_SY5p=k?{;Fy z+efx-So*yo%}b62niE`CalPbBCz+u9e0*U&z90wRH-f+Vuh+In4qBUj89J^wX+(YP z_}X);X!kpm|4a5r@NXw|?L{ZR3x4l$V$Yuwvwa1<_}lU;x(GZ+eCyP;cAaYOr`D-! zwNCvUdSc=g6E~)C1oHV!8REo+l#jx9yH_4%o*@<*^xQCwZ8JEI!TQj-)t!^Gt~}n^ z)%IK+#naN68&3LQcXZXfZnN&E{qUFPcXtw7-#kV(Q@C^1@11>};LrJ*z+tW7az_WM z_Y%`qj-1o|9=;6|-0j3GLJoWWwRcwVzSO)GLrW`4I4|Y_r@4Y0K=3D#9{mq(jr5$u z9zYEJESl*oGwY6%IRA$HLup{#PR^WIHfeOl;n|C@!C^*MN3RF#d6Yg6;^Q>u>Wt_^ zypxo}@8BtsI~NZDd%5kc@i6%X*%R22r7IgaZ<=y?cbxpm=oRmDJ}+N;c~vhMs=zdT z&nI?)!I$4zbf2><8VXcTV;#<3%_~bwbK-T5Giu55Xdl*G^xmBltQY=L`6uOL7On?Z znH`x)u49?vf{jCn?Y(EK*6|G;`WDUYuHSDddIxyVJDqByYs+)vYv|()`mi~XFn*;5 z?7VGbVVv(J({F%2E*tNxuTAz&yNy0XOK^G7MWq{EoXeE8tPiQHHB0G#hU>#`jgS*{ z_MJ99a<~{?PW}pe^W<^%pzm5I=VSxuG<4>6mEQptl=epiA~RP6Ml9X-WyXZvigxJS zr*|v5!LN#!-|@!LuW#D4eTV5gR1#^PMc+f{+ZkPXc>5{56PDxh4%~Vl?^dlLA4i)S z+i#Gg9rN}&m#24leYH8@l+lUMeX$9pw+8Z{X>{qmPRo>ywP1X5mi~ot>+Gyb?n~}f z`pvl{r6rszn>}SpRUnvK4_{U+F74Jme8;kt%$H$uTtRXNbv!#~dDxsge!ZW*e{<=u z`m_m5`rF{W#=>`8>TSNP;)_o8IoQdzawonWJ=QvJ^#o#^gWZpIVAB%_dbB&$7)gQ{B139%R zIb_m->=mvKY#yD`0b$pcp5lxd5on$Hb1-eUV@p?JOW($pzP0#@bEFStxAxbETCng| zcNX3v-D#cK1@3Gqb+4fA?bNLYQ>->`2McvO?W-NVZ}dWTO3tfp5`SA~hI5I9d^TKy z4bSuGL-}&ITw8nZ^dN0@%6j?dPjQ>E&1pj7_z19 ze{f@`^3OTzPv@`5DOeiu?w!l^Y2LlY-}hGE?`vn(wf)<1xKQ2WNWkWA+4X|Jto?aFO!Y82rtibtLF=z@2$R)I?un`iGPo0 z*7m>4Z~3R9z__lOQuzMb{BzENM%^ow-r`@{mrBRRb*&oZJ}>GFEDQ5{3Gc>L@orqz z^5|ppL(b=0OE_}@UptGko&3Hzt)0fjZab5F?X;nH>Fv}Or`l=e_l;@?T0+btv+!M; z@C70GHVgk;#_v<`t;WXaH!@ke0`_L&^U{>YW+ z3h(|kjUiVTB=>_K304-@2hU}`Y~=lbKnMta|2Enedi)_Tr#9~M+6ZHlgSGL+v^H96 z+%`6|9?GW;>D)(udqiuDY5M(#Ux6KW+~2vs<_t*h_auHt#ye9r$Jue#jd#~n{&BW` z%5A^g*Zxdj`#<%y{~Et-`#I{Xuz&kIcqi$7&`(V8jAUI0uZ%pT7yM4ibFtA2ClB9b z^n!PG$2!%Vo77jg86MfX75q-G%XbF*>elc+(GRJs^^)>!`u`FB>zku?>}pRwKs*ch z#&?Hrd_VAw?-|`6jUR?S^IatB-%B6ptN*I7| zff`70*7#Uy)O|)IoOI*HXEADO1aL#{BcoN%WIG*2K)?kM-Vj+_7%o*nh0b zhij}?V^?;ZSMpn9+~)Kj;{wL`x1;7=rf1|6wVr5(?~1#c-j9y1<6C&(u#H_2cLk;~ z*AR=foy$Eh7Fz&c=+n#-A>Nl$j3?c?_iW8A!JT2^zUr6w7Ve94nze?~x=HJ(HfT|t z7#Pm}-&pKC(LEzdtk_Aris9{gO6$O1G7nd?FBWE9;`}JmvoS+|vrVk(_E-Ew<`G@x3248?WMVDG5u-ZNIFvr-$akz<(ULMwfC`CHQfF7 zL5CN^>c8qRuhn-jF9v8s`_&)7&xm$(uKot-T?l=C8ag5_4NZ{~ry&3hHJeVHhSNP7 zg3utI?G=w0KkxG9>@kKNNk1{~CLkF^l)?U7P>m%bld;VeKLlpI0)5n)va@AU;lj z*U~-Z9whe|J~KvKTYKoC8H1C%d%y1=;5V#1`pmwz2YGb^X_DJItCb)HRts z=drBW>S(|2rp1pDTP|CP{1x}=J=WT=Q*Cv=lyTRwHx|O~D%l&;dUYCh*NNT9wwFjZ z0y)@SsGr@P$Cz8|*l*)`2z`?MU6Nh5A(PF?Z<}#@`mS-;-4uOnRvB^bDfk|pBdB-U zbDfq-`n?vvww5T4#JpO=j)MnZ zM{oV|8_chbVmy)6$MI{dNBaEQwn)!n+SR7ekC|NKS>e%DhZE&`{}esS z&gqKqTQ+NXE+5y%dxIMHU_S1k@vSL8*O3o>Ur70wHux?(*8faAADPDU^`dtq`i(wY zI-=}rh!%a{{&=*M`uy!rp~JZ;MMsB6hyG`xqibn@f2%#-9pn$iJI!O=T+5HizN{}B zOh)(9ck%Vdk&%DyX^Hei3Z0%$lG__~q_;4=k4$#_6}5lO8@FTWMU!X058=zD4>8#` zI<8zv32~aqk0_Q*o2RwT(>xv1+>Ojl&IDT}PM<5?3iJQF@W{$cekxk-$*ugv<#w_3 z=Zb-HJIHxbgURj|WOta{>T8Ut0=pz{l^;b`(oO3h!sO?QPI0kQCPoO<&OMjD+M}ty z+B_Wz^X^XRqDZm||B9_7bI5UpUzpSUD7H0Yk&`T?4?U~I_evi!$>?<2c0PN28EIaX zE@qt5M!R!b6?_eq4lCV<-O4xbfd8e)p-%r9pZsJyxdq8#I&x4hFosOqhC5Raum)@T zaOAO~X`Cg2{EF~n0c33B&+_-WYjrRXCbwHmndjhL-}Cp7Cq-8S#C|#QqcfeU)<=~R zdxgEZyiINH5gsUL&fH}_=6!y6{ZMQ}M^3ChfA^@kWYNl4bzba>u4F^)CwaGrxka{= zA7Eb-zdYF7pJ`5-hb~8vVddnZrLrCElSdBs7HXc5y)FjtS(z7U(eIG<1+inz8JZ_5 z|Fd+bVhBA`-doQ;$$J7-@6=ftMjlV=xo9fB$f=&nd+6)`6pAaar?OSxOy-;&X1++d!VF`X69Up;Dv@d^HPmcQbB}>j(8X8ew18(oRQO@*E zWLNzX-S}SNz{&ed|XS(SBCHFr@KU3h<9G;!Qv%7Mg={aDMDc|xG{DS7u)y%JZ zc^(P4^aKL=JB43sT;lr55ZAUZ@hg%W=_!69bW}QmA895QOfF@vS;1Tr96jf74(p*g zX0FNYYGh6NCv?s5l0NKsql{O!8)Cd_vmofw{0(T%#7}#(OQ-RkWqP zb7*4U6Si!epmk%-Js5MZ+E6AJQ>X!Afp0gRFIhA$p{~_Q!$+C zRTL5<-&D;(@9po(iG_s&x02!#Q)6&`!-IcTzzCW+D;%$5{89NAL z2S)C+V`X%_So9BL@Q>#n-#=!ud(B~rKcn!Z;+;;5Y`;7SZ(h(h8eRG1c)Teez?-a{ z`xZ05czVh=c%RmM5rTfLU1IEu$%pCNlcns{=nN%&k9SJQdAf?{+#k2T%?%qFd-1e4K6d$a8;1uy-!~dLp6J-WmtpLZ zT?O=lk7M5_)HQ`QQ7LvK-&pyA&VQ|a#`@9D=X$3sy znJa8uY1Sm1)q&pjtx0Ih^go3d@A0ght~%lo>5gXVFx{QZ`8d}IfGk7X?BIhydINV4SqD!!u|o9M0?a(uY1bP*mw}!NB$b-g$n2* zk7#_ZUk>SGn*%25AZK++b{dQJ;=7^e6nOD^{^Kj7@gJPS@?|sA_H9OgY}|a6`hSbNrdBMY_~dlPZ`LmNyXzy#WJcEXl&nnQf`9{yyWYn_*9modUn~f7sM9(TcJ^K;k=zy*&=A*tC{@FRr z4H;tikJ%W0H)jw)ml-E{scDR}oi%3%dM#eqvFe*0_FgBsN6zr5A1sEiGBG=O`L_-$ zJ^2*oF6f!SetDSKD4)E~I_P}wvwYi${Lf(D+wPoPex?29cDikj#WsssuSl1h;a4jd zu;NQ|o28$hqwV5A?VWpx9aN@#8y400#(XCFi!}C2nZ-rMid@o=#&%s(HySby6XqO5VPf=On3#LeW9haqG24)B3@kyI^{vfY6%DQHYGzK+Jg2$m5WcB-DEkCH zjLZ=aBco^9+u4}KUN+bdgM;Bc1HP+1dcKE)xvvad+>n7dm^P;m2lL?4U*{ed2UCiH1XCtjRqiF?BJoRSGm2*I!Pvg0&_*XTYVOE{b=gBqqMVub)^&EQ;m_(moXheZ z$VB%xuX1@-NBj8xr4H{`jq=9UmI3cl2i|3khj;laG*se;RZrNLDqWud-X-SYT`c_; z^K!FCXVw?`)3kv7t}ZWk8XV5K&EOq7ZgHyb$@XJiPEMSkhmZX`@sa0y#s?-e6lQ zbzWZX(v{#n`sod4@JVmp=J9hC*bnj%%V)7i8l&9`>IdmBP`TioR?1!A>4NYdLCO`; zzsglo&S2RpT`U_qxzyoY#u)S%{k{72%dg~I#aq1c$zTgza_TRI94s`!@Vs3;?pVIOCfPE_>a^cA$F;=8C7Rb)a>sqzmf8?O^bsm^Jv?1 zx%>QT-}4eMFf(~BJWDI>$j1ny(ta9zd};oT!m#LGopcfVZ@o-<1BL~>iJlh;tHAFn z_&%3g$Rr<31Ts~u=D7#805+k`HL zq(>fxCFwmEjjgA8y1=sI$`h?_fV(RtFtk!PUEF+9fMJ!j&z{unG_yk+O8BvWg)+7 zJ&ek7ez&q8q4~}D2F4hIC&K;v$I*DP+rGi5cmU#`nixr1&?+H@;GS*PKM&8~zEWu#J72o9M&e<_>7E zZO-wC7RI#Ietd;pse{ z8(q4^#je=#hR}6Kz7V|(gX!pH-fso(V)}+RLHam_|F2g!h|hn8y5KoXUA>Q{y7~O~ zV?egi$Gf4$f3KK(?+|^W1NtmBWdUuzEyI2KsAfMR-}s7K1IvUNvEvEz{+ar?j2d=tbdU|%?FKHu6#6C3Rh7~ znMzFj?~F3(4CH`v|UN`HS?|Vfq`JP+w2* z=f{`Ck!OvEFL{AyKj!Zs^ax{81LnoWp^Qy@NwMNLd;85F@AF|yY%I5C`tf=5#5Y{t z?13iBn@QZ0Ui=FCu)KJV-x_Dxz5U0z$crOSp>M@D9q(aITj%ae8T}x(S@3S+eBzy; zo_X=kCa^DGCI*(jvzU@1V*lV-`1;|&ox}mjsjLHI88Ia%8%)VVBjMFI`|s=7^@wt; z!jw!UKN%(t7pCMuhW=uT2fhAk!IWV4J+aHdl$`1AmBr5NpW6r$6E9}nrFFP4C82Yq zJ0}}V$(NyLFXL(5)IDPbdliux@YEMCK0^QgK03~D`_NuYbp7%BDK$Fd_HzyWG=AOf zqXzwKgC51B`Y+nju`Bm{rY}!ra3e9rnT#Ia?I#h9w6NH&V(qdj-Voxm{J9 z$&SA=vhe4sY#wz#w1+*~gdO=Hw6*?wiZ*Q3(5C;?F}Vr5HZP@5KW3y9{h5MK4`Vld z^xc!0K8qQd@&@TUP4vNQ$w$0hZkA@a{KpxrRXrQ2V;s#M z{$ug$;6EyTy89$!XpNzG{S zx!9P&fWU|OLt^d%+SVHSMFyr;>;Hh6G1Mvl} zT)x7XidP-S58?a!{16zBXK7dSpxWlFhvaXV)5wYSVL;>$aw=0ekj4tv1}*QEbL|-C z^B42k^9l6#OMZWGx#+t!rSol`P3ph(7rXhbTBE1VhMZ*!(tr7l@%R>_CutZd)-(nqRZ4z!KYW%C z`!sE73>UCo(zR@^qc6Ye;^F*0tx)^}-(h`*pMRP9maLob6YBGC&?yA)N`+_REaH%0oV-Vyq_*&e)Jm42BQ#>jh`8uCD>x zkv^^ta+e3$7qU8)KA#LhHc9XuYoS5&T?aJ!%a$P%>C)kauI*YG`uRMVE&ULhS}#A2 zEv4r4wGLRFV)D!HCFi&otU(wVJ_f&~2c7&j`Ky2*XM(+wW51U^8b32|+%a;pb&JT8 zGbWp(j(IqfhDGej(WahNhFm{weY9U!ZWsLv2DUAo(H@BGE#v$*+A(@uW#*S*rT>nu zO1E~P19iksb@~sV4Zh@A7hiHWx^S!Vciui}{X0$0(cLG_ara4ug(&s*NxyuiQ~e^b z=_F!T_DGkXk?Zb}ZX$+LTT|I1RlH@#g>LrEJs)FSvbXk2+_5z>cgprOhX}KwXD4Ed zLHJ)fd1&bv#wU4+Ct>hWdT9+?o53rPdb^SgOyvlngq8n*=71>qfLr%5E#oYhO`ZXi_Fe_8Q z9h~9AtgL|t>dUr+ju^a!+9;mG8rx!4s#5V@I%cH+Jc%$XQ-vi#Pc4R{BINYLtb`fY zyu9OMRxG{3tccby?I}h%5K3WIrqjUlPAgo|0B{Oe*?UR&V$24PlgU&5CZ zg9WGsvts;Q2F%JD^v+^dHoc4apLtY#6OSMAXcawn>`}%pe-QHUE1U&mFgKeht1;QR zt(e~**puwTugDL4jWQbFJn$Id%om6vPi({EBQu z_vE|3M7wu^Woh;5&Ku{}HGIo}Wx0v+8t0AtKL=UN8}E)mJi110o$OvqPM_m?3A!sf za_E0BEQ|Pc8D%X^x?aHbR4^@~ z4!T5pDO^Z`e4h1Hq2IZ<5bLj+f73f%-vc_){zm!w3W8^uE%@HGfMg8Chs?fRDlVoX-o^Xzj`>7-qu8%Q&uQBqj~u`j+VC@W-PI6+?#XUU z(o7wHjzM?|6We=nNE`iz={MwIO0?hkoDWZ-7(!TY;VGVC4_|nSM*iDa&fqEZuJCbU zIN55cZ%xI46zhvm9jNEAMSQcthm*J)p6Q+U(1*jCPV!OibzGA0~o-(DU&= z{KGhC6+hb^?d^wGj-YSCD{s?(a+;IC00qerTCB3e{kOwIJ>xr37N@-YQ;LUq7tY3S zbv~SOj5UzODJQ6JaY25Zax1(QM)_my<{g|q>@zC-^{2;ads{+jWvHf|G!CVL>pBkZ^sk6f@POLvTn*B$4q6Y1^ddZW`V7US^=@}#=I zXAOJ%^qG$F;JgaH0m(l0__t)lc+6#vGxcMA7>|~BV8gX z_i~m8_?Z*Jc!WKSM@MZcha-$fb_Tic1+#HHxxaM1CwJl&>C-~4bKtoT_ zM@u@!L+5!&M|9uAc&xSOmq>4RgW>3>H)$A;JzzH^b05ZoZ$N|bSnOgv6hj#MS?2Ox z7>_7ej!MqMu;&%M1s|p|t6W@1i^|0C1O75rhjxSO(0LvzpLJCq4x`0jGePVi_^j97DsUWk;ZNB6bKB$E-`-*B{lT`kRB=Oo z;sDpb^R>5|vrXn&`j+(JJ6cBUNZ~t%G4B=o@g3OYv&70qeo?dk+u~4ObCB>I5zaX| z*K2d3i|=UZZc9Bc1K$B=+u%F4(M}9MA^bzlY4H4s`H!8A40O-pJ0h1!XU3WDyXv{{ z9an(S$l(kcFhS@`L43*bC6C$t)%l!PqP>?2-dFj2T3hx!4}Bljwl(4e+qz0^nRuA9 zN=EnLJX$Qy<2CQOXmwnihw;CS;5w4zh|C@$&x*M|pljb4i#?pjW^(q9#;E;ta2{tU z#v9|}JQ~u*!h24JFXi9^Y@H}|PNfd#au{p~=h*h^r~MMQ&Ym1F1@t4GIP<9#&f^C^ zOW_nc_+9JaJbL-|XeES_V7i|1&u zekBdh(eM60iszX8oq>3cRW6>R#gFIs(xuM&rTl3gXq2DDKXfwZSUksk7tdktYhJvW zvh(@V^S}e(9LBh@)N$|}Eq*+Q`nr%mKc3@@_>~$D&#{PSRs0?F@Eq+vJjYEccfSwM z!F&<<2k;!T?;D8c*zDptT0VnLTVBYPG|p|pbNI$-@f;;@2A+dh-{3iNPYlm-?ofDe z0(cIsH8SEk=+EFey#8!XC3g8ghUXX$J<2`(tMMGYL*5vk<1}KCC~HLRoe1X=Q%uPi z{}p(SUqRddW<1A(qVHdX=lGC4|KoT68a&5JXgB$=*TZw5*O~Af!xgi<9-f2sisEYj zc^+>jp5r6p{~N$_T!;Vbr@MwW_e_tK#l)B7JqN{e1T*6~exmudw*R`#uG#wV9PnWs zafZ!99S>JFkujYJo&#EUIsXHA4&K>0VLZq9G=9ICc#fx`<3#Zshc0pDZm|G`$l|%n z|7Y+V_lkf2AH;KTp5;G;=U9tuP6W?!Tbc|{1kX_cO(%lqFt+5wbNuZM;5pt&AO9*m z$2igdzX8uN=5_HLEy8n{Jm3l7Iri|aBh5YkTk#y<*SDDdcjGx8Tz}JB{x9J<488v< zJjaSpxc=S4bC|yVr|}%m{`&vNbG#8e$4QRke*2yxTgUJnu0NT7Gz1`6bM(o1 z?m6>8_Trj?`UVsE-L&s4EP{6{s8iw9xzMZA!G76bbrw=b?c4FJZ9P(`>pNPHG;pTs zKst{Fmc@qa`_IsDSupNYUUQDEYh=RnVA}Ic?Wm7GZnyiQd5O={pSv&0H_Z6W_hHRD z%PYRXc@*%Qvz(^*`%(SpeDxRl>VJjb4)uf5Bh`nm)bFP|{xN_5ad*s*J)U{Y{<8I6 z*}6f>>iYygs3zaQ`xw$aKh2^gUG6IXU9Y@rgFgLM`81snEz206c-q0U1={FH&qc0Xx6syQAVq*gqAP{pPcsxW=zsHO&!X95 z^?jw8(aA&jwozeX$|*NKT-h`G+0bInq^4{c`@70%Pb>)4zest_Z$*K;rR>*MtNq{j z?zMqejglA9^F{og1MRlF`nS(EbB=*{e-k`)pF2zYo`cV5M&~u=CunM#Y7}jPV{$Y;3STzhsEv%^`Tz!MC@>n=p9EP;c+3r>va;%@fj0^3n~fpoqeWjs=Y==W zobrj$E~d^mr@WX|(6t%ddsEifojW+=Q5ce9t~nDj&U$Je?=Msn#~FVo%xD(!x#4B7 zfqC7Jw&$5|aVE7NolUu~Qcmqn;%tlc$n8}A{UoOgH+K3m@(YNnpfr<~8ZMrGVnol=i> zgO%~>#Fz&Ref&?a$2k@K>MihS+m2nRPxUdyoa6G=_|B}>nLELE>$_ER_+C{JcrScc z^+nXtH?edbz-}xZE6E+|d=B-kb4O03y-lE24NqqZIHSvpE+^CYiLVJ!W6ao6MW$@xn)R+YDUAzyd^+;5cq*hao{-E;G7 zY@i%lD8ojcG`68<4!WP|SvCXurxn-Oghm9@V z`){hxzkkd>?DIe0^MAwV_x$)D@cD;F|5HBy40!Y3;q!mW*#0Mceqo=_FWgz$Q?}0U z_dACT^!q{V)%g97=EYgW^nIK3AahWJIN~64Qm^O#+jKSyzCR-0&$~$SRf{tC{vUOr zfB1e*x!EEcw7%b*{e&M1-8$+bwI3SeOfzlc^MmI)W7HS(%W|DPSFCx!*T=tM?YZbzI{0<>+%e<60n}?;F>JUO%fmpU=3= zw?+pW7vJ9PtFLj%|BElH@cs9A;}Uj%W7fE(0nG-|x}&1mA6x?>FsxzTe7btS6go^8H?U$wt0kWu#ke_q zHy$78x5El!Ke z@Aho49KY-HcLuk67XGf0?+Ds1EsH zcYS4-dS$b?@A-MZKXl){ke}zB3;B7@(&(!%e|V{_@5SV4{&Yb7cKojGU-h+4l`qQT zzV&t1pRSbe^=O^MZ+sx{GK@2^v)`Zo>?6+l2l(^*)9qY0^XK=cdw5^Z_R-fC_x%2J z3w7?XZJGBe^Aq3Y`fjf+^{;iRrAz))?^J3GU=93pUCZ_#x^rEb{I53-$#M|?+wzE4 zzE%F$SAL-XEq`7ATNLKpC;WTSX`IcV|0A4-*t@E((09+h@0)Wri}}9!^iT8@D(CgU zr+W&`^8ooU@^a>R+gb55d44>9Zr8uT+p&odF*^J)-}PZWy#CW=%{q$%%w}~=Hp6+y zyP1DKbDf9QSC!VcqYrJtQPWr4?X;-U)DLd!WUlsk$;`(Cx3v*6EdVe+OXGJL0-@VwJ)^@hPQg}K zVZ8f&bJ=?^Q1ouetQda2m^H3z59h-_$GWfm&%>{(*&aH29c^8glWI@7hELL7Yj^L~ zCdxfdodcW+wi^1k4bp!>r`P|XhCZGOhKi7eDl z)?ZAUGu7q~4iDaD*NeAYYWc%pD}ghg!<27Bk66;eR_IP08bC(Ca|5^x-X6kwS8Qyc` zs(hR1*BQ-zUEcE>Gd|N^-}r_N9N*i}<=S6o*5#kl=6=2-F%;g(r#?PxP1gwC-OHIX zt^O0Eou~I^k4to+gCFF5%#CG{Ws_d$t*+vo-KAa*P<&p+_roeqb>-ZVU9fXva>cV1 z{GY)8Abi7HTgutV?Cct{{0Ice}3=XH$2LLN5AOB&v8cUf2DX89OL5wv>G1p-|&FEx?()# zGW|UGEbXeDg+EX6KsjuUyUiVUOAfy^<^}M~j(LF{GqUI#vwo+IxftDU+~MlB`kAzY zb*eWfh`)bA?$!=hGyXE)_-8Zz_j}j!FREYuGoy1erK5d12fx$%{mCEjpFg4B41TGU zHuq=eBr5nn3;ESQ$vMR6+f4MW)6=)NOWy)RmTi8bx4JY<-?F$De2Z&SN6@oN_%l2n z8#!lIV4$9jq#r~3wiJ(#qh~WcJ)^Bb^bEc0DkL%A5Twy$8#gUAEd@$^(4k#y4Dbx^u$r##Pf$wFn8_n^(%S*lxyo36~h}E z2C>&4cr;`^I*^7Ymxe)YRNvsSc6Kjx-0!1f5p;aR(t-afwR8+3&wuym*#5mi=@?Xo zwTk&YT^1exmPW@aO9wiw?{~H3pj)1e$)4N5cA0BrUW`w>-?O zn9aUtR-&8zsl()z+WCFM^~nY>FH;oAb7T0cUTHpQqp>S-| zoh@3+1%tf*#rFb5`+ND*`Qc`-0~+wv&z#1+o)-=`6b*46vUJ3b_HO+neAD>U{wV6K z8v`x$t+AKmTd~C!Xn|&PCec31CKqsDZNK-%WP@l_-TkcX+gE4BUE0R7Z&>>bDT6z| z`8(!_G0qm*=9OE!&F|g|InyLNyZJz_ll*u=_oGLOoR-6jvYKh@nGV{>+np7kun6Ab zS33@|&%Ey~M|&S7)_%antNi}I_}3c%rtHhxCu1&+odm389 z&eo0D&c2bnbA9mMs^;#Cl!qI;^T0b-wq%WbZbO+fvFk&ub34u`Yw6$&_0EZrGZ zuaNUwIRm7f=eyY_|KXnwoBPgb$hyeA_rxRJhTbUHQp;o7@_0NkvFCyzns594niUfw(zS$qqgw--BG#D|U|t!134lGkp|5xyUt5p6O0 z3kJHUkMQ(F&z2N+8~XIj(h}>V<>bWU(DGisGuC9*$`j%%INKY&ueM`Z`#NL!F7@Ac za`%i-_Sl^r4^-+qh4Bt_p$i%E-a=Ow_R%#X(6X1aao&r33Sa5nqVKWn{CjV833N&i zgQs>+-|zkIqtU06chg4)??T3~C+U*2$%zlarrH-plE`CA(1~z1tEjWm&Uxa>{cZ|`mFLTf8*Jt2 z#Dr~`-D|qOpZ8Pg`vBw3B(Euw7rbnfj>5|( zco;&zN{#J>y5wt`;9*73*%Cko`HWo{Ieay*Ez8FhaCB7dGxBjS|M9SSR*NrgqfQuq zsJ4T=i?4DzpXsdqF7KM8OWEDiWjk&B?r_gs+t&tfR+1NKr|c)ZXO?a~6Fqu%l=KNtN5?BZJnmRIt7WpQ%8N-Xa4p&)E?i}ewM!u=8!{^!Qy3cZvDyQ;y)RA z%(Od$zG&O{<}C6NwB7Pk{5QF&T|qB5MeP1c3Ari7W9Gh>(=zwZJ1f4jx~D<*8gvHQ z!Ox%}T@R*tdN7y{e4jejc5Xo%~GC&7Wev{v`AErOe-# zFpqx%e96Vl%oAgnjb|gZSwnIl2zc{K_8{ zNp2zLKlp;vyc=AQd|)~LQFGI}g6;;rhu=B`T|ws-pCtbt>WUEGRl?6w_*qOlI%l#2 zA87dZ%Xh~=bZL)~VMoyQA(El;vC;{}5cre)_JFh2`Q*uQQ|I<~$G^L^r=bS9YM!oP ze!X^#ldL(SGaJ#-BfUE7Z(q>idsD=%pQR0b4>)Xm>_n4qJo{tRAL>jsw(;%qnTrF( z(>q1ug7=zpo{&xT+01v+@yqUVZ2%g!Do3Duw|(Of=VN*GeYVw#PkO6YZ_xqQu8Of4 z&CBWh`hdr;!F2l^=zjh{?^fkxg^lmv%$H{5QHnfto)v4guHByP^xS+NGMtT^%bSs@ zk?oNx_Wqv8diwC?!;t-Oo&_lrLe4qOJ@|3S$}iuh)f2lF^K{@B4k7{o6P7AYSbl6lS?P9DI-IH7=I97pFoDR$d8hny^N)HA=? z?!FiC7(5$y?}Ruq%8%VNt$Qo+?#$s%T;(sB&9^z32ZjAFTRp$K<8;RA1iSVcohT$u z8<*fbo%J<2&KC0UX1+x3eeo4-w$yrUN*`i;bJXgC^3sYEgTDC~U*`Fsaf#nvmu#ru zSrfXX^CmT(tRt-b7|-+Q(DU%2&GQ#~n6ujO7t=iXoXvmX*Tjn;yb8jrU{>)A=df<6rBCsn zb3pp|A0R)liavGz-bK>S*;)9XVYD|Ky$s@ivcOPg84RU^UNsq;oe<|dr>+R`f4F^yY`1r|*5jdHUsSC!Y5UVq^SI)9L3oCsu!|Td`)~p*0&6 zJ51t#)9g<@whp~+!}g>2DE8R*g*^Lp0+ol$h$EuXS>lV`j2FJSbA#@Cv4y>7V|nq> z|6NPQWOyN&4))A(0`+B1VCS?yvo^toI;4+1y<6HD!?*7xP8g(3-S2(ra6_j4Eba-O z?Fw$15T6gvTA^D!3-NvDoUhihhnLgE`Q_E2YHWEVXLSeWcQ@gmO8E{u?-p*!8G_6L zIXiQ2uWbp8+_@pl?~wT)=vo5*jh<~g-Rjw{l2Px9Z=2iGpjbg`zMh+1ywnrK9>ExA z7qbR%XtRPp_`J&>gH+&ag2+m-hU&fgr$dFCDO27!fq5m>mVVoKMCBfT>2P5#ZP(*} zki(Fc(IM(e{^j7rrekS?I^~YhKEOu6Nw1IV3+ZAAc3yOx(wBCot=I zbclG`^-EFgu@)ce$3469cX7>+T$?QH%?>=>9|!6rEU(0yGqsP4{G>}U^jdRl-IVj2 z_h$1QhPRoxXP5Kx^!Oh)95(0G4CvqZgM7y3V(sY9=y1M~>%jY>Z|$|jDU2t*PWt;7 z$_oe=ZDLG#LY%opd)75svz~8cU7r4KL?iYIKl;izy}i>K@u~iMHOII&w*S4>o?cw> zz;`nIauI*zS46{#lbnn(+a-)kF@-5ZToJ^FHKna@KB_YG-wvHC#=2#!JcEvtWL(Oj z_QSHDN1gP0>9n1pceDfDkM4#}D__4ZZ1HlPeqG6g6Snc&H0(e=y$1Onz*d?@Fi&V6 zy8X7f0p=mKeG+}PJKc{+)~7QUY=i&0AJqM!nP};c$JBY%ii!SXjH_GHL-n~7|EW0i zR|}o^BiQHjnpjdXw+hdWTw*5`);l9P>ztV2adMLjm`nV6 z=Es4?u%osNF>vQK$%b^@_18<+QN_G=Z+U*u*_RE!S{>F3BhDrNQXt&(Gs**e={9m8 z_%w}gCo*11|Dyj#jHeYIj)Z@*N8RJQ8S9IYWps>F@02p9kSCH}`1O6t)7^z-%+vI> z1>L|84tU4tPXE1ADSv{rzvBFAct6@N9)$KgGSFV!fslN!jYu{N7(?s$Yrz4fZ_Kn#=W(CLUiK^sTpE z!j`VXhC62KyW&pr8^n=ctSx4K3|QRHGea5Q>HH1nZ~Cg92KkOg;zH@aw`N%DUo)`o zsowtqXMF+B%ZNEP<~aMZz?Sfh*9R0IZ^c%(VyjW&ZijcO?}K-m&m7uRZe^NcI`7%n z?K9}qJ@)taJwO}RL(4YK>lZH+uinOmBAA}8PrS~R0hwjbY*}|Z~Zv@5}(1r8$R#x_^kNb^0}9Fb)l0qJVvj!YL7!a z)_sl_H}_jvYekuFf}`O*Wr#iVr}N!*-E+9Ndyy00b1(0!tajor&vxRQL*{&~sk;kV z4}0;?LUcAv{G)r4%UWU*XNcbi7bH$bPVITDrCH;X4^61-OFGkp`T8?K;&$$}=RpVb z`RBW0#?ww&-LLSiza_)lkjZoK{EPgzWx|JhXK3%Cm%i-1rnEWsM#@Xhnf&`Qo=L_{ z#Q3aJ`sug3CRSW>0rEYcb;^0HPuzHBI(nZTOQp+Pd5)F%g84(((}rinvRnGuU*t4T z_E~0Lc&pF;KIX~3ow#-?yr>x#N#1hW;ReNu3y_ue814lNDO-?DX&qQdeqA(}v3hH? zSQcwi@s#q@8EYo{5YO|`1NoUu&o`O+@@4&Fy1~jfVuydbz*&zB`>mzr|1#b4$1bcn z8ISvJl6+J71FT`Z9J&1R^Ito}yopbik6>N0gxJ6z!#I@jUt7Iqj3y5J{Sfz^;UMv& z*45a+^dnDoH(<|?Ec<9rL!&!?GFPVF1!S$V%eN-pRl=J1?hAVqgY_%t6f2JJe)I#s z=q_xej>G!Hj5(ja3W)unAw-$Q%;h=wX04%e;B9bZh&aXQ`~ZIW+c|vs4_GG$(8K>Ys~HB6QZm!ry^71Z%^ZUYNOnFt9>YOk$6Wgr3>EOvoH`}j@}jic7>VW z-bXpsdRr7@EAN;83+6Xu(rD(lv58S!BabbO%x~A-G_zZ6mF7B6E9Wu}e<45o0KUo6 zV%N6oD6c)NCZ8QPNjI?z&7)sgmTaI-pN&Gl_be|F<5_ABO!@Hc`DNq`eq!FY@#~OX zGqqpqu9<=(&g-s#Kb;#7HPoJp58`*w85oOyj(%!C>*mYPXyd){&pOGCUl`e3yD*Y` zo30nKzG6+U`pk6$d>8RX^*_2cyKq^u@WbN4X4gmBwH+9{>9676(&L>sycUA)TIjax zC9Q?f-?{1WiCy~>BP1N+1&x)tc)(a`tJbdbJKWyv>o9!R_$d7%7zGKh;c4Di1!TTm3Ziv3hdz|Ehld(U$Oswb-uqlUMTpyytrxa?$S<^nuMjDBDjTlLLM&i!#@P&C&cf?<43ZeZseA zR4={!0_hrlTXD}ztZTmZ9Q7z4WnHxx`jivb``L@XD zZOpsp(#C%LMYPByTif7brF__i8jK}pY{e6Vr=Sx2o8#(B}ib42$@Tz3P zwe-KyyNlqwR4$paEXwq|H!#l~X%pJL}r@^+hqo;T4KFav_wEQuHk(u+Z_)FCTb=}Ud1?ZG? zQhH_Q&c;l+#$f~J*G6=$mhsqnHOe)nN!SL@NM7&0qGUO7GUgX|+r zTf=o_4B0~qQB}8-#z#1LI-*CSv(USQ*DH(KTDV{{AC^2vwCuZOK2nA zKBXtMJhytX`jwsr+s|$=d3t}*mU-kg6O#}drR-}H&$ZUaP>8?#ulGBMO(c)bMNYhP zMWDHpwe#M4`6FL$Z2V=}cra1Uco*^a6V`U@&rH>Nwe<@4Mm*Dj4fXAd21d|$W((aR60dnhDI4a&braT!t9bdwK5_ZY`W3rMeXZ-~0?mj;u?5Ns_AlE(M zuwH^!@|Q0YTWQUGiJP~cA^Mu}O`XuwbSxBXMvt_|s~C(t#`^DBdWbuw(AKlqUlZj` z3`l>E9}5O!)X|)6=%(Cc%BlWGsINZ%`jc+<+%ofC`8+>F8O6e6!Z~ zTafX3@^VecOnw{LRWHVNbI_gn#FWKc574uZ7yp*akfNc_{u2&vcf=esUfi zjJKIS6SF`47L53$?_?0 z;mmK&@JO~pFLwRRx)F!_^lcOUsEr}4r|+Xb@mRT$Y|6b%{#J8b3^}#=a(wQZGe7a_ zmE@7A`!LV!9APmJL1L?PKlmrgtN-+}cFoj!l45|fz#_<3&Qh);8HBFVw|;SMaPi`E zI&;8I?LIrcm;Y4@rh*SS<@1q1-3ILgDo@~#XM)Ju(cb?(tUc&c?P)BH%qPuXI@ZAX zTQh6E5NOu5#_ac1iW%&9qr@@pc=HmEKz~Ip_<btF$%T zZuypL$HpVj;_|o*Y>{K~C#m&R>Yk--EWFTuNDVq8J{J6>yKul5pUjO<>1)@e+txpa z`l`3>$!_8V_q>n6+VAiF1ta zKW#*O5o52B?F~mRd3Z=8b z0Qx>8LT(Gp0Q0w@%fIIT<;eKY=qsgf{r3Q62f_@AkJ9_QhaPS)ZJ>W@`(b!<4Zcgc zKZo^>;#K9TO3=G{%G$hD8P{Lp+T@vezJTl1Tnht;e96tF?9`F1k03X}erE9eNIbAD z5dZ0w$OTNtkWm*IEJtrvURNzSXv429Cn4v;#5tcKmqKkVA;z;UY`d`2n<2yVF@jFRFHI#CkG*W_}s&X3Nz`2Xnp%_uFl8s z=LO(?SzkQpUtefV(8j!L*95E=rs^K^=~T_7{un?1Z;J5?64D2~6NN9S4w-yvURMoq zVSbtObZ{FOsGj+4;I8z{Y_&X@k?TU&E4qX zofCA{yjh>+CqBizV%9K6dZ!5wD0{qno;%NfjA!_(wQl}rpp5-KK8&3x2TeXpvD(^x zxv{2E@t#V*oupz>#R0O9Fm@^4K7nsz{@jw1X{xN|&soGbnmbr)Y*8-D+3my?>x5WS z)xq=NQ8(7HanfswjVYJUrqN=Ro948rj^)`(k7tT?e(l9Xoz!u4E!DTRDW|e5`Q0b* zm8%0_2s58|x1aYvUgQ0b1H6-Qh`2}Zf5>*zZ8ga~>EQ(At@kYgwY76!n|931EfrUN zIN5>B;N>g9vVv4@Fgh%rfS1TR-#qjCzV$=n_wsB5&#F1+?fdBEC6mvLS3HqgpK#{Q zv?{Lc`oyk`TgWm6P%>lvuhRUTqW0b ztzzRvwbuY2uixX!X9xOEOh2v7i$$Z;d8d@MP8so;=Go|Ur=`t{KNoQCMKAtzhSknJ zd%KCr&HkPni-L=gT)j5rJNxP~_t?4Mtzz18hB;gGK28{)IIxlVFkj1ukBCK_5fLghsPtxV*fB_S`K9; z-%0eHtGSy#YW7M8UknzFcGr7bhC0(&Pd=Ewp3H$~{`I76dK0-wfBj;{A8?2{UO79y z2YGG5r%YuX`WH{1Ykg~u?!U<2=j&y9-yYj= z_lofOe*R4YzuCcFj(E5g8*lRXT24Pr+@JT0Kyx%JFu>OxfOn7Ik#&y47@guN@jb*O zFJ(JmAtod~@Wo>d#l#~KWO+6+6rW3wX9xSZ17z~W;ql*A^ygiKZ_qsipX5WNqw*nE zN9}l}KfC|l)6hxoCwh8Ta|hqGbPCFPY9=^6R_|6a2CH}ede2i&xm^dDz^}Pm=*#an z<;#Lj-5%5Wy;F~AZkeha)kd&^lFPZ>ZhLN<34uWxZ*Bh4-D-zpJU5F2m-)%xp9rzr>kM`m5 zw-FDECh0HAzCHsDPh0&Eoj086()$baK9hd1pWM%PoT%NC8|kMb8i$p&)rCKG`TPj_ zp!XtenepgD&7Yk3Y~+z1vk5~6+B|>Zf0n-Q zC0dH9ue{YYttKa8u&zZ{JIjkYoS8+pWHl>a6&y#tnsUKn{4R6MR`ONN*sbzaOZaAF zg5Ne@rT6qgA2Pm*+(7?53ena`S*rt=p#x3iubRnQMaf?^@jnm0^Dy}sLFmb{>o%+%MH#JlwJX8$xV@m+9{_|pM2D({pDSD^QC_Y;r#-{UcM z_sf%*NAeP1yRN&TG1NVym-)WQ#IFz{T!`* zYZ-^ykw1GMZ5`5D7hf64>Ym;)%+=ct)=(?imyo}ixLUSr^!q_48i+sn6|f4lp*5Xt zXA148jp8BQGnzczR~u#UQ~h7JIN6|_-iNi`l}`=7#f)VM^&;8bGoWdg6AqbsmuYMY`HAB9h>pC(`)VEfcQn@+|x6 z$+PJCPOfXZd$-6hd?-ea3cQ6YpMiXE*Mq5c9oj|zrp;14eCS~H#3$_k8R_|J*nj)} z-l_grRKAV6__Tq21{9;VhD?l_OMl7{wdZZTBvaW;zAn$x8Ts2z;xy}T?Htuzjbh4tsFq2Jm^}Q(j_hfH*w2d&YL=aMQ+lZX55XjhY;Mk?C(j zd?Ix@gU-Wb$rpippl%a>t_ELf{Y+DzpD9SZH!3=yw|HVaSADZ@*UEd2hOWkmeROq? z=NbEc?X2%CU9ULU1pe3BVixgdNdUY~jclHCKSdw8d$;|Q<6Fq9;q#NNU=?i}FVaQ? z9~|VMfndq|wHEJjezoA!T(1rM@q(UUaKWi;1>AW@`LPD4q~=uT=h0K0$YrO#1D`6q zsNqLc{K!jOOk3^va>-6>?6%E1$2?^#os*xuLUBMQJ|r)<{&ryb^cbajDe=jwNb?`T zQARhrbFRf<+4w5TIBT&7e~cj-?e*_3&m3<{p9;V-ZSmrtIxqf-4Tyg@OB*}iim!}$ zvCm5S+c;ovDL-*L<)VuJSR-_N+`OB!)_G-g{MeWEURP?o_8lCX*K^1_5!dle5@Ely z%zH#NW>4GAjk`AD{(g`%Km2^kXACD2!!3li^^C##5cxQ3qtYSEuhPf6-90|ZnL7Sw zlX#Ynu@%kYr7+EAzm<5v=*oj*(3M~!_BqVGfY@8-dyYfnJV z;~B5!YAa{P(I;okv*AJJ>O%mg(W5KK9KrG`vmRYO6i+IFa+cwwY zTlme|_Cep;cCCMH+xk9}hv+|F>>3kqamP*Ul*%z`&2+G{r{P5S{UhdH%^g}JTb@fV zt!=q_pK9Ck^Lx}wf9AIdjq&^?*dlAFD0U@(@RRQyG3%>VuA{5?UIzBn$s8j6>V^l` zVz)8lWAcps#qj0U$HX%Fn3T;t`B{7n`%ZSxDOeks8Db79ZOMz1`&wJ|TpoLi#Cq&4 zhOqTg`~#STW^diR*7;0c{J`z<5xnF5gu8!a<@`o`gP#W$v%Q`15)-X;j=mfF%1Z27 z-qTRbJF+VoH@xn9mW3T@kM?{$=Y1UJr3XvE;)r+2afcg@xBs~q{{18SpVxmjshnef zy<-1!GJ2IMcP<|L_x7|OFIl^58Trm&;yiK=+82;qce8%Ep4f-|yk*gUfj9w*|&uR}N68Hf0q@&zed7|{OIg7|ZN?Wf8q$KU@uHdzT{>*S2J zU(*Dh0sq1NW)3ky>$&Z@wdV$T)-lmtZ+CFsPzS!b^BVS0dtK}R_=dIR-^w@dq;$)_ z59eKA)==fMj+y-r{7F*2dy{8-^67u#StBuw&e*BJwkqIXZC3Xqoa5dV!LJ6jN8s(T zZqwfL&)>zKh?B49C9Dl(@4{6zfiI{_J1e1;=a0Nc=SG2BAog59*(W2%8iHP|WA>%k zpZqIwuF$%8<#@$ENz>0QXPNKPs{KrDx6@uHxt;;^jd)jlxy$b{nd+?s7iaUzHka(T zPs#b@#rP=Vee0vX`jF2@X|9%i%0HvazgY3l`KbT6%#DNW_h!sDW{9Vaf5K0JZ(X|- zKQ$}h>{}98vmqBhwbb~jKyw$Ek-g084rQF91@Wiq-FU{%!Txcj<0Is6R~!p8>s{LU zjG-pS;9ZSR_Rkwpbi&4qis@vN@;z5xmf1&4fcKevgtgH(;x|vkujoB&-l>}LhcCD~ zuDJ!DZq9#wYk|0RF*8t>)U{FC)o4KzQ~oBbcM81yJTvy-xcGPb#-1vd-gk_?nGX{>TgK2^ zGu6DivW-4P2eHjsVRhj7KF1M8C)JknW$EwW*tk?N>0bPoa9M_)*f`%6KB=4nnKg?}859FX8@V?z?N}{KP1p%_CM)46FALI`DDgONtMv9Fol+;a7+Y z2i_mRr}lC2%lh~LwcoM!yiE6zFN<13H! z4A6@KeIug_`ugs#pXqWs)u$uURppzlEPnZe?m~CGu55O3onBva+mE5q%x(CE6z@{< z96%p)+o^r@rONr+mdq3ryS_9(QTgDJhIPbr|LD5$!q4>2nae&D1G(+zCC;LK`KJdi z*BU7=@n_ zrbu(QONTHqc?n|3xu=m+mORwHjiJ?kjmhz)&Xv%6`*sd-V>tJl2h|68$E~M#s_JK& z6FL^rKCzvpztT1N6t-p|bV+F3yh?>2qJd^*n7}j=tMdK-Wnx8aURb!&cVhp*!y0>)*bY680q>lfiYC9!(Xru zaNFM*_glO(5#dD{_l2oHhj}u>e#0H5?wOYwi)3`uw~lBJ!Qfyc=>G!__>+6SO}Uu`M8%1i}2?pLw2V z_u0(`;d}dIU%NZcJZH|FIdkUBnRCw2w$6Wp)Q@`enEH#E$AyeX$pHFfcr1Q?9$HD; z$e?cJb?_f|goNm?@SjONGq&W%@Z`gKa6=S{40KF=M4B}@dD>3k`-?;t}pOO9!oE-{Z{l)k0&(_>-Tqo9R^SFh5V_tKA-Q5P3-^Yy&vLzy?4ee z^m~772J-*)vz&d9WLDD|pVd`vnsWy@fx| zobtBGXSv^hIzG$nA;-6{Cbmy=&J;&aA`d6~W3xuO`6oA@U-!*RS$i6AVpsu=&3J^t>{=TzZ7?Ts?7K#_QM&Y#4_#k zy>kSOj~BONXjoBTuVuekfbCRqJMFad0)5ke|2WN!^(}s$&~{fSC4JXj=fskDHX+%I zQ{8>eyzgw2FV3<8d%gA~Hy7HKb6ozTuk!bio%b5kXJZeBcjNb1c{Whxzuru4qP97f z{V(w^dlA`FvICjR+m|}};_fp!gQon)3lBMQIh0F&{T-gvzH$_O&assHf&DjiZlwS3 z4I%FX^6SPyU3CQqyCw?$7QrWHk>Ed%tn2NZt2H?`tM0fN{&j88hTcsDwsp40uifhh z3?5dqpZ5J?wC`SD@v8p3RGy8hi*wQK)3C97b7gWNb0rv=!dTZUE)|+#-`Q1b<`-wC zgDMWpVy=pRGABDU`Fn}EH=)^^zjvKY-?3*6VJ%!e$9fZaU3t!AV`Cg|@$Ope=x-*y zbF1EAkLK{D6BFs>SCS3RVqOdW%fv5uF_Yf&Bko(Z)3-GG)`Bf9Ro~e2n!deLYOPXx z6TqvQz8vf8%V4)J_0&~7rRo(QA^!KJ!hdNRV?&{klmPSrC=UiLyo{i8iHa2G- zZ^lOJ-zaGMi|g@ag8vlv2+xpbj=WmTlR2vjInxc;9kj(7Qo>xetBF~urymY|&nJgf z1u=C_PFa=JtH0FS58omK33CWZMn7fLEOF z9zDt4w$!o}LyZlfq>bMj)IY{VdoA%)AB`2|-(U=s!!AtRMs%9f$E%r7qJ#W@l~ZRP z|BK-B=rrhp9F-il?!>>ywQ-#REMx1jmQ=1@N6rlV{UoD*@%NiIXNSX;%3G&(Up`W@ z4~{c@LL3n}OJ7OL*|Egz*Rvwe^X>}=7HzKIy>Rmn_$?TF(al*0*5#n@3QzHrzO`5L z_;}xCU&P0gJk{qR6?qI;S|=Xidv`aV?SS$rZnOsBKPw&O$|C#N$I;)R zr`p$=rg?tZXHG6>>GPfrTZ;}Gf*%CiZ@-D#4B~cb;q*&vqRDlW^|>*ud!D{9ZpvqM zf4uhS^ub}g@9Be+dH=Bb;L>=Uu;xSiD9ct~AB0yt9Qp&}*`vV059dzcc(`PL9xkuO zbsouaD=l2PY(jUvW&(WR$WEVL1KxV)Lu8DH_q(hOiwxfJddctk^(?Q=t5UQn-b;R0 z@o3kIBm!O_p~-|f6}LO zG>kQJW%#$)$K~MXi8ElZFo(G5Kx6Q;4>v`z59}ca#cIuy60PA`k)Ir|facLfjGAO%MBcto`^IhwAQQ{MPuW5Kyki`Dy>yWgH@i7e zv7gY_ros!SfUlFo;H5NkhBCgu+;bJThe#I8LQbmx>%YM~KQ7$-1MZQK3~9k`5vPv> zC*s0s!*(H=;@MUFaDFB@`Qhe;E*xaE184NO7(NfWaO$zG^aSTI!O09A`sFpw-YA6J zHuzi|hjXV3ry5z@6P)FO10C-8Qv4jD0-K5KFxt^485;@uXoph`8?0${nf}P$$=%Ov3Fzbio$onfn)6`x-#`QS{OmdL2*dq zsd_g#^%C|$CzT!YodG54vu%B+`S(Lj-hQ(!(>f#`Q~R4Hu@Cuo*Q9?ZtsAoO-o3Ze z>`m(7o!T5?#n8Vjbh9(oVv}?IkVP-8m%pKI?GO`>Y3iIt9nQE-9#+*UWPN>^I^ko& z&0~3H`JRdoBe(tpgtw9NAtp5MQCV8(QEEc933 zdZ~T*(1WucI6n}a5%Io#%Kaf0Hg2y@J9X|99wWoedw5pB*n7_c0epJ&Om;ZsA&H)C zH?Jb6DmsK$r;s||RUK?jALxD7X75=U&#vQ{`s-hV#e3d5E#3oO${by)SK;PsQ@s}E zaO(9tGxEk2sdIUCrR$!H-sp4W8eYI%7q15FnR&E{9v2E*&xWk8?$Mdq&z7r|&56^BnXiMdhF`|OFZ~vddE^545Ty92~&AL3Hd{ z*8FLy-rG6K{zuY#!Cutg)kFQsqwT*W*T*K3-`PX`+R^qOlI!P%nxmYZ1cy7ie?9Xg zzq$APrF?gzN9Y9m<>dFp%YK@@GumF8R40EpcZQqsaA?t$-i!G%5MDcm`Eo4tCEd-> z?bxYTvrh{%zP-jH_whqDx*6|p;(wU^OnrLb&A*_hX>ZoXI=pVAWtSimSRa~#j}_Zm zOSC^&HQ_Vt?^aWQbz<=n>)QJCE7*5tM;a*Cx?In`N&lbXzq{8amrRzqOZL!$i@qYRFl;JNoynyMtRk++E9A>>k=t|JB|%$g$AUi@26@_E)1U`>V>iz<=?6 z1AX0&O}Ho!?6E)VX8Y*&a-44GCDH9s`XpKxu)d34m;2~d1Fci_tEc`Z*?41XZn&Ry zNaHR!zL)rBCx);47{HS|eZFN)h3^#Gc@Dp&q_6JCN_9V$d;n?`%Z;CF5Sv!R(%~J- zD+u13rovm%<~ue8BQNf*d1=e;+Qre`!P_bx$vAY`%A!LR%QFtHs4PCS{`#zi8IQEj zarU;$+22G@3U%&>2lszryzxF=dw&ExLyDs;Z4!c~qxx6Te9Q6983Vx4Xe ztu)VGbe=sxIeK-e-rLsqiDBm1R_EFGd8W9G2Kv=(gyHr1kdf< z4cJECt%Il9zaoc>bO!@((0HRqpFsWk16`$;BI~OUbgeVbZgX^F?T5dt=j0D^aB#{u zFvq4--qzukcR1xsC_h*2d*u};n>Lof15+ul-tX3b#wkxjZ=E9e``q#YUoiF4s6RpQ z_qyd5JLPMDf3o0vx5?fUdZ@DOhM!#j1@a1*a^!|rmR3<)xh+tC{YgBl z=N%(^QjB?cXIIsXQ^-H>$*vu@sS($9in)`qTlv;g?8(T}xx8cg z6Z(R^b!um>be|&DK6Ddvb{Vv+X4w+`{(+kF=<1v|#(gq^7V}>+;N_5=)jq;rf}RqP zzwV@^Q*bnHf1<@S&$EyKt(_eL*|R3yw988ZM=OCbo0|kG@MZXsoB#=-ea3hux)+!g^t|&khRt1 zI+mRD>)U=fI#-;@Jv$aU4)boKg)XbOlX7@>8lPvcfgiCM%%RUU_%u5CmWoQfx&hH` z>tK5g`+@R~;dbk6`jph(EXFB~GpO>A=#?&?!%ZRlk!p=@Exl2(Vv2u?_d6Lzs&jJb z>DhCgbzoqflP7pDdy&n2YH2fr+)#6^$&>D0Q$FQ&D_9z&ZY_6eXCd2GVb4_FfmA$Z z!DI4OIX#UyntIEek7nV&E`jhPa;mjb2;zy^xQxGp8sD(FY8V0 z$L78zGq$gZ51jaK@xfU5Ak03c8a$rho*E82ssg@oe(|YKb2ZN17_Q}i@)-KtHGX}J zU#nyZ_t+^PT|GRwp8tg{C)$hp9?;%#Vhu1~hfj*zmG3cQhxyIjpuGm4e;|O~TfrvL%?Mp0sC_Godr^wCYr9Gqp*9ua`?4~oK?X} z?g?V;LXMX>zQ98xXa5yD3hNdyV{@OnCO=J-d02rSgsj;WMUJ#{XR`8R+{d{59yuak zuY35ddQtr5eoLABspMmw$Nr{O@?>zwq!r*8{IwmUVFommKNxo1wNd7tPKLp)~un#;`5$6KGTOf z_tPGLuEAUF%9|P6jvZE`#z}XisGjbm?U!d&g%;e>vF%C8sk}%XcFy{K9i=8GG`=mD z*X=icaQYuaZ+Ni)e>!5G8}RQ?`$5a`9WDc}Hr~I3`m)(7N1NJGS(q~YZ;^d$srC-? zjU5)bjkXH1X)6=|CDxiw?w3E9eq5xETnC?0-@BJ7xvdjv>z7#_rN4}g@vz9R|H3?? ztODA6YTyiw6rm3*m!Qg8-8-Brpw}#7)Rb#13piUD&mhkaU<3E)9aJ6oNx1i?&V8ka z>N?R0k>~3=&(-Nvz`xBdJ?Vv@xVE^Rb!1@Nr+#T#F*jn>$h=0tX1)>)U$p18p` z<_)pu*^!TU{ucgSwLaLjJcrIzf0o~uuUu`0D8GD2N9hCftKnhrW)5qOk*{n$_rA*x z(D17=bN3c~UHb&_D6B=Dy5qN2KHaSk#Q0eIjw|71wJn{^!(Z(?G|Gx>06(oS;_=qB z$)(k-Bl0!59@^`@D7@Ow@B;a{s9VQ=Lv+_Xd!GMW4|GlX51uy+aCl0v%La)4S&^rC zKGVFL8JUP59$79sgV#FqOg#G$KB8?dzlILti^W=azSgn!G-n-y7D0>o;=98u!1zA^ zT;=uF-0E3dyKB}rwz$^6oIpVt3C-D57Dze-&{A4Yd{O`5~AEyy0$`gPs-c~!dIRpRNO6|5y+WKB7b zwdGvam~*&uom}nH9D8ZecDFwk=NZwistHPowM{~?(ynN$P+$o4J%@#`Pe z$h>Oi%c*~6Jz$@q_iEWw+z7uYCxiEHnHw82fPN&y@aiU)3sw+cRN;{P>`4258-1@o zioVymeGew}J)ElVo5~v1_g!0*YpkPm6~Be&Kl$GR4TOIUVY3BU7EDIG|^q;@iB?}6?^_F;)!X{Kr*o! z-6F(qzw+ygKo<|0Ia=0ikxx22hv5(yk`e;8RdAyD>ch=(U zNX^6hO`P0xD-5by)mOV zdXKx#MfXjer2g;fb)YV-*Mi;ET`|qlgL&RU>!y8O5lToiF~lC23d|B{-$q+8s7r%hoPr(2x~nrGrE0tWDfMy z*?h8m?TMbZLr?gjvxqVB_{+YSf$$zb<-dJdT^z^Vs+PVe5g@-sB*+RaTE!!s8 zjGbfqI>xGE+?s`F1$Ax&C;hH<*GqV>Gfd9(9NLyoEVkLEVrc5wW>@pR_`~z<)cu;e zi{!vn@}qJ5+WfqBIeMPe-zu5O+PNQo=t|4l!TE00-py8HaP|Y0A!yw`3O{JtOS5+F zmYwF^j{QzvGP9@3iTuZfPF!j=`>1OC(CAC7-+msPN5A*JXEn-)O|s~9#-jGTPse{DCsM|{@?U^X8$DaVG0+Kpq$C?U9ga3XbZMh8Q=U-y;AyP% z-{S?1p~DNAkrQdFmS+v-p*p~MVUW?#2SdFs9gzHc*Dw_=Y@oRhhc z+u?-*ca3YHo+snN@RXmP*hN`PUhbr1FLD8+fQM7rlzcq;Gx3HCDR zA^EYE=fZh2;!z#H8{%M6~L*e&*)ZaRCLt}nm=#FjZ-wzu7B`@;wTi7y) z1-pfPO961fZ*36V8~FC-!k)*;FJktWk~g}?U})r*;I6(D`Q%MeOx_HQ+y`ziVl%ke zkNcbw`zy5J$Mq}VS`9y30j~Qu<1==(JOAe-&Hw%Tv29sv-+=~?LW6v3_zsKlH8cTk zzLmFw`C3(@^|S0WW5=`Hy-P!q-v1xq#yX1~p|@?ZE*QQz*w@Z<`AxKzT&|^WHSRiC zOWy*Vowd-ua$MVw~rVe>1E~JhZPra2mR>75xx#RfUHQM}M!t#tH!OdCqc0GfG+!!{i_Tw^<)K ze=2!Le4zaWb7t3O)>zJ&w4N!(LFd-n;D`4|$@VccvWfP@-|{O)H?c2dZYh6lJ7cjL zn~V6i7xpq|uCex8@Uu5YmSb=E$0f`i_PO#e^+)7i@X5di~3sgIlQR)`p&LWzb$II*=vxm9av|&eQAYXgXDJ0 z<6Psr;G#aAj{RA79sR}zSy|+3t0>mi(8!~-HLRm+qWJbI-u38of(twE`9~j~Mftai zh$Xq`SNLUce-2|M-N>KM$HF#Ks^aapL*%BPwPVbS3Sn-lpN?`WUX>RU%zfg3{Se}MVnjAwS_-*3hJ9=(3mP!B$@YT#Y@ z(R{+Z);iok`7HGEY{o`%<4pSbHu=RhzqPKj_Zi~pkYVbn4KH`kzRO-UafYgss$A(8qQ^S7j9mdo@o{If6atWIhxwK5~4&fv__H_CSPO;cewexNItmhW{0^!YG zcBAYAYTLtK`m%paJ^22zTBpyOG}hjGvs~N4UhLFPU*f!z%o7QHz+SSb5A;=jy85$? z&-&BsJy_RFjFgj$HxA4Hu5|IKmy%NyeMN1S!2kc%{4l?*?D>vL6AyvCM)O5;xVoqN zSdo)q)^D$l)l=>Z)_#9Id?F@7BhH=@&*}VqHFJgW77jh-x%eTp*IwV$=^@X>eX2wI zZQ$wMP9y$AS5{(IWQiOg-(TbKTyN892QwB5)&PZhVRGyN#*t$g^SPjarb zln?$eW?g$LL;Esw|7GuQaVCF^lh>+&aYmn!&!>?E$_*g9Yo5Iy{nC-GA>RApPIPsA z;xwmtcZJ`tLj2G9eAYhp>9vwCoLMQ~Mvb#}zgY`i1>+82=>0ac7tD-IRvYY-jg14H zAczhShCa2>Ml?!A=YMcU5{5s2IHcz~?@&i)D4J(l3+C+F&pm_SfR3WO5i0ef=reAn1cd8wPLA3?%zBXUbUfwTGOd_gIfaqgGe15pA6PT~_3$!W$Sp z_5H^@ukpQG6MHu^@&wN;`kE>Rx2N{*=N;JvqK+LrQ4d<%&pwMj_0--{7uQtnb&uCJ z_MG@$ld(YGUOSUK@MY);uQK=`FyAPkjY6< z03A!1t2OX~g-xUID^BdN<{$la>?6R2zRfpsPovhiN2@reqQB<{IVbVkLCl&Qx6y&W z@d1?$D^>k^*0P)v@$tLtWzGlUcMnPiD^FKA=^jeyGqom`cM`U=Q0JH*l~1`kEpJls z@$mfIxgA0D4t$`S)~%UDznwEHPlwUjm3-K=e#swGdQI^^_v4#|F2cFo+3?k3`8?F? zU5DRQrx%}-|K-%HM@KU2XN%%)oEW#ivNu7O>TJP=f-Y`i2sUkZ{G3ePkaTCK?w_=e zfv?TnrA+hcx6~D1g?cy}`;_w}r_DH=m(?ccZ3Xn#X`>+4#xL}Yd5<2y%URPC*E&y5 zYQD5My5*4M^-%qPmv)&4-Jbc^O7$a?^?EY=Kukm|hun*gveyU3DZ~o>SM`LKFIHYR z`JwjW+$b?lK>TqU_=VV87Yykr4O^^{6=TS!8282Rm`VI7{`ehNAIJ@1Pq7Me?7dez z@r_|(L28hXx$tgRzSY^qo$1q&EkVY53;t?b{@UMGKEN(&pZV7Ug(e?$lbA=y@_P|9(Ye}zD+yp_Vu^557`6k zE%1ejvwEMs-mC2Op0w@*)-g$UiArJ}LK* zcdnw?%^><>EAn#eznpj>BfrcZ$jRX~5_uccGx)VeeIeJ5&T(|l@DHII_{Zcd_&0w7 zKWP1yoEmlSetaFBI}^gtR%MC@4*%Qnsc8V7H`WdGuYi5k4e*lMDRON$HI%Q1zX#Hu zWU&W(0I);suapl{^}YRu_(Sg$y5~24g+`)xvYb#KQk9FAf8d=@KJCI+ulsw+^z?k+ z{x9_ZdTijxi`d?w;D2aOVAEgeq!zSPuGgT|UH`3B9j&vfgWi>@&LY*(nISkT_pj=B z;~TV6?;Eb?9Sa`w?;ZVeTKtGzuqlXd-ct}@wfgaI?D%b+dPV2$}_9OpLUS51hT-{RpH-Db?BJ>gY5jCU_nj{{J zE@kh=TDqMx_y%HA8|M)B$9fL^Rs;_z9^1)({|tJs#krMoqTI(g)FZ3w)4$mf1fKkt zivxouZD(!7meV9#&Q$JtZ(|PWEKRu1_D)VWEreg+@WkSre9MtSqZpxU>s(nKe4*b9)bC*TxxC z24ne~zd65kFOmmO`h(yJ4*gvlWq+r8>se#aE1do7QsToj?#j>ZmA%SZP{X_d4tJY% zOd1AEL!Tu16y`iKRe!sPgHMLJ1f58_j0d;DonzqFSq7eG!Y`U%4fI`kqt$kDoe8P~ zk4qn_foD_I8KXML4fVAKnJU?us$PNW(eL6O_#GQvLJlNvEY*kPzOCUr|8>T(KQL3$ zW7^@*7Ik0U`>viLxm3YkD~P@t45+VGx4ls&w9#3Y>eOglp-1xmtT0zLQ%5IJe%lYs z+T8P*-cK3h1s$RL(J$B5LYLuz6peTc|%9KhaiXcn15l;*7jWLH22_SJ!m3x@XwZW!?ve_}{PT^&zZfmA9VI%s(ZNe&BwRz z$Io;4^8BIr+@oWm>)I!QUn)*fru!p+A%<($uJEgkmB!p+_}%Qntcnnn?0nKo?s63RvQXZZg%bWBS> zZh3=C%hv-AEgPU^jk~_+{H^;KIs50YGDccE;&@9p%{6>g?c$9s!rY~(HC*`g1xL3Z z3Gr=ZuC95wF_11k>r`hwO$Ecko{%=uS~YdJ)j0=RPKBm^J;>Xy-g`0o)eD#>$N}-o zfQOv@>dgO!U3>7CI&;&9qYGI1TTDt8oO>BeL3b0Rlw)+;&AJ-!%{o|x{J8J;(Eu6I=t4(Z4 z{y?kqh8cmzYUogpolQRd+JERjYv$TTC#IJDPqUU+Lnl+`3#sd@Q61=J>YSds&O@pL z9Zj9HQ`cFcI?&bBDNkMJF4cj~rp|e(>&TzuE&AxtKCW-CBECudx(a%0{o+2s*j~Pn zc&G31-hOC_uD`;s>#sL!eteIq^XR^tX@ z)XHzmwCCU>Hm61QCr6JeM~@0)vuMKxa>fO$ecYLZp1-2d*rNjZB;7#_KtEvcEXbOx7{>tXUdGMNo>y^pA!IDR%e(e*w;BCe5!^M(M(0^k zyn2*f`dsb9cl`w&7QH-8veC%i?zSN}_6S-zIy<`dM(Nsb7JE8d>UVN!Xa8vuoH2G1LAHyi!Y>4X&v>4;rTbmVr$>uweCm!mY$Oe*A4i_=~*(qYrOI#oR?Dm7Vx@Wjpwgo zorqYWP-p+*^BRLcI;T;3%p&fEDL~KNf$qM2tkr1n-a5oy{;_js3-25I@;vx`9{Yxb zdan(!7bn&8%a}~$i#f}c9!`EYw{d1p-D*LZsKlQ|ySe|u%A))v{L z_A~#C{bX{e^U3m1b1Amh7WhxH^wDzTEBIU(9bY~nT1(`=Djn&%cd;>|FN%Nt?ZFGp z4P%&p*fAT%Sm=~-J46k9(gximi&Cu(Z;rwL3YdDQ!9BzF_JZE|^|{cXr}yJ_rS9ua z!z34{N!UV=>(WmYckvSXMws{w^&{TDEOeK=$N}uA7BM2V;N!({(7#T_aR`Tz;PN)( z5iD_F2jKy0T&VLW=nvXo9=IxiKW7?t=yc90dg15M8$XW#ejeTF{ugwJYUnOJ&UWc; zp)X2@ckq%vm=hTc-Pv=k4UR5r%z*cbGMMY=WA*H@EdB?p0*#q@&@XWeV*J1uG^;=4 zYd33v`osJ%{rMMiSL@?-j6(tApn9$D-b(f0J5%oi>cwq1@w}@YGt2Q^RUS0w{3bQc zGb1yhxn!Ss%-^@aVoNB%_IDBO!zVqq{~GO!M?BjueR6HPnGxA_1yggg@igWq{;F>v z|6XKH<)>%wfW}q9lj5{X>s#I^|EN#ep(}n(A=Z!F56c^KE=g<5^|tPI-Quq+{nqE(WI%^F=tl08Y8!6umT#(}vw$RnVvzJs?+Y7wvY| zf3>~d_^;+hmh((&#*4?$CwM9w*;(tuvo?k&aakVy-FPBkb3Z_4L_9HzxT0${C*< zv8!ir&M@m^&6&K&S9rIY=RMKqOFTF4dUVsfhVSws=kcs3+D+w|q1}$IQsJ?Oy^~}| z5$~`6sH=*+Q>+_3`@QdD-z;5Q_IaI0tU>>L5PFKHzd+BZ=QI=NTnNwAxcreeNWZP-+ksb%j-2u7qUZC|tzE@~ zpLjSUkg+@%$Xotinl(Sj{{r&KJQ#KIo`uMJX6~7%eYLwBnJk~Ueta5&-Q{ zOz9y1i2YGtt5ZI1Gl^lkfIZT2 zkUF*A9I{v&WQSYBbH+lp4frwkyoUM9ek;MR%)!&yL)4t#nR^xRlix4mtWUfneawFj zuRVZp-wqFKXa1q{H}KXBm22OkAFo{jF0TX#e5X^NLy8{zL;@zgr>r$vTW%G zc;y(9}!+&Rv{h*>V_xr%^X^w@I zPskc&cbuGDHQaw!e*nT>C@jg_-Ma zZb8%kt>f*-4%4>cX;a?x zXAgRIm-{T>K5J!v@&L9$Jqx?fIj|-zAys#G#-AQPwujD$)DmyG;Ij z@N0lyKhE)EG2_O)W}>rf+RHgtLucw#tWc}F9!JwWoi;aOe-U{C4TRIBz^NYNgEQc` z7@S*NILa}S3eF^AD?Rl2igkGX~1ba!3Sqm9L`r< zIQ7sQy||M7`lP{H8)SEzHPW1AFV>oIah}~DKI#MQ!|dyN@m(>>ykmUw{cX>n?H?jn z9U5mx{&NI0XN-f4(bf_8YmML@Tw-UdM>ykUX#GyEOQY<_so>NAt?P%!Y19y-b#`Qu z`Zm((+o!ifqv1X{gYsfpt#KF+xG)rto(jezg7MA8Q&s|_jdRNw9zjnwWJi{{FbevnhH(!t zbho4AJZFy3F)Nb(*k^UykndsIH8@Rn;LQh?)^P2sGgv>OJa0ta6tPzfTF$xncY(K! zeYtt>JI;G^y!R;Ado?NEt5ILj$n5&*0VKq8}`g=Zg(s)0v$H#LU`0rDc%=hGRFXm+Z=B{*28)=bKX`_w)Bk$KKh9{YBMeg$;@7KCHo3z(0=C?=R z_2h3--lke|SE?_y^rg_`bjpgzUY@+)@aOF_dPi9LOgwMjE0?3su;-lveLNi{7;tqI z)s>Dy-oDw=QCi2_$^&yF`b{k#=`&GZUHWPC8LzI+W&b$CpQ}A_e{tyfKtN@~HH2WH)%l?XrpOIOUm<71R~{% zbdg{${Bf}hWE@(!nZ4{fYwzuwr-5%6dx3PDD~6fa$7an*^+ERW4}l^5;VV3YXPO(( z!zT^ZTcsYH_iU`cizhD2e zVxGz8w-y|gU&+)luyZ26`G(_LtXOMrkD&d31#2F<;P^K5wjkqlH+#+EK!1CT)v{^q z;NbFk8KLGy0c&18^qIbxyvm2FSI#?h#mcdB=XLb&>RKn?q+gH5E`q*b@xFIoAT-?Q z<;X@xttfowID5xPPltB)96vqIT2;ZE(0v>7OS1yuhsE!LvG=wExgV_jtlNBL9H$^( zOT;S~=sT^9Y5t+WeC>;f-5Ff-ySbA&SDlDFFn11ob%`?<>XAG2uQHo_{?%8nn|v&D zMDwQ>-PF2eV#nO8Z<^fD#~M5pSnQ>5U5~9O)m(7;7@t37OFGOMT&=59O5U`AOHXr6 zF!!C~zoR=2E0wRZ`Z>$Q{U2}k;Pc+azQWpIX!`q+W=&s1zrICzfmi;qQ$CXNnUqWC zHTCmGnfkLS|0?D6taqlo!YSWC`6YsnZfnYKcFLDf{w2Yue3o#r99=JsvHGIm_jc<) z<<#GHY`C&a@bO>P+_>xuPP`NHb%oVB%G_zEcL$({%7=%wtg}#lk_}FN*cac?`ID2+ z$>32n+S?Y$N#j%c}AH01xa$ ziSPRDQ6?VGZBKEZ@O?KM$d&L>HSGzfo?`aCt~#{e22P$`%j4A`Yi~Wg>fjQ$Pt4$* zyi8roN97vd$zBE%lGHLg3RQM!IcYf_+cFHYjnc;`yO$t z^sl74PpI*)%N$=Swa2V)%yodJ0 zi(bF4Ufq#Er*7?Cp4i?`eC^dIwRhbSv^V4P+PgWiz2&sm20d#|3^hhrS1us7{%OAF zwUd*A^OEYoJ@{k9&jsL-X0LCOPw)lu`3T37yBGYly(YPB+B9v0!+)i1vwkh?d3@oG zCac$32{=p#2g(gUdHu+~c|R^8N7k=;<#vAUxgUR_WO{yjv@rK1!rYbu=HOe7oStpy6js~m31jq!6fjRp z0aHA+e8K))eZS~_XWi!ff8YJz&i7$u*u^I#wEfc*ZGZCJBkzwH%WD#0K9mAx#^>;y z`t(4kXPI4p_x{{UbhM+E*^egTc6|!m?mgQ6HYLLRMhci09xcq4M3@yRVE*Q&qa2rw zi7+Rmfcd8se0Es=`5+PIh!ikaA1%y|M3@;VVD39wm;+8s;PXAiktWN6+m06IxI~!m zrGRvpNeM7ZQ^5Q&I?0jh6GpZdB*Gk- z0_M2ej}m4m5$3=YFz>(S2w)Cy?zE^^{8qICb2fXIIea=UVXbg=^V#e%{&?;FI?nZ) z*DZx^Mr_v|~w^8#g{-JYS_9^arCKmeZGVpKs`S zpR>ODb$!!^`oumwa~Rkoj$#fP*lQDEKLG3&4{x)#baeEtNu5W`iw15>BHTqjxEgnF zJhvY$+}|g{o$G^(Eg%MW^U=cHnh5t2AKZ~XxGx_q+z%4rp5=qP#0U2$M+B-hM$aByYZXkY@odv+ z1=we@B6l&L!j?5r``BgtZsUIKc6>+mOk;EJbtX6Pc-a7>cZHhCYcqd`ew&BPpD1O~^o+K@C-ZFeBC#*@J_`DB=SY_+09<#--Zp_=aXXQ!I?$K^z4{V$_)J56kom)TiGl4 zpy1Ew+Gm~E!BJPo>`KqAhR;OrFk}8l;#ESft$r2v4(Xhs0T`bBtO2`a3$Tb|dCuZJ z@vLlv$NJ!jZyozk+}79rXb1bt?8uE%o&5b}jK!W2W_??S-PnyGiz#EB`-p*ZWTE8qp-p&?KFh`3z_hVm%Gt8S239{bpLA?B~M$ePhdt z!>;_hrz6D6)L!ELg?KOGfy%I>7PjP?+;qKmaW;e9vIY9#XJXE%4*r=o(>qE{y^wRJ z%^cs~!$EY?yyqjCZ=?9s;S<%u zy1!WcFk|Pe`@_?`xT(0UE_wcVK5IIQvhWRZXnL5ueas2wdV*~mUhHPa_Rg1#FPnUh zct`O$vSE932fL#2b#>l%&V!num;b-+vD`kY*R=<)>rFgEA7VKA62lQ>t;k>v?ALf` zX_~EE6v985c5gwK(8*TGW@v}~eAk7{)9Cw7ZY@WK>)v@77WnJ`_e*`Yt`zNdMz>|SSodxTj z?l#te+P4qXZ67tQF-Q!y;zi_3JvBXZhxbmwD68rWe48ugE$E06@1XoxCNIGW1(Pxg zL(Q*SMWw@uzs{k(_rO6iY!~qRt+wp`?Z65QyZ$z8x8C#V$6Hk;gVQcSHq9@PjOu62 z-*`vhqFMZYuiV;&FL0IC6!{D(SMYlytz9EI5B18PNKsZs+3Wwh?f!dMTXoO#4rG0R z?=(K?e9n1b(X-3${m!@Vd}`1szZpJx#{`sZ&n?1viM5L}CGyPa4rqM2g!Ar&-Ee-bci^J(`xZT0 ze(zJ?p2Nplw&vS~%bxtU!K09Pc;FR)M?(ADNn_gYPy6SFUQBNPtF$G$y#CRG`$ZGc z$)l0z(~D0ZKE3($<#X|`7d<=Z`%}I>2OEXr1y z--E6j#P@jWPNeQHDBr^Wb<|y_a_W{+w%`07blrHq=PYZ2#%rPN&!OY9SB zdtt_JmaUtyY}qdydM}3FtmPY)t(o!uvL|PR>F;Wn?q&S%Mt}Km_F1@_^Xn@0OLSF# zt^8gy#0U4J_g_9Qknu+O9ifBe_ZEGj{Hfq6(-`+TjCVQXUT(&H4RD{FF|W{iPG_vi zZ6Jdj8mB|!?9k+78b8Q79_;I!?M`?HpFwSUd?2Gxz4#e=yUCYxi50gZ0Ec6 z72~Qnycy5ne@0%1dSdt6pLFK@^0y9{SowxqCv@C^4?uu9zbI|k4(U&O{}gIO24;DF z^c()}#3t;)M@IPTZZ!vXPNdX@ZPrp3_Khy=?Z*sTUW7a`Im?hOiUB!rY^a-jDSWr9 z%DeN)Lbl|VId_;S&Nqv7cV!y6%gtGQu3bwW4(a~)hYr;#Pe>GL~@VftGjqWMV(pjT(h$qn6wHW?Uj9UO&%ZJEM>jLtSh;CEJSuH*7 za`4eQJ^63We{{dKf-$|Hvj#uRJXb7`-WkU`k_83$`CYbPN{6$?=Im%Ar;XYR4jj5X zRhxy#p)C-eH}a@*tk919b0(%}>lON>Sh7j9vmUytKOGaCK7&`R4e)ZuGc$4}ZD{Up z8L6D*SrMFZOdE;~(b#x+X^dyNV|*`qfrx0AC^@Zx?BT=h%zHu4ExmWJMzj^0N6ZF;~qIwy44z}<|3 ziOs>}#WFE<@PKfEuwZk^nrc)5)J)|+|KqllCF9rIUX zoO{d79Z~SoJrUqo6?MmSHnfj2rn{g&8z}tmb0V`Yb@D;hLqpL)vB>F~W6Tlp(f^}v z31cW)MqT+QS}vxoV-G{)&+v=Tm>tfaaxZl>20i&x9=Ph)hW_=kQPz*OCtZ4=n=h2N zzZ3mlb@mP$Ewgt>k9_SS_C&Y3~58;x}*Xl#6`;eMcAP ztiR`dpSO=H;%@5yt$ozfXLOQ8^1rl?+GwpBXZBHVs-NBWQRcZvi*u<1zjWJ2H84gF z9gc7xg*;cgV&?TFs-F#J*S@LibuB+>KAaoaGa03$J6Y=Z_~R!!3u;rJI;1u48!D+iONr! zSX15or`+4KnX`(~Y@__9kZi zWZUErgWtaf9uD7k$2pbUyW@0h5Aab-4?0HqEa@1D@~=iZ)tediT)vCfW!Uo~p+?!p z3IgQdWBpT}TG__))P0L-54PaM0ayXgh9W!4uvTilB zaQYn|4?T;1Yk#ifskfeiPizf*5?ZAicMoRQQspRd?)3;Zgc>ujM~MCb@D|;xiN{@6BOPf*#^W2+1CsC)Z2N`_#QOMxm zo+V!9e)RuF4y=n$@9zJoGY0WxOituEzE8J-xBTK~!8-}-3(vj2?Iaes09jJaxXOn0 z8u4!R=&#}*truym|Ao-_BWN6gSH!bROdOiy&;G(+Qs>AGp(lwS(3fNJ3Wby@?%tH6 z+q$~CiDeM~i|6u^=9TZx5p?+Oe(%zK`}2LRVSGr5^QSp@4vDZ)I$UR`cSQ0 zVa!{9SBTfB@6mpzIvN+&3NP<%t*7%^*kYk?H8F1mjNzgc-0wq< z#%f~M>IHL{W%hj)?tUXk{dQ!$caHe{l+N6r3%=g}tZSWDZgkHSv8YARRPoNwGJlmL zViNOtAL~mi^ijM;EoWMs;jHkTHEk@c`hu^~Ybt<&GDhpg8E@OU_-% z7PhzZnP-|0Vb-oz-+rML8HueBU2VJ_v^4Hhx0r9-1uX9@d{mA9v9PtLj7AiLJ&Yt4#0d!{qbQ|&jEZ~eek>FC?3bFRNVxl?O( zNf^Iu>F&Nga+CJR_s={~w^DP6v2H-`l`XM`c`6%cZg1<&y=gg5vma$HWk=rP4qeS< z(V~lW;0@Le<)(O${g`=&y_PjN)Or0l+Qdd%e!3a`bg?_s@6yWqg+>_TU#w(*^Sw@!RbQQqVI9G$KFwW z6)mDa2{g`e$GM!f<&`b*HN?Z&Psf$us`bfRi@u0{!@4HEZVb!krByk#nG@8>0tfL~ zHoV^gF0vhY_PcUdZw(HxItJna*KfnC|ESy1$foCbOTO%kQE9IE^ebx#D#GIP3f6jVu4AbKk^VR$hO;N3QLC z(0ng2B!edWnYd6ZXL%qHu6+IbT0_iv?ArIB{|;ypb=QQVv|wpFb9)eDp#FOAyyU)v zEMIp9`vX1esqJ>gYQye@n`azjt$F}{RQs8kgx-d%s$ks+6bEva7tJm0NPah+clTr43GeGFnag@ApMrjFUY>2( zr24@p|77g6#y-t=h79r^nYO1ko>_RbM~%%<74=nUBueRn!hfp^^_cr7JD}{@2bYzH)kKJ`y$W7jI~2I zXRjFrW-_dMfaS;M;EE%}CnJu}Ex;Ii7<{V0XVl^F@xl6!Bz(3WDLzBv_LvyzG%aK3L^R_^drrdWExj?b@w z@x8;~Qx87Z9S$EKte+?0Gup)mUNG~08{e9j%0&`lu1f}8ewelw)Aq$F+VW*u_S3xg zx5KpEi?%oS)V2%bVPMEEc4$Ewz8CV*BL>{3uQe>q@3_Mo8`fX5)<_TXuQmM7SUBL4 zF@fVNXHK!^qu*3D_6}D*-HRBsz;OFs%NleozGC-g3|t-#`2y;7IUT`+ni@N)A(%f8?M}bhBYN0--!%jRwLjsJ#hE1YmUM1 zuwS_Hr-6HixiFJ_u?e*u=<~`J34jxwr?g5Y7>x=k~&a|eqonhH!=sf)|K2VpcuPx*N zZt7>Pn#=pG=mp#PR_=ogzF*^e?tpOR2EOm+yM^!b`TiB(exD@SXv|vw=y?3OYAe6= zNA#m{9i^u1rSYzR=CaB!QXU%XmcQeb-&tErOKUi5T_$RsLVXvHgLV|yyTmDqM{CL6l%3HniM=Ns${{**w z)GJ?HIau&VyXCXXL*4oxJLO9#e@^hp*JI!em}v0Ve(q_(&vnbkIprfM|B>K( zBnSR|R_?d3~ zBDWkmEEfDBZu#YIIdoef_=DZ@6>d57ze(`D@|WCl#_Kx4ALQ2G>6Tk7D(4D5`Fjj~ z@=6Up+q!;IIY;o1amy>5@{v}3f5s_aLiv{|4-at5-*U>+ z(&{UxQ{FgU$K(k-_dDyIlO`3el2RZjV~ z%=*d+f=|8zQ{L*;f3fmp!S~7!dgb9wCkZ}z3{3suQw%=hheE+8Ux6u~?39atjuU+H z6`1lWr+hZ$*@Ewt-|UoY+>aG}>}96@DyMu6USH8z77ys<1TsebH{k+p1{3+k1`nTn0`t6~tZA1M33zUnnZKVD7Q1bRolRYKz zjNQZsxbZvaeLJlW^38eZZ17S1PVkGYndDi%DJ|64K8ii-ckp52Uivxgv1>SQlRdSF z{59UYtCjD(^#s{Nb}H9R{#l3Wrm;5T-wWR9kwMqCb@kZ7WYa0cMpjs@^&>0t z7BE||FJM33S@_y1rtD9YReNQtM8B-a?}9wt<}VAYnhSl_<{&GbVq|*vTd=Q=UL=WU#YQ6vLlNo1M@#Kwz)$K zy5p8&-Ct2yb%vdW9J>fUjLEAj&j8;{bM||__|ubDE1Yui^EC0ZC$C;}%FE%kvnY?r ztB;-XC6t#6z9*Nm&NT4TkdxyD-z%T&mLn&}3jRQMzTD`RBPUM~`~hxxy;Ht{@_fo; z@~YLX5ABCi9+Ou)-EwrtOv+>Os_3j(e+NodM@2)-w;?sdwyQT}Vy{~UQ$ zkM3->WY~dc@2sr;eH4tPy$A+}fKv@sjS{)?5u@ zvz4truoyh}E!pwi7IMD1zIV*ujfKA-ME*8%VQuX&xojGIbFCpZ*SM39x#Y)n;xC~c za!o!#LFA&7BWZ-mS%I%v)w}FJqO!HJ-eBJ~K9b5UB_GL8$?5t9=6hS;(6iNjtY>?& zFV@S(`{GoaODwWp2cGW9{w?3av4L?AT;b@PWoAcYqkqMHp31KMF74L(`d1t4Ushy` z$upZ7xoV-#yi?m+8-U%@`@i9R@a3Grvi|@c$kwL94okAUsXWh#8^bq!753N?^Q^=v z8wp>XMD9BBBRb{F0?s@2&hroCSC-{Io1C8T>|LI9BsiefE-5mWB-2KzVqOTOM`FXM=kOhZ;@sjmJ%J9+Q{1F)S#0Q!>%lahH`bO%uFi*?0whtO*kL=GKL&VSOy|LKJ+t9CW ze)yot`811jw!(2)=Gkc3@p=1Ef@`-!2%Zt3@heetEr zj4Zva=egGtyr>87_kHc<9=z(Ht=#+u_KQLL4$6Caf2;TYH5vAMywl?965bh6&?4pq zTcOV0|1dsvE@;mm1izrQ735;8!N*X#qw+T{UHlp2==dkMqwf`8;G98f94c$MqlLVV z=tz~)AyS=RPlR9AaW`j!Pk(9Pd|dqF&z{;iT>Hts9O|pq5&AY}X|0nl&N*{-bT;wnO+I`?caN5};1fn?bnr;@p^W2@ zSgw9v7sEaASu$>(kJkot)e0-rT+6w>#(>y?``l#CA=lof@+|PFVwg*~Mud~&qHT61Y8CqvXrWt&@!|y3CwRg9N*7pg6#5b9d-F;Xq zI8PNH?GD33{MOtT4?Rd<iqo`%26Hkp8usJ)bpScT@{!)irG&>}})QJ%1kd-))1TfA|E` zj}JfVLI-jDZaklxHlABNPYZ`D=LW4+MeuMfZTaDR1poQ_veNB~VuzFACC?r2?)M`4 z65M-EX9fH=iQik+oMbDXZ0j-Q9S!iD(I;8QwU(#z`R!oV3G_hGVLkjN+G?KMNZXnp z_2}K)#S!yKTkp=1TTkt*(;2(?X&?Aaq^)&pPP7}A5Jwky;9M*NXt_)CaiVNErCkzBg+&d=&J$5$=;ES4h~Tlf54!O($r z@OSprPM%XU)}#B|e;?@hXDKcV++07sM1B$M?^n3~K*)?2?sVk;JLX$7NvxkdZ%tpo zi@ko*!%~KOKY5Qtw`FlM`V@;e-9{H^8YHe=6NgEnkMU#8#k4# z!MMubJI)XBJ&flo;ylZYd_Bek-Rqb(woQn&kD@$fibtgc3PwvgX&uJY+Bzacuy1bn_V=O%#@@*>tR<|R5#ciGLF0Ka!H?@Cu55aOQ~ z^lv=$Y8rAh5NViWz3J!Q8t@B)pYB5!eqRPZ@O9QAczrtSZ1lL$EuOE26%5^Ka0XX{ zGq`*B_UjSf>BRJ0fKQi`wEadu9^8CnVvU@5dKkg~Q?d_d9x`Zz5hj;yX?B zg|-XGwL;%g(RUE|)*~N8-_^|3&aXInisZKV{F6nWN%qC~SmXF2czOK1)c8?KHeCn} zr#E&@b7&an>BREr*w8H=FI^2!UBLMC$7g3;1~#t1fU7whe0ULbDH$vt%ZxncYik2O zl+N7g-k#=nPjP#S&65o{m^P>s+1%vwsU?qjfBSm_{5H?{{PJSRyt!!nbdga%WWV+n zK2VwiRp2LDX+0Ib%02OubZeDj3g&TtJ@MO{TkWdBi|aj!y=AXb{gSc)3;z!JN#}lKGnpHv3Fg&bIE5$@7bUB z;KNboZ!#>c+fN7&Y&c=^b{B(dn`@62Ud-iY`AkZNYHlUlP`tYrpR72L`y=$u7m+F2 zmo!Mv1;OUbESwHM#w2IND{XI&+FPrBX)WJ&?|eChv*yf1%E z`F@FZBl$lBe7cQM)&Tn$#t0hTzn6OT)iJrgMio&-B*f&w0>Wspy zC36zj-YFB2UDzX}M~J>789U(ut=6vYg&nUtpE;QsS%XXnx%NH%Z(HX0GhQ*zx%)=X zFcVcaQ{Lu|Um?0s8fD78{}lYDeTew+Tl}7c{C;m_XxCE49r+ydaYa7I;!XOJ%i8pB z@yYT26%Dl4_V>?)?lyMDhJ5IbZu5%Si*T1Rcxl|!{<*ZTKKS<<-q}G3?)Y1AKVlFkL<-9>$&vVn!--3tASH6C0&5KhfqW=%Q;MVo>^}ugj{`$%bG!CBA zcnZ!)_$GuOr9*$s|D4F(*L2jiLU-AtYu&rUTA{sjcUVrOf&S|5FzH%?F&G#YzMF%< zuO}Kk!aJ`Ga^|3CClyTWPw;Qfvm-YHPqDc@;rbn(Ym6TLw97q9%8K+7 z@AkkK$@`j&UP~$m1+ATf@O!n=rf%u#8+udmPnu)FApD2_au6TRhNZ`McrktGyBnpu zUr{0(SzMnvx60v>diX&6c`SHn4(fLwem~FHXQLChU!t)<28B7>U_Rn!I^II2wNd^< z>_G))zndA^w3L2Oc8G7mAy#>Q8EYVR+$_B>{rWoi3j5Pq$yX0ZB?t@`9Z*Sf*(bA+~OPw*BqhJrVcG9x?P`MFs3%iuBg zEBy}D-2gsChiF*l0*H0|- z>dMyV=Oe|tc($eJVElf$$cKIVbF@`u{?GkVbABLu-azJd0kSl?Z|vR4y*v@0A=&2# zm|XvVr@#JpFJ#a2JLVsFb$j2`yH;&v&Esq#WgCZmcfQ`uoY(e(>;Q>2G~xR##!-7& z{~dRq82@(X&RNML|6I|XBL=7SE*fvFspf z=L+?iu}bC*&5cRoLD3065<{ozA%;$?JURip;!xK*(~d`f-ZTGQ`u`rM9uRSryTxXRn47SpECZY z{M0N{Uw17X^vbw*Q!pk`###`8E@mHV>W|Jg&rT71%4NSa~3lN@GM8~LFuo|*bDIpu=|pExVYvoQU#KFF~P z4HM$6E4>BbLkGH)SXe^|@ z^w9UIe<}6zt*jlZ;TOhmQ#*Q^?yq;AXGW^ir*5&(r9{g;?E6if^y8Gz(b&zH(ndh|Eb-v)Fj>Zi4E*3G(M0V9MS;o$Dr zt_vvh)+)uzC>C#m`a%5`;HhqiI!~loJ7&>`_V=ANEDgVd^a9;;y83$d#^$|h)-S{V zt0&t13duDx7`w;QPOO!|=Yw3kjrR);&9Wn2d&0ksK70Q~=l+Jy_@{7A7CoiAY$#-I z9$Mh+QTJVTK69ahIq^ku;G7rRW1r5up8xOvC+=O~B+st9zCUupV~m9&zygC!?aIB~ zGn(#s?8DOR%xHUNdRFb7=^l0W?CN2usP3wssh#ewR#o@R^lBwQ2AK%r_z?sMBZ7hz zFh&>wb|UZtL7bovnaCiBATroQ5P!gSY@!4QQ%qz z^M*~H2#kM8e$JhkjJb1_F?U)r=H5!i#FNbU(E>kK;1dO&De&0>KULs!1-@9|O9j4K z;BPJPLV=eG{Ct7mQQ&tMc(uUm1%9!>TLtbH_-=t;D)9RY{DA_0u)rTG@OKvYdkXyF z0)M2yA1(053jFZ`|3HC1QQ%J&_=gMpsRI94fj?c~pDgfa3jEmuf3CovFYp%%{KW$Q zY=OU2;GZw>FBJHf3;g8*|7wB1Qs7t3*0lQT3w*4=uP*Rw3;gv3{)Pg7Q-L2X@M8r& zQQ(;ZpDplH1wL2civ_+^;Hw4x)&egSc&Wh87x*0oes_Ua3%p+77Yn>q;C_Mc7WkzC zzrVmADDVdh{GkGWXMw+`z#lH~M+*GW0)MQ)A209^6!;Sb{$zoFxWJz(@Q)Sv(*^#? z0)M8!pDpm`3jFy3f1$u%Ebz}3_)7);`2zn!fq%KcUoP;k7WgX#e$}Od{tJApz^^Xw zYYY7K1^$Kte^Y@UE%0LnK2hMA0-r7LQw2U(;EM&mRN$)x{?-C76nLq?&lmU|1%7vd zR|~ve;1>(LRp5Ss?-ux_0>8h&A1Lq#3;dx1e`kTer@$XB@JBNKq1Sx0z#l8{#|!)e z1^z^VKUv@(F7T%c{9^_Fbb)`ez@I7bXAAtf0)M{1UnuYw3;eSM{!)Q|zQDgw;9oBA zmka!>1^!BbUv)Xr{|~+9*BAI$fnQzV*B1Ee3;YcQ{-y#yTHwbDe4@ZJ1wLEgrwV+o zz!wXAslZnY{H+CEDDYB&pD*w`3jFQ@uNHW{z%LeftHAvN-!1S<1%7{lKTzNg7WhL2 z{>}n_Pk}#N;ExpeqXqt0fj?g0A1LrA3jE0e|8RjnRp1{h@TUv>lLh`vfj?W|&lULd z1^z;TzgXa(E%28L{PP9=g#!O_fxlefUoG%g3jC@o1^pNJSb<+%;MW%T>kIr11^%W2 zKU(0&3Vfo#GX*|d;HL_FuD}-ye5t@!3;eAG=0k^Z9{HiyEEV|q0>7ic?=J9af!7QC zVu7~`+%NFm0>4z?_ZRpB1^!@xKUCoFEb#Xf_`?PMNP$0E;Exsf;|2bK0)L{wpDgeX z7x+^J{;>joy1+kK;LjBJvjzTKfj?j1FBJHTj^BeV^31Cyzx$V-{qetmzWaw>^Qg=1 zH>&D){5#VtRh96U!QWUp{uS`qz`q1u2rL`gy8{0_xEJ_eg1 z_;lcZ0{%yV_3hm+1^$QNuLS-a__Zj!)V7}jqx&(e?^Qn$`0s-8*|q1ov)Kv!x50zJ zy0iI#z&{H9uE3uHe>CuqfbrF}a{e0lZv_4;VD!)S{1f1R99Z!qz7+V+gTEa3`@!ge zEd9s8uMPZXz>fs}KJeMVe-ivm;17du2L4_!zF$_(cY*f;%jWo@z#jsCB=C2De=zVL z1pl4D*hyda(}CX){<*;K1^;s3```*kE{(J7j$aqJ5B^<&d*Bm+H^AQ#xC_103=V4l z9Qf6NFM+=?@SDLW1D^+<3;ZVVeBh_R?+pAn_;%pa;JbmR!QUPD1o)$YC&8Zx{LSE> z2>b~6?+5-S@D~IBF7Uq&{5!zE8u+(^e*?j9)R)(Se|zBH0)Bnq-wZwz_&0%P1OIyP zTLXU$xEUDx{_8da{|Dk_|GvP#3jW@}{}=er1y)S$zZ&@e0RKebUjYA9V7`a)x}ORB zufV?$_sD(228ws!~YbF4b|}f0)95|=fQ6a{L|puf&V`Ee&GKJ z{2hTm1ODTI|9kLX4E%S%KN|RNfqyFSkAc4!_-}y!P2m3q{FT6e9sFtxxN7q!!M{83 zUk0BF{Da^Nf&T*dTHud^-yZnC0^bh&UxN1n|7q|a4*U_YF372_KMwx>!2bpKlYze* z{I>#sC-@%({v%*)EtdBWgNf;8_z!_!^&1_30Q}nm|32`efnNrn4!j3`F7RFOdf);0 zZs2Y39}2t){$qh(1b;m6E%09t+y?)hz%B4k2YxsB=K{YI{L6vg2L4(U+Zuw&)>{EooC z72FH_8t}IV{yOkq3VaOw`M|#c{A+>#Bk&Z4bB*V(11|*r%76H^*KGy; zD)2u7|7hTU0RBSY{~7#m1Ai9$8jR0s!~Y0A6&OGJ*S#a~e+S+P{AutX3H;;Wj|Kjl z;2#P6--3TS@DGFkRp7r0{u%`1V0h@N${1xXTd9hPl0a-J_+6nd>s6tz>k5yFYxQZe=%?a{Heg- z2>wjqZvg+(z^?=UQsCbP{u&&e)Xx6|{96OR8vMM#i{`Z0Z zIr!B$|EVuu1b<`Te*!)k_#cDM2mXiPYk@xpes|!X0^bSz_rUKB{CC0M75FE?9}E1q z!9NoCC%}I<@Q;H3N#IX`|5e~00e?C0UjzRJtgLGDUjhHlz@Gq52L6lSCjpKZp8@X%{yy*r1OG|zp9uV6@Lvf0z2LtQ_`AUWL*V}m{Q1Bi0{@G^-vR!W zz<&_@HNV~4{|CUY4g7xaBZ1!wJ`?yp_?f`F;I{_ugMV+}9(X(O2Ke^}?t;H7@H+U< z1YQGwBJl48|9IecfqyFSJHS5^_yzDU23`UG2XM97>TXpN1O4C0#>C9o)Ar|0gKBYY zr_p#*6l&n`VTw^S|6UZ1NLZeG6xUS3(6UwF1!n0w*c z{K8x{zi?%4VWqk#kINR-D%f9=X#b$Nd2^3Cg4ug$%UTCT1vzh(aFO0_iq>{|j} zS-g3P0@N%u)3ef62YMbzZFU&V@*ma#hw6}{x>En0YxbXY_5QnV!_aRVrFd7@KD$ye zOg2VKvr9{hFI02auFct_w{Vdk z3zrwKKrO(9rafG~Sj}(UZEbYhjhic1r{CBZbl$Vu*;?yV{m%AAi@%-w+nu$YPP;KR zF*siTnw%I+Rts03yIk#Vb=P|BPP?_!n%V00H!19;&eZY7=I&sp(eLc+_O}|X#$c!4 z-MV$MvDMo#NF z_I9tYHjwPb-p=jbR^#!Rry8xTcH>sR(;|H}vD}z$T<&cRx)j>D-MQatchLuW4|dw!t&8QDRe8*+sl{%0@iR1SlubA8a+Y4n(Y^^M*=W^>Tn?XPvbi0+`F zMyz(#=Q~@yds~edgGQ&{@AcD kNw-Z=&+nBgn+254eGfgdSZ7pnVLDnjx(c00Z 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�rTrSb5CZkGG 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

2XlOKg zE6qv#?T!BHrQHVSDnY!P=dGDSs0`D6lAgp#A^O6ZSthplhVkY$Y`XA0s9Bn0qmwU-CS2hgOqs#i&>L zHfgSJJz=hI<++wx0#)w0^<8={s7$)ZIE=pl>a3q8yojD`^$NVf3`=-x@U57Ss3woP zS>v0i{Vk~dOF`{rsHAVao=2LDxnHK|t=EV8euZzpWR6;;cMo2r&F5%)gLYZls+FM> z6w>OBBs!wk(biwiP~4|=vA0@$ODiU-6Xh3A#mfua2nxf->X%o4(R}gUV?%8<`#X6Q z^>wHG-1x0lNbB~>>X#F3C79Ejn_Alhk@&}n{6u}e(m#RDt=YYo-mI19lje}u&^T%_ zBh5i?|ETnK!Ea3$JXkA-2i3)cj2oTMC-~0g)$b=LKRCMiqe?}5zNDAF&8Xi?En27b z?ch<6dvH?Z-fPSM8AFWxGrJ_qoMI-|UaC|~>reQ5gOLgyK`S)Erwh`^t7(t$?*3h*`p3)v)p(25yQ|+!blP8dMN)kI6=`T6FaOsQS}*YXKbZLYdg>+p z?YCF&ft~j1R{AB+q6WOLE&q2D`e`3bGsXI>t~X~)Us=C~hGZ1+tK9z?`v29zJwbi! zgsIf`CXm0pdOks3jC&1x)kZ6LqIgrW7bkPbVu!1B-mB7vN4W+1N}}y0p5`}O(o!c= zVfJy3#bo9q-5bWE`{!B@Up(X*Tmu624ulJ; z&a_cKVmv*QD091S{OF|peKUQh%7t8|GqhXoc6&NK-|ZmFu^st#&;8fl=bS2vLUv}p z>0^0w>g@O4Yp=cbdhH?_lf&R~28-Dnc$vWx_6DA1(9hm5U%^uL1|DRvjJ=hto)N^A zvpD~%ILcSS;`DeE*jr_4s-TFtS{4^b8`nv3$LmUk!?k8%7%DD)p+wki?fc}IutQ%W z91{`Ket1{24zbw`)>O_(TUyRZo3sP@Eq%Y2CclO9gTC7Vc)5qA`j1Je_9fMC>ANo_ zrW}yf&**XOG^@=k;F-}08xI!}hdwd8B~)8~NB?ef-(T^!V`56VMy1E*-XnsL6i1^0 zipq}@TDo%=T5sz6sWvhJmQp<})EqXaLXFl|!bb#IHHQ5+NTbXci?{~cjP zD&Go%{oMy1Xdmc0%x&hBKOIm6K0Ikxe%(8K`e9jYk;TISQ8tj@fFg9hxu-aR26(3d4O>ws=hOkGcB zh3^=Fy+O|sCO$4~(H|49ihURX3*AwC3S$y5$hwC0vUm*h3eOtjk4xa*2q78|zkg~< zcC|t=U=qqcQ1YboZL+nMd}Ka;N@|k}`OWM@fQ?oL9HF)bEq0O0@gw-;7s8Yf&TM@p zFn{0q)6egjy?^e$sJA-itO+}7{(a!rtg^2bmx=+MtcNcX*$nt2QE5Og0htP{MY0uE zqNC(jDHNgsJ#xe^ftMu6R;>*Z&I-a?_&>A`!LO%;cWkaDd**ejIhxrTv$saqEQdYzBC_^;?GtV8fm@VbPxq zixTj>a8)mx#zQ0?m$L9vwxc(sQcgVz=p+w)6HkS(N&t~;&Lx1qz=A)Sv0>;Gu!4)O zpx`qz#L(Zr`VdGsKMPlRUnMWz)Ax2e#vsw#tiH&O-fQCXo4;T4gO&v`n!hpTX$pIq z-rCXoYl)D?zj`;YUU3u?*fjE$yLHXJ+`qCfJ&~<@7B;ZHY@Xi`&99Gn8p582x3=!# zeVN?c!R$Lo;f}$r>Vp#snxkV(Z4qiH9CAooqLr_~w#jX4nEsFfVr-kO~8A=v`kc5)puD%(R)c^!fwI22lds)mn^ zvGpvA<&$>)74Aw-k4>7DACuKdcZvF|`PXXFPbNcgKLc2%N+M^{2qe~i;Dl^~qS&$V z_NQg^t+JzODy3e9}H40f`9`c(8)xr+|Cb~-6!?{wi?4z$k7z|}v2Kzep zbPWs*$({##4(u7~!>|u^12DQC=pWc8f!im@W(Aqc4%$xD0Z1NHT1>K?XhLnNb(U0(zFGWF!1+jY+bFMvsk_xj)E@vCuZoNCNgolO=wfu7jB#Y$*yFMR z<{uLhXgKI*P_Om0t(Xz8!L&(&luSVH~N?j6SSgf z>g_ZaSbgk=iEC@iCJ^pWXq4T10N+C$g98Iyeb7Y>0`Rlgr~UmM?fbEWp=8|GCF>r3 zRJQg5VeT6{*Y&t8j?1?D;Hc!>{dC)~Z0>?>8e(MetPH>1szWSUk3o`6V~?MPez7Ql;X}UmxLO-2Utbj@u+0QcpIKTt<-w%sQeOm9dPb`TQwcJi`~uD4N|kWxJ`jO&^cyvuAyCd!l*k;-2!U{qgMDslIqo z`CRYZ&Tv6f*pM6dmCl@)tDdi)FS#aOtG`zAX8xOwuy=5(H(pRP+c=*S&RxIo&_e&K zTf!Ung?;1)HUW?Xyv&B-@UguiesoPRuQ@WqR2W_!biytvno zGIIPghv$6rMf1*U84FLpI{E5}@WB0H&jVb#JDK7VFU)LJxU zieq{nIseFPQ8cr9%AWGelXq$R#qHtZ^-<4;u;7Zj(Ycz4J1~`*C=-N9*2XF4O7}c>asCU2kWUO^Y`i-kJLV z%#KRD+p}giT-g52?eV<)>Ag1`?pszNvz)q-6?c24_TI7xIYqO<=MGQxp^kz8K;V77 z@9lz(%QnH{oT-VL^WQGnc*`afSI#{UEvgR}Hq1ZD;9GpN{>_qb{)6Y8NLo-E%il8p zg=y#e_WXE$VA^@pT^V!V6As)nwf9DL;p`Wp*)^ykOK@dRIo{Ws;~w8L``IB$0JyZ6NF@TOsdzW>YMjzUfTNU%QUiB^HM+2?XjvHv{iD*vUw0&7;vR1#F zTY9BtzU5j*w5&UtyL-Clc9!7IpEksc%U+zgJTV`P7H^1H3a0hb56q1HjXi66%S`Cf zxr^tXdm`qmiTG-wzS{X?*L}_Lrma72d8Oq~cZ41HO!tM0*1zK^TQ-^8c{i#W<|m_7 z+h_XYzN-1!sIU2E?YdbfCM&m^;-31+<8RucJA=`x12g@YlH8KHiszobdUoMttg$=N z*nOkCZhmjHe9NpQUfcF+)tg0cI>Qef3_o}*eDHYqo`<7>@!6huVdak|ujaohMGAZH ztE75=P z$hx&#M9-J^ih{3T+75`a_<%70d2{^;79@g{oOn(p{_3+ZcE;V}jr_8?ozeWJX(uJm znXR5X2!i)V)$eBI%~nUV%BJ?+Fxw*RFcYMdFQCzy{Wg03NZjteu>Jh@a8Av9Y1F=M{!3B&`el>bxame- zY1~nA!;yXQ;c&^uh5gZ-_NZgms~aMYuG>a^zHK@aizwG0_BSmIMtv>70;tRz$HE)^ z=FXdC4G~AlyJdCr`@?1Tg#Y@val2IQ!K6lhK^km~%(Oxg(xeJ!AUh z-RxraHM@1X`yIRc?flIc^|`9~`e@!(pe;}CY<|pB5%E;Si%Mr~)P?M~^8!Dd`1$=e z-1)O@VfT*ky4JVcJEqY-_Y1Yjncp{OeD@f(g=rIOG9B`wSv@glPsG`C!{G|Mdlnsg z-?zJO0N-XkSAb*|M>wNv(L$qdDfojHrRkV~g3{@I?>O^ccxBYV{q9A}o{x&LGu*6bh*dO4Dw+XX6)jWUVY@$KD2>+y=(QqhsQmBN0<7Za?#PKbiXx7p%g5)2zxT-7j=(LwkX4UN!0#1b zefoWS7A=?RXnyVaeK+%KruW4ySusmq#F7Ap>z1~6tl2k{zHgpyjplE?ZrQf_<03wq zGpXnocK+}zHU}@}t}f!Ko4-F+-yNy%j%Mwi-nFdD$;d{(V>wlkoT@o#etR@$^NfC3 zm*oz`bMt1}uxG)p-zRNcrfnmso6STwtN+V+k;?}bMR z(CWgCyP|m=)0s-I-?!&!V?H~v=%|0ko}Kvc$f6^Ftg{mfd!xl|7#$FrYmts&sIz|B@Q%}iWfjkG&pZ^(D2rEAPIu4jh&oE~<-*YUq1gvx z8P$=DYPR&YzwKzbsln&Nb6;LCM2k1Q?bv+FBe=cGUZJuvU0)qSe$|v|>Zyp3LsXe* z>g+R_Ai(kRWJK`B3+tv#VRLRo$OEGlA0Ll^F3c^*+iyjLY`n#C>*vm@Ka1*PMXd`3 zlqD}BmD4u;fY;U|R=#0Pt`P25eH|Lwy zWg~umy6gu*fzsW1vNso{yYoI>9uNhG=eA(L1`fz~WX&|j>}3&q84aeVX`w&d)ERbn zEjqgY=dYKol#2rOS zlg!xp?Cy&-;ev*R%xKomnEjrJ{hk{I<>87g*RrDpJE!+6hz%Vn+ccATXW5B7pDuTs z1b;PZ%qzQ5Sc)3+%ISt?IxF5Nz)pVm)qB&Mf2sds|6E7R zTl2|GH-EqGt@$+W$zRd0JE6bF!S3g!*%Ot*f6?ci%o6@fk#l0B@c(4EPFCt7qUGd9 zVbSF}Rjj*SQg&*c@OLd)p)I=iGWDTS-FsPOUux35*Srbu|5Rz3Xw?5xgGk}VypvA- zFYO{q`(>s`?@m3vXE{!m>3>-&Qdns^*=YP_gGk{<)2RaeFSq8N%F!?981cSbY&sP% zF4u?@u5*8Bz5bT4j>1Nf!Y0#~T8+21=}_;j7Lndt+uitaJHw5}-7fWnnvJ)c_4K~Q zbXsTpP!thL=;%@WPtV`+KRkrQjXk&X!EgHxWX%%v*YX8P4C*8u{@3GwLs0i6SRdf4 zDQG}w&J`eOH|7hZ1-^;o8h9it`)bBliz?BPZ0iNdj@%9wXGNS%i_2i&?D*z5oT-)K z3}&DP7mLe8oTkAqx!E@tzPYtBve>sQd`n1NJwY!@@CLIHW(RW+<^+AgT-Z3}F&ige zFdyG?g9Qll$nFWY2t^1BSXsp=t3)fmFo-b-`Wtk?QkJ(UxGPwOHxXK}<-rP+S;@Ya z1glVjKUj^hG+2YMEEqso9;`)J5v)U4$;w}c@->ZNsfvATz_&)N&T95;J-%(wzSRUb zqJ%)OgY?Kzdu^~8zw3gVq;-eaK_{BVzdpDH-x>}#mTAI0X+7zkN*jWmq}hmk8`0|R zXmtx~byKhvvCYA*;0_kMDcFYJn}a(MZVBFlaBHv~;kM(tK=*JETo95@CLDxn(ihI~ zRb2sb&IwuP_VpitCl43_6W6*@EWFs`G5 zBV_pVQM|K)ElK8w#6Kdxq$u!SCYEA;wPAdTBDr;ZYODP1xC{yfQdx@OJa=U>K0)@_ ziovGlotC$ryI9h!nduI9xDz6-`stH4xQ2eTf!*e;7}P@`rgRC6L$yJt&K!l4j(Rv> zB__P$)t=j6VrY0Z7_t@e4ifj!db)iK!FQnHHYkt`EA^>>Z2b`N$Jqn9IdnDs!Xb4n zBbO@HO_w{QD}jJlm9CRyRWCb+hUm6GVipWtpbT()|#0yZE2xTR( zvL|#2Vc)?lbt$QGZl-z!Ic-7=cuWn+6=EoW>2P%&PY=)!H2}qP+!1EJmU~SuxtjGoxecF!d{Sz%yco;CSE*1Ko9TcnBfzn zvKd~Y$rn5mS^FWrv{2DT)&#~Lr9lksL@*`%ooCOqc?n0?rkLFywfmPGn86=Z&zDEb zw!H1wddnzydqf;Gjh3(Pe`bHo-~(AWtAEjP*>T-a$t2h-768p7n@bXge5XisHw9to#r6g> z-mtf053vL-lJ&STV3WN=58&<{#)Iz!Gy#)B0R9V-1Fe`-LQ8B;pU2A=b(mHBg&?bIy)hJ1ZK>>{dMf8Y8GO~BjMR+$IHbc!uB--c^i&_On43_1CuveFC6+*x? z*_dwJm;>W+EXjmY3WOD7qXT2de$kC~5c+*|?A(ajIBFn`ENL3t-h-eG+CPc$Ie;cU zg!qFZ`cJ4K<H9J%NvqO%C&(j6LD zh@}4zFmMSPVG=eJOg^b-BB{M6NRYSw=Dp|jK*3rFk$wer-<5sQ9C7*QvR*oL<zXOLR9P-Ak3HYpe90!DbE_ECe4aEFJ^3r&_;m6dk|W(dx-QZ@P=!EaQE5piIA)a z9XX_0RD=xlmF8MC*+Bk!upR2YEU}rD9R%8HCS^-hpqcI;| zSF`>y=e3;cxqFtag13UfL%^Q0%}8aah^q%Q&>I6t2j5({t33wHTz4QtS;e>x@5Im$ z_Ee(UB--wog3mp?^Rh)nPx5by&j_7`2-bf6HQ{D%@pR9x4El`1U)jWrji3}V^FP#C zGJ3?@dc1zbUinVefgD(FE%+nrq4fuJqcy?E?$m%P4-;ooO5R{X1%CfM90{>r7u|Kb z?m_xc69R^6N-jNl@yWT)s4p<>_}G?h?Gc}UoIZUh(ED-&q#Ms>#x0Huw)3`cIaV)4 z0#<6lZQ2vR16BG#;RN3Jlb}4+jRLXSl3Pz{DKC3eP&Y{1@Ei0Ev^5B!NiZl7u8OSJ zNraBHn^NVc?I|0mBZv=?s>75JFD;)oELw_}@{7J#Ic<2>369dV;ak?#y&+V}dh-W( zA%)I#C?p-y0Mbdj2Tkb6h-XktLQnd;ql$y&Djg4c9BME)2AR+p_9WD(k86h;j<`+A zsGT}_iVc`-OK7PuaFSY4f{Mv$P0HdZ!xkzY_jCHuMGla0DNX{lRHhx{)MR5QGIRg| zhC4GWmRS+WtcYdSL^5lp^>K&mLeKf0X%R6v7-jfwVANi z70+be^ySW2KKU?1aOGlltOZ~-exncbV=dtG^ZU+rL3mAYv^({$Wr_&XPtOvXvG%c_ z4{l;$X_!Y)Zu-@gGM#s&fl)%5^XtJy!ncC)6{!|*sC9Rg743lvmPP)b4K3|K`!DWHueREXef!Uu+8WA+F4h~T7v%IN``NB#*43lT4CO1Qc95UKT3)zT3J zeF1A)bOq%|eyos=(Hkw#w3zB4ilBh-13T4zO}Js``aq{M=6ztX8f$-*qchfW3`NP( zV<^b@i2};a$ce8(Gupya z(07f&MPNeLH6=^$Z$RKmnCxtWn|_bGitq zt(}zw2>D5FQX-xSg{;-t1GQxHxbOUK!`SJw*)k676g<_S{*-GEhO z9@Gc*+YBq(f!3pTk=bH_O7o-a3DYrb)x)o&VI6ecD_wO_4gZj!rf@-eHHm&61|ylH z5#`nmni0Y#!!U+;nB*uAlZrI1EMQ_I@`_1zL+r*j$XcqC&`34;W~R&Pv|Af_-Vj?O zOd3S@d@HKWXh5hMSI1R{AW~vK)H^7sZrtL^>ZMgTjH^W0y?)$Y0#1vEPf(kXMjBSG zUPDvJDJO3nS_=A;E(S%$g&`u+9w{sYLsYr)NyB>BQE)AR>rk38G} z>V>z9C8zZ5WU0XgLsY%ew1?3IT&m6+#KdD~q1p_YSp%-POzP{Z8WpFw{H``8cf<9} z4IKCK&6PK^oq6g+tDwORRdHr2LVe{;Z&W7$j)mb%9Cxd*>-b1=HGIy-+ny9cxW~o` z40rYZ4$L)uI)38hQ5b7gCnL9NKV4J;dE9ttby359D4wGny0wCh8r^-%ih`g7_kG|M zGp7{$7+3#aT?+9waG5X~f%a27&`BH-H2Ir)t0396}vXeCH@%P91wY3Bq2ERTg4Qos+);BWXjqr`Hi9CYCIihcms~Bm=7|P&gkAVo zdEK?+U57WG;riwfv_idkaf|DMS~MB?3goL%6~o|FVn`bt8K}i zKfCSKGx5UekM$z-zXSyDdVIG^QORkW`{kD z@uZQJ>=%I;dsNnv6`X$FRoOT|L(U;G18#fC&T?#s#v67U==zycQUUTxXA#IocBQ0j zCMprP{J>=qF@AI~MA8V1rcH2_yhmeL9m%PNg}_pF?sJ0}#6tgz+b?gQUH4vY z#VxnhWm^`kR@-WlSR1;p0GdB948z7&gTjNFXEhyY2&T=T!6aI!JQTOapbE@aCg(?K z!>i^4>p^5*L%^?1hW+$q4G@Kz@+3TUQR|qlk4`;o!J7r?{v`bdH75+v5h3MK0i#Cw zPQE1$xz$8LNSRu7$-XPbsGKY{KJj-TJMpf*1vTnUD;+Bf`N@hr@^5im|(wzZFZ z=?t`p*p|+fAlOC#;sm#cfpowPZ6IZs1Ao3H6EVtnfw57#e{JRQfMRhUFmC5qag7)e z419mVR&wIY!{_jaR}9h*_UHT>0%T?PWl`n>eUsVhE~C{)?#{ad8PXKSLpo0Z9clQn z_qXYdFepC?e}mrWWFdVO0n8tHb<*#!UlOhxfjys!T+iX-3gr4NO65sL2}=I;80*kS zhy^wv^NCnyNhGr*nprxnU&<(%(_hc1jc4UBgnH@0=N=@<6WJ&YM19rs%`b1ix*e26 zT`TFJ2flBEK#!JdS&K7b?KDG;)b>WQKM1g)BOj!6e)I_p z&!kCvHyj2nvd>wQijPJQz-JRt8#GGnSy2LTcj~jUt;5X>pQTB6_jdlTV6Pxriu(hI zHp4@b>9z6Fam7axltb>6fMh2deq|Zr#-Mr)9T1xM1r-OO>lFU*bv{gQw7O--0B#r@ ze{76v(&=%Xg2a|Sv6f? zA0&NyGNcSfo&KeqvT%84G^Z=<>RR&T%$%kr{@hNuGx1b~9aUjZ70ICXp5J?+?|k2) zqfkq8Y3IeAWIkhf-p0Q{^cnS3%zY{9sR93!Ositviio#j(OX5o_g&l<^HxW^)r;Q1 z#~vZmcj3WrKghNBuI$>`5zxO8uyt%%V|{ULq#*5$=vL}OJ1EqDG#E=L31Md?VoTpQ z=}5wVHFt~wTt?#u#w1Eq){T#@BB;P8qr)%wWGQ4R|N0CKF_s1x`pOHwaib3o!i5f?Tl&yMaSlp&ALV!CuX;A4S{@uX~xh$VQ~%!-=nt*3Q8&P zQDC9qx76To@e(RW@HOEU)F~|=*ftyUKR6|38f_o=cR_3NgFQMsxM}&Kv4!WStRwhe zd(c1j+$L&qH8*YTQySF2ECDM#kaV7T?6Gr+L)!T7pvcLAb~uM1Wn6#KeE4CzJ`QCJ zY|f02tmy7COLETGq5J1>1NG_gdVUI_W0`XOQA7HZRWWOJvM7L{Cs`P9Ro5pyhg8sE zV6(y|>1+6~Vv!N0BIl)cMmwIIN2fwyrV$)?bDy=wvq?UlhFm7#r2lU>ARrF%jDdEXSOFQ@S=Q*Bz8=83qI2LB@>!667sW`wj{x(*rUF~l zs&fuo065;Hz*d8T_%2dctB?;}wL8iFa@PILol9B8;gWlzS?ys*d(sGeJIyR<8~Xn~ z!f~fIvPPPv9$ik?En3oPp^Rgj?^3^1Y*RMZ{L;27+pg5lpZO01*9?DpaA9xQxif6p z$+3+xdIZvaYe)|hnB{XI6=G3H6wvxrq=&b3qS60>33f#vSae432Nu0C7aBUodqj>+ zDESEf*B%8lgxfSZsn}$dS}88wIc|cyC@Tp^D3ZhRe}kev_lhUVL#;YV{Ac8zVvLMy zA*EmP1*_}U7X9~WB$P!DmIF-x^FCwIr?MBYk12G9Hbi()R}fmQ#UiC4ISqfm8`p;@ z7m3y-pNdM3AqJAQ1lm@{9eoFOCb`=jb-oPAKwM;3 z&W*nG$dyN;*&B$_q9{AXEcp>j{&h>?YV<>x29C9QCX8ub|xtv{qB6cF4pWgL>d z>#!SR;S~MKA{vYMlA$y!&K5N5G>f-MGW2=R7R0G27Lt6HF)iREr4VR%j@$#hP4ohL zMjZH+MAfS>I3f1i4`ryS5)>7wYe9!u2OVY+MijIP*fXHobRyTeOw$WHJCbPdh(;H>wnW(iLV@h$4LenFBK>UKW_m@We;lW?S-V3^lAYR-rkk z@wokS1i#6gC&o7&W`O59zz{uy!hV5#ttZkCiq_<@)6SPXJ%x$cpc7HjINvp`I?fyu z8D#@`43ixSO~U!b87szui%%TNpt2NLgk5L>qtBA5GFdlr6j&++w)z zC9P;^?UY7brHd}8Ynk0OA3~wFlCvS^y-{DoLit<1O-qGfT7(N5-}C0iyp<7e<#liM zC(n0k?{`A9NWNRrZWCU!<+S_t*js-@ZTm3=*C;qZ!4w5-&t%ki3;kq$_zB)1FfX7F z!xa1{1S^r&0)3|752^M41}}^;W3(uiZB2KA zMdNUtZ(VZcoPT-=%o#(}SAWs)o)4r#)K@cOxLH*CpQXLLj=#}Ks!O?_ez*=L@PyYbP+SY3d6zQV z+k}7DuHWSnUTbsg%Fw@V)8YMfhe+=k^!;^L&aNtbdd&7DiU5==uu0IV!s&!as-Jh? z2oSIFl2MTIBtfgVh61SO2^gv^uPAGoi6bY}Gdvegem-PyfV4F5k6mVnbv`x`Is+Eu zu!>6%MVA`Vjlj6#kd*epfE=F$zmd!afiG&6gsCGPZ8++H@ER<_l_K#58_5kA zps@X$ZGXfWR8KJkS}T@{hpnWcGjLlw@~CRw^yf(RUkS)|;DrI1qj0t}YA=QB9Gw}~ z<2Wcl4)|;)+^SeJ==EEfpL}Q+9I%mww<3rJtr;*oH)iky{I^^U!VhgN`u`-htek3^ zAhzGrPD}eeEOta_FY7wR%|Pt|aX25XP&Dm%uVE}Wbc{s2%&d}sYZ!re|HKKE+se~J zF#e@8V-v7Mv*BJ`Ei-gySY{>&hO$3b3>aot*E4xL&6g_Rwb=&AI+O0i4xJ{UA4(d= z{nFB7U=q{4_B2P_+zq#Sj$vNMCq_=3(UcdoT5VdBPfL(XqEX-jeHq5Bn8b;bU?C$T zfP=ON=nssH9mRdpelBig_fB(Xb(njb0(B#F!>x^-@F9T~k4cYU1ZBgcUmi_S=*b(R zb`FvHgEDT4<-(}+8nWD^S@z-uh6FCCGft0&?FBQV5qm+{P{2u#-$yJAh^)|RI11m% zr_X7t6?qu}L9(9PuOnEoCuuY)B9tc`tqShtpMiVX&Nz8gQp%IyWNKVPfK5<0DAXh6 zL=w*vw6HBDGk%g0*yiMY2^3B01HBa;=wbsI;Z5$iSHfiQ{T}jkC?pbGz+>H*B$2X8 z{nfy{kk3M>xN%>3Ms^>wY~}+B zUxr*og{BDZsi|_=ME9%?<1eokQ)~vrQ(Gh&XExg_HV2UMN^wJK!oNbo|3TABMEsQS zp4s;GbI+WM!BvGhceW>Lu7pE{7(DzqOT%RwW6q|Cvk6`yW*@jXF}-`qk}-Y!!o)Ww zW=F%B<$qlMa_!aHsAbc#S+G>CCfg0DK#%`#uR}lql`X`A0s`RF+UMgqe)nj*gdD~p^dWQct;q7kwgdaLIz8NViF0G z1_WC$BEuj{6N1J;kueCxCMZb-b=!1fA{jj$)Lct52H~ANnr7nT4nzNhw?t{2l#i;h zb(0)R_OeKLyX5PXog_oDy@wHdjE$=*;aQHIIl*kEW&N?oCzQ#Y;u%{qPyI4%1nS>)X3aFi<4V|4#%3IrB01Diopc?4q_+{UjpT@;DDPfXyL1C-Zd27n z)u8HM84Sj92$qeuu&sP9xM&E(?G<4Iw>#3X3epPyI}p|Qc_E6s`CbE_M$w9uCV%P3 zjRfheA*bIQwkCZE*iu}NbLdea>qlsdY=z5a9xJ_t-%=F8N~pzMihMKs&JZvcEC@6V#YXGy1BFK&(hflomC+*DX5{H}wQc7rSB-9UJDIq2f z#Obz}7F06~&6T^SQp{TniDUCY?XpAv=gJGu`a~_UXHc&a!wij1?#HbI3~wsVD3Wj| zQ5G<2Z{R>hnvCQGowh8HHcW#OsEu3l5g@`%G!&(9(5qIH7Awl!#4N8ml+NoJ2D=J|ojWM}dS=IQmTu8#cBOrR+~z7pcd=pRPnI<{|EZ zR?g~FS_=d62Y8h1q9LHQ@)&4aYC1>FW~KkIvZvzlhhkM@phb+TtbZ(Y9OlT#E}N9p zw88l4;h5RYGO5@-^zis&(*HmT8?Bay@B+;`hv;aU>UhtP@%6rE`evFIb88n3bxZbw z**#Hv-Bf4X?0mlIQp?4bsJVE_?Y&fRv0(OK#0~#>wCRrGl(po{y70vLCuX-soE2e9 z#d}UK91A=VwkVDTus*cMgg3VH=HTnfvr-V7nP#Y+ z&!EP!uK>>|J)dzx&tf!gk(!rumV?GYJ=<7Kg9i53++y2xmvdCuU4Qmu(qG^QmpED|0dqi+0)CF<(xqP`LlHsVD|i8gm*JhcfA;Wvb2MZ9 zR5wohGiPTf@yoeBY+gTg`nq}jk`o-+sIx9?sarPajh?tO`@+-bpPn`>n=Ho7@Lxt! z+i43_HnQ?(D=z2G<;+{IJh`wT?A#Q#Z2IKGY<9vEDPz_*3^@23J)eSILdQOXaT9!6 zo^Ol8Y2E1MgLC(VJ=JeHs&6Vk2j)#zCKs~8p60h4&Ezd?)145(-47k@S;GJ2Xs-}n z%W|}r>RC?$WjK=41T&-z z7#U>BHV$_|K*jh*%---ROfo?z!O8fsaphtP&R^tMXdP!C&?kZw;6GwBD)c9eKPV?V zhEORd&qyQO56t)kKSq$7qT!D@AA%H!iHUlo$Po5x$H1w5gPOJP=RDFc!(o*xEHf&Uc{n?RM>FCNP zAAx!|1Pxlgq{3~`?|zgW)-VXX_0$#|82n7Dp6BEnoCF=&a;Sy!SlRdj70cDWFIjz`1P5}SxxK&oEHPJp?K^x)V~Sx1K0 zr3gbqN1$k+xM!gj&}Am$6I%CFh`_8XP=Vpm3gLssyP<0Av*}1`F1Se4`e9;WB!B@; z8a|6#QApDnEq;JBmQ|F4_L7n0Id#QdYF(J*jof($N-J^)EfC**)X4&n~9SX^?fIC;RduU&JZuk ze?&{ay4&j*eDTiMKv|3G82bV*})eQ^Opo}Okx@|D^fjn2Rd!g-`h_iSlf#9;QEAc_TW7U#kN7sKx-H! zH43=e9z<0_0iP+>({9fmri?f8_m<^e+wD06wKYM1M9x9~-eWjVTY0ZPcyhYT_uIML?RMO+X?$>1U_oY4Q@) z0~)B;vDQ!|zO|;R*dW&_L;QA`=V@q%kvXI7{E8k@nRc zlV-j!@WNNhj>!TIW>%qv9kN(6saxll#lULV+>SAmM9dNQ2SY4a*+3VvfjPh+jM&%7 zatY~slw>6&aT1;MQ$rUK3szQ^Z`Sal^|JNiZ^2k;-pAcKz2Xd4-xGGW!*MW_d|J-8 zz-28dDegPJ502+6UaGrNcclb(QY<<)GM^2#5j*~ER+5DCH!Y0DHV;NN4~940AI^PX z(Qy!3&X*c4HpH?5k*q-2T{~Yo-}!RS)t-gXKk5(HwO(rvJKMsRw!3g8NS%P#qUnH> zJeeRS4PXN3(tO>%M}Ptq5zq7tf14eT(t;uKtE4hd%)*rX6H0y!+a!`Af10l;`THpU z!P0a+OG&v+sVNO$qoy=pQ}Tnsx)#tQf10I0`Pq?EWBJ3+3yzWCwq&ZkTzOdJ;%Ey8 z)s^@amrXIc1NZtQ(LfSmAUU(|wSn`3!zU%1BMN=VH%X_DlI!@+025j|F3PtD-wQx9O$U zE3FZ4_Jx4Gfz&VsNaad{k{Kk#$=|=G52~$ecb%J_OHDduby@ zdwoUeOzt!&ImIeVKiVU-bEbuobTa>h1Tmi}GtWRJGIqAZy)TzTQqwLJOV)po_-=WcHW}|_{3AaJC5#irP=v7?Wc5z$GQyuYC z&+DU}b@TT{JdI&T<4qnDcBIjs!}#)fB7xLe3rq!6xE`fRA=zMvGAaaI2Hs^~5>`q^ zcHg4*66VD05pH6#Lrdvuh|wmog0&<`g(FGTD4pshyFiY$Oo1ik&axHIL~WEx5L`^O z=e;6atMI);(}wE`n-nw%TZycfI?BN)Wg?O};ml}eB1r<7X|?w)7Kn?kOtly;d`wF_cpre#EmT`5nJ zCX&8i7c@`k6M~t8;=%Hug^YN?$4(|ZfO=pTDl%SouFC5USSL3Pa9NC|62wl)bOj$N z6yQiMjh{RNe-%uWp~z{V83>c>{(+v|J$Na*0_0)Nc;+c~Bk^3`d}q|XVcLW%ah^Xudu(nZma{36vuVj*9I;m|WmSe9l}lxt zVr9LNvR*j*zG=^n*o$s>YUi6Ho}FRG&UbvJ7qjM0({(#lbEo6G_CSE`+ABhWZAFMX zYO*5cJaRF;c^20p*F@|!|%;@~)h`lFl z=pm16Ub+*5l9&Fj4U|rXLg~D=*}cmvyzX`ED%ZbWCL+{W1?XVH?(ZXv%-Sy5$OYR` zj0!oJHK zghsp{966!2^kC?ORzHmq))VsaC*iQM@87CxX^r@cYsB;QC`=fkDg52fNMk~pCqE;N z8EGC@(~#XtHD(`L6SUEgA@4uoFFP*q?dJcbpC3^`14vRQl>rH-WANWZaw1|TLNvv8 z5VnyqLW*r#7A8ANV#*{*kF@2hC133o1io$)iypi(T)!=CK!g93mT5CyAjveCjJXLB z5h;;EFATH^E(p^LjzXeYvM%gAzmtTTSkcQmgVl|D4rAF>k?gAJ?q#z3NC=g%7&D)F z3PK{R;3eGBcmLdjxPT{n6Yk)0X3y3{@*5yKLM~XO;i4U1%v~07mra|NO?qSPQYCKr zdb#mxW3&>6b7drR%Hb<@BPuVejg)P?oP8}PvTff~=OV5a%F6xieetS$77gV%;*-iM z?yMsz6>iPJjaMYN%J}p{FFVQTtnPOmF5H4+b$<%o6rPG{wpu71G+VQjk97UdH%#;~ zN0oYs#@cvg;4MoTeTB*J1DMLMICfPEKXB~YB)sD2Fbb~~IXZm8Yqi-O0payZ+pdlJ z*Efh1ZnAag^lykFg+@n*SO11bq|oQ+sM5btDN-14bZphXu|-7KeHC}upM-*xgbSLr z%^4HLRPfm5d=nvU&gup@3R-Q&CY`kKN3s;8qAe+uq&$OSf`@sR(sT(lGIA2jI6WF7 zKa&r#SZ$H3_262W{b-@K$l2zvoy@WMYcc7N3^sp5I%WQZTP&cOv?_rs5YGAp4;CC* zF@b)Hg@YTC5YXDAs!tjRbySH2PkB(b);E+bo=70kwaYdnl}&8OwEa1%)|zI7QLBca zk-IFVQTVAs%P{m8?lRlPq?V}lRje*8c?9oLnklKYQr0gJWU0?l2xi&FmnIJNXkuGZ zB}`)qVjzO6MA$9%ji_ijMYRCyg;MnW@-yP&pArA=XT<;cXT*PJjd-O8)HgLnz}%PE zKj?}GMV3M?<$(e#7=9i`Y_!zwmPY%lspsFz~GG3|mG zxL)vCXCn1>kewb-u&v1qXlP{Mj>594SXq0d3{5~y=$HcvyZHBx-ShmHXV1<};wm%W z)`;&O)WcE}JDbv?aEF&Ad2-=E)VDq2+m+x0A+b9zUbF6H`&Ii)_oBCwZQWD7)0?My zKl$)!QDN!1Wo(4t=V2qMp>uba2yb{z-HpNP3-t82A z7I5z_5q{QY>vrgWZWk$Z+PVw%KQ9m|EU|U3)Bn6qq_EM}-Kzh2i%8*4+ir*cFYO|Q zPTTH6{a+S{6qeX_*X#dsorrJ*K&L%ee*DyH!&jzMxI&LA9djO)=Ll+L={5u99{GxFlymq>M6k0Gw1axCx!2yCmC_wEHG^@pG-BK>*jxP`OA^|9k9A z2)YF)LgbN+MXxBXCIG#9+E_W7*^a5=CsvHR!s;QE0@j9xm6EwhvP;1}3018fNM41l zArwLhAcJwOKo<0=%$d`tnOU%6^ zT^F&gTguGCX|!Mmz}?wK=h8Oi_**!8;Kc_oKNxl6rrjk2Tx%>ED%e`!{4_K|d+6ZD zD7@dp*R?o%>`(=>OiZknG4aBLn`vmhkx>So1nMadv2jMg_<`7zYsl-Ha0pAV(T}#S z04H4{CY>y1)v_o`Dmh6fc2GBxk=&~K1?YV4YrG1>V7RW}4)Egw)X{81VwopJ@ zG$c~m`H-!X5P_3l(Q1``MWs`)g~0wl;{{9_0C(UbB%bBxo94YQ=Uv6U>2b6D>rXuM zM8urGa)V7)`U^X%-*c2i9Cb^s{MpTm<(p&W-I4O{m}_^$wOdgK3|DUXGsCs}e|q>Q zhof8fhPUi{b3@qE8+P=rRu>FAnjzVU*$eSct>%7+U-w}X}#6dx;P z^9No&boJ1D?=@%}Qsip(w8qW+3c9=2a)JUmjS+hiy0GMhDTybUh9i^C8Ga)FptxTg z29QEifdj6t2^^6Gcjn+mvPBvr`^L1snnu>K<(g)RjDQ?YlmorkwBXB2Pk5LE*A#k@ z+w^{+|J&)lCipk$+mpDjQ(b1GeP{=knlf@}dy%x9txY=gpDat*GXNoP>NBW6q#dVJ zG=iNdZOH>bE2&Rn^wG~eE7V~@M(`b) z)Y670KpTKLMmlu-D-voLvtd%v@%K-9n5`CaBpE(1bDF+8nU9T!fGm$I9Q6azMj%M3 z1;L#yDMk)t?{)0tnTgRB|1nrmQYL1Z31m)Wi$c(V0&#Ps{D+twW^5q+J-rb(h|?m8 zQy0-9oLnJFOnR4szeONtK!E@b0aPOfdr}3gaT3-Q-EpB&F}%uuz}J;G%}DQ4nH2OA zHV>jgU~@=^x1HZM)wyIXnC-l7EnTu_l5PyK?`E5E_u{oKv4!JV9c{ILjSfevx$Pt5nm=ybAusTd^F%Pm)1qQzUnMO#4`ZEHbL*fP`cp10^y z-^ISUra#VD^lnx(9Ae%&=se7KUiWTL)Eks9IL|bJA()eQ>CnYPmxeA5%^i5@!7C3& zvm2+oEdfj$?}cXBF+1?sdkWuhZiPojy{00)p$zNx53K_b@zr5^k!XQhB1pz$tqDsah57~@l_o#osKn`ErMy97JE}z_{RK;hc4qdh z$e+w;>}D(>F`W-o12+hGq$*DJp2B>040`WGnnZJ;_WhtZv5S zONv*SRBZ1`Gj4aEzZO(8jNacp)xYj6k0}@&Y&DJWPLj<0U1AqV8~@@O@faIo%cZit z7!!(slXJS5Yk=o4DvTWkDLzB8ofOX~WTGTE9wyAmnPIF5nnTV*V}%hdB^6M%f1RcXz!;-DXe81)eUy;w7w|$SMU#1ID~k6B70mXbNcOV%sa zMN2Ji8Od~CICTEdg`x99%E2$Ada4_O$lvbx`o3qNghO`=MGX0L&OAHwl<_4>%tmdVXDtD2Awny#da0va`7&qc5i(4RTajoVjaq$bdP09Quu3P4YGN#HFvbygu2j5?*?AR{6 z*6Qx65MD2AH+D4(Z>%?U8-zEuw^w(S0`J@T637m{*i7-fcfQU8J zmLU6*kfcUfuCNi+zE0?ZkcFJkP&l?7-63%C`IF9g39Z(May6YGaPl*Kk4DNEQq4`I zR^Qmsgw`Z`f~4G>rfjHY;Na6=n7;JSBJ3fQzH5KhAb-=eL!BAof84#y^!;GlA2t}J zx2E)|()Uso%ln~>ojhN3Pg<$q$CmQH(ju!chTMmsG{>I=iXPMC3aTURmG!C!I$-JJ zMCdLcx&u->LPkwbW^rQ-{}ZLsZ~4pFpYA{wN5u@WuB39M4$4VrQz9-K><%=81Q6Fr zq%*_dBBgr^ZRT|!pf`rg{|av^OM?htCJSG|(!f?BWF|Ds+%-PikT34S?4pB$4jf9)nCAVFw;r8ySPSbS?923 zeO^i$a&{=*S~QQ<)e%?qyy?2D5w4oDn26(2$;Fa6?@M`C@}llK$U9cmw`9o;=he@j ze)-(hbJr?MN9Y1qB1hE$iGRv_fM8fjaGJlWcHHR$JBw@wiWi)ViU;7A~M-q z$e8-Lt1j+vgIS-E{Vx!Rka-3a?(T#JF$u42D*`%x-Ph2SCA?u22{oGv=)JVP20wn5 zr2{(tS$09!1|85ey>GB}wHbfb!oKei>Ag))C|lGc{m%{7?u?Zvo9J6ip>X?g1S_qb z)3M{!h0J(1N$6Pp9)ivq{g*(fw8+-x%bS2|qQ_#Uo zbj3|PEjQ1Fv99);OmAVftNpeeHXXJn8}Mo|4i=MSwyVWtu$UwRUM(i`u&GQq>{J0l zas};@8%}^SWaln&@-jZb59RPm^Pkb5$=@bxG)xjq{1m)L{M;0OFl1iV4%blJ2Lk2} z#(87#?Sm_c*ahe0Q;=>L8XwV;VD^X4o}>$(03H)#3?6Kpp9^PJq5q(w?$pkb3u{C=aA91GbBvCb&dN0ReW2EIXydK=vc zRiY?Zx`PxY#>Li{y&__-Sn`z5?YUM?xGm!84m-M`CB0gRLVcr=xJ?aSi|d=vFiUr` zB_`1@$ee_PE&VpmgaqVJC_TZ*oD3x-aS76HKvQ@@6O{)NK^=c(`sulv0=F>F)1k`b=&4j1o^msgWlVsbCkfXy_c;XP-~AA4hg)<~fB8jwmy z*wV3j$_TvKltD*$1;W4kG$n=%PQB=c${b=Z`d4{wBD|Ow6$cYbDq{jQTGC%g9u=B= zxgd2^l4O~GPh)~rgfYRn%3Ah=idb1wq^xP-{_B=BQV0~sJ4e0z4sYl-WoKc=xWl1U zsKq~ek})=!NiVZ*=GzYRfu&Lu11TrbH*CeNIK)~=N0>6mxv4!+WBw7%zinpC2gTv? zu9lmmYw_0Kq{WJF0&0iSVCgUlUC~k-wTCB^^V7AJ$AK~uq#^1nae6d;IJ^t#n%S&0 zlN(W|8(Bir6Y#Yt0lzbg{!l|V8`D)yWLnRw+m^5!{)hk}F_Oxixus|tEO+}r9y4_u z(sPw)?j>Lpi0LRGl~LKwFg@Qsq#$*%o#L2en}Cq{)sh~fw_yrMy_Tr@^TuVb%$JQ@vOUG&;>Kv!`mgTe z{h-#5pyAqsp0MXOVYhT%Kp25xNFpB0AUK@l3*?am!C}ES7m*lA->ipi$s~qk$L}P< zLISC=!XF3`7@5f)K{Nux$zqcHfM_u;7L$=^ofhK`W=dJdjRCiu*)5%%981t3{}WxF z{7PCH1lkKoscZ%RrzsG)CuG&FSasU=`X`Gk_A5x?n=w9HmaxnGw8>u;|ZZ@k~lOCH$`m&99zP*5*fV=>P}#B@CW0o z2}{*)P};X7`5%CpCq;9EbK?y#Q{RBDbJvVU6ushmGtq-xTtMO zQ$kW(($+9QG-}E-Xi;a)4}H}Bm(!0cX2}v1_QPE1P_(t6OVWvG9H=AflfmjsFW zq_*h?)PYiq!e8~%Fiz0vVHH;mtBI2Gp}iV+E%6zUuOMLt!IzM?HW9174O&?XJ#2Q@ zNYR|MUI!Bp2o33jUvFgBiHuq(|G}>(r|jQ%@ORY4CcJ7SjYkq(_iqXc6V~)CJj!P~ zZQBwf`uXb`v}&!|0*sc7e^x=gcHLH5xL+}LYou5)B4u~4ZCHityRWgtI!bN7UR~pA z50l!TX02eg9mJJleD2e(mO;y1+P|tct^H~0O3W0X6>2i6kJ@5_6uRJyxvTf9slXEj zEync4b$yi@-_r{7x}hO*e?eLXLqn5vH8lJca=yS2|HHTGUS>qo&)7gU0VbmYIsOSM zfZc{t0J9wCD%BJrJqElT@NvP@KT}G>*T}?)t_K^4niH+x^^=F<*5AUhXrm z!O#7U={@gw3cwNw7j;J+-7{O4pyB{s@~F3Q8W);Diy;v4sJ2C(?bpVlo{q3%@2i7R z$KJ4~BVJM#D`}3DG%pA9brd$TfHa&N>@IK5}dU-5%rta3}Fa?7HBYdo(M|85!e zrJ2*6kkNtcrJD>lM|_)6ztbD{mCS8??y0b=aqjV`t8wP3cRZx|9P>6syiGCh_K0`; zwGG#fEqc2?x#=rGpf52_bX=4e6J2yzRho6m<-qMih6d1 z9X+phMIAk15A@8v7oNKC6nMosd9m!;NH(rze7Wsv+qLGOZu`l$SI45+`*H4fduDQP z`U)>Sb@3^5&9@=!>Rssiao;O_ukHyq^+sL2Vc!NCmV$DOQ9)za+p$m+-p~>Cc0>vq zZx)pQ32v~w=8YD#g}r-TwM4ypA_Z+X3rc1zab9S|SC31p=g++S)YYe=xV_p}k5T`V z$}78=I(*pGd2LVB)fx6}f8XgNWt7B-x;BP=8{@vBOHW^XdcNlW=k875bUr`E$R7G?g!?A?AOC4NZu-1_+CAIN_PNbe0Nu;+lP^ns*BMW`v^}Y{m2|WIdM0 zXcdlspjAZKrd@$76=_jx45IBo$n61>)dWow&1!oJ?H!XK7IlzV6xP*F5C>Am__QvV zdI6Zz1#4HWhM*t)Ql6Vknb7zgSd8PJ4gQoYp{%hi@jKwgFZ;2_x*%)=vXJ$0>j-!{ zt!lY61EU%`QVjJtsI942z(PkP9ZCT!oPybQOLO0REtv}@7vPH_cHM3>7}wnwYCF7E%ywUWw3 z+ge^(BCj@}aJ{VZ#rEghqopk?ohuEi_LcLOEz#m#3;WS7k?|+* z*C{FxgVK6K(>KOn8ee@N-mvTW(eKnnJp&7UzuZK2HiOcK90qFHvv;%U_03Iv<(4N8abu5db zlY>ezW!mD$9v#a{p$ERM>nG^`mNIGRtDpfCt#iyyKKRERr*y2@rGX5hNFAB96-J2F zm3Ben!KL=sk8)t2!zi1)Ajm{63nwlf0|VI2q6UFz=|T*dmaVLzRPv+rlW;ZR{zb-5 zMCjD^hI}8rr=VO(E4kcEN)xK?&gu}z5Mmn=!!CYluFByA7U zdV&;0u+X>1nzvux7WekE!?TOKaCRU{a#byYtSv~3P3zw3Wye}$%Qv2Q>4~+Cn{U|6 zzAfbN*HlrRDBm0_-@IA^Y^VHC%u%x7Sg-KEoS&%ajMa2rt>}WjJ^lw;Q|TgUaVgoD z+WA(&U&u$2`7uE|i?3!sP`PouX03 zv(9+?KhQHeSXC_qMvLiHn7XUYB}-B&(&jQnkn%;E&k>Yip#cq9jp zHU+v~*pEr@l>nYS>xF6lLNT>ccP@7(Z9E%k)RCUYF&HQ$m`e z0;SE)SCH{e5;4*O%`{iAkDvkI>+U*<(7#u~j?vO#b0%q*niGN>#iN#8P)Do~as^)# zBCK4J5{RujAw(caD~V!c5V$0i#_9a*O&S(Y|8264_;X=b*dw2|h3 zo2>H}&o5Zl#opT!Yu@vng1C1OPaK|wQSzVteaGG66C_cgaU)3JK+o*vHU{;}PCYa4`dz7yNM(T7w&H{KOHJ>85#}_uNX0NV3 z12ooZM`@r;|9BI~kfF6SoYLGAA+oB8@Mm{CHz!1}^KtKKqJ}Y9X zeF-2&euR<`C9D#}*2s_JC#(T=V9d*4fihjBgb)@6#4MdrAg_SBBs#fmH5hd8zfP;+ z5i|k&)Mv`8Tkd4PH3*H7@K(nN#>TzPfWY2-`~YHrQy*Sq6d1f#wSoNlV};!RG@_}M z0M;&*EssJk6iCNfm7lDb*BsCprO22tnsU_g-WKpwTNL;>0T+g+#NYV%GJZ^q6xpPR zz(~iyAUf1c(o!c34upvJApa5#S-Oypg-^-iw7sJW68{Z`>J}l67%CDZCcF(XZvzNY zZ+q0yetW0z1<@&#L#J3`+npv>Olcfek3kIjF@%aNCrg%QXs;;zd-(Dlgo*#05pPpE zK|Y*SFXAa3p^cz<5J%`JG30X@hn%E*w{=06Ile|+_+=`|QokDHmQD1Nh=k_+yNev< z6O@y7kHB^^2_0FsNC8^XC6D#=tcDW)GU1K#Nvetx5?O`+5|0e>#^MVkZ@gjNE7=-^ zsE}{3?>9q`c*|U5^D9qr2XhO0RxTuq5KZFl`VJOCx@<+150XjTk;gO$Cat!5=XG=7I)X{Sy)*}!phB*mFvj84q@eH9G)b|z{+ z)h_(z>lO`ACix_y5!eEdPa-mb9@1Dazz!oAU*82A>wY{)&+8H zDxw4bG5T_g7@NRe)wq%f7b#!@-f7oAr}eu=rcX`7eOh|!VTd~e1^!bAq(+|F;SSy} z2jNM53L12i(`V)pCINaBY7bvSTYyM(;7`(l3={JR6q0n(-DBh>J(}=V-^*`7&GqxPluz( zXqX{96eu;q1A!%Ar56y_>VhaB8pMmiH%!EhfsG72=fT6kmJz|)_6IR-U`ZfigQ_@5 zoOn{0gfXBNWdhFY+nCcK_#a!~#(etp8H%`|l~&gA@#*t(@TNaMcV^QmsC%4J)jbra zp2;jZeCE{by!bixgh5Hvf7DpEc5u-6`-Lz7GL~I>xHt+$BIZ%(;O2HA7*+U-fVpJ0RIvtmX z=-e=4D(O81p|SzX*NAhiA{gfD0(Etr04e;4$csBs0eNxEH|>uQ7f<&rr-CHX-i5h> zEfeE_cz5La5oo9~0wFuBW2IEB-UsZ2EFS?XZ%`B1gI^z`ZNZJ`x7Nu_6w4U<-wHX< z#*C~92pyfoycx5H&3^Jd>s0ej5gzW@JX26=mZ%cY80A@KSaOf|40d&2mCeNF+^iL zgg}Nc@p1|Amd0U`|BVDFOM&sQ$w75MFNLE-2&E~e{+IyxzfeO)A(RVJCPnd7UPWDN zv`MYF!SUqFe=hq{_Jsp$b{_&}zAL%l{_7V!7be{NF8qr958KwO(5BV)^ss%cHT)va{6)+P11G)` zLtC<>?9vZEu;Uk6_S5&vSg>Ht^#cQ{@IQM9@tJb{ABOj0*sjz{eVc4o>fxWxdS$Z{ z_pf(*`g+W76uA0Y>~B=j+c%mex^J=2{U%r6PUjmvo_??G%^V47%6UWNB<<8&ehe~T z6H;+uFKW<9g&rF0!8vDuPm<24)V<{xBO~CX!Fi>fMH;M1Ig2O^9Z>?P+otmo(DR@M>a11*v#4mtI0&u;(bNVUOh7-xkaV?I!+ zFzj$5-FH4dDM~HM_#X*jqvPzPa7^kE8p$1?ZEifLhrmGFgIR`{U|vo-DcBl&J7D8cVkH}?6qPw`H+&i0gnua$IGHA59j9NgQBj@>59T4b9HdiI z-66p*Voh1}wR=b1by{zPAMkZ7U)^aq7YzF^V`-EKLXG3@-wL}W*6rwvk4Z9I=XOk)=? zO`BEBqQ-!6-DMo_+Sd~Xj7P^X(K;-CHj@->aXet>8MLBBnsU=fjoKUi?^xDDwdyZ* zZLqaD`meUT**PSL2@675#R8u~kghcA%WvZwB?PL86rvc^UO1D=&ShixKs>u%Kv1h~f`-ObMdg3td@iZ*YT=jIrgNYJ1)m^ooUqlg9m*!*8knq%#*cLYF z%Y(6!jSzmo4e`CwTE1WC_AK-Rt0}He6t%{RS{K~V8hXxq$-8Wc`|6kPgE{4bZJiE| zxVwh^TRr)i^_-fQC!+NT1N6;f(b}HxjK*>fMjZ$L#$80#kR=IEN6gca@NA2Dwp}i~ z>Vd~ct8>?SVcl|nys&v;@Nc|jYrgV?Z)?oAHR0PH^KHNC+lfBCds`#h*FE`*N0zs) zz?EbN8c8lmgh$4$EYdNf8|#Jj(ESrei&}S++W$@88DmPXmJm;nBMHj9?Ug;*W57BX!&kS{a_AE>)ZBOEdRS%LYi{A zX>{nXVa|c;p(b%2^e3;Hp8C5~+=2T>;7a~Odiu9?_h(2_8Evdb2yml<9Qk!*9$-j=ybwURQv7bb+!N2<0yyKy zdA98>hkxDSeb&B|wd_I^0$<1Kp6?7K90y~LgCN4dXNO5uTYEQgy2b4j)g)daS zg(&F76g;4KH<3{rV%ZJXyp12&a0{DRCv0Y~I%?R@<5~gy9xa`S*54b=>s_z|xGXou zawwcG+g^WAjUxEchhdQXrYl9;`b?HLOs>8hdkWn|rvk0zTc1K=q??Sq4_XZYiK!Y? zrgP|wc|rzC3OFBOpnR!o54<;XunJ=+n7BC3v{>OJH&O@=&D$s0EEDx1LP9DGGF~{7 z@Rx-%({+5Byk?z77;biF*vd6hRe~-FPJJ5QJ&CkYMT95Lh9-#>3&tJdkcXM*q5L!K zaTK0F;eX{cUQbPj<`ADXIFHj6D^V>5&7}GB`0D(*X)WTWqGQURh8`4i%%KV8ALa0@ zp~+KcAsnXDn>iRp;%N4Si`$Cr0G|64EOc?sqosmb2-{a$nslb|x`TGs%;c2v0r~gw zIE8+Z-=vI`Owa;t!@y&K=9z4Hi}lNeSFMd2DFWA^D+6&a^fcDprAzfM!`(`2)Y{6F z1>C?p5ug3690p5NTO_E|M1&+Sk``bk#LNX#4Vx)sH4wN~9W_^{Tm^_zyG=&K5)OTU zZd-YEq$B}p6MlzmP|Y)gVW*K3KntNz7qA+Dutp?jst4${_8veA0mE4luG83xDV#q> zAPqG_!nkm$tqu}%KnJQB)%~z7U@5WP>Ng#E3XH%npiBa5o)#KD@T^^Gy>=) zka)Bo%7gI8p#$6vYU}W&Z<|cS+8YBfPh;-w#pv0`?3qZ4u`C{gR zBNy+W8JwLt3;Rb35q*wa3h288 zoV~fTKwV`HQp1~64beJ5d-~Wr`4ul0uN1A8CTe!ZYId&s{L4kZ zTlGrS<>IxC?e9Zbx#Nb#RJ-facBr%Gl`a(}a_i!`b&7s^v~1%_$I5*xebJK53kR;7 zo!Ld}zUGz2w|%>B;Cw97-1X&}3L0;j?Ab-Ymf?MB|E2xQ&Uity;d&*i;oI7uZF|!rQJQVTlN8~phP!?W zgUFgu_?v#|Tp8#{W#&w1vJ~L0((!u%P|U}7LPISt6JE(0)U@?ApqtU~5!%q~U%(18 z7X=s^TgLBfoi;u8q3Yq4G~V!itk}#Y!MC~lmmNC&tAr=5J_!|3N;ka&o7VHx2I2&UACY|)uW=4M_fQov% zYIfr%N6>*vwcvs_MXY{2mK`YZ9v#HZQqlz@naM{O*NHqh84NYfW|Wg71Thq16)1vG0z0t_|D#0S8~6Y}Lc4^Rr5rC11=~IY zPciVWE;G~hJ-kjqT3}=Zus%6qXq0>vCBI6L<&TjY4j^DdUi8c(7av&yOSS33zBR}< z;aYSt5_i`UO`SvjqTOD^4qCRe!%u&=LU00tR8+53Z+QNZm4cP2-+knjM_!q@+zSX( zvFF|LO_yt+U7cNi!(`6h4bt0JypXfz%#Jxr74Jz=N7=hV{(^c+_PkqMzY5nxCTB59 zIJ-~+UhrCCc?}EpHFx3C1K=gB6;&pRnqoyz?~WI3S_#IAHZM?fFANDWDy>TOB5=;w z)SscZ00CB@*2J>MP#f?mU1ilaT!k%;4LK$aOPk4jfJ*ZPy=c@y7qqOEI{*PY%omhA zM)QTKr%{LcH6m}d5&$yB7K$oC+^V$)Bzmp>!e-a7B(l;QgNJk-Thob10TuC}Tu0 z2F2H#Co1j%eUeFFWU8z!n_+TTbax=w{tzXBV>IYL+{hpSOV0StKv+>l4)umF<^X2uSY z{cvfa@g32e5Vud@TM7*(8i0;8O}EXo`4vP+LCKV!>{7ql^YFvXZGNS#q$bhm(gs9> zpA@tK(H?}m4Dbvlp{7A!#z2X|rP|nSvo;JWx|Y(0wlJT)JmfhR!{dN%zO|Hi0=n??L$GZdu4ez!yL;Pwryx z(}-C^zLP)q{O49CKURC z7DY>C31@xGSx@EzS>M_i=LqMpy}Fa$?yinntHl@@u`}&B8NyQ{&L71{JSypZHxTB^*rq6iQ~9(jQ=|b^Mg-FT zOD5ArMxI6gJ$+OaA1sUHAbFAwf7wf-?W+D0@~itq-Sm;E|mV(|M>=NP;Z`yVoC_oFv^!#!LYW4LMOMvy{~)xWtAH z6W?%-G&Rqu(sI}cP`Dpp?bDA#4{vgI9@<4`K>4EsvmpR~SlnE|D9Asggq9^aRANR0?nqacqg`^eF`@X(rvvSKnI&f%C?CPIW*3n7^I_Fa z-A!O#`ysl)s-Xh95cw{=pAwu&y2G%GRC9Y&IK!lSj`~X(3g9^aN$MpIm8=PnE@#ik ze~o4(2^>+UaiAa~WigMw?U8-8PCUP5Mxee>3jhC{1=qp*zuV20&0m>Ho z*F89Su6p44A58D7-o`awQNq^{^EE7=c-yz>MzN{1_5BJHq;VTBZG7QmEU)pxp}#EI zwcuHE7rziDZ~yr2dS&~nCtkVx;?TR5{udv5{-KqMSY`LZ5SZ_a?vC`=AE|*5G375CQQmQG}S_2LdtDIsLQ7rty!F5e??EPAxUwX z=74oCe@p&PcxA>WP}s}wT3rh}5C-*KtNlwyo;;GUmc*h2rdeYk#b1_xG(mJgRJk zA=46;myy5_Rru=@l==?g{Ee{6G}tDZT|_U~43VQc5id(-_;i`>rYQL&CD3Ox$#ayP zqvW%c{3<2CMae29|DKX7l>9j*KcM8VDETjx{39hlrQ}^oI?z`EA<0>@h!XWT^nx8Y zv#P;=qMzFO6k3}s4@Z!u;3VAx z2T<$c@~A2QW|mFbaMLGAYnP<*6T=%A|wR`#TyX-}O<+wB?>3n+7E*@8*a(2Wf4dwEJdjIqr7VBH1rBBmIQr zlIlOG>X15an2>yMQu>@(+I+)A=?8;ZE~(;%3CYc}EUE4NycVedC9wZ&y!v*h} zyKL$Hn7i(R3Wr^r%(E^i9UHyDv|Qv@2-`K zaBG$PH**@KmYYWWgr8)rGWG(Kuth8WR^(^E*-MS z7XE9Mt^C&p%Ncr}C1;IWGkJJ`SB3qwM#dc)?uqTiWt_5$|GH)Ou&B)=yA1gNn-E>e z)^3)whb{Ok$=TyMwFvE2W*X1V*IW^+;7hHaa8WYI9M2Xyda`%i2j{}sYCbtPV9(?l z%#b6S>c1b5y#xRD1AvC$1%vG(%(LbrIA%zo6gG!Ua(=)m7X(~#;dtSA0Z~kH5&0jK zi^q#=wHC@H0eBviO9SvSD3=9tkd_C$NGlAz#h3?tcvgwN=F;Cl9@45nKGNzy0aAaU z5NS=I2x)Cv$znXKL&*~Q8z@CuAGj}2M&1w$%&$emL4)C+>c(!BwfXWz?5AxHUc)Cl= zd5E9w#}v>=2$E9v{+rF^bVS!eciU7{Zv`9~egZK;S6S zV>43NEOyTcQ}g{n672MW-A2fnQE&(z6YpLm*M)Ob8TA`0V6KXcPoV>fnbsfXW`9o12G-FnHz+ zlQ^jG=y^~@&?6N5wc8u0w94Nbc2R{?mx3iJB?L`}D$pB+X$WWI?4L}KX9iXwxF>Tm zX*WPBdu~pCq|HB!2&@WkkwR9AuK}4-8+7LEaS&#kP6Q{3Y=p<$Fme6xsd>_;5TC)2 z4G{&D>YpY>#zyO@4*zcL;u}A4MNIqi0riYgc6H5X6G8OHOkcBsng_>#VBw5(kL3g$ zJQD^7I#5blPECiJ%}I0HX7)>?;K<1h#MdN5TkA{Pgf{FNme-SX?wXknf$o%hSgzZK zTEirLf6sKm6m@mIG`tk}a_2($>1~UT{?hJW8~#VuMf!!Z3MmQs><;=qobfc-3Ji>zk6Ry(A93AQA6goaPLpdU^J%c~x}<;wo6bRW0URg6pjF&8+u%Fz=!2vC zhll!l0|Uc{SjEZsAY}}wU6_2+t;dk`eDoM7;7GJlq-u{hns#d@8KkuCH;o!poib4- z#76*IQHp#@wbdpngXnafAHhZk*rJm#_yf-onn_`>nZX)AFBmDzz4uRt9-EctLZs2; zKXEEJgZ%~|qi6@WVQpAIyCiM=Dw!u({;-bK3MDNQv`UmGQ1-DrGJT$@lM6CwD?-PJ zL<)~XDi@wkHcXs`l7-<(+b+S$?rAeT>_a)GSAGI3iQ=;7&R;s8DDI3EcV5l!OynQD zZ26<`x1V_Ji5Nn$dJf*Au}qm6+FU#{G~|kX{?`AVacUcU1!w{)5m-ERM<$M!>_@T> z|JaTa29o(DoCB7ZwEJ|QR4h)F=fh-#0y2%3)x?3Jz`#)8!03Vd2PTdl?j0Q*9yt<7 z*4^dhL|}Ae;?Tf@pr-ljL{AAwajzI+U;3!Zw6X|Hg-4NK6k)FUrO!P1nS{M6X0N(h zy(3}Y8ME)Cn2NhD?n=08WA56khP5SGdTQA}CXSz< zpAG}wNssf=^ow!xuzY;tEOK>jkvF64F#fUb1s0wMmaIxT@3>)}kq-5j+x|GzjcT_0~;{0WPT2W_+GjkX|;BUbYXbN2cLqa&lVW zNRT1Tg`q+(35WnYxv!{~MnK11?A;l4gqD!=sDv}ARP2*p9 z3+90QTb8cn7Xs=pM4sNW6olv)4lb91mv%=z{xxqdd6Po2URCpQU7~httaj^aYnA3i4FI}HrxaKfq4FQpeGgei~VaA z{-y4(^eb_fm#uFXG{8?W{46h{Ub3iiUve+?zwN8JQE95~lWtU*y5Nv-_cyy%f`8Z% z_cbp{&p9qRUZ{TC*Zj?{1#8p`S-E!fE!QtU`i(|}Ydg+fks^10KOPA~Vz zi<)EJ=BT6jA8$HMz8)qZ-YjqqbX(u7DMboMpkEH$GI0GeZc<1nLTJ*iF<`X!gCn4A zu3T-wW6d3*%_V(2GE3iF;LK^%YCSfsAOAv7vxbOa4?YjIghBj~4^Yxi$pAey%Lnm? z))N*Nt#{}pFlJ1Pg;&fMa1*{42`~n4@iU*j_}L${bltK@RXzB-T>ppGTNYFG&ZVgr zA9?F@dl2rzXqtjU$%iw7$RgUB*%r0(jx<)g?hKNJ_K39v)V(Yq#O^@+XktBL0PmIv}#n z;lAqb{Ea2#jb_N7r@2$E}9o}7q%^qF4ZgrpKn;&us9xd z*F>!~w_{<{b^3RU7$7M-iPmS@1*feVvce>^9DrYV)*&FE2}aNnGX4od3l~eAbbK|X zexTSyz7qcm{+eb5F){}-MV>_oVB}!M!2bcA6JeLo7@G`&4CnB9V0nelo|+GnLKrp? z4SdoH8R+~gl9)hR56aLfFqq!Tgq~f(KlYss`x{VW-e&N0R(ZjLSfwY3+`&ui>_A7Z%eI~+cq{YHz1g4fCnn} z%7Bs5SLBYE!)%!NHEpwKCV^XOIg3P%qzF-`IOs)I`2@1OjDPGbi%2oVwuBm?~dnWQ!$^EH%B=`&U|h!s2)SLR;pdqc>> zGM%Pum#a)LkbMG#eCco-Mq&TTWMt{RpWe{~=82E-eZAI?ulYTBif3s_wC z5AQMqa5IKraMVy4gqRYwjanNqkB>uXgJwnUMM93y8MhTY0zygUJ|qB8v)C;vaLF2tCYS%P+x%0o8j8p3S@B-lmn@n0I5s+ZpqAuJ$1ug0~0r z=*?T~diwlQ$HmVky!S2Ff1~}S_SFsX+U<$jqnAg&{mIup`Ms|A?xRu1eYY=c+IPJ7 zT5&^@oaq?VkA0P1AV4oaf+FY`cal(<^c~0j;p8>EWw++w?ZJcY=P!Q#h0iPAKx^v<8me|LHlMP5h();{R2iG%P#tL(9Lyo8K&M8RgiJ?D1u~#7J6#_r zlP2-4T_+yz()al*pGf%`l(wNsl~z8b=*WToDI_(LAw=P9lf8S|ITS z3W-ErE!kqVD0Rv*Uj1*Bhen@Z7$R9G+!Zl*#b4#uF7$~Y5^#~Q{3yAzUw$y2-~LoT z?63;z-u0HgQ1@cX*IRz2b;TO@lJ^=+3_N)AbkOjtR~Bw~I@TnyKw$iskx{|skRRcL z2DpMT2i2W+>C-vlNPC5!o3Q5$IcR*+F3JHCmQP((E*P@n%=V}mGieK;T~?i8YKGYy zNNYfj^h<|Je$o-Zf9mn%H?~V7mi6+rremA+yffCjcyDXaytl!UN?gDd81A7T+HxNu zt)R4v##h~_n?){kLENXP;1mVJu0WJU`7q=1i*%Msdgcu9?7f|kd_!oX139uy>^fDKV79V{f zZ>j%RN|szvZ{3Cc>rT%zB~O*WD?b8Qv|MTtN|Ld>mRAG6JO0XeEN}beuJ1IwwhPpq z>wt7&?{%x&mID>foZM$V@zf`l%khZ^*X=0r zVR%2faiy|&Z@1}6SKi(R%j;QHxPQIDwYSs$db^$OyIpDdSymuMbFup0D;*CDKI9A46K%-~1iB``j+qAXwfj)Yw#niwGe89ElC?IoC} z>jFjWKoO}03|I|DWj-);90<4{>KB*(^epN+Gmx2$r(-i`(YrGjT z00)C3swZF#nTN}M{u(giB(dX5XI>KR6|gd^wu7MmNR66D|Esclo0LaWV4OZwr@kLE zv(>CqM-MRLE}V2(57n!A;Qfj`gjvyl*FziBrvcX7--Mqbx1m4kXVh%?dmMtFhc>DY zbY?LHFAb0zI~e9Os~@Kao^ZVn5mv?*+ZP}c-nau2A|_cMYFFRg{k!llhEYks^qST4 zV$7|cmoT)`>K?N`v_&mz%+c%#zJ=wn5AtteYR1O`$;|xNybQ!!L7~r|l~Z4nu`M!8 zat_w3nbr!xt2+d7Bq}HS0y=Hjv~8!*D+!Yx3_Lb-ovP&-jv{0OmF&_gg?wHyCWb>( z$n{7q#qf=Du%Oqpbd&}(8X-(0PB_)80nV#=dG3_*HDWlBeUUM@;>Ki7_z59VBD>aS zYSe$=gg>onoNLrS;Y5|%MLcPof;c~guM-AxE^#QPm>`lf1*inUVgvjUG6LiQIu6Fl zsWUio(J*;-5~h8pps}NSRdnHl!pAkSNk;L(sp;cqXC^czi{4k{G{$5=+tacd+wKbb zSph&ZnC8Bamj?{F>PRK6?_#3->geurV& z=_duLw0@HE_;he8vL&q!5_A|&GR@8f-J@R8nlMN{2C#96^@7%xaXrYe zt`p~Ob6L_kaV{u_u-YKPpu1#VKdm}pwE2K|W%STVL@hk(GWo*%#-vNeI4HK2;G{y@ zk~-!|r#9%x{0svvSl=MKfM6*@0T&k70`N!|4xYjyHhKg_RI=ftqsiR84~`D>4fhXB z1jYv83vVC*A&-JJDAW_tK}=OK9R+;_A?a~U9DT5_w{QPIvq!MNa#CkR{#VozJ9K=) zaH*fPp2V!N?>ynuTPE@X(jMT&Nek9d(i=Q=dJbGQ+T3iy<52HdFyS{`LiCd>hJ$qk zM4$=zCDi#(z+J*GAOV(GZ*mmH>^1C1_^BMSW8b{q(Fcba&H?F~yBK=cYefea_K{1D zeepbUcK1%@#!K>Q?t+K31$I2OgIw2@!-2SBTl(Zd7zP!UJvVo0Zh10Z)bix;h5m*4 zbys%6RS|PlBwQO}t_>IZ*6gk)pMW!}Xzl)Z&Vi`oz*jp+0kWP~vFwRew@2IiqLuyeya5D0TdQo1R%}|i@74L0 z6RYE^L(#H6aI3vlS8K@7wPtI~yA^1&-IcJH#_0bBI85>(N>bcgizrqucuXe$=!=t2 z_ke%b@%+rI6Y(kvfwd$pnHRS~p&t=Q%7FSNJXJAI6(P=tE*^Tp8}~G=c?xdXtv=Uv zlhx^hpD<4m+{f-mm=bq;)Y^VKt3;!O$AQ6o6jwYGFL;tLF%7$fLJF1uU9fWfm%t)`NSL1FiEux zFfiRw13b$I?2L60rl{2meSF3hQ!vG>0Ef5^p1%|J32!M{D7t`~a6NVag%+n@2H&L0 z>d;05!g)hGJbF&;!#A_X*vD!hCv7Af(|chY z$$*#p>wE|t3~?PReW*pf7jJp30G*@@>@;8S6X^UMaLdWIkHjw1kV}DV{`X>+>;O*1 zX^qGw&g{uKFf+nuL_7%<&s1<*KcRn&6%$(PqN5q;B-ksb>9jvOaMa(~(RELI*S2kB z6?i&0-)g|y{O4w2Hwf%b!AnpV8KM45;W+XaG0=mfk!r>mj?c}5oufp<5Sr|BV8lTF z#+;WPniwYD*{MyWlB9Bz6k2001cZDGxvc5L=mN8+BEPQX{(pYZ14|^d*_%S|W6ZX0o{lC$O9i-tJ zl}#%J@yfQCwG7BcRbA9tZakr3hny&ZKe3iXNk^=t<6G_VlD!M?>Fa%F&&54UyIMOwaj}K$8r_$ zhnF2ok!bV&HGlo{k3+Ut)l8nqT7WlYw_Nl26TS^G--hLI+_#YfH!Nkv?N#KWy?k4A z`+?ZD!_m?s@tmQkV`$Bpw-|i7YOT02QQQ`TE6?z1Z@jpBRgM+!fcY}vEgNFq4KL3p zysa^BE53|xR5h$OG{3Z;zS~CMZKvz)OTF|=ST=SMBy#AQiFEn&e zGzzC3yJB1RB72{-g(})Y#XG5Z=e2_RL_u4u08NM&bguTs3c4>GVVA_O4qxt#wf4j+ zdgAUqQR|-DQ4%X=7s!YSwcSZpqIfOB`x$aBPr1`BFuw7YE@m|4QMhIG&>`=N(2yet zo_4861)0iOad7exj0HvV5U{B=G)HH4fn|}cR-zyL+Lx#-LjO>Cu&rq$@}=t*cA3Ej z$8$gOK))GZ4OtN$d85X}wntV~t==H3cWR`#fWrX0LBA3$jsbJiEFkn;I6MoVg@Qf? z4W;qEnfVa*pMhgUfH}Zu|8c1Df^wP)Z-Ng})G&K|mb{J9JJ-?kAS(ggCI%3NvJW!! zBW!N-05sJH6?!4eaSi#H==1j;JpgKxVb+jfaQ_p)<$L(|v!of}ne74=eHnv*fJ1X& zTL=SQ24@7ESb`0Ef^3!Pz#v2Z*Hl27pg>jgWT7w@f)j$dv-0FLzYo(?GNB?!6z>E@ z?GqUYJjwqK?;jz+Kp$fD2#0%NH*oo-`>>awo3&QDAyL{9EA3dViqU(#+3}+81vmKF<&DcvB+5EtWt|H< zqt?O8l}Lyko$Y_QEb4B>dbTyM71b^GEssQtnx1l#8bPxNcYYTg(oopD+j3=> zgfz4G@XyfxI|?+lZD8O9E1N*w4BEoZ1FXK;`dZQ^0ab!l)oS9++@Xyiwei9kr ziQVo^*h>)L=7mCtWJ}u<_RTT-W+5-YR33}xw?#c|5Er=e63()iv+RYfpv>X`;Lfg? zvkT#^7rc-haunJ+Oq(%7*rQu7(6U;KWj+?J``&3!4m20Q+b2D3rW?*4-KQ!vw#5z{>Ga; z4Ro~0^QiT`3rG|d8##!3`C)pXNcE57K1ELJ53iI?sG@ObK&6>C1DJw01Rg0#u%Ji$AO_o=sO?MefQs9F>UX!Z0 z_i56l#`nc_95bW;$~eAe81GPk4VO<3w;#fH4Bi#VQp1RPeiK7F^^Q2C7bE4Jl-Y3a9eKEHrj?9%vJ} zQfU@kGvVaX&%T*3s^^DZgm8#@w=8$P<=wK<9rJF9I<^RW$p}42 zX$WMr>DKQc!44t!P9Q}gR#JdJxn@;`f+~n+ZTmvwEFCk1zSi@r;uDyswkjI@rc6$z zGN~?sokFWB?NSd57`g)13^iNH%beI*6BBT$p|}D~dL||wJq!LRW)#oivUq9^4m&ZC zc32>jsV|fP5pj)ga1`(jN>9yB&Le-;*)x#tLr*Yifi`>60{wRuk*6vM+IYI)Vuj5h z`OAh`rK$XFnnzM}zF_*x@}rCPb-3Szc_DoIG_4nuFZI3J2#ld+&)Ws}-msY}?vqG? z(D%&Yi-!}QYS@G=TfX6W$@6`W(7qF=of#e0>~!Td)D0N?C-@`(DJArPTlui6AmcVP zPyS21{$*-ZCvLE~KJaDPI^QoaIr3um%5`5^!sn0q{1zQzB zFsh6SB{~jm?SeRl#*v6t%x6%sg^BwxZzBoO>&6uI1(=zcufMACq!~!)x zJ4JXkFEvF;BieORjZhOsFkK1oe;2qs351H2Vk-Z$He3ZjbQqz zxtSRZ4KxK6_nZGiD46(y$uBKj?nFZhlOq2QDdd?_`j zlu%DY(oI&piw0*fTaelu$2g*Gvmxe(P0kZXNXx~O~XqhyO$K6Q6w#yh~H02~i^m@1@TX zrU0A-Po`*58P*fzt@0LRfA7B%%PMC!#BEgUx8cu~yM#a_9m@|Pi8?ye0JK}a@VT{uU6)5++aJvv$W*Lo z@mxHIBHXWg%9gs8rRAEX?Qu`Tg@J2`t#|fIpIs}cUEcaq^GesM^_9n?dD~D&+Najs zz6*y1a3z4MUK((X;z_FFrvS6+aY*P70UidlfIhG=5dfBq+b}TVx&wfS1SleY7(e_=Lm`Gf3QOQLG^=zdMBgU=9s0Myl7$~fMIAwuQJL#4N)_SR zh^T=C*tGKr2-3q0#b_h3xi$6a{|5lD_YM?+s#T)0UI?&ZsBjQ~rNe*(OaqflQjSQ` zZJ8K;%l`o{hvavV!Z2(HWhaOt|Bw;_A_~ArdW=)0@p5Q@8J5UDq5=dwZi5@e6sVk+ z+XPKB&m}{UzeVo134&b24R|~oAcS6=TIyIDS^RX|UbB2^^%JoTd*b$c*9uxzx?X9D z=5=O*1gQXI&5<7iP(V%dOM92(#V6v9x)t~8r(;d`#vQ#B)4F2IYS%ZLqGdZ{IfpJk zfh6iUblqZd?v*I@3y5GvlhjLt2n0EGbW0(eXy<8r6v&n$m*btsgb<>rTH);bFH-j% zP-4})51jyTl&YZ_v~qDeoKl&DlvO1hd0Ep6pAE4@NIyOPNA6E*frcaqTmX)E+Ro0; zo@!Ip1!VzaG4me%pLvh*-ifsFBq?x(8NMWLqc{u9Yaky?CuwjL;0236vAe8%9BccD zvg!Ltk1@vblRSMRQ9j;7e~%@3llBm;O`O8DCWmLCcj5Sj$l^nBJL1oluI22$JoVbK zsAuqo#o~2c%PGBK!{6&Bi_?V#@2I(b!4nP0^u^n};B}fJ6ORUb866w9>W-u#gx6?E z^{~@$^bTwq2P)@lM8o;jCpb(Y8dpn!*JC+egc1bJ_{yYI03Jl2p#*sNx)*-%ER=0| z4C)EnEz=S>M|FMRo)adfK}INz2~-dB$R}f4q>$%QxQP@YGAMj*1ZqVgaNohVQ(mFO zD}sx`61Qe26ncVk7*XknZ62HoC!qt!{yamI(;z3QtT1oWz%3Mwu(g28!4d=SHCdWi zC^j8$6K;kH?Mhmy9*qy8Fj^5RL-dS2f=~{21?<9r)IhSst5d57-=9Dd9Gt@ZkYhhTSq)!L#yus@gm zmF%S{B^NQ7@3K~??H{#P2vEQQ5n4$$Hx!NfBi4b&R?ug{z{=28mT*O(y7kFitG=f0 zxGuESkSPGkUDkyqvf&QvfcW>5jjH^2 zNDxSZ0+>S@Lu*11eT3^69!FEf5XG!dJEP=^B0z|CIefOFAgYr1oYU z>`Yuv$QUx3a~c%%sp}m9&X_px_hyI*lDAbh?2Sj)kBeFGI5x3hn1$Xau_G>>1+cXq+6JUW9Z~ z%sb*qv?&7NQE(gJW(ykMgyuhi)+X(HsSPk|2V{66htkM(QCypGQEL2cQegwa9O8xMiqEzfv+7C7pby!Y6__D=w zMUE_cux46mrB0yb7fiQYCR@RJMfHn^zJ6%M6R+5ss34^VxV(b+P>8^yO}k;r3PsPN z(nL|`TSc9#{g>cR($;*#^^O1P%-nhFjYVBhv_KKMzxDabF zSr$HfTw#%i0jVcXA`-PwaSm%j90KOrQvPH7Vi688PvNgarzwceR}mWxfr9t|aqG>Q z6e$eom^55BT&tsDBibpYFFb4u4d#U;s7z?cnDMzDZzGdt<}qxYfOWei1SO0y>nWWv zY@X}`+6JM8xV9>PA@1l>+&|rqO$X(U^h?(q)Pq*3TS6TJ7Km)X*0GWJNgbh(`B?oa zZG-tu!xrJ86RdH~7U-}k2wr^32;Uyivql-=4EmXd5k>$_wLKJA!iU~N!%X-50%)I9o31ndN$5eFn=O(P9z3H`4g{{v?fkYXsc zSke1GVMDxSuB4b8@TRJ2MugRk8rX^*z!GO2Oi*$v z%lsQHSQDVsD8;n`$C%hs>GE6fHGq$c08g!ChyjPQciLXWrwwvoO`^ASJwj5oLD(yQ zZ^$KVKPVz5b4<>jIDr5k09Ptw9876p#4rb_2+yf7t^mXP#Mx6+Hy)|cqo4{2gHdWb zfTtqpq&Y@KSEW`gKRWw zPM!q|e3VEBXw6JM0`mZY0p`mw%%Pl%VP@*Upjar=i-##8!XoK9!V>TRT9VABFdqB? z7QK}Vof~l!K-G`F3@An5E6nO0@*hz(Irs>SHjWM-9fMoT0TBwoOJDv3z21+60$lm#%wE1tnBR?aL3oWp4vbh9<*nXH(4Gblsely?w2+E&=VvN@{Xt z*P`nm(6_3!Zn%iKTG08E>t2(m84(3G4oFuWh}jIi$qh04hLzg5y%kZr){APEo8m1!!W_~rQH54rYmOmfZ6nhGj|~0^yU^<{~pVmJrdIInq31v%XhsJrTMM_ zzva8t64Dgy8;!m8o0v%>x<6(xGgra83Tzcmg;bU=^=M(g3xpD;ZaW~K)DKO#>PIbDm~@4#$9e-&mw6}dgWCY$ z&66dlvln&Z;MW1|upvw;Ni=~;YGev(C-W)3Mzo_vePSY~seS)iEn>YomrXdgt8e9k!E{j=l{1PVl81p?mW6OoMqSSdlDAjyN*W73HNo*M-06uH_&K?X6A zO{pbzB9~e(#XwCf19j+|7#lc9gm+(+t zpoG}eAii@HyiN(q2S$%*qX2po_!R6sf?A>_A~-VPc}!O+JR08wls&_6b97$GCbyvA z7YLyJ2wA}mFCj~y(92T^_r{oeBRDSa<`g`A5@AiV%M;nvvFz$)&&pIhyYs@}n!8k( zL@j-Kr7`Z_a-sj4J^RVeL5bz5J%BF-C2QHa7sp8fxbk2;?@-ip=v~AyLW+72~iq&vt}kdf#St zlKFmd<%0VfbBLnW+9(XN?Afr7S~?N0>eTY@H01XcEo39V=4u#y)h=bzm~NfHqpz99 zO|le#@5O*bQ8y5A!-8lVRz%vc>wa|<6+7FwgSMFL9CuNC3>6s2?r~4RZup&z-|m2u zeDiC0auC15JL7;mhr$PdfXtl>k4(={u}P-{`>5>Skd9} zCxCCTF3o2nz5k5D?&07b!wu&faK&+G`g}5XKYVLX^o@;- z3=EA>3M*YlO0mp3G8cf@LUT<(kK-y8MZ`;&EV5vi!AWY`(2-FZ0> z&+mQ9LxG3!@5uaf%leA}U9YoVfE;T|=(=PSE41y*? z4rPXnncxG#gEtvwl)cGiI4D8weT1!G05q)CvQI8$ z0ZlO}WWzV`pStF7;325)o&DK7fVY}Qn>@AuIt4VNttbQxh}asY+8UGycN7?r5 z3QyjGd6X%(R?>Cf*=hMa#Ps;{FdBS0&0jV&xqd4_~9(jj{5Lz&oaVG`qVO9dId=*9?T-SF+&!z=?b0Q-1#Rebr}7$q(|2 zX~UF!7zPDxy5h^-TWGpcQ?l1$xw74X``0b5y?OT6vn_O=$7!K!Z>{C^8VTvpq;cI7 z+~FNXvD0}+;cxn-Q{#+aA;%19=2JPobfXf$JZ<-==M8uteH!n>nn?-MfJ|z3pz1DB zceBd-&{4=tE||w8=8Y7ndj$JO0+$9ni?G=b7%F^_X66VO_Jesy&O9FJ9~9%TZPW!}|DFW{JHol{r6)vQ${ZY?FsCrhfWVVfT}mgN zw~YHGt23`zEkgox5dKBffW?|$l*n(48u1i%7hZb)Z({e+VWZ zHM`#S?~ZvY76vmCZ|lW1iQ+A>;w`J&e$cu7a#OtX$l8v**KMW}m`#~W`lUrHu%MEP zuefizO*K8bFC)Xc%tecybN6<^gOO{mWO>~rA(iX!^cC~aP_s||KXEGp;r#{f;8Gg2 zIF!zbyBeB9Am=E(-%bOy4GH`e9SKZ4aA2r^_<=w&Z{XM{1)dll(i{`W_fRem6fNdw zCxxmsgO;S5$#3Ne&m~3BOBMo6=DhGBrJ%lHe3cr=Y)#g#mRsrjln_1?p25p6nto{A ze?3bAB4{z$a<4liXCvJe6Vh3o$nRa=7H#j1)%60!wB_C~TWx!#TNYDR-gUkO{hNiS z9$N`L%)L%`*DG*$%babi;Aea%+CX2P#7DIYzxldF+ddPvh-gc|7m;QKY)I{d8On}; zU3LQ7bAlUkn0Xz0N!c?z`=8OP$S{6Dy^_@2hS^$*h}W#fnuVSQ>{L(s18mDA zY9KvOmv}%p{UCs_c+r+}Tx)dhDmU1`e#~eOr-K=F^9u<9AIcitE5?9QBZVt`r;`O; zMmkp$YX+=T5ed!U;BtS8gG;=?kqUh_?N_ z(rukxm7>=&E4y+&((X+BZCIaa-SwIp7>Bc8t#hLia{06r!D7roDWS1c>{#Y@^(rC7-p z7@`(bBnld11&u3~ctPvReX)XeGTN+IcE!9c3Gd*_`O61m?SoOrAa8(_r9^8VpElj1 z!;3=Uykd^DjA7}*A|(iK#9)!0MpQ7YYXh0$$K(m0G()_%p|8NB!f==HLKWg>b4KWr zGV2flZj2kHE#>8p(TZDC_DKOMQd+4kc;X}8`83Uhld4Oe7W-rw*cIA>C-aj`C0O0t zV)O`Lkb7uM8#F|@bc4=gHJN0yDhmfj52P%TPxh4H39y_@3{2ZlBww*-IR!|f5QBc0 zhqKZ#t!jcC;Pr~dF5Lf+NKJhu0RMN20@bs`aH%yBG$0kE+QtJixL7BbM)Y&t<`Ux%G`%n<4CA^`+pZn7NFHSr^ z0Y98%>kJE+^}NcczjJl)4~D-v9P1ne`nFHnhO~Mc=ofh92hVW(yQI+D8gsP1I=b5R z?dsR6zwbD3`+}u)$_us?H{kIh6;~z!mM+Wz+>s(>qa4o-o~Y+QV5hi;g5eM&9l6Xz zQEgJfCudKqi<=fwicK6FB;8?fXd0DQCbT$Qh&J-hhLMJMBRt-&^vAtBqmG^8NUFo@ zA@Gz^k8ha+((;jAfRD=$QWB)(1SLb1P)Sh-F%IRU^o$ZZgxE*&7fm;;lCAP)R+ep_ zgut-2?R0xk`mxVq+a*d;{z;V9E|s*qHHb&)2O^F>Fi?y{zTB$CL!?;gb8X~#|tI8ycjos$3AQSuorY9zrQ(#?qOkQxa?y}ekTPO7d(7rTI zX_tP$ZS+T?HK z9yI!!a5kVGIM-;V{Y2BCI&RaHj_6QlJ?tIVAM!%GH9N)3R&|S z+%TcCfXe7AqAsop(+9H-fkja7M9fC9#{mPuh2s*mBf)Ef*p1WyxHiVd==ct|{oE@+ z{;!w=EQ3>+4*3xz8Rnl*;c%w;=NCSjfAH`D7a(%VEmxKVT*xV+;B>0-Ix(T}Kf`fH5kE8(K7koCm@{MFLE?wgkeUqy zjgb!4UUUh^WK=V&Af>6Ld2t*I}8+ZJ`S zi9Je_pk5l>qS;Y`34Zba8-p&eGv%0PidhT}HD5jBWf>hv7N(4cI>b%rl1$Xa?T{%8 zRq#?=;$D9gTnd?)Z)Y4gl%p#}DN4hx#w;q{cAK7okH`$28v>XJrLFDeG3zw6TSC@e z>j^#jgf-Iju}KX=rNjbli!>@Ll`M>dj{&0(LdJq6F3-W(jj0S;flbZw8|c9hhytP# z1U5!51W$vpF%Mp(5Dj!z$ix(qn~|gu2}zgUiZsBXzi6lBNwf)LTM72evRo4Pw!rM( zY;|_8l~=#G`}y5~B;{=jhsj-B<1f%W1)yb($RoO=RfZypZnUC}41+;LDO3&tMQNgu2EI`@ zmB*<~Ms~r_c~!BRVvAr7gXFe~)wO|7E9z@F0OSdDU=%D`&lGGTK?FiyV|HF%r2blj zB@0DZhNhz^tb!j_c;rd_49zD20ch_oK58_Dw2Z6>^!C@;6uv^JwS@BtTG z{E3(d-`aP1^m|2XTepAb02m^^E?~;OVF{^oSh{^z5|5C_|1nf{rvpOA7DAASg`h47 zZ7T^}aC0aNJIJ2Gfz$~6kb`%yMm^z6%4OKWPJLgFIR#5V-Ny>&UfbbnX+Qvnmd6D? zqa$EzGl$$p{jp;&>7IH+9)k(5ODze1bP~*#v&SH%BTF`TW(Kn%1fO>*pELL z4Xc_5>Iu0YXT&ilw8he{V|!JUDU|aOqvOTcDC7}FvPG?Egs9Q9OI>+WVYJL~{0vgd z@zY54HMtSLY?I|FYwG7&3GM19kNx$SU7fR#Yq;>C4(-j49_m!@b$NoGmv^-)QcyGE z@3E#amzv9O8q48x*fFf`BfMw|~16EGxI}m&gcT~*G;j#*N z9dnj}%d_pY#y2EG@=+zGgG(*QihYbE3hyfL#e7>SXv__cG8QlY-{>yeUI~sMO|M`E z+CtNisv&mbsdGWZxV92063KqzvzphJCq9d_;Z4f_Zz&;E6r3Dl@}}7Ne73n&dBElp3HnLNbv`t0g)FQTnsNGs5KDB5#wQ`c4;xs+Q;3V|k zlXixYGvl%9LtMAt@wsiUEJ*B-d%oP?f35wR(SY5a$9KQ)Zkwe&d#}CT>%ac*|C8b! zdXUK!>bb5wQ*|U8Ek9SbPw(HmX+I>+8r$uErsDn^CB(%Le@@9Kl>CU24=6cA3HiVh z&rr2Qc|@J;tm9E1U!mSlPGGt)C^VLuo3jVarO1vu+{ER@$exogo} zo4Q?yWagajKi5Cg7s_my(gS_+mdvc0Id*YfsIYFzwy3X6M;-~q$`9qPnd*Sk-lD3A zw+7a5C0SED7R`m3DArpud*sSvA@BBS(?VI@oH10^Ja>3*Fi_SyZHbhvnDt%kgKxaD z=4s3Oxn+@+^>a;^+O9MNSGG;>T=15Ly{$oS>y=|6Z|D0(H48;$;i7fHqIFlE3KeaQ z)HS~G#Y0@{TnrzW@q~IVIuj#$a~i-0rInN17hMSBR$iPu(tEc9_0Z>RM`2c7e&uEOAtc9tnfdQ#=K+7r%>VVB2Xxt_0+^oj zE>sc?`1|WSsXA9K9%;1#tvUyDu2qCUoL}8VQrDupi_pZgWd{*6R2tpfP;N8i!C9U# zqGo1Q%~pr9Iwq|ev$B>e>*mc{7aY#8qXPfW?h00SMjUxTN9Fqzh_oQ+EMF*w&cv#l z#jEBUJ0gt_APh;#CShvFhwjSR+^cON_nvdc58YS*3$+b%)uCF-kc|vRuIcG;g&n0q zN9j!8RoA>@3#3tw+<@6bvN=};>k?vxM(iFuL#UC|%)7VPz5gMs@ISP6mg+90ce-?M zL7UO2d&|4Ix}#S2cCDjRF#Jd-P-?VvrW=0b5GZw7I*SZH@(Pre+BzEzKUyUqz2VB( zR;jyDY1y{gaHCm3%6NVV8k3M)$oLTq!qC2D#GN=ncWl$s7D~uB9HtkP5L?bqhuK$j zOU5Kq){?_!s$a@8o9dQaMw4wR&1_n^=+doe`GqdYv>RMRh>~&{BFa7=#FxrNm?&Mh zN0E>NujP7J@odC{X6E7x^0i0J@}UG>EXdk4x>pvT8Q)p)6pThCmkruisXd6SCekTn zjapRc+3R%ov)jE)XhnuN#93i1 z6C8bX&w9YEOCj>Y6Zj$_J+j(vc9O~DK7-XeQAG?(UnKrv)Txe5tt{|*g=U_3uYjRR zy3G9NQX;PGucs_0GL&wOBQqm1ct2uNh*n~L^B-}NK^z1?EfT5{B^J%_pp#5d3l=gd z{agzi66Sf7FL7g|CZ=m2!;eeq?;m;`o}toX`c03%gY9ME^Vfa!p#L8 z4W9st)zib&bEz|#uNPb_2s-KrR5kE1Q6>;yqZB^Xy|@A4tGr9xJDF^W$wy_xU2?t} z8%a)izYS2)QEavU0-|l zHP_6M*M~0-f4eYfuMe2(mrp#cWwxFP?IkyHs_;cMnCsC!3`vAaV=^Y>zMUl2QVcj4 z_0C1JjCv>S+(bedua_i|8bK2%b}1MIzJq@+6X<=8FerTyVQKhq%ve0W%ksBo3j}K6^S~ z&R#yD3KNecK(VV1YpCi$ESt!RQ3mUN zuqfz1mFR*szFH&oGVUTXG@sJae_IXrR{lFC$f|$Uik~pDAULWgV#tgCi2P$wmPSv-gA6wL!M zKAyp?y!Htsh+jey3-^iEh=B&QVyIC+poI^z6wu&9E1V9#a&Ug-hCto}Ve7`Ab>l+1 z>wNw<@?Y`KG`)O!KD}yoA5iD>r_Y^!;b~H;TM>raNXz=F`h(OJlMi z7<>6A$;kRndez-ekhkKU^zyrGtNn#zbCTh$YR6_bg0WdPyOOWDEt|`dV|JMWbVxf< zw$R-!jAFc*Cr`y=1OSbpn`v@@KgkY%A}NPNu=LV#xWh=59F5R$kyX-nF&y%U9l||( z5Hn&?Cyfxi;d3q>|1eshPDpKn_t$AK!J)=r{)4&xUCApdd`q#-$IoYbLc}eAkJ#ZX zUZCd8Q1TuXlKy_kq8Px#8{I|@?ig64gwP*mdH*Sw z1{W_S8BIA$Hod7~$t;)}aNZ}S-_fU-*5Bs(Q@C5qVmeiNQ;zfucT47EQwa=(NZCqn z^0F7dq&wa_s%j9`D;Gg5x^AyR@>%GgFA0)kpm~rSC;QBz`B(}xVjY}est)?_U!yM* z8}7ql;9t;z1L4srX7Zt6O_G^i;sv&yHBxgVE8vO&DY-M$A?X6>LTlnLpHPc9@xbYd zG}~X1xXQ9Jf&#VBIv_cs_`4W6tj0%h4*?g#T$A*a1-vGfgS<}J&VCMAW7a9-C&-*- zb)dMUnMoRdO4Coqr`X}C?rCEvHGfhc$;o{+_d@RM;Wr+=^k~rD5->}?Hncrb4hV^# zkGlD#p6^ikN~mDzKSgKdXFQj*gMyRL z-icfUzZf~f!j*76I4`*aYGrBngpEHt!hV9($1ngjpkx~oa+yHt{_wZ4hn|6f3_mR= z9)tC3)K2?D6Q!2({Zy{tmys7%wm+ut7(ij0?muCrMUxN=4YteT480?0C=w0F<&-41 zQ8;q^cwvI$oOl3TD+`aqv>QLcXMj4nF~&WKty4J!$#JG}kMAvsvN%`e1(j z0$x7>VddGKP@RUEtSvuiLm>BgTgfj?I(w#+F_d2qrdDSD^nstbDknP@G7D#tLYXy_ zTNd?}R5zGF=Tp9sGF|>NN72X0y3DFYPf|+Ff{m=xhURV6(9;gvDuT9(*|aOhcWmoF zz2ipI=-WDdYR(6aYSGn+;U6Rhp{aH9- zG8{uDM_qhT#Huh4{}Sz(sF4n4&UE44yWwh(;aHTPb2m7?=8x5SRt}?YqCuZWxS9B1 zf&fSA6KOS*%O8jvjjCE`Zv()b3d9sJssc>_IjIC_O6!ayUW4jEivdTSk@H}<7evX6 z7aeVqih#=T=iK?Ppd9%aq%t)-^6&9g{4vNl;Q5ILm*JvB72KuC=6b|9`NCS|0Qn@8 zBF)iW0*41oYqtd*3LJV3)JR4F+`h*99;YAVZ#T;f|s3-8%ozGy6v2j0d%fEnnX z@e1GNzdcB&{#ykcOvR1>_bH60X(5iLXl06%wu7lYtA@Xs=Ci@NG_@*Cyo`#6DG1p_kF=Wz zsZ_$F$hM@CV#FZgK)}`TAhh(j&Z~d;*eKMla27o|CO*c)Q_-QZg>w-t76l=q-cYC5 z#C`@7lXItHIFN7SQ?{aG@m0ow%u7JwDy&F1`oi#z|6U9HI2E2;IkAD*PkkOvedrT1LAQn>NzeV2` zQRC%>k9*al{A>83Wf9(A1t^gpEfqmTJOe75U5S(`NC_-az;c`bHu*dCuL|9JIH6YA z4(cA58dQc(A)f5;`0&68=&mEn_S8gq{4Qe%8u!>DX(bUF2M1~l<06eAF3(Mqj2(`g z28V8VQ2aTX!zIUrgvk`1hw>jn61!s_!jouGqO~NI%0&jnv~4z`IAB~rW73<0>CMdB zB8x`gf@mwFVls)T*^}SwKs=SSC`N1DEqi7nMP!uBm*lr_^FM1= zK_Z|ue%)hMb^n%GJ*Efmt)NSpN1E68d7G$=f5K;yn9VTG(9C7`^2xL@mUQB&ly$<{ zEYil1S+)Z-iG_(KQN!R~K~qQ=Ii^rGhX~hf2-a-4nnc1*+3R_rv^!?@enGRhd^;+z zD!hH3Q*Vw#H&ZB!D|u;J)wKa1d7zoDbi!Y z8pBb@)EGBSQGq1_CYr?E1w~;A3J*oZE0;E!Bp@JQ5p75`N2;Zk8YHCc*w83KM~WL7 zY1WGI?WZ4M;-H-8Y<{<>aq0xQ7KW-?{L zo^gj7_;*E(00_=zNU3TW%MuAtVVI({P;W zq~Rt;%;HGJlNl?TaiJ4o%!H9Lw3M(?e>*xxjAo^qa77=t8~$16EktKd3owTPKJ zP9ER5Qh`RYZvpyEVteKwj`Lk4yuF%?fVredBACX3UyMD5P$?%FAmzC${P284OyvH4 z)Uuz4Faby%1WkQx$WIRFm`xOdmZ33YPmZE#ur@{x7+64snGU&X3+IosVk9L3uXhVs zbBvvo!sqffOXbBhRO%yK%6Y+8XZ&XFRyf8Hf^qbvse6wjb+C^Bvp({l5NV{sGU(jQLAQ*W0l0YMut0fohhWy zZrV^yCn-lE>@`FEG9zWzXcgyoVNHfrYBEewr6ui3P!iun` zF6gP7GlV=%XYG?oQ+p%Uw5j5+wcK)&A1g=J)I`8u6fhU@b4nUE6rfQPIfNhgVqwWk zoyi6=R9?R-h)+x`p`Bz+BN1bgx(LvWU(slV@RI9%CQCb7LN%fp(rV|A`IbmyLrrs{ zMUwb{ivLW5T^K)jar@>FjT+ROY2DT|gloEjHC>^a9YHh9P&{y3^rHX#)90QJlr#t3 ztFNSm>{|oot@jzPC?G;D3Qx`IFZqty z0t~Tlpx+XI;Tyso<1Q@$3%7Z7G(U*~4h#Z!#2ZBxp%x>{j|S53l>=aoP+N8ZxJt9n z+L^F#F<=w2r1(o-Hx}-Rg(h447fSwbN){>km=d-J)9B7l$v+{HR}^3!ZEUt*MIvcq zs96N}!wDpZErm~jm;<&}`|=1aqOYNaz+|&>r#r%V4Z*yIP+nsws|kv{)~v9nKIo|r zS?lLI{(Q%GcU)}>xBG(azEG17{#nA#(x9_+X5Z@vE*_Z64LR3OcF^{OQcocW-W?Zr z1WVVjY^%b~RS3lxF4`C@+Bntm;`T^c{k*LhaR^?0`ohzb9rLz4;+;;Mod_g?sRV8q zOeHY=uV19{fa{}1NQ*>Kk1332$uPGRcnKA@1P29sA<|f7v9V%GU13*Q&{Y<4RfO!7 z0dwVYoS9Y%Yc{R1&w@ogj2e`h3WYOjBmnV`@oCgVN8VFf<`+&zI!Do+6KJs~eumX| zr_@F(-0F}W;kJVIs(`tQH(I;V>7F&(%NpJ5O@v4H2#`&}l@iyN6SQknw9x3%ffBnW z(O}4}?%81F-BZ+Hl2Zb#<$0gCoV83f-~3;>D7X%O!Zm@gn85ilz*)-%m_2`59b6E7 zQ%!t7gq-Cedqu!pu^ieegImf57fiK;WD4_-p>HH{hoO7I9$R^3RHzcu?y-c)-+aO) z%wPN#HJC)j7~FLD$$i~((Q`3vb|COs`iSMMy@2(AHSw2xCal8?Y5j^RXx}Ai_0pz0 z5wmy^d=xx$_;DG9@1o`KN%Qhc)L<71MuQ=2aaRW2l_B>EcwK?5vj8PxBt%DA^sg&h!#o@5vYJ2}|GO`_#srNmB21|?aPBUPfy=j}UWVV?+OL>T^zLX@GR!~wzNhKu> zl&t&(5-*z=R`4LoR4#e#-0r}mc)Aia;eDK5;BB1zMzkHX!VjojIor6PX83F9N(^~~ z-yERvHLU80Xmu%Y#>=hK%s(3+HZ@Cl8;kXFq9Qx4dWEWZjz*Nw4QK#omdtd_Swop^ zlg6)GmM>bWm_b}48x~Sl@7{M09u8wqdEzToS!d5vwbWy_Up`-5%s1ja>SF@JW%Usz z${8}>(AJl}ygs4{S>HHUMjd=INA?+f@L5I1j#WwBtQ8aHHb~N7q_#ma78bCq|;6Q2c7<7=J+eiM_Ndy;}ASCxZS5l+q{4M`eDI?8a$?R1uGGIV;gs zT&KsVvD9Omn6!wOuOX(gzHEG{NXfm>AJO=NvcR6Ylcq~?@|dV3+bOMlef!1jB-N>h zUQ0s9LorNLnguo!t8kM@(>4()C6ihV8IZMaRj{|0tKb^M|3JN?$jC9+7zs(((->?_ z{2m@hOX3$5ZJaoD+&`ht^8@(r%+2rG3#P|kowzW;ogJ{X#&D7Ds?>zX7CWpMqm$_Z zFm5O99gUMEYDz+jDKGVf5(4Rr(uKv8UNEhvgT_Tk1|^#XO5t-!Fr_XfSxjxe$kv-y z@}|+(gX-esqfftYpFt9T1c}CjCi1%^BQ$Vd%{(wEzms7Q1^0x?Z!(**GL2f*MYRRb zY@}+Saa(OgIm-;GpvRLMwd}!i-NHCp!+(Zu-otmb%>84GONjvrhv}SM<5fLD*2Z)e ziD-YsVKyt+Y`UV51kP}E;wJ3 zrm*TC2gF4dbksUA%9jSsfL;AAXRLg3p0%z=!+)t^?3-)?OilQQ!C9|ay zTNTJmLe#|*7z`e>gn&Ln;}~lqn!)pvlE18MEv`Wpa3$WxH}ICs7BYJl3vQ^OXr9`b z+GWjullJ%-lmZ}Y*5wzy<_s6D4Hm5p7i|a@fdRYmXL*~Ty~y|rS!aLiwZ1u5xNLQ> zZ1sZ69d@k@y5R5armJBAUY@c7MNJURhtiuPj;yew62_`ObFBC{RhPe6fO=tyJ8aIs zY0jTX51NbLG3Wn-xg}!uaKCu($nJ-*VU$bRM*kI$V$M(WD*ifLk43CJ+?ybWvY2y` zQ#ol9vB@Y#nHqUB;R&3ed~8iH$|yWkkD!gC=GQB3gaxSOD*SwnDlk+SWk&-LG1vN7 zFf4Ut9%nKV(u5)vTg9<{1+AqDcvy5RYnbPR*n&mxL0DpD3(tMFv3F{uhG=RRTk!h_ zL@0(FW9IbWdk_NwW_VO1^-*RuTRF^Q&!btI1*LiZf6`JS`(P}kB%RIv{D!j|g4VLj zgKvz!F}h&Oe7^gu-GSVu@1K}QoCJiF>3*>r>q>7(&3V@i7T60DH=*Ea(q)z`QqUK2 z=)*&<TO2?#P5Ly}-C4(P@M63vSQ(iEm82@C*#eRfC$p!XeGVWODploPpr!+<~vzbeVeWA=1 zP!X?Q^;~<{RuZ&J(6kQQXC)2~=9#)nk%TWb#Ht zn{XF^Ff2Y2kta^MZ1Swm@`CNrlbmQ_AI27zy{{vOvUSwz5!=no0u3o!2sjIRNf*NS z7!&$=S9~!6Px&1QPjT>XAoC`2HSQwNp|-kr>xeQ2J;_8AOgyj!z?khdMhJ;sKxlMu`2F=PyjgV64^CrIa^BH16q&DQGzO@YY>KKc$460q2N~X z4jd?j$1jwiu07R9SZ^j;fxQxc$x5L3N_k5GsSuuvSU&oRFYW^-ENf{D@CbZ_T~x>+ zJSr&qpo~<|s+Ld<9>kAFzaV`J<`qYqx1S>*1pejEmz^&J;28`jR72cF3tU~>PFldk z{sZokU`4Z4D{jX(ei~9p!f|n%9oi%@>y*wL781dVto~7C$2zqEhQnvGGwb}?bF?t* z8O#M{@9cvidz0kR8S4bWpq}qL+ZRmrM)Hfo`E9}cw#n}I?fHn(TgEp?@7Cx_q%H2GwsQDVjI(8&hBiDr_}$aips)r?LS!Btp_xFWPlqNab1*P~(CSd788|8B zvJlYW&SjxgBRkKf)gXZ?fUbe@!Q+(W&>@l@K-;XA;L4#xmP%x!S{Rt|LL2hXAv($r z9YR$+O63s*aU2=Lw=xQXfMq<6F4065v{DW}IgDnh6%g`q=#Ug+S6qz=$ML?7)(R0m z(F``ZF~flOKf&0FHz=V@F~`41_+B($1ICt@P(tg3JCFE*!ox%$b_DL=dY2T>oTe#= z+j@@@P6Bs}YuU3*12HBS297$So zq&!HV2n049Xd-L{`J#ai8m;dk5r5$3c@PRahljAh;r-?)*l?7Ad8elWiUVo)&xCRW5bIVVgMT!OH)_^ZbR zy<~y(l6#EH^^t+cU>RC}MaWPiFVYn*O=OB7zK8{uaZMQ?q8Io}3#x z8l7$QZ7hACzDX}>Y6DxP89AmSO>GV#Fi8ZxsGs8Bp-gt%NzmyGKfJ&=&_&DDb*_lB z5~yTvBrrvsVWyHD@U*{KIhQoE<(=G>Kd6+HuL5>4YHjIiSrC&V93=D+XE&X_nMYGcicgz8g{Ylu&I^0NGCQFy+KGhGbfYZ^VYHeL{r-$Hs|x*XS?UA z;~`J`&ur}<8+1i=x3UYLOZ`VU{TZM3zwq=zcJ8Z|Kd`)Po9y^{*N52@TsC{G_BroL)1Tv|ulvdFsm1$mT8Z&g|I6{QYj@ zCrkGr^+CP}Xs|xP)PM~=i`0X5#9u1uCq?uz#<=-Sh$5@OF^^;tH|GAF7L_j~1Hgnt zsi}8QA{98MUI*?IkaeiK#a}X*1Q6e&YV!6e6J5i+CvSv2DRtOf#S55RQGwA_+LR?JdU$EA)g`bdZXb6MR+@@+G1yUly z8Q}jGzTlr25)Y60hsRG(Zs z;fJS4Q!hS@$Ks#S-9fq|3|f4M?vBzOBN2w_?gdI1yXWV0mr3Q4b}A^3AJYTcI1EZh zZBR;4ni#dRpj~{Fm_weZiJ#{-_D7EKlR}g{JJ~sgLWe*!m4ypKi<$WiEXxpUm*-)c zucRv|odhul0w=^Z2LhwCXe#z$J^23yMKgv`c0PR9W)(;tP)kBtwX=^0$*V0zA9OFc zNaB6^!s&3~+RN>4Z2yz(-`N>*wS--pgRae!ogl<*>0wuC&{Z0;ma@R@dB6|mZ3U6S zQfRe)Xw75FTl9jyW-lgp-m_nbg6F1rH6IyAw&ly_Z~YV_S~Sobk_8ay(V$JkrlObNw9p& zTe}3uwQE04*OjgMr3;Q{6%QeS%J!=d&D(Z^MHkN@t6Mw!80iCZE*W(GKE3k=K?-p1 zj<~YE)=B;$;U@$k?hD92Y+lrzOH!GFjv38f{VYFALcN@rnStj zMAGU+ykXU7L(27x6w<;u~eel6FMrfW2ens@7aOyHdx5_!j0V-{94TrS1Rv zG3q1FEbNlULLRGuGPD{L@PjFSeFKi|Z9uQbF5IvE!}?u7d5E&|>qk>Crr^=?>zLt~ z0SAg%{;djF)uX7%fWrtY&P!4dM8@v^m3+_;%0ML^rPv%D09st9fB{Fc?m0OIZ-rzu zFEQ{TyaENOu*Qgwz@joKXn(Cp6fiqmx~tMTeMR#EdI$_JWMgtIu@h@FYTq*?o*4F1 zNOLB}ie^C4wW(tmG$;k0(ulk0xD+vHP;A48{H%DLe$vqa8`~pC#B%yc#|g+ib|f(L z-OM<4qX^cNiFi>^Zs2CZOw$(~^NSuT?``__6D(K;{iEj5p(nYujQ;2-BR*6(&ndU# z)O_Y{RHoe2gYEYS${SG_C>Gcjz(XfRZ!x8KNM!c(H=dqp3YV<8-1tW8pR|4lZmQQ# zZi9B0!}X7c_%+ z|4*Bw(5sS)3->l8vY;|#mo_*u=062S7q}%b&RoWuw@5LvXrc3uu%H#ju*RvNiegE0 zJX`pLT@n3{pj0CxV3UCpLyx3Ni3_KZ9Vg7go#Y_)kjh!B_Hs=Gw%+mHB2vsc#Gw|h+mURDv-gjOFh@W#tM+9?w^JmgAz>d=&8UNw{TGBaNvokZ4>?{9v4y=P zx?m_BmjE+u8*mE|Usya{t3hWb3dTl9PAknPzBO?crFc7VT=p>92TclwxBZCj4IB(G zdB!7{XwLgN!+Af^Y{pQb+WP@c`qi4EtJQn%^N=#B9HD!CH%A+=8Woe7yc1{?H;-7z zDhd>DzTpaHbq5^X?>gZIDd4P`9=++T3D_hbStY!=N=wBr%FR7=h|5``DN405RKN1{ zkEwQo&c8aN`=!g6QoCr=Ibf&rKg%k^st!t}n2F|bqw;u9FQkPZ$6Mm27+0u$bWW2g zM&9(kS0B3Y(1l&I=>hx7fSIc=!c2hS;0z^ad>e+QGu*z1M(955ex`UyWD-Z-8GoOk zC1?CUOLxpbpqrpA4L4`1(=jXd&|6A~%k3x1glx@Cur*J!L-oH{Zz@8Y_&<|NVF7n7WU7r& zyN8EIKwoi=J*y1H*TcJgUfg?qOgrS{*vRl8wpnc~Umb1W8055pGrjimj>V++H~3ZX zk>3WiFv=e$lGYNQnW%i=W*A_)BzMfj<&C>!9Bi+GOQ{)@cZw#%@^^@1rKA7knn0*4 zTz1vV<6dG>#$7U0lo?|x_Ss|HZ;;FD5k{2nz#>sddgWn4FR05g-~sd@@%N*q-Df^? zd=u8}GZNF}f6FK*{g01o?-qGX5pyhl&J@O5B0RTGVWRC-ux54qHP*JteQG&HY7Y4h z%r;?fvHVN@n|Sr^H>nY}diRegD~R-4?(HZXtej1shkQ;gb3#Q%_p-G?l~Z(5!R;uRITB|s!^Jpwg^Iv}2oS`R~64VkHt{OD&bJcLjDM5oBuG{>cxNlS4eI2#*A{3;y^ z9VmlwPi&6o*PUG#wiY6)%#1l~tqNMJ$fG%PR{rXa3p-|=^XWBnu1HA*F*LrtE)0Y8 zlIBp!nsCYbV9EMW$pZn0mmHnfe&{KCZSeKci=!b=^V~qtvvzXFf~Rz*FR*GeT5aM61L_CtzhMctrbCQ1?lRvoNGDT@u5<2*M+Xx6j(CPHO{B6xzZ&0ae6s7 zoU<~Rvoe%Z6V7Q2<}`+Knx~Q$3aT!byit3pHdN4Zr6^d?Hf3FK7tO2;xmQma$*=la zL<`KwXZ~UbKTrdg}21`~M1yCVU+$tZbCl-Nn)De(2k;Xy%HEP_Q*IUALWo^JVRGwfrMR_*OXtp%4Y*!WIMCqjIHz9BPEh2KkWcF{xfn3Lp*f>B0Ed z^=|YD?622nWPj^@Ci;5}07_*^fV>A1z_e~vU0B$*c`=S+5fTWw(&+vyIv$048AjkA zVcWTsp0k(a_LBLPWdbo#L^aVQo->-#`PASL3*Zc_NI&YAzyfV?;taU`dR|16zsyJ^n;biwL^ZmKEu z=VsfY34giT^)-WIvrBi)W!YS0xaJj*4x-V@MQ{yMpu4>pgZNp>`aXe#AOj=-QLwJh zD}n>p2ppR_{M!aBev~kd1b7u0Im*j+kA9b1;T`Fk^mW3hup1?e3W@Dm)MfQ~+l25T z=rvtljo)q6mv@sMJVr%i*Qa1ucy1t_!8$!*Ii={67ym}Fgu#v4FN-t=yu>;pZWJ9s zlHLo)w~r0Rf>@Ed5FL^|t5BBw=a*MygZG~^cvYveZ0mz9k(OV8LodI@)M(LxFj(RB4|iJJg_ zb<8nx)GP<*i?i}|Q<0SXhW5uFqA*w$SafFV?>+OSX9DhqP;$dU!Kx2E1z}IaO;5wT zrxD@dnk_%~G)^UfL6gdK1g4v3Dt~5M`L3rCzJQx8i#kJr6-mAgR^d3)@(bbhB4W%8 z8}ow3y!nEL?>B`Tx8H2s9%|ef$lo<@>|RLCf92UgYVDaV3-*%vveg0m>NDFS*1TDB zps*omZ3q|}ezoL8(aiSuySbb5l45ukXg}W-v^@y0KMugfv_b%o2;+c|DZT&j*w{Fb zlmQto_~|o=+|DHL4a;(fuVAXulQA;*N01}E_)FW_;Sy6l!Em-Ie})^aAzF`ODuxA1 zIoKr=Bcp=4EfWz#i9A}WY}Z8YVu*ZNt*cW!EumIr<0q1tCz6z_+ezJQEWlV*7u*1o z8luddlC}uv zb$_WlY|IH7b6#l;=hofKtqU}44&=56JRS4KPRg+BOS{6x?4U9G70)}yQZ~a_IpeIo zNZ_WTyBkfTCa|PR*jM!sM^P9;OPiNt#cWsq9{pUTq?D5FSZFxR#<|3@mVTKa=Nx`Y z?8IyEl}ARzEtK(xlx(I1k^!iDu)*;Uo%HvUjuyDd(D4*2=v7&N`zBv!e^?h#6k zP;!(K##lQ+cXUFFUq%u&QV49q(#ifDQPXbIn_5b4Q9|HVY@%cmofN0(?nO!%yke95 zO^hLPR4EeVin=>GH}`C1EpFf4(b@0o*|Mdpx6>ER-MwdD*RHMuogK?xiWjNOIZA#& z$zM`(m6G=;`3Fk=8zuit$tRTjcS>~BC>tdulw?yvIyvGBN~$TLI94oz5)TRX=k$}o zSq6KV!vrsS05@;lKu4HYKhCUStCufs2F?lR;On351X`v5LV}+GoqA~%xAEg;gLoOQ zQI*ag#SO%Lg7C3ESuieE>(VmLSZ*ij1lxN$3;W;ko-Pd>aL&n}eiDrQGuHPFY3~_b z3&!-nH@bhBq%+!~AwBJzdhAQPZ@E2FLuYpXJlPVoG+o>svNVO0n}W$r0bNrdxhZ1x zOas2=pE19io;CGsD81rLS|r1DzT#ZPbX_Q8#Tom%Rcm24aH()+({$1Frs>9)lP?tp z-7NtfIb5u$3Ft~9mHPs^vWT}cQrrn$qoOTBK$p8@P7~Z8dv*50P@4CQbty?NtU<^C zVTGFf(uQ{4*5|^{Mw`L(z>>`*6fZfF1<#TzNm#X%p%-eGEJmUBmuW1Y$+TBka_A9C z(vmE=?zo&n+Q&3HQ#Ij?%3wxiD7EU0W$~a{m!A3jvuB^3etf1fWM4UZENE{&W4lFW zaOb*b+UBxDuGWAq{gyTRj5(5=dd7ImnLSl;#*Pt;7@c9GCusCcubwv+-^$E^q0!CE z>QH8FK$meVGk0nmeYmzOpu_*}fTwxU*e(e5S6#o<(ch(=`Z8gou(U^T2wR1v@)W_f zl$|0tma_AN!lexbLi*BXAxGFLEUnEHEO+WHLdzXbvf#MmG9yz~3bfBZ&clKFwQXlo z7L!n-19aV*jlVR|Eefv@+@Bl~>V>?Ibx1xrD&z`nAM23ZY3tStxl`-!=;-e!hmCcD z_hTFa-aAKx6++F_#7x^A9d7O%5V8apoJ4%_jt)0>R;?0prdQ0IxTC|(Cyxr71p1EB zPrCI*!pe_zNEQLRTqOaW;}gqiLD(XEtYd#ZdCIU&FI0c5qx8;$#&RJmkXw64hrf6B zp_+HU2&BluIUpZvRJY0_gu?t1_*9 zxQW7F!wzA)K{RYPipK3G(L}Mkq0yfN@AvcdA>9;AAUg#d`V&dWwDG#T*A$$q)$moL+o)npWleQqdtm-w=gmils#miatL%YC_Gh0pbPr7sV^ zs(krKSNIB$uJjcmt!6E+-b>&=?oxVF>+>RKov#RKy{{N)gRcbXDqktmMqe4yCg^CE z4@5C}6T>GZd;rFZPYfS{)J8hVH8LMk{MmDQ{5Zr~GC!LIbUZM85;7jhf}S8Qv}NCM z#h?oeD>9)1-}}iiDKfUd)l%bCsv8npy(EzRMKSoPk&U&YHi-yDh&_^#Ap(!KD!BzPxf}-@eZb;HClB*jupl2aMS&t1Lvx@H zKML)2{5f^(ID~Tk*gWH7Ve%0nt73nzZi=SGj&9VdbYh5^Al*Z5;zD)H z^W6x)B31{pQ)h=m0Ju`=hxHs+i-l{qI)W6p`~K0ER|d=9uMHo_qn&}ZF8tB?%5r`^Is zVx_bjX-QOhYc{B3K~?~VAB6&i#nLW?KJY@FAtnPu(P8#c>#fj~Q{g>v3S>5RgR&tl z1N0qH-As#+?NCWDKFBvMiUKUb7gD}j=3{v1sR42uQLXMUOGVxIiIa6FPV*ICi|iGw z%;nFKNzo=j9%wCU9x&qG!Zgkm3G``_-%~4SXGtBxwyii213c(U3230m*p43=8}g4< zj6>T6JBI@zUImJ|02n@fMRMJ0Eov_APXLZq6)km5TZvqZyU5Q`WxD{RtIXXKV3^7YTqTY4lsPg$8|9*!=O8EOwB@ZSzwZ&bn_IW_zw;>?Mo10y)1 z_E;9vm1sB~>L^3i)xsk4KXRnD0ff1hA|76~M(A>`^lZgPzWSt25%ryk)h| zyH|#+D;KKPUU7x0Hq6`L88m1s2aWuk?Zd39a8}dJtfsl6Z|=JyUfK8Ekw8}ar13d8 z2ev=I?)i00-1XHRudIc$h~M8qI%)1t?^NkB^Ika+a8};dC8t(Gk+^JaxU~IdY5UcV zP-z!w$|Xmfo);cih;59!04jBkED8rd4MX~hMLWK}i(rFxC-dX?R%KR)S@*Vilch7$ z@FSOiG}c&00ofTCWi7~7-O>>_JDdq1BqI_DO-o?7Qz#i)Y2Ud0SW z0V`bq&Iw)Sr)dlm(qO>C^kFrgFA^~!30QzagR?{ku;Ah1^Xdkxelff-_aM7_*fsVk z*vKyCDBcI?z_499v{hw0jwRysmYM&u@=Kk7}?V#cJB3 z#kBVimAY6(ZAcdD=o_=_Xds%zae$~*+bZ(oPSr6$0GNPw zF+Mln@?Ivppg=d0eSb7lyXlq3$5E62ED|O-a91EsXVz-wTN`SgOas35rn7eTsT(VU z&Ibdw2ccprXWB|`E62n3vY@>T>?A}VsJ>7=U2xevGci{&mlJTWn=(RF9d=jWbXU(+ zUTuo3Z3Bxbd&89Rmctcx)CC=NVaMvAWA)tlyrWHa3&7Cv7*xlI<}p- z5c$H*Pn9t7`{aFtn4FdJ7&82qo=AwVvUnIisCjYk<>uW>)MOmBX#tw3U3C=Hm5@ZN zI|ryjmrQJy#f|7w)JRXFDZ|8(q{S(=<0+$1*lhB-G|Qceh2Qei-=6=}MabWJ}tEX78kN+6_yEN$c`~RRGda4v_FMzZ6ix@i-d%xT{b3t;#4=Jgx`v z*@6ENWfFG*@R;Ks;ip;#F-K(FPH6?W-@w!q0p`D^44+_RI3>PGU0$y&%jwY*ZZ>LA zEeaFY(W8hjt+K2^qvFVl>{6n22==MV^Dixa2{ zaaNc)H$(g>OYAbGCtyGL#|Fubl;l#Bc^#orDr%(_Dxo7FiY&A=Sz%8OFxo|ig-i?* zB`tU_I?f~}5}*QE4NeWUf`PB70ftS0fYfFx$glAyMW}0(`@f-zYW0=aojy(@^f3K&AX5X<0X4Tz})cZ9h1%hH&jAO`9ekx*ywv_ zoS}@efUS&7eai1L?UlFcoSUUSFqJc&>Z9Ajc+QUWr=3Dfs1eF}ipiXOK>P+fAZfNLhX{6q#+a%l|OK;MX88a*Br zt|U$T9gRCz7>Hdr{8_?PBfVnh-@O)&3|0=ra7ylT@G&4$En7}#aWk2;BUTDjo0*e+ z&G88jBd5lhuMjmV8?_4V@hshUGl0_JWF^!^M)EEROdfg{;Tt$}yTwiXN) zXZewiIM*Vl(?#@AvX7D;N(f1dCLMuCiz7qu)j%MOAIka@!yLC_h!{h)dhv1@U1d?n zJ(?B25BLE8DSbDM1ZQ)aF0EktNGP>tQV->&v#mr$l{C*C|L(y+(dHZ3!Hm5D+ujcm zqr@1p*O6*c>VkVk*xh{7-8^^X%C3-m``K*>L^Pc>?VoyPa@(TOn3AmlWR=0}MgTH6 z*3$yAuzhXNzBXiU4VYWWXCy&1eMoVa}n{*kgTnQ;k2(F_wWsHk}CY6Y%6qJlPU1WAtlYUlv)^=15yvHZX? zVCYk=B@wDdOu~DhYSOVN_M>OwAtcZiP}UDDQF0|Z4u$yA`oaOWm?J5&&} zM2;I0p-(DcED)q_9kG2^(4zJCtr#%P(F=Q0!SF;d`b_2toC{3mf$-D z^lMr|YzfxIat%O~8Hn&18x1n*uR)lT21wI` zXmm+B6bmjmPyoOnMGo!$R@nsr6ROibh%;oEp~^A<7A*Aiw3mcV%t4j665-^4WW!B1 zV?{9cZ6q?3&Na@kmuWl;&%}fk49W7xVOa!xWGsvEIb#S!O9w@h1QUQbp~Dcm$O6{J z+J^dCZx6^$O-Kc}?j{Z=c!sr>2~jz5NL(U|7izWRh3tOs5w!;9cyNSOMyIPdbYcvG z401UqiFHxys&&jVGGVPGoRegeh>$apMk9}gOXD<=qdJhFGD%R$U->5rc>CZt!dnt! zuK?VFoJnMZoOqJETJ}ecbQjH#hX(u+*$XomSkSvd!BIJwUDSX>SS0fhG>+HS&y<}Y zQ>3Aw&{<*}9>5NMFh%KPhe$CQKFUa#C_YA|#3>;Y^Ax`N#*xoRW5V!IVbX4@w?BN0q}PYB=FPChkB!Ztu`eUl`C@&dVLb&o~dGjBjhz%w^Pl zk4b)qK5oHAf!#xf;Aj^n4Ii4*pHKU0+LV7juXf&Cw@^ZSSA`|8ke2@ZV`m?Ge(dZR zoDQW`5FM3vcHJwF&N?rTgbUUM3)U@U6ih!A%BY-dkCawC*G_f=)8?S92%6E)r7arM zQZnARXM<$QuADW7+-tz?$*m3Nw%p8Zxl;O9)o)hcFotq>!6m7;a(ZIQ@S^QQr)Rox zCN1o&3p&x9x+%lF!@FQB4BKjN+G=P0Z#;A9nJc~Ic>ykjUFV-U_sl%(h%JVc2Ze=< z%=0VHt(-m{LmfSsL4g}PTr+P@h1L1nS*_6n1b zGJ>5)QU%L01zUsXuF}J?K3i~PbxR_HA<-|MK@(yy6nYSYp+ud8pvFbch!$!WQi2RR ztR*Q#&_9^#es0g6c1e-sh{uswf%gBvo0no7h~r!Z#u9%q(g=tlBWq|d*@cr~6P*k= zwG=ER@%Qp6u^u|=Djt+LFCCU}|IO=CPAt@gI=t{3Iw}-O?`0N^{1?P{6=yKBV})@) z7<&d2MRO?=GXy_sVGX+iHF1_NBQEHCWAq1bNdf^;6DvVhgr%*`NRe3FQDwA{S(g8C z#N-jA{$z52#^TxivJ^0rLL+cL& z90#UM^V#sV{l>vd2XAJ#f=SE2fzSA2@=lT)$@YB1bj$9Vv@Is%=iS9*6m-{5jGZq# z-MaIZO~r<9Rc=bvzm;m+RA725N5F%(@&&ptFycOD9VpwP1K)!{K+3N~_NACDW#;94 z5ZEeP2i^e@YHDJQ>N$>|xXjW-R`d5Vju;o1$Ib^-UD$*~4JYAsoj^TkMVbbt!6|W| zmdB}x=4-dbGCy+^D@F>k_@Oy3Z1#e`ia2$77xQMv-!V6F#2tB*OQD&z;1MD2=(h4w zy@B9G*(MOYBpe!YU(#qIh|)cg*`{fx#L@N^Pw0y`pxe}0#?0fYy~Nztb{Z#{6o)TP z49K76P#25v4OxDZ*PUlBJ~K1={oc9lSH}P9={KLga^l9SfW13l?q2P7i>N5BQ_7aQqOCndWmd5DsOlpLjmBrxI^Dfu!bj8Ok7-F=-B zLZO+45388*5P4V;f)=ar&rgF)hGaGvgBKT>O7CnFa!h$ktCL{|?n*bUT3V4}axZ0P znbs{er64|!r_$tHdQdRJY&^|k%3Sj3P0hcs2&UZvt6~Cpj>1+L+$Rp8c$mUX7{Oo| z+=n~yFg@84LnX&;g2eL;-Z-5fahGbl=41S5A{^O#M}^vtXnkO?X`G`L5fN4qtr94a z1Y8)$A_lZDWQUTKnh7PL=-GAC+2Ne(U{3X{FO<_TR}{=?3R;^2Mrrvf3lZN^BiTW> z7B{fW&_G*i+^8M_I1_Y4W?QX89>iRH9)HlzV*FuqDj!!waWTO)LC}~Zi|e*SRRM~y znAd#V01BERX??Nx?AV#Dx2zfG$Igv~vdF+PV65O9Pup^38cyQddoe52O(*%8MPE*W z67DTwy-Vsnl*oU%ws%KR=PnXYnEZO#tsZPwSdR@1;RH&Ey$X#2IxfaUoY{N~xR8&{ z8|N}5aqASxX~C$S36XRzwJato%&Jf2nE-n#(4W zrn?}KKev9;3?}*cXU{zwa#y}%t&BMHZrbu7xn4nMf(?pf_&f%bTkwEQ{IygXJ{-w- zz^_CHIuX$Fp-cv2dL4wiLLv(odGNTN5As;$a@D^iOje25&nU;BIxy1c#Go*h{Xmnc z+QqP`HEP%dO*QDPY6v%KBE6tQ?TQgu3yHi)!sjDqgDxft&*Aslw2u}&yOf-8RF%k~ zm1^v+^_I4jaH4{%@m)*m#%qd>nqcIm*I12-lgtN)3nJI-=^O0v;wCjIiw~Rf*-`Ty!Uc~ zTv^L>irEnz702abU&f_oN~%kb06N zuimYO-PM})tLzb9HY@3#wcls{(qrB^eRj>_)|~DuCB0Oc8%nIup1i$8D#l&PIhnUR11(ON$5$rTKbnUegj>g5zKTAu#Q7zk zs2DrKv)Q$m@VdB*&hnl-C3hiU9bp&jqBG@4Cfb}8_YC`?#}oT(t1xf?PYdL};y3WY zM58C|=vc^A89#5D)m4BUZq%$GZ_GO*?S5rsiW1k@Q$%Ym0Zdy~Z;!W+&}eqCGxf*! z>IK6iGHQ|tn@F%8mX(~iWl||XEJurbihWhBFD`@X%Sr;qq}x$ATGF>kZfQ@+-gfz3 z{p(xNN5mJqsBC$b0RdMw8hQ$RIlk%^gEDrd@pI4CYw6ytavADh;7>BPoX>(UaaIETY^!q zjbD+-mqyyxqn@6^o{XNX9s`~@dt5!4P3F2dh#SU$&A!>(uWJ27^t zmq(D!#$}F?KC1`y`yIf+31`RU)$O-0W3Jihx#s)>FCrE)%8W1g3?cG~U0{^Of42;x z{{QGZ;&sU50>Fl~k{B|V%X7K6PX0pu+gC5&%ehAL;QL$O{rBofe)bws^HwY83B`~; zs^@;fz2r?iPjWET0G<(7pBOs{qo@NAw-7h7)hiN>A`<1yyl3B)auIh~lWQV>a7+|W zogAlUtDB^6J7wkliAtE*A+!SsUA!D5WiQB+6n%EC*1?LLNM9yJa42Zx8F zNf6)-k2XYwx``YD&ccQ2Luv#pPf3b6S`=))n`Dc{DaAM%8sF8*&Y7$AMD4OBhx3{Z% zYd?LtX>a>BIAw^YYn~nG+Jg^8V&94;N@)5;Ho#`A0m%a71ca&L=_iJVo)ic1KAO=p zI!u~H9ZbK7XM*?qfl)sRV58Q-lTD3l`nj96A}Ww(TP&f35ELkmV<39Ey7$2}(~c&r zZtCys#US+W+q4z#VVI3951kyfN`{@JoR0ntkBXC23?Xmg1d^(9#;T3#kDiR$n3`ul zpFh$Pha)yxA3@9VUX`+vF~@L9nv%kOs#pb%fq9ZL??^ z|Bw~Rv}4uZoRw!7A2^1EOylWbJzy0<#(oM8fqp_wPvSqK!Z;JQaK_$erJV6c#DYl4 zegJ!aDs~=Nqk4mBkFb#Hc>dw9K0Li9lv*;WUoz_~Hn8`yJ?Ec1_v8zwA>+|+GNcqQ z8cnH<5l6=P!gRxnsgb;bSGQi+`f?Y%>LXaBcfOdE@)sNx(AH0{Tv*XXf42*Z za2Qkp(Q8rZOjodU`;AQ@Z+F0!Pk~9GTPUFIc8e&6l+W3)|+`9}E^A3_LOrDjc|#lRwir zU)>%oZ4cyhz!@I=@jmgwy7}Ukkh2BmIT6pA`L(+PYxXSagf9r|7uIjQn)MfbS9aZS zL#UgxSGbj5`f;)$w;b+_GRx79lIqKYbEV%I4i>MuQWh+JV9Nes)tW0wSH!EuS5iY& zTLO;qg_?C&wp?9x^)OWJYPJU)D;5f>XCIu~JSWaR94c6M&KgN~O$#r;A6WiO$$WWh zu(&mlvrf~r)i7fs%b}I)uN-@`FHqGLscpsp=B_~-GuOcPhqe(V!Q%B(c1WmKto>Zg z*fe)|_F$->^_&$m-KPU(?U5A?sKnifO41uiI9M36uUW_{4OFyW-TKzL zK-uoVgAWI@9tk)eiP#H5_I2!C=hb6x^##hl5a{g>W*rJR4n=IaL0j|WZj6<*qBa%ExuT$zwZLi*S%$jiz;@2Esi5h5}t z_f_`=_e{pixylgDq?2h?aiC;l$g?Tn+H}jAGhIC0Fx5JfA9B`4+<7zBkb5PDJyNiG z?$q3|D}6U|Z=?o#9ts>72tITqkT(=5s)VbmLJy`j$MdmSm+6rf#!PX@S*k62A-jC$ ziP?cU{me6=?4~KxLT=S;`CP`_=GmH1?%FByg1cE~nzBX;DrQ#%3!3Jh2^O?ZS)rw#eo#O(u2kd`7 zhl)C;wtwjMOt-%9>})NZ%cB*6x{j;+-`WwV*%R3RNU)$kkll~{p4|cmV6L3$=JV@s z!M^5lKZhvyhRmHpq_E`Gr!PD`yCziFI8B>8JC9U0X4)@jhuo`ZC}pkHV^_vQ z?hXbBG7Dbwgj_2lu6*fl;cKn)u9{C^K2(NaW788aKQQ|R#2#5Ft`9Wsys`hUcLW-G z1N}#X#m549$7r+;T+v@ipM4}$&^B$L(R}nu`jv*+u~6ZLY3QFwCCs@l^@ehr6PFUn zEqJXil-sc2Et%Q=Z94>D-p0AdgN19aYzh^wUnp+^JPCZEH@K%S(0nj3_-L^Fv4Hon zh5E+1?ccLsEeh7R-w=XzU4gvnNMYSv5xRe`Z{EwRS}4PU3$JJku4udR_}k7vXHQ^% zZ)np)fsF?O2l@i*4@TB+4ea>>#(L#??A?_<0fPDReZusXMVroBb$NTJa5Vy6zp?$& z_PNKuvuh?LQdpVj;fl+Th6>k4YMb78^b&^TJ11tWxAKZGE9Lcb!d&Thljf2GWoxG` zpFDt(zOdpB91!M|gtHrOW;aIi_C@l%cTCtziy4R}A1GQEa;{?wi?4|)wkACN0at&- zkvlzs_yAK@c-WaIlFjLG^Q%Dbv!B0f1of zI8G1y^IOkuo!a@1t>}|oNjRPEbSLRd_OP+=rm-;KZNJ)cW9z(eU&QJ-v-8tC`w_gx ziNT!=X?rob5N)NkQP(wjVFUy`vZ>ss2i_-eP@F%yAav1*Y2?oac~}FZTx)s zT)Mnkl&9HUYeR)i;ld5U!VN!sI#jshWh1J_>t8Q!)N9A{E+5d}&$#RVDNutiXYJ3^ z{Xu%4-SF>=_pjBzWv@EWqJOKUxYwn>mfN`jKW=!^d+YT#R(7P~$A4}~f5@i)sU;ux zKdo$gs8atorFppjTOs{`QUA9YTWt98PSK`h{P|fW6&udW+23pkug&RAH$~D7cph=( z^wyXnHSE4V=b;qSyD4=4t}W-GGSj_btvo zo9R890kynmxAYYxpZZTgbaaB=U^FEqn^P=STWXr!k)GjnWoEgvb3D0u`2~gEqT-U$ zvhs?`sue4%YijH28&)+oHLqT?wxxAl+xiU;Y}~ZDy`yu>)@@zeckJBNy?f6W_WJhq zJh;F2p#yyfAAY3&(7@rrBSS}z9Up%5v5^y_V<#VnyOC2*Jo(h=iKn0W;%_~B{r9f_ z@cO0e-@5+V^_lDc?)vN3|K$32uFqb7K@X{ZC@X{+Ey!7%1FHU{%;{VIuyTG?~ocDqN0gxa75_~^J5~4(rlql+9 zNw!|LDUq`Eq8viBnVJa;k&wiSBIN_pdbo+1rZ=VHq^4pkrqi@$decVQb~jG9ZJgWg zO>8IK+-)}nO*>>z)m4?W`_s0&l_j=LoqL=6|9^Al-~fakcI>vhzk6&A59Z97Gmmd( zzW4X+m1lqd%CoKSUOE5USI$pgIX`*j z{O?{l|CKA}FI+i~YJcm>`RA{kpSp7Xb63tkbLIT+Tsi+gU3qru%Cn!j^7)A?pa116 zpU2JQmCuiV?`yBV@V#gLeEfU=@y|c`${+msFMsd1zc=;0i{JbGD-*x*=b!rCA6%KZ zc;)PuUisRUv%hua?3b^6X8Ou!zVzzXubiED<;5!#&%g5ZD-&P1@`-Q0@_Sc4KmE!y zNg?YZ-9)nK2HnZp)r6YNA`uWmNzr^JH6d{9EDsPVJS~fd7KKUjW8|a3Y1Cdgo*H%t zS1tRo+t-|UE}8#;e%l=V8vieT+x3e|M1?K+(Z0iD!~NoF@Bl_F_DK{U zcl=*DWxw=fiW+Cz>)svQ=W8CE&EFmO?!H`BHGbe)R<$ zesG*~AT{+`l8a=25K7A86uZUa3l&D>!h7k`dHXYe*khB$J;TBm z&wlUywrN}hZT$}Fo^`vWKkRp|YB8iURs_wcb1|nKHh)f$^I+!4MThQ7v3}E%$`y1M z)Z=M5UrP;SpCGKrWpT}uV~Dt#sbi?uJocCO_}RSXCG$B2lj}bDG1=zU&E~I< zd)NOcH}G`Lr)wrpzMfk*y`EOd2c7eQd_k1=!q*9?Xn6E2KUY3g^h`AZ1N-wQ9)D`< zRQ;@f$)%zySToNSZH@;vU-lPH)=#dR*fLc!>tFFBniOt%>F#f=iZ9*u-A86b&HYCu z_0yX!)L-bD-cGhl?xoUY)4MLLzi?=J|7_{{3EzBK#nk3=!_#LZyyU#Mc*a|=!b~n| zQAyczcb~g^3QU-W2``&;>Z$EhyJ!6ku#k>dZJI5*J07?jBu!w&+iM)Y(6tQ?uXOx! zuzVs2>XAEjY4dF9stMm)!1Bu`k50P~pfc`W{^N!F%y5bap{$Qy-1AcTH~jIX?ccq7 zrYIZ_gn|BIgnqIRx|3q>yxok?zmZ$_6Vf|8B%J)T?UW%Au?M>UlxTj{*^%w~T48&B z*2`IKD{=qI>caMwS+Cr?3iq#W^>vgxzMWs$-st&uqYF9TURl}U@_fg|`|o7?I!bcB zQ(o4wI`#ChaGiR5AXN>Ka$daxvEzWj4_(i!PGO~kS?`J*ib3N)Yjhp{t+%Uo!bT?g zSf2#WmSClyBe-#kg8yX9g>m-eQ`_hlc1hg5L}~VsU9GPi+{k%0h1YPN!6G{BY|VoC zpDvM6Wgk`zJE8x^H*rzBEexNgBI!PY-#OhmP3n;&@=Ms?vrYe7t}T4(P0ACyARSM? z%(E$q_q@860qk72c`I9X={@$Hy~i@dL-@noL)%j7z<8%$^>)2R3(HHE>dw{s`>@Y8 zJ`~WTT^OG|JsXpOVh(&XY2cV_)fmS7#2+@IbrOMBZ(8S)+t>CdFMdH^!Kq$W_)-a1>@% z@TxU*GIBa*{3ahvGx-vdGi6$RmS%4dQ{W(?ncJBH;>h)&QTyfI8EJ2DhdGe!{Qpe54?p z*LSr&(zn0uf!#a%I=lDp=;%rm^+5tKh!ZNR>f#q_q!L-!eX!9J$pi!*W|gwmmC$Jm z`+A0L%sC!0Vn^Ya%tIrwn6iNLDgWNIe={gSL?kv!p^b-`V3jHRcJY6n@WWYZ-vB(h z4-Un|*M7p6>{}wBdaL>Zp^-!*=;Qdt3gr$tn<7axjorKBF0a#muz#)i$N zD=}apYWo6aIJONpaMfQ>F<(#tCU0@}_+GHO^Fnih)vpCsUl@4l*lb|Wc*o_!vZ>;8 z)zi+I!lmPT-pnZk-*{>i?8nDu%9|zvuppZYtbm)a3yrgZb#E5de7R(9>DHO0TVFag zyYzue)hjP-n62J2p~3|>UaGC1t8IO)w)Ij;<6Oz+nUc-(B_Tvgs4JQzpS^H7+!Vc5 zunBUD=~D|}>D>EcaP0F|BC1GW^II-QZv8|6e!By-g)6Q7;_!uoFD?a#`R8V9?|G?Z zuH=E4k_Rr~@ZE4B>%#i!t+OR-UPN;5rGl!tf>o~-teP)txzKZQU%X^9>)v{~y!uD} zqNlfidizw#)S;>VsmfXZvhnsy{?f^TFYZw>g)Zg8gZ0V__grj=Z`vEL*f*QMKknTR zpJ(HH7wd9cXHX|513P}^s5o%8tXHdq3&Av`U(hm2DT8(D?v#@$&v%36RhrlAG?wBQ zCC&^}se&E`y%$-TMAw323E)6%9biU&5G*02IgJ^hQ z0M033{Baa<{6?`Av2lqUa|6L|SxTkIOgWf?l$>&l(Mz@pCBDZ#VJAkPF6BX*Fq_wc zKpFm`$xYJ_zqA}NRO9aZ7WV@Li#n!%QS}3%2_PMMEhAU|8$+r(GScr2hUbaeu!m!6FcBxFql(O z0xy4o(rbkQa}Z~C4$#3_TaiOdzT80{sGyFW&@Q9>7MhxVZ8S4X zgL-(uFoOvayHcKD;F>J#;pc#9nOGF`(|77M*X`K=*JXCitE6w5Bz-6$n(?;8aLU#c zWOGiZ#HP52vF=YeM~oUY@hTB5s!@_id zA|xB>s3fJ7C3`K&;N%Gg6%_s3brPBdV$>m`2v*7xpT5>0)oiv{whU;87Wiv;KfsG%WbU4QF)`^bc?4ISqM9R4}nLt)C#-A8u+Ld%g z43iO_0Uj|*xV59W99hCN#8JySH_1-R{1rruH`_n#LvQ@aAaGQy1arw^m-XcKJl5^o z$PeHe_9Kj3sk+BT@dc|Ef486Gxc^s3F6mbE{9$+Q23OJs%@#-wUjf?coZwLPK4EOOQyzf$qSts}2gP!-2Ly=L72RVapK} z-mpjxyaBl9X0;zo7Hhi#lRIzJIE_;u3S#_EP7j>AxypG0BHhYnb*990DM8#ebQmaV zbO0KQKab{!r=I3K<_z+~{B)&td@hc)_=3;FS)yC-&nQ8QgUQ?%iwmUv*7@Sf7$S^apS z&QY-p8$@B_{IV72_x%KWb7A987K%;J426k60XaK`@5I0dalGs)-r11#^7g!)fvi^p zzMb`+SIe??)_7j6@$kOExAQK~tLvRen>QNR5gdssx@3jBe^Y`1;YA;mvczYzQl{fh zqlhQ2FHmIZ1F^4C5P2{u7h`j3iNN(=XH-iqJ9qCJTI>$#xC|TB zkHmee#&dAO!}o{8NJTWCVEtTh{Y-HEi|by5efg&Gz(TgunLGLDf&+i3T~dXpMSo3% z;i=OI2~=K*pYv5q5X)!2etFzcH(y$hKtJ;p4RJ^5e92M-`2{798^X+MygrcK&4kjHhWlw={0&h;XvbK`YywzKJaQ8ps`+}jCAzIGzJ!n5X@2XUURZE+M=j0dm#ikxNF zS2j5tuJ<~#oHf@ARyYgZLU<~KJX$kXv~s3sC8-)811c3=&(C7$p@7#36ZAX;9$MjZ zuD?+m0v;kG|3i$jb!jx=26j{&n=052;z2kiBuy4V(ztppzoUjra@`WB#;v(`hDUM{ zdm^0En{DOhKo$Zn(q8W#1moF*KsuC_zaagFqkh5+}`&`w5(fjV&$r1`PtP^2Ha;-nrKjp3n=heCI)TerD2 z#gLh2FW3GJ@Dn*)zy-LJ)kX1cb5^7hh1%dC36*gnLkAnKeyCl2Bm^d``aFW&9UU29 zT$`@wV`GERGldV32*Nu=R!n1t%92a_Pe`6l(LSa`Gzp zEFn05v0hFouB(BJgbb=fQJ->ZKdL;xjt#>VD_%!DKX|`j#GLe&!W{-w)^VU3g98K6 z;a0@sfy>x+8Xh>N zIvzQV#-b)vhe^Sp4xu4FU5?%5I0{D&F@{j>DD>d*%>k5+^&U~+cK5saA_s!I{6m9kAQp;8bW2T+x9RPHd>r_PkL!EN;{vQ{QRC8WIO( zX%mQPvkme6wtB4jy3={Iz1!436l>vR+3MEQ=R24}bZ{$>?O;7_?sdwB;7o1^NmAor zR=49L!Yr}##V=-c9=wQPW_TG9)43>;Q57!2pFE)ois)D-RKb9tMzN3)tcb6KLgUJE zfTU4ki5@arPpn`JJjHKRAo(#kVNER)-q*bim%Mpra}bGms^SfAy&wP=9T#)i0MTiG zSMif9hb(ND^3jqxq!REB)rWoKiB2)z5P-j5b%u1D!DI>k-5}fG$MnJC^LVdS zIF^Ls?uxhFSsoyNNEF(_!u|MXUEHL3-FT0nUZRH*+ioHU_P&ZLgD5pgu(r=FQi zIA02f<~Au=DNw?9cmc!YQJ!f#3?sVO5f3)M0^K(Aj5&R^9WR~v%iBRi@<__G@9D~Z zCNR*IylW89FUr}KajP>p%AJTG!JR{?YH&RYb5KM>N?n5Pbfl=78WKbjmR1suQ;Zvw zeG$*PD^%G=Jh+N~h~AS3QsgD>xcWv%j=@WOE>78g@tA~NgSSTX2x4+$lPofy0E*$< zQiMuoo{qey@=Ry)V-U14C=P=KQ{hW(7dhInkbVJ~uh5`ztTO-4YDQ_3R)i5wHJq+_4iDqk?AZcELfCeg_CAQ83z!gshOCsG}c5|ec%cWMQId= z0|sqZ(~Z`fZAHc%0iqhraQWgFaUA%1UnZgN79z@;l!ifbY`iK8nvmpEV}(*mLWz_cJv0WDAW zaiB|P=o=43*s+8d#Yr^eMD{UwU4=EB3x(8C&&`!&!G(W<^JHcQV--5j z^mmzH3}{aWKZ1|BfRd4c2oM@tS|n)S&=3KE)P-6!0{oayllp7*L44VQrd-StFJuX? zeq9T&gn{JMGoC2WBcXGK@v`ioaQY4FnWcyqQM@J|So7X{-FQIJaY~UP8Q-i)2RduP z5{@;uqUB_XL*TO=e-d8(IHl!m|qcPNTBM%95i;5ej`)7+c!~+}N zzna!^^}49iO-N~d+9Tn`J;-_p#3=yB^(FvEH3mDtiL^i;C@7>a zxX1uWkV%dM&bk{iBZNW>+0`rENmmOS%}U6Fw@MNVmMf_OJcea(0#S^xvNf_p-hGy- zIJ)>7*;;wWsx|puPPhA}?|HjDsn3q&Hv7&rwnq<*9f8*75Vk0;l@kavqF5XN5OZHO zPPd-P*-1XkmJs|Bf(mw1*Yiw19CfxbipVeyeAu-IZ5V)Y8W{n}kkcE#O68Znn!^L`}Q8wg8*sN7n?=nR&SqKy*=J? zZ@lQfZwwI1l z3m%x>KZAlr8((UFEzriCebZH60y}=qi>PZWGU6r8@s-W*?GUEBm18R*ybw??L6%vNr;?(gTH= zZ^Baur*4YK^AI+OD;T?&>|sLeS4pRcJQy`hYMG>yTz4^(331sNr$k70e{SF(D_ptd z*L|McwO~r;g3*m+!RyPdxn7Z#yYy}RthYfu-rR zZ5B!?maE?;6yil~3$kRBf^)rbirxh_$Mg#VVQlXRhQaU1MQv7SDe;@Q@O%TFyOPg) zT<}z6J{`7g(a>mwrI3DNZ_)l`RGG=-%d*>*!P$ZCOr%74Fpy6jpe4glBCR0uc=LkC8@@r41@f zP%BN>DE3OsM7K1dZBiWwgbplB{g6mLM|1*GIfAW z;jp3%hVM4mGv^nuADzpm&H-Hbpzzx`a1_o?_8a#ue(c>U)l%y9gDWw6ALXLCw_dpB9 zNbFF0n(!#U96aTPN$VwjK399 z%Yxzw-;WB4pYe?EhPbn^3su zSFL@qVa|WgtpA?*K$LSD_76aE?W#Bm6!U;w1Jl{(65 z-U&rROjWQTgD3=i)lf^DCumAE5m4cu!zlrSnO$+&V zdFm#YFF5e$`jB&(Gq|wN>2?-RK5)Z?K=5lypqo3uh`z!a_`O4by2fptvgQcaj zPU+oUC}}Hkyj)V+*5Z13l@sX?(L(FuJn_0QjZ;U9vJpzd2{{)I@x9Pngh(1x&tBKv zSs}+7&_W+_l4)mn!#R+1<$_h`#b3V>2M^w*tA9y_HsOo#a*_x7wB)lH4W8 zt+Cp*RPt((XSp^s>ci{9ONG_BEPPkEUhbBMmx1Zo5MGXSMYsWJV|WG9rf?(D=5Q0z zmEjHHW+}Z2cPr(tCAv zNjsSV?jc#L2Jncshjt6&Q<2aVC;1+M0{JMps;5Ky;lOHj+wcHR?tRhYhsKN}p(cpe z?+0U%KU$$%3$~!IslPe2bL7NnWAMn)(a_G$uHC2@g7+@|j*(XxHK10|8tOa{dZewZ ztF80khw+-Q=I=;?zEyi$D`eh*aU=$o!Am;h&8vsx>2*}5e0kX*w~4L zo37as{tgJXf${7DX`gWIIIusFjihf!hx)s(BjLsGyVf(uyfgFQpv=s}otf9yeQ?)3 ziCorzyLFoq0qd4UY`^fTE(V8Z`T@RUE2h4hD`UT#@wq*6n<&~%cDC?nhg9<+c(CQQ zgT)8lZXysK1-Jcpmw3w4zc@`4RM?-Hd3icdz0PotQ5hX0!F!CRR9lLBgznNU&_&X+ zb?ID`Ml0AJ-kwyS&sJ~gaFmDzfJT{la<5)bwfw#^59=fQ83Et{M|i&0h+F1$}AuDVc#)v$2iepcRD* zrMZQ7_b?G`M|35GgCmHxB#EHbpy870kKL>M?G?&2a;a-+!$(m~>_bR^bi+=d^y!bC z{n%9a!lrL6iPv||1`mim!Dn*k%a(k`uaf!=uY2p}Rl20zXf%4C-VCO}##{>;QfMoDXyldmLQ79?438{9nCsJGU6 zreRw{thE7@_#q+M$a&Ksi|suG^|Xd%r|t!so>W8uCsfDB>th_h$3P=0^%0qyMAqN{ z*mGQmCVP%@d=gdI3=l&vQDmPBl}EhP3_vm;+%#WU`dsa~+PT7&GleTJw12hpV&`1T z12ZiT@ImFd$}jGi8vV5gssFp;Emu|nT=Qk+t}xnAM+)PJ>w^Cl351d(fygrCoq(wb z-iyO{0ExZL`F%8}gm8-TEVR7B-g5gBgD(bmM0>a45t6Ja@sNa<_aIB}W$Da{I2Rq# zB!lyzScD`6xXp>m^rsv@aBsO*;Ha#DOO(qUyXWuQdCipvvzwZw|K!2n>$NV=3dT07 zR@Lz3e*Cj8y(!(G>?^|_jHnud_IY5LOocPeOtwOui`4cTBYMyp!lzx~H;8G+CWq`8lR9P8Vd;Q#N^+ha)zi;Ftv12$9K`u^~Xn=m>O^1r=_zikdr#+BHNUnVjMn)QX`AzzqnSlB_v7 z4=nDaMA`L)1<6r}zpMblBS^lJM+f_l;uDX9B|Z{57LA@r)+Ir`*p%auV;E->XADJU z#c{h)TbtV1jL`A181=cqABJNBR3=@7@9(GqVoeQ=HI_a#mKfGh^!SNU=w+*uUh$Gc zYG8FHIZ3K-gE1eRE{}<-3ch~PnJDfY8QrZ_SfT^6gF%s%=X}B=pG#z`NiY@tLh7I) zHkSyP7?y5s%CAR9FQymP@DK;OfQ3pf=x|M@(%=L*ASWFasBOjm@Jr&{jidaOK zx1U1b(aSgf-2r=-P@(S)*sWbZ9oXdoPCIKt{?&k889O~fC?!N<$5oIl#EuEcs&&&g zNM31!WP^l7Cl(FetAol0g0mkvNqkN;42%QJad3-4f?-X5?57w;)fm^fk^U%En}_-QYtFCX`*^@pDaD@{|)b&aiBq7 zl-H1;u9$Ft*8eVd{WI%)3fLG7A{|vAz(Bi~00$IOZJ&?rLSDJ6Oh452&>ZPt{9 zEk{&kh8`#g{4VOaK~X$d1qdLTJg+Puz%vWuapT8%6?u3iEWLnHDY#U1iBc5X%5fty zE#TVf>r@LrodWfU!g8V_L)+xZ_t-ST>L=8ukwO69tVzVJWU2H6qb3osc*#T!j2-LE z+$=9nKY1zRyz7Uvct1wo2TYY9$1GISZC_=XT6oYGhPD8Q=$6eh8!e}UAXOq`SI7=_ z6znCs8BIVB)$p2d47(d5ajB5Zd17wH9_fca;E0ScX+wfl!W~zZMW^u*++K9<0{8Hy zTYZ$J32aIb_ZaUUXOd~>uiyhF+;w9iB$Ph7vGe2SCnp04qM1G&bXBA&NnrOaNdsB-3->64#qS^LMl;f-~ z4{l`K$xstNQ~HVRZ?|(behtGLYR1`En~^zc>2r-?c20EkY@~aZ6hmIPZ&J)ams-`I zz(-^pE@s;XhGSxetjSi#4Wq^=GSsf*DLl62EWGpI#;uHre^JnC0~EyYfpTuW430`jJIl{44#drHcyUBxN(#QODFQw&dO=l z7e`S>@=hQ)$q-!(!4gbegYR+FszxX6ppp$O5xPZJ<+yqq@7qB)G~*3Tm%Q#>k%AD| z`@yv&{ZKr`%{vZ1Q(FIl>Uj{3>pRG=BFgM>@E;oIA`~(F}gIlooIXiQ~ zx~WLqTetW;vs%lUryHQfEwjTM!hC;>ZF`!@D8IuBG`Yc(;g&7br_#Uh%{(M9^en4> z?%0%JAy-nhI-A5X88G=- zRs@SwK@9e$1dIO2%?K7KFaY%I1j`X;bJm$ZHA$2-3dL;FEhrRS;@=U40?JyQPy^^| z%9`Q%nu5WZt+x(Ox+aO`q7-ma(jxDk2w4kbb^^}3qd|WOsh#T3Z5@#M z#ov%XoB_jav`yo};#(5)#AvzbB^ zQ~y+RHA77bbAW?5q4Qv_4!4@foi1&wN4$(`HXbD=5oKSg z@~L3xI|(t6=0boQpqhjgY`WI~vzDyi)1XL5Uy$PrQxe2FY^6Hy;x^enK0GqKS{tVT zRz{;oq6Stz%pZE*9@%~H!2{g~<+Gq|P?j`5`4^yUgfc>3P>FB~ zQ^yK6o4XZpmqK9r$ahp4!!n&s%`GC>}GcNk(q69Va;1>6vl#()WPz%&tglY=_bDCkeDL?@Gr$2gCk+Rx&B6i@s}$ z(S#LEG3uXsrqd)Spf%x~atPX4KJF2AIa~^Nkg&?V{C%Mh+fWe@Y?(ctUkYCxz}@1b zEfalc4vlrh(W{mn$+ppll@?+smc#gjTzEls=T`KgF^*C(_8cczIytDuH6uA_HBW6+ z@D$C{b349id=izZ9f5MSA$I1K9k zsLpb@^~H`#XMbio?Ke@A2BY^tr|A~UZnp9nwu9%_wW zMN1XUbH_xPZk;|?I@!QN)I&etCC~ZK`KLY<57yn9C?f|(`DP`Er4eGuM%_6frdy@= zdHVG=39-v%)l+Tfj#}&OT@zvgd4#V!+4-kgjtO_tbV95ul@P0fMIHz-B#MBQ_xka! zbynJb;Q$1nii&iC^NA>2yr4-nPCi|bqKmjcD6U^i(wmunR-5Np*{mbz^(`l z+!9{SDJ%w{DyE~-tT4U?XqSvs+A)f3xc;=MnpnqwAGZJ=1ue zEMzL|D~+92c^|<$l}@BcuBvKZsD8eB`r)rWdhyZO%FSobS z-^j!a#tXv)7n9Lp{2Q>OxfmksUn1F7HFIl^qE-;lqN5VlW(YMq@`+gfnVlqBg2{Njrpcr0N_$dGhGUkf@9DBod;s zpPn_X)@PRgDyB>-fC_^4DULT67{l8r3Thrj7pCfMsK(yJRL=rDyB zyEjZN{DY`_pj}w;gzmI!qxqZRfB2sudKX=?htaWN^qBMqIp*R#d>C72BAZ4PU~aIr znzArn!H+~?3be6;&#~X@@C>YOy#y=h(6H=vZxiBqOnwNF%{EPc=-0N+2MV6vb9T>X z_aTVblE#Uxw-_M`4=_SmjDgXG`}7N|(cCv_5pm|;-O9>TxlYC8LPyEeFBUhgobEB` zNg6}qpFDlj0`HPLl{pGZWnSAKr;I_uFY4#COQ!C5%2?Q*Jcl8=X;}y?&WjY#HW9aq99(6)eb*2dWL?aY2 z;O#HnsG{Y<=vO~}@#AxAcFo}bie0n$55&C>$V}pp_%OfCao0)?!Vv@lpGlNN z%tVeA>qOv(?{e87a{L5y(lDaV4l+*5OXy~h)}p6`M3 zL%z?Gw@?8=6HM7_mM^$Go|V`05kKNOWK2saXnN2oJ&=0(QH6EsX}a;t$Vw$}dfgyu z3QZy>8+XcNAtzj9D#>}n#U`1Pi@Q`Jr-Wn?&oL|~7w{*kI(hajqH%+)-_twr=)y`F| zovB(YPpfLdsR^p1i$|5dP^UV&Zpj&a1f^2j*?^oxvD$#mb^@CPM*AmhCD$Bx-ldl2 zyR{6^Jr8veVMx0)mMB#5k)B5w?h9jT z?ZtEjn`wNyvl+rVmX#d+ZnvIaX-C%nZ(x-49Ms8(Wf+fiGF@$2^BYu>Ih{ciFvzj6Dq z?auC^xFqdDa6$KG=WwnK9<3;JVb2!q4TQZYVhM$v!`?P;=W9{(F6q;uIXm)GbWw43 z;iHw5qJ`DR6eH2bix7JbB{&r(2KYMZD#)_AQDa#mLO|by^uh2L71qf$QriLz`jS>_ zAahL-^$04Y5WN+rKx6=NX|c$Y*rmu3@%nLEB}qF$s173+rejdIA83JG97_13aOq1Y z5N2tbPKvWC(k;+oP{B)KQaX0zXejbHd_GVlhNGCF+0q&<#&M?xkAvX=qbS^r9beoL z+4>=vHd1;d6fYw%AzymT^Iin9s{e+MgfcYM5h@h}L`#?Gs0hiS7AoIWMtS-jG2T-A zHQ(xW_I8r$#)l~HR#nqQ>+vy|Ug59Sb%&Ik{ev4|;UkDq8=45#E4&xmDR{GrqhoOO zstk3YP6}USF#L?3z$n2}m1UO8!5lTlqROvwBxG7Uw#&XRSUgw*V)}dJCR|VzP=u+Qbr@HXsZ4rEIwgu0LxQNF8>0zd>;#-y z2yYFFp2Eybc=1aW2`CsHkR3y!h#`_MnRUjm;Nvkr zl2GzemQ4S|W|`cTF0>fx{%rVvK_6peu>gg-#{mY)eNW#v&%m}DW@ zZ?5^qn%UYt6YZZlfM@)3*^kidPi=-*tkTMf4*UrgUk;W`IiEUnskjX6h$qiIIa}O# zVdHG^+WC@7sJKo>o;n5m>xEU%ubQh`Ia9TAwyNb^&SiTJg6meToy@shT>jjB=kA++ zWTvjBD4^Kzqr7cqGg^}k+E<`UJj@Kd}8b*NHw?AH3=O|fm!{N=Vdb4=R<%%UQ_@DPr zw_m8buP#UWd5H6{zVWL-E^muQLeUHdFN&vMVJB%p(Y8*1gx_IjuFcnG<{C8m z2ZRp-#fU=qGSw7m@ss_lXh3#Sr$?Rt7&!{m7l@m>x;>9th^0mZb$cT~bheFMcYh~OlAgvjChOm`cVgKeVqM*Z`o{jR?b(7J};ph%$cV}Dm zzKPZ*QNnEfUCi~fm}{8IbZ1+$fx8rFNiPke38e$uv$kg`NXW=LBdUxrm5mtoo}W)b zhro&jIS0!1cL9@j;>w(@)%a_Nw093%fD}TP?p=<)yDe0DdroaRiLq&83o@}^y2#8; zyHGpAi@GhY;k)e>ot<^(2z;~EUhB?d%_L^A+j(diQkRtnB>O#&j60ksBqP7<4(G21 z1P;3&aPI#-9HYTAzszHYn3TeOEEHRzEheH(EWpHD6}~_u8F(E|K@&q2R927#+yTE+ z=A^(l1bx-sI*8@40-kY6?QEZE;kJOW?%ZWu$DgYYB0;z=!kKr2hkhPdpzq+X z@e?Fhe~N4He(c6q32ZpD{~td3M<&DtjDKeGcTD7v1&XPeV(>Z&52Icp6GVa%9yzfE zjcCqQCMNP3`VUG#3^yF5Z?(t(yP_nRPBaHTv+!gsYd}qjp!Ex)Css{b+&b=+(T>z2 z^`&x7SUIy9ye@Vh5*+(w`q(!Q-gPs@4T$^+9h=~};IuPdP=6^{G`WF?@@#O~^kcKZ zCLB}C8o#pUOKV zWZyEiega_|i|2w3Gr@)l_vQQ|JbP~Qxy@5OFP2Phju&rYz|mq@U6$5Ojea>iSJFIF z(tKgytH&=Mf2n=0wQZ)g?NUiC9(B)^tU}P|7u{da`&!;h(YdwlGi%!sc=(0g&+opl z?!~sL-SH)xW=b|qwqFhuoZW{msc6v`4o)73m#m-Ycr#c+Y-Q}3Ez{0t?nR%LES)ZV z{+`KpoW@g;DX%`C+n)LOW#k zbY5&iyw$$1_06nopK^aO_-6I8`MPBe+={lD6>Z;Y_^$K2S>I}&U9oR|#mcXYd}##k-W$=`XAk^sdEI>7swuZ16Hs}V zPZc{tYt*+@#y{mbN-Cx{%v7%eiuK#x`RckC?tA{e7dxizi&t-XY28fqc8misFF49# zOFhu!om&3Xlk@n~b}nzydmU{0VDV!18BYfOyU~tBa1bu2v`aIlfn&Hb2_%zB1B~Ah z$ww8kd4Qsj%>%TBrdv&+u1Wl;T|`u$le@@q6|#d;ZtNlZ0REvvSO~{Z3+dscgA0h9 z6?vmP%Jf4qL1Eg4&m@vWrxY&}}@!OLBPUsd5-KZWOM zVzFGk{9{_O$5AyY0oEL&F;%PInu@FMj&TvrkT)!s3s6o7A-1 zCzd;-O#2SpD1T?kgBnK{pQl~+!&qbvd|xgxu>WS)dshsA-x5>yKRja6emGUY3J}th zb8M1;qjbI^ymp4V#BpNIGY=L6Y!71)PP(agp!o$Lz_kLg0V*Hze4iX-0w=6k+2&)4 zOdh#gk%n?S$Y~*m#{=l6&Fxr<(BGO9@Ixr<6FLC%QRJuw%Nl&`J7QxK1Cj~(Io#Zg z7Ra>rQj`I1C-kS8(W7D0c-wxEQ>Vu?HP^$AF}d?86`Gz@`O9d&@hXRly}>c3$k|u$ zBaNJ;vcR})yhJHQGwetacHeS#TlR+$yxHwU`~lV= z7v#InGk0|*O<{!hV$$rlKz>@WswLDie20#l*bU~8_~Jn>xdcWY)?143mrmor)k#XZ zO~}#N6C4aB@|A6z{tlmda>D(lA4dw#<4gI~aV_w+uVvoLP>`PFP~1{ofDR#)wm>SX zp|dB^3gb0)pbbe1y=uWIu}^&Hj?^)X@3OA{!sP!zk_r}oh8(RoVT}efh?PdgGi=KD z_@*@FJ@;9}*=bv-r8Mz{)c&%M`oa@6us^d_gz-A6GQN)_b&D4nyH%Y(+>GPg9N!h!@ar**mr z7Zux1j#DwfD@7GHC5Br5T*~B6`352EPShEySdIw={IM?Fe9CdTv|_xIIt_IT>tPhT zklpF@lr8*x)^4aUEIgc*=V`uP>&L^YY)|R+f^5%{>jiiMM;f=(b>K((@z1*S%-*2= zL8`6;{8LK=;BblM0I1aR{ZMA=Hh9BjRN;p9Lar!r`$UP`ANE6gAwazbD0EY+AwOJB zy#|yE_7*_n0oo0?FAT%0xq%?wNQ=WoNK3-SMk!oADj)fSzlHXlxfB+TteSn%aAX8+ z?D|v-Q=DUHW`lPwhqaV7{i*rj^X3@wu0x0ep*YmU%0w}d;sim!4gzh$9S|UO0)(Ua@wxj!j9 z6wP>^51ExT(#DqvsuF8iHc_S`y<$Fg39iCSHcx7x46WR;xT#$<(T8_%pRx<{ zq1NuTuS1awe4CvqM+wV81zaG^1nZ{Vv%!YAw?TI1&J;bl_rLkF9dF?NNvPKoAt+L& ziQp`giurDawlA9j>mo%#l2z*K{ck!C5skQ&r1yXi6H79HlI}t5&oXpj`Al&6bkA(C zHSTR)jKEl3XhEm!M|kD~d?T8`3jjldU6>-ciAyT5NvBSD1l|Pn6#^P(bBj@(@~mAl z+5X(#b9-llp}04+xT*ZKz&Q{GH1*c_r5wFC`MAP6-@wOh2<8ViuWQh5QFGMu`YAL& z1v38t8L8N(xkbpnGoN8jLo-2mLzxY(h-CJ#Gp{HmJv#a`IqowQr88`2y>uI!i zrq1W+k0k%v223mOqve+JzLLIqljZeYCb>njE}KF>&PqYFU%{K{!}==nQfV-j%6P7j zK>wR86er8wrg@!0o?9k19O-oJ{=H}S&IM{_0yS?0>fT=^|JzfQwHeljO(*~F(6RTA zw#;-mSQO?0Kb54Y?NEXz?+t~p&$}$3TT_^sj$f^F|2CWV?}yGbvCb3>Cq--i9kw?~ zZMp^fQ(!JoFS`e6Oqg*9jmfc6}mFgzPL9va>|U&Qg$_WkPn62R8Uq zv@-JFaE9x3Ov=tqbVAK(7*TD&ITjrzVe66r(Gy9LVg#;XphXAb;^5J!3M_!%pahi* z397JBu?Z2KVx}0=q9lDnNyajhl9mvHq$I-3k49q0@R4@vBJvOh1KN~mTHtIpACW3W zpG>nC!K`L8L5@eXxYip*`+N?5~U0BHN@BI71g zR02|3Q|(%z3q~r8-!~vJtT4dh*%5u&t*qi?{1A-++;ggQA*Lhy2x5=8Z&L5_CLi=g zLTVu=KWplZnSlc^+({8Kekd`pD89+G87+W-e)}P69o9z$cyDHJ(X%$Gq|)sMQC?;v z*R8|9+mrUh+MJ=dU@-%PT<--uE+*GgfztFKZ$Sq*BcaigBdZ}K0yxnxkqU7wAPUJu zQUg+$B<3Uol0||MY65WiWV|1TjM{XrE#w|J8+=)ti$dx2D14ObvF0O%$tvcHSuc$Z zAQ+Kq&1s|sB_>iLl6`n&%+6~8$3>auilyoR#PeKlu$+e2%qREgJ3tcvZHydOs()CG zgTqkv#4L`D9$tNqG?JeMJgE=e!o(kC7LSYYFd_q@32VZ}PV58yfG3k3vDMaV4a0ZB z`JnqY06rHNhgt73WIRZ-RfZbI0oRJhDHyRFXXK#5d_&|4a>ykM zttFYWjtL8i#i?*XH2E!j5YsRaL4Uc4S}c%aECh)R4Hn2sn?VL6D%lwz_WPSKL#$=_ zxGYPM0{EMLWg-QV%#dLiGG#J}=m}*~ch}2#4D0g5vTk}U;Xw}`lEq3fWRy58rX8YE z5+NO!2#9Kj0=R)Rro3=ktRQh}$hh6DNe&lOBuzh)n#m%*Kwo(D`A095eD#ToPt4YA zr5{jAVkeXr?NsiIHD14m)_~@4_TN(xQPQf6dKn|N2hzf4~DJ`R( z#Um^{D%18~FLOP@v3ohhThtKS0e3dI^yXko1%eCii6`U1)p76Y#S8;$RDVH6HECyy zvC>$QYsD;6s`+ zXkm+`0il+?wsVBYic9B+-F$q^Wt}3GMw{L(t87t&6qjr-8e}6H?E`8Jyn(L?IPC;<>3T2NF?9+dH+v3h$~jISq(u zmT`frZTHrUIBSHU;ffK02agORl zzS+3iM~+a)ak}wu!Xq@=(UwJCqJ=ML*>UQ_8id`4(Nbd=Gb=Kjz>{}#Alw1N zFB2Tu{B@Z8PHa`OcfEoJsA+!{cd4s{&$R0sy`_^U_fdQz)`W+^+Op}%WwFwXE$0ob z{$+2NwLn-62H<_tVxl-mBX3H*FEn{o+WzEGd|>4K{YT)2DOQ1l4oASrTtTCWE@V8AK=6)te$zAlk+To3QlgFw zfh7eKV2nPxL**QpwL-6kBTda(YU3yaUYQV?0DPv=XtY_Cj>!8mOi~Kfkm4{aQOq2& zS7Ilk{ey?0X)Q&iG0av$`%o+RI#AP<2s0csa${H@`9Ugh7F~>>gaQVXR{A8WHi^=z z14yRCjr5_U6*p3StUrRU#6rpVuKMFfWRQ-#(Sv>jx4|4FTQ6-0jr2o3mP#th?*-d` z6th7P5lt6uYKuIx4|?8Zkif44kGa*idsGjsd>O1V)iA!!+Q9T>m3r{i$CRZEVS@44 zI8JB>=SVFFv|EF+OoIusCSMoxjnxHBfe0c+L*E@1=TTp4+9a5+(_ofvh(j#4LFPl3 zqfs~FO|~OM~r`e_pY{(`Lta2_zLyRnV)>uDEqGam^YPF%y;J!Q!wp=X87u|~F7hI|Cw zF%_*BZ{iTd2mq@kVZpDR@2ufbF{8XkLg~M>EPz%l`&Jh+qJ?ki^0LhKrIyC49LLC8IS87`^ zcTMGYqMv)u4mdnd7re-bfhlkGPaU2qO|rU!MJNFZ$dXSLwO9wRdOc+{@MUqLVC$ql zbF^Jw>b92t_P@hzoO5(%+b85V>HBBQ*P7Br8Q<2_Ay+_**waG{W?;ctavQ`%D~}3t zesEt?kYnw!u*krMYC9PzBQ!?1sS@m|@M^{Y$5J^02gL*tgfW$URIp9K*#&#whQ(=Y zWkM?!V-yL*2~Y6e$`I^6kt;ou{S%%IFy(Ta6*Cq~7KlF@OuoX6l-M*j()A8+=}gX& z`HF^#yh{aTlOLNcXc*sZyUT^Yfw`L1Gc~I(oSs{A-^`l(=F3BK<*R4PC8J|zO~txU%s5FKW}{ZVn!slNZBUIzq1oi$)H)8FlKH@XU^^$896p~ zB82}rM+zC!C%D=ftUZUAnTdf8BCv<#Ls+C$j4}FML?bBlQ?)7$S&dY%eyc7_Epax? z?%@$^DxA42HFKOaXfE({vs)b1BHLi{f1;~5N^t{DWq~75G}$!kub%VQ&-m-(ZWU=Z zg(dlKG&*X#ecwk%p!t(&V?)Oa29r5-*7#*YbsK(V9)^8*a_2w-Znd)?B$r0d0X$W-)AhE0769`p#M&fTps5{=(VL}t$P#mdjU%JM@+Da^buRe5o40$#?5CfaN>aIi~Gtd{JTN@ z=4Fmh>aJ|jHE{WywZXX-J}=sxo1F9uQ|x#UkO~%;JEM%-W6?e~FDNvW-VdaxJNt3R zc~8i(AC2?lo0;pNbXJRbQhceP&ANsot|P9yU0`In&-{)GdQGyI!aMp014ya;T=57j zQ(KfV6=sMI=+Y(~fn9j0-FA6IsJoAMW&()r*o%YNYu9(RFD}Uj{rum|Z&+L0E$5B)T z1G@aur$2i3qf8bzk?j2c38>^) zNdqc%)Vz0~QtuNy-y=|&6{G=G8>U=<3JX&SG(lcW5^yXojd6}YpJGB_GCqg9#gNp< zM@*KzzmT*ORvURM(jm!s28~ET6A3@uq;9N50+tIln}?mTthF#4c@WP=3cH|4Fds;WvRQvL%OVW%o)zAVt}lGY>6=jNNFIle%g4odQryDBBFKdo63#*Uxt=Im z+#X{JoxYpHOL77(=?ffHHM9Pj=Zh!XCL*8S`F!z=zb5Xk`RCXCH6n5T5B_3z${^ug zHAvK6KJQoy;RI9(P;2_7+5XtEOB@cRsnxSiL>u53^(^gnajN$hP~_25Eca#RzD&$I zE3zMzT1uBDH-;+$Bcap|F^ojM%shZKI2F*j#3l*NUXGWnAH`9zmoyo=P)8gZ9Yi=e z-{|1+C|LQ}m06g4SXBo&N6BF)i#^mtCJ_96U?$8DG`GMvred6s1$v6o15)UWnjj<} z+&W@{lQybw9LOFBwdoreV?2;Fj@AJxGM|c2P1%GFak*)FrzHEO|HM6aZ)`n5;2DIu ztaJ|coVr6Hx*mkJEC^Jb483D(*RG>Srp{((!h_BJc&yo-P<{#V@jkRB;XIyj9!oeM zPt`I=6bb|hmT#6cUcjuh5r8O51$hEtO1D1Mm!6 zY9;|DARl3T%_NV>CME!Lhe3Ny;}4lsFge4dlF2laY9>`omM{^H4*9IYauHU5(7fs# zU&;r9rvkB2XR&Ofve;$9j5T~fdA~t|%vi~U_?JO+-k^+8$b>|8-{HtmESkvGa~@N1 zC)!xzJ|qe6HZb7FhNAZxU&XlMe@Cno_|-L+)9HLGE63?ZtOjSnUpRc%ye?;l^O75p zrStr&$8)Z&bp)!%y_B#nk2{u)XHP6iyDwNa9zYiVTy|yu%JxrepL}rE#Zu+Vz}^_& zInj*!!kSO)1{kGgjqk>jK*hLs-d}D{7JMOR^`vLPfj@7zJMVWo>)&!PU1-l*;S5Zb zEjaLJ;UQ^%6+}&f@D!B=I_%nb*8fQs69I zSdQd+lh;{$y`gYmd9zf5N%#aQ@_4uPT(|ti4=PL4i4w(#r8pxX!}o;G`2Dny;*R z4c`c&)H^W(+h;uOb&gjdD;BWyvod zaW8fBE{8937j!$}Dg220u+}Lkj=T&c?I0>2i6?MM*zz+PN^x9N0P(@K<&}Qktwnj{YjaG>JMDWZ#5Ezl0jnyfE1b0%ZHWFuNaJIq=YQzrSl3sb`BX zR*reKmI5IGx-%?C{g)WpuiUt_hD7d&QN^4A{=~XTcN#MRi=X3BxVVRo2IZ4n2@q|7 zqR~^W$Dt*35Q+$DTwzC+99T}XMmA(5G^WlFZe}akP{?ah0mNid%_DR-!?9D)gFHYO z9GTOL9~-L1kD!Z3%Dzrdx9uU}NPQyI^z(YWR2zRD^SBFoF;K!0UnqdQ-3RE9UZ6*J z+I(4LMr<9rZyXsTBRxbcRaTKK4=hK^^}DGV(Ju>4&A#PB9(0Gi9%Jvh{m|Hp%UX=W z)Kb(^K`2?I$1LRpP=>b!V)2e$ZQc70_U-82wX376FTDHbI($B8LbM6=gZu!qA2H}j zd|(DLDV>NCi0N5JZFF!Hrw5i*af>roTB~lX=-9AE$`4t7=$QC=Z9;2D4)K%d1S%bg zAzWl+w3!a$QI+NS-*@Kk9vB)N0@W}iPH$+H{3d69J#k8w4dQ& zAC4O0c4pgg{A$Hk$Y1v#IgT(1tuXUsF*uqJb&Wyr4R4g&;3M!@tD%0~eU*k<&HwnZfO za3tlsJEFtC5J9+r&_fbA7JJ6FLuQt}AI)Wn;Eth@{$m1OiuiDI+7r1`ajrMjW zWw}Z$rW2vfNO~E-3{Aq!#XE8)6n!Lwm=J41ehDEa1PKtT10(%(D%jV@nG9$}7n75uNL?YAnXpb45JCWSJXTiSI1$^`F315Nk=kl9p@|$%BS?UArAQ>fBKZNA= z9rX7lca)oVPB<@2SgCF9M$V4R34sS(axg}w#n@Sfw-T<%q5k)ACsE88VGjxaM|ecb`JtS)9Xt1938{rAEEj>zHF&7l zOC%qK+eDw@D)e;1bBu1J!IWkL~?rRS^J;8g%eTd8G zf5CfSD}#z(Sb_KmF+0 zN2hmwW$%~vUI*&{J`$bIhDq0R`RDSdvlo!lz?_wn;knYLnbM{UE10*Ec`GK1pQ}4p zH!V3UP`%SP=O~(S6ise=-BEQpzjX5B(;t8FJKk~GT{P#eo^e-Cb$s7l z|CR@tkQ4>Wr}D_z@0fSz&$-KI+~rfA@4IUe#UsD*vOD*h+v8mMm+l6X^x%2fjJqse z-t>mM`N!9COm;`^58Pf3RPH-5PTZ@l+3nemZ)az>2VLLJcOv~Ea;=N!3a=ZzSWucN z5zgA{+>>Qw?EyOiOay1xwHFMDUN{%%1w(;5s3uvt~QIT}7GYZ2pyf2R*@ zj%=_w0$@Po$^u2QZ-WqGftUgreXT6p6j>XTda#dEjYK)jAN7m2vUt>v1x!kaC zwJSMKx|IHF)L5l!Z!ykwx>VS&-_(DNko7E}^YmY1seaa5e~a3evDBT-pt0O6dk3>- zG?-=YV5W=}(o#z>H!kAffyO}+AOTRk#G4Wckm3bM zViOWhHk01~ z25o>XZdQ(+Lz(P^0-#v(W@q;Q|6WyfRii;jvh2*3gkp8ot5@&%-uJ%yvwBk{abK!i zs}p_ESJYSYO$H!M+_m0VDXCU#T5A%|^cwk6ja8<$wdNpY`bmcgOA%Lnjl`5$)w;@7 z%POg5l~v0F^{XW2%xV#yA>3&+uhkvR-{jHP$ejY*Szz2*D|ZTUr>J$U=~|<&Yh8En zWKtvWv$fXzM#LrW72~}UqoxPt&O+Q-)cT-R(+0V_7>mUnYTpVyd?_eEm1gciK2N+l+0UV(Yz%V&s(B& z-V%{{OO(x9!Y1UD`K-WvR@&xsi`-p`yUSWPTeG~ib!*C5UYYowytf?hRT=QIP3~0V z&I;qscDb_>cWPRZ(r-alwYh&s_!AZ`LN^7 z{jK{`zPT*v%^i4iC*FL>`sRVw11aBJn)GHp-fU>yWA&l2wK3&;O-b+V!h5@0x7fb; zXzQaX-+V0b<{Tv+pSQ%qc}pBjl#p3?1nt|?>bCk7mAiX!cVFwHtx;fmuYRcYP|6lJ zC+eD`L^x4G>fMie541jNeeH?XCsNjI<56CVh+XLI*h||w2)^wzQ2t^Tn+FuXJuT&GL zw}vY2LH3Mzpz(|d-g%wgsH{xl*~U%tccyXiM0eM@xPO1wg_vArpiQULWk4Je)wMs$ ztgwit9uHZS8#l!7M+x`hX-YCM5VFr6d06r#BE#zbTTDz`&4pvmI8`!d2W8F@-eQSN z7^(cj60}q*KQVJHRJz2855^c?Ng*z_78z}@!Z`-d6r{;I)&?0TR4GZ)IY_Ng1`vTl zssNM}=P!s&0?ou?w1+?V;ZW6-5aYPTK9o0q37IQ&Cw5j!-LZ_g_LGLHh7is>U>}Gw6z}> znL(%hTVE|OzLlP#%`)fWuuQ*(6K&oIAjt<}q-fCYLd%RKP}K86aM9~+S(nPQhBAmw zG`Dm$N6$~{KoYdTczp(N*&PJt+- zsI;xaRW`JuuPyuZ>)*;P9!z^HCw~woPX(`(+$i~Rr~-CQ*Ee6?JbVnv z*v9f|?=GyqonIYCHq#7OZoy2@m0$j&VA;DNS6&Gcd7VN#BL{;LN~|sqjv$@O79wb^x2uFU2%?lqQEE1viwxC*azJrWf0q z?tF9+FHh6Bijl{%U#zl}`ubxK z#Isw{nRuqi(G{5K6im-0yBB0d%&yGNWC(cT{7#cwM~;$k?!~=t`|{p(YrdRmk1H+z z9fi>F(Ik)7>6}$h=Kpk()5BLII|SSTqUn zq(eM$24l2Jaspnq1$fy>fOn68_ih08ej^9Qi&l?&3ltQxvJU)N2gjesw4zR0UAhK? zFT_WOfmbU0=ZpGPA{+|`rbpAjdHP#37@yd>t3c3;^qt(T-x}PHf&j`oWxwhZ3VCH@?Bnufqvu%CI{QUD`4k z%DFT!xuAF`<4$hDwWWjg@G8EveKNOTBDZoZw{qm*cy1MLX6FoM$bdSwP%mnd@jNZ# zDY>W#JV{4_qBchjqzv~;ITAAIF0IU#hwd9=%Q`jY77MfMJXkwK zbcVx$9Ug_K!D*n>0@8??%+m306NdH~d@`QpxE&83gvmNA;>8?6??ef`9w$5M^>y_0 z!AjUR;Bw;@icOOM#DJ&yGInZ{$nn1K(!Lj;y&YVNEU|f|qoogz=k6E{?s$JD-IcTC ziKZFvzZC3o)T$G7kDDhlK`uBr0w-VuO`$2uI>eKHSG@ga*cbq znkw@9c53(X=b|H6a|iycgLA^;lO`Q#weils!znfCAfP}l$?nu`qJNVu)s+2xJ&M_3 znB)VtJ*tHZ9U=yj5bD7X`3iOCARt1Eu6$wCujr^>4*~HddEZ@(t4gaX(_0MQj1!kR@qLb&P6S-vJU)Nhq-xA zD;zK%wLo4;Pj3~9!2}H?%X8}i+ed@jZAiKa$>i@(ZClN=t(H`4M4HYM!7jE2Cp&U>`^tzWV7A?|8w|2}!(%oLe8nf++A@!4mDdw#Yl|TjJzCiOXcL z5~98oD5fhl6EauVjRBjFBXQyzc!ys`Vrm4h+mE!HpPbxO;An|T zWPZeu-!7|~Ex(naCGt^2`{5arN7gC;c%)TAE% z)I15SWM9Ht`Z=B`>C&(8RF9KwONyt#8kG#ltdW-6Y1q7k=9Q5KBl4&=nY-Zn%Bw41 zJ~f_OGZCyA4b~X!NaJ{J(`c{>qS~z5_wR-m-!5G}8d~FEN&YGJ06zbmw!^FaR#Bbn zWv#~hb#I;P)lA&@wpQo*m*E|n=U=<=>-#PZm*3YsxOVJ;+!Q_d6P!3}4-C)V1Ie~T zed`UTFli@DYm!Y+ZHHW*YRq226*fjNLGy2nrAZ)~%)*2@gey>!Vqxljlo>Gy$XhEX z%d2m0yww8By!?mmxwNc@ex8t(>R(_ZvgY0>38qRmq6 z8)`w%Qu);5k$pKpRBv!HIeQH~DRwD!s}x_ECj4-c2(lU&r>U7HeAa8u12$-r5X%l-GKn+P2etR^xyr6f~CmPKa= zXJKK0oxzYOuu~+qy0x0at61k5Fd~+SvV)B_532(oiVxvD$L(KI0RA9q(TDI%N$kwg z=Qln<)pI@Pa0ipJi0n5 z<4M?i05>Kc9OC!BiSNzEi=QC)e3u{KECGDj&3VCRp`*D@1oU@2-*0JP#qnTyos z{Fz(OUOqe;eAod&fw^~MVt!rPW+{nMN_C{kJaKknwYYF{taD>c8?(yy9dP5p4IaO4 zW;GAr=suDXuGj?rO;_SX!Yq~kBf+RrDLv41f5iHscu)(o3j3*xY_}dwu*5V zo#+ku?WZ{>-6*7X`u`rZSHD`<=im&LnkAIzyfB2%u=g>u_YQQ&btzzZ8W&$h7KhY; z`Rh_O4ct%FWE&x}zB~p>t(&RYx+eWB`k)VIWK!y??<=Q%8&WpP@WI0)5GoQ;xw zQ+7~UfzR-(h7yQKV_qy>l9g4Y>qdj? z91t;|f|+fyLB##}XlXf5oSs>HwB{?Y^n3+L>WjJbe5}j?RpxY0SK-P0Yz1@^>Bqgu zt5<~L-Txz+rBH=g4eq+gXA)Sax8gKQ4hJ^cDe0j3fazF~B!lxd>9T@k2Qg-oAD(wM z7bfh<0ea5q{1c948EQ!;?7MH3yoo72Fd97Im{R}Tq%rc2aJ!OG@jqKulz*`g0I#D-2a&uI=U)+`2Y(0_v09oPX*;wrKUa6^tV zv&Zb1w|>AuBI<)3KsJ;dWxqzu@D@G;%)p_T7nTaGmOA0+e`9+S`^2)#+tfbMI-a*? zG`PkALi1pSxCb_G@qh~Qa~9qVIvZ$16RDs}8qX8wGPVU57Ifv&LbZIv1G2|gesePf z?Y?pgRg@>83LEpt+8pp_Lc(+to_r<+1R{W&ui3RuqptI5zn&)7ghan?SPRM>=s9sG z1EmAau5Fs02_DZ6n_SZYL?}GNWU~9u(Vv08IoNd?iNG1;=ZIPAFar0`_W_o;ITIgoHVzuZnCa#9zjh?EB9P8<8?|%xPP1TUVkt0=R zS)*t*YgOoz=+Zp6=J|U%h;i7i*^O?R-8N>#m>c449%7ee;tSXqnu?{Uwz&n)0+~R& zB)bhY2b*k-EA%%!``Fr|JfF?>f)aE|}i-NKZEs$07Wa0Z+8C>`~!}Y9fyztlOz5 ziq_D=1cU*iNFgs)KjOzdf{;XjT*Rn?O<;dJy@`ARU~vy<+<3+zK%^02h+lxmLwBr= zVd74;b)7%0$9;(91J5T=$h}?X+S=ewun(O^+;6@6cz18yOVEv{^$Q5c{rwQ35zgZ< zOHo$DZQ?g0{NP2!a{N8tUz~C!0lCUo?hrw|fO7A{&nH|myzaGviSY8V@bYih-|~KI z@0&T_YPy@da5B6Hyi(pijm*+M?d^r7WB#JSw7Z!FL&sh|^IGTdsfo;*vCNvuyk$dA zjOHyHZW+s4cB$cRPU%S6M9%WDoaLwl@0M<#+}`kJ3k(exKcWHk&41%{Z~*~KPwUuE z8(2hZ*WbmzG0tNoVnFFH_+-gkP^zl@D}w3opdi6CGkdWAg=a54i?G=vIpdk-uYLYj z=bxN<bgW#mZAx&f`= z<89EYrH0H-ma?!W9C-kXUJHKlTO7UC0eTX+`Y?4u#y8iw*SWFVf|RzPL7%}hpq_uk zKQh&7g5TlKzvPL*yG$zXzu-EViZgQAw#6fJ&uHhF4n*Dhd(P ze=C1<*@L5@2S@!6&L#{kmV>QL+B3DpZe}V~%~jutxoOtcX&5^%UX(-j9<0>FY#qct zmwY%f1j2`cz>xS(V*F?Cnw_lMt>&7Jewa_UmyUk*m_v7B)gK1VP=^hItliS=31${1 zdqhEMQvE8g@L%(WEZ9s*5e+3CJx^r9lcqUMty(XO#QoeaxajqJtl=MclEuscw(mL= z4aCdlntjXHWs1|U<6SIiI8k8lseH{h5n47DT86;JLmLJgey$ervXTDryqbx;^<#PK z2mMfHqG;8~>KiM+?fZ8B$g>ln^<$y+lZB-t?yH|0+%s9Qc(`L&A9`wV_hiwM(ZcG% zJ%o{#Z=bo<@~tn7haMXBKO{hs+TNSnuS9gy53+;YL3JW1{r}~OT@!XLo@MO19Uu+b z+K@6#h60aW539Xb77I@#Sw#-{KGGe#(~<5t*OilZaqoNHfN#xvMLys9scf%r!!Lp% z-^17wd6xFca&ur6!l7W5@8W_K_aUeCJw9~YhEwp=f?N|OOz3V`Wi8xs$if<@0CTN) z7tQr1s4IELG3p%gwfLKU7^m%81$s=3&YTJuCpW<)`DoTSPDZX9h*h|U+iXax5i%dI zz=_sf_dwjsNP}??M#Hf!#xu53rVqk!I~J3JQmosmoVB;tSw*t2%wr{}^nF^HjMg^) zhcn;nzuEDfp4WTc?EFdH&i~_#^1l1h!X;XDTHL?OAZQgzkY&$F6-PFNW$V2F6rT+k ziTl{Pm>~Hh5e3<@V z;JZ5+T#ry;nb|LFzqB1BV&>9`%;s-b+-7UXYn#VcG>>|l1@;{iV1Yf&${Z|@4Xw@s z@C`tvu7lPBKr4;I*kFV5+#>7Dr?h%b{T|3DkbVbKya86l!?zNfEL>sG*5e)<RD={Op!fM446x~p}gIb|a`BWour){a%I9W7rs z8d^WcwQ61j$7_}rz>!6Oi16NWrjHjR1>IX1p*9YiWTK52nH zsk81fbX3U>I1J{&YXZ|W*Mw+k{tOpNVz0<^ofJ~sd-7ao%s@qI#gp3akbE5R9FsSo z)Lw2a<;VULYx3jt>(SgSLfgSYuygZ@=6SSp-}rk^>lOf@Pia8B4U0wVwcZW zmsnfh^D^VM?c{!(3$~~P<%ccAqVf`3i0z&wS=js{W)c&59QmXWVg!6*ue+se3+_lb z5&Q-fqX{kJe%;fw`w-k$1wj|1ar#D{C>wa);Prjd|G1ZlwVdcAO^sSSfCxUoBOJk< zTs05lZLs&D;^C#Q<-vgi-Ww2`j|R(xD?&5!!mQ@;fVEUwNx* ze8tvL|JM6p@!!b!{np1GKPVnkKqC?=A-n?k+m$KC?znC2c>OrWPOn43`;5YGWF^A5 z%vgyG`=eH3B=t(v%h}!vo@lr2SZVqLxMKnbN8yQ&zRZe^Wmak|vy%TVmKoTqkGahB z6&$Km(9rcvVkPnV2nTE4l~h0CdubnJ789XuH`je<%j;Wiof%)bZPdSQHVl#I;~x@q z5fe2d7ONc#AlSugU}>Q+I)el?pyW+8f|=1qZJI)-gF{Q~u9DvryIdpOS?&8A=x?=Q z8o6SOd^gxH)iR2Z9>pCWZ~KEN z!`c8*k#UIXQKRZ{4pD`>$-#uOAtD7>hYOn&0Ft=AoI`G^Sj}CsSu;3)LwaxH{AGv7 z21)guehlx3fX%`8>mjb$C2DI#28gz{6zu*p9758Eirp`7e531T^AEj$`s_E?zqD5GcvYmVv@uXF!*{(zT|sI#V7l+{OIMEYWXE|KPj3Btr!cf zP&+er;E7QASg8Cq+b~|UCQSBL6ZLqk9bVh!G zKJFaSMNyG^qWvuVP9wc%Ku-xn8&hEz>vkV<@H5;mWtbgUks7+r?ih6xP{OgViQi|~ zUD7ibT|X-*8Qe7)%Kyr<3iB;kI3MQgm9Bj}D2)OZTQuhIGRbpq;h%o-^974AW)q z;gUVTAai*AIevn@ObM2E!s~|*-Dn&SuSd3H6GTVWkB6#9{YKnEyl)*|T=9d`{|cwi zIMnKg?nflnfY3(!)q#?%M~-9(PbW!o{Ha4EOesjhLl!B1iYZ-Fl%PU_kOHg)65WIp zn}BsLc;Gf>!&;C7AZsk7m&63J_MpGC@D>n-Q29w=6%CkBcuPo8HA#jV&yKgic&7x6 zOPsX`+9G%h3gL>)Z*<;lo?N!_*7~t!8-L+(RaOImb$%cYb6?6R)`sxspp56jVv!>v zog@~MubWs*e*6}{dywBX!NuY)77us5)-sV-H@|WNAjpx@9 z1sEs}$rIRIsI4n#HWS{A_GfIKjq04x^x^j{2Q)Q*1Zctzml9S?xDauEsuC2}f1Ew= zlYl1uA%I?rov&137JV)dx;hJlHgWSK2(24iw!s9Ut`Ai5>nOf5d#i&$OMM_7w14jT zPYO)XB!bB%g2^U=$)@{&$w%U=J~oidg-{Ye(xTOZ(`X6vTnm!Pj7j1gLK7!rot+n? zY)}jG<3$eO4y?0}vCP8xSA!!3uPz!3)s6b=)Oca?tb=M)LDCfPf*7rM2vChHWKt zR@4UZ4WFFTSVt|WheSP%l?s=(G(^*Du>_mFQ9u7>c~ug3GNhdWX{XhKmK`FG!929= zG+GFP4=wXXGikNej-ieQ`5Rr*m(X48fsO9d9)tatzrR(L}Rz4(B%JTn?Xz;`Ti0U6p1`B%Gqh)+fOM!Y~D*w}EKz=KxWCDNfyu|M0i^J76tfV%>Py*TW?- zvF`J0Jg#@Jhr8Y(@!I|8S(>Z+Xa6?mLDBqofB%2qSb@L})p&$>yzS?i5K!6icsaQ+ z>S^F3Pvef3xVLdfbbnmyjcX_L|H!-U6XzvjGN>^gYM1p1xWqFAd$NwNbLIaj%0s!b z#04D)Qke~UkcE6`?WJ?WIhQ^Q+m2vp$a`fka+3!a43`bJ-&i^pjNq3)<5I?;_Et{8 z;EuaF1w-xE3I}&i2D66U!$)uUudW)|GnQL(t7I%^%UEy=qW%W6F73U%J*86`PMrx8dg8o`_ZoQ* zI1_QGaT1?bdXeg_W?8|XdN=PKVol^(rAad2Dl<9fmZW8@9~ZPH@WYxQU#tnHynbK) zRKCZzZ7LuqUAe=)j+Kph32|SR-7Z49dshlsuh2~zYf1gF}-G>RYWl;Pigvp z|F3U6i2S&e7bF@Gi8QFB$tpq|pPZ-A3xO86r6BpjeVUnWOkX_L)>Px(kI`IR=Ng`+ z3?-iC-}G)7qLwgGMLSUTVK!fmgfI}M*RF#sopdBhP*4I_==CW&xA&OZ!y)`Tb(AT3 zjb28O1wrhO>zZH>!<-26OYdiUyYMB4AP-I-9JY9lt(V3vbTVd!PY930_dT}+iWxY- zl}-ACF9a_IhnjzE1jKd7(7gDD48cWQIK+9D^--_3#Nh&DQCt*;q+($#VF>gruw_J$ zBz{GXbXPlOA!1{^qgq!Yo~wIcjm?DObRW_g8*ziNSF2c7<`5Amx=x+$zkreR#c2+w z!)ymBQ&n)*a~wd9A|!j8!$B)! z>D~OI;oNI`26sW~l#!)I^|pT@1X6=R#%>KS26KU8xg{gs(O@NGw=Vsq$o;;OxzhEm z+-;uJV^66q9h&EIX*N+ZWJ9^oX4_0`FrJt_N&0RDngR$uC{!Gf3_`7+i&R063v2jT zqzSPY&nX!-VsOODs*$<4KhlNt-mu#^+eH}E#nV_uubzX2QFEE}MMqCpyB-hQfKTrH z9fxa$4A(ucHzNmOr6$Aq*Zo)hF9wixFt70apN9%LFv;<3^9o#F4U~Ic)ykdmY%Q2H zf+JEcnGZUf@W%Ee9SPqFjL!l^+gs5aVb^t#i zy!i_@U&X?hTu}02x9Y%wO9zGveiAH24+d*1xj=Kr3u=bkZxt^b@d? zLwqBN=qH6MWG<=P*pv80qCW#f{{kWUCG&*a^54T1LuTc_>vr6m@*|eORM77$n95J{ z<&gN#CzF6vrZ4}!k~E*PnvgFMl&k|^m1DXU|D>ktqh3je;-uxXXms?n26|r1j%aiQ zdY;BcL80Wcgp$vWrorTh)O;GKd8{W_cOj-`;D6eItnsI5yQ{2;Oq(FX&Ie|~qK}Nl z`e5IP3{}S?C%Z1J5?M#!bbGfRGbIb3q>+(jww|ytQpCJL;2YLE?>vldIE>&hw{wxk zhNG;`9ndiGh12hjvRB^cT@~$CUgz-i+rbrX*p2wu(((ipMaBcKb4lfQ>Kj#hT17 z5|XWmlu7ZOydpNf*l4^r-Syjne9tv4-$}7?koY%EMOtcV8InJ3U~@wqVFvcUn4orY zzqLKxCn35z`ZP!_!^V!Q1UWR|K1^%f2FR`W4hR;~@yTIfU;>JV@u1m5{@Q@1$Y3)P zJ6v(DeBR8?;~+EHVE)b5Xh0U7N+wPRT@o>;9IkroTeUwD^M8EsQe)|Itwpww2Ox;$3vx~{?gg| zFBYyE?%&6S14izrwoC)lNz@>R(>^d2k7bfxCNE}_h-)9FJbfVyU4m(&MPx4)gK;l& zhv~0jDiT^612c$NEip1mrdrRDq5jF#FceONs>edrhM`~x?qk>YUEO!>z<8+awL>?T z(zfkewc|@Sj)gXk`Zp>876!mI-xeMZ!5rdfM_d1C34#Ej9fwSL0KLTK5)0_B@=99& zO>s7%XSV9S2&aA^DUgpPV*H_ zh26d-Q+~Ivl&8p)-{ac^>MXzLO9xcfSbYcntOK8tV_Gpd$-(+nKytg;aH~H>7AXem zXPA@jCe(-64*s@N3Sb?39q9#r5Bcp0jxFIH{Hu=RMh3utiD3fg*MPeeMawpCN3N8c zQfvoPEEB^raU(W9b(c~R5l4e~D=Pg;mRb|2)H>JzX#{9`=bA|AD{Dfv388M~_4pl5 zXFY1LaitP)#M+CEW{G&OnXRH`notP~%j?^&ZUX>X(yEm0tCaRdwUm6OB@q!LkAY>M zeSjAC%s~pp2zHJe0D4t*(ro-X$BDr+ABn|omQXV4g- zza0>bn{(`E76)mX?`m-m_Fi3ri?UTF79)cfFWiqkR6&fx7VaoMFij?sh(32NOE_y? zv87yBG-XIWw%~@TvgIn9gKjBEw8UmPe+=!2(L01NkbC{q)l*}kicx<>>g82|f)Y>6 zG%-rmo&vbK8#x8s%qak>i&+JHj7_d`bxJGiQI~y<{ULtGb8L;oE)JDRHya4)fS444 zBIF92@JGgxUPIA<;S%k4wIc7ev=Su4y-&nV0Z?JO1%dN(DUmgYS|EdfA>^nPLInYO zfRv}1+K<6h3JI;1@8P7v(#TsKc-=Za2_PlK(|sCk`Bi{a|6d3gsX?@8FA1^~FxtM|5R%^L0JPFIL*k`95iKG5! zs1!ShAZT(dsylnPDA_64?H+Ti~@dSMtYKtysWFz6xu zUPBo`*43=xjY)Iyjn6ETsbFE|K(7H>l=XwJm1kCa1!+#unPQ5 zKOq+ptY*lXaGiWWCRG5Ll$Ls}Hwz!P&TSa;!7w1%U@J8Skj0g29|EYi1Q1=;nY%?MOmTx;x z1`K;zRv&P6qUSBEC58^*z7cOF>{s>Q=g6I?@^ z@NdezoA*cS5x&L~0YpeP1FcgHUhrPF+qYDKBFl8(&pJ%JH+>ejW>XsUzMD_U-I|fe z_y}*j0Lkouu%=Qx$aT$bT6qrGLmL1KaxC~cHOcsEcjEaKpm(lit35dy*#@pZ> zKcuuQ0CrwU%ObxSX&I;@OfzCkP;}PW)noiX#5XnjspM!K=%IBG3Glb16}MY{bs2<2 zvZN`6?hUantaijpoC61X+Isd)d`Q2}r8`T5`=OdK3+m(eveoGnU$&lo%lT#d0C3lk z0pPBYkmL1wTC@xV*_tKK%a;u`lFBend8T)zlJ;G1sDnb%Cha>*>nYKli!b>xdWi#g z#D)RhnrC$7=ZGwq@Sr^1*V{=clL$2G0#HJ;DAa;9kUG|PrWZbyoyr!0Z=x#55syO? z*o#P7G^RS&4Ot@SK2b_b!FJr~tP5bX=RO}VY;#T<5|Fp+C*i|x;8)rEe~(iqs#gwL zV)Li)-O|__3x?f&1LGRohN28%;Lj+A8szF;C|!dtm?C9BGctJK{h2IR7@|9hB0~#a zsl8GAqtNonaDfs-rsK9L$qTqHFRb!>Q>$`r`lLf-`c4?rcbK3ghfR@XaeO96ip^iP zc_^kZ%`Lf%)$@_`+oxqhx!jbns_JA-Sbr%EZuk;u!de~uIIS)Mx4Lzy{!96ys3q8NHMEWW@w zr<@Yr|2LeL22{Xl@legZ;Klyo26%twmJilLP?A${H3PQ&!SLW-Ff4-uqyFOeXEN@i z6@MpiGT(2tsGmg@1Z8)@6FJ?n!l}a0~e+jh-i)-#@90PKo)3kB>urkDUNO(kp z2b&C_p*(_ki)T5`ji`&n=%d?h7PlHA_#5A=LKzNk(Ot3B;YFcb}SXHIv*l%eYIuA0bGD^~0l0lP7i&GHDq zPi`J&og&9tg-O-L7Iv55$lZblcR@6)f>qM?3$~J2Q>MgTx#s~f!uf79k(H>nM7y$U zv(mO~i|m5Zh4|E2Q4dlx$L6U>EqLl`61ANT?1j0L3b%vMATZYzt6VH%TY$^WsvW=v ze0jGitGAkTHXxEuSi>kyHl>d7bo338GxdZ})MU-X4{IUDG{K)GF=z2KHQ4cjBsf>M z#|h}?@ex>;23^4gLtQUFIgz;(5oF#fTr}jFTvT>r-;noO257{h#Xrx=A8H=nJ&{#0 zmQ^uXxaj)8)q$^lE~!-IbegNQ@@hbC4@IwKV7-)9zFo59l@&Ku{C>@)ePDlz77yiJ z*^4?CE*ENG4&@r9(TPoY)@BSk0^Dt+S>x&`6)Pp1itXVBBoyyA6l1o%*U-GxFxo(S zPfQ%&1R%D_#(7ej_L*m*NI^fxxlP8UYsA-eure zXc+JLw2X*N<(6IKxvmv?pxfXo7Mad`QgtOnzfDk>zzM-EMN6f}d53$nE_jeAPyZQD zf6Y@WVLAz6p@vBe$3BH$6sD&^m>y2(#tkt|zKChCYfv}txc4q%1}wO8{^FjuOP9~M zg1+LZMFC&QR1x&#GvTmr$uBBlE~^*v%Z8G@AB@!6KH5{Lt2zNsBY za@FG*Na9w8in}3aat(Z*mhfVbo(LxaMP55L@b=EyzFvfqh`}Vj3-NlO{e~B@3a0^k z2ay@W9!t#Ztsodi^iO4>t|aRzrMI#b2% z>*g)H&|fLJ^P^@DYz_Hu=)E|DK|q>aH0m!>bUD9l9^Akx@HhRKTtqMzQH1TIiJM74 zHB(ZeLC3AZl_HCBl|~3V=g4^UK_%7Vw8gL!gx^>~>(Lfgvw~{dl zi<@KX2)Bf`HbiA~#U4UIVQ_<4gBt9xGxBJ?272?6A#HL&;qRtThI57wxRJf$^oUg#^D>Q4lOs zwkw!3mbqx8;AYM@itpwZzU&!pcqwCK*H}^Y&DG=iwJ_4m42@+j9Py4k^9?_^s2A&p zz1Q}R1s4xCydBJe(@b{mrJmvTmrlSIIm<*+T(vnAGrsic$-<%`yq7hUb7?mO;~`fl z?+VI){lrYz6)Faret#wthKImjcspDGR3>-tW#acQMUV4+uXo1^*Y{Thc5L;0e~X5* z1An123V+q%!s(JdzZ3Mp&S+f+L=OE5aD;H54JW;4XdX`x>Fek?0~rQ3PjM0xh?pfd zU5kcHZ^y~zN1dmlKVVsa%A-HEg;TM;M9m101%`NDC9HP~NHht}1QZ*@RLUePsRfs2 zByv$rbBNPiW=*qnDTTZJ1DtuHTNMo=_n{k|!#OwC|H0F@cDz~e#=h&Tude>RP9r8n z)?)3&jKvxh#U2E`vYGuKkx#3e{qNuymR^;zQJ70Id!;ig#4FmQbIt^HX#r)^m^2`#}PdkbC5kQ!c7*)Vr?)XG&7RdiS zZXk5@93w}|2gb(Vh^`7f1$YD|8`?UaS^8FR;oHIdiC_d?g_Gf$$-*V~e6FmrcU_*W zY?4w1m(E>gfO&)!+x6x#oJRe-W(#?_)3M{z><4Eeim2KceK#Zuyq|P1K~2<~H2NNl zK8VbOvkt+*AR`0pdL~cVI6+<}V-eVZ8CoTsuKtY7$_u$jGTl+Np*1>9cOfSM|4&KY7r%5`Z3KZ$yk8cd@5?7Toz1P`+iGHOC%~0P9yL?W7I)X3Eeupsrpa!b;7t!MB+%;q$Ykr}e(G49hq_M{3j3I5kO@ zlch{1fV@lZr*ox@euqbmotz0a{5_{8i45NBhRw3O4DzR-}USbMXr zaYryb`nxD4v+1B}KGgU1|AJx;rb9#}DL!fGj%Y$*`{al0GK`1UlERkp5*pGH|AU%V z_YLy+Xcx@N5QK?DwQ#}uA^>H~J}~h#^@b(Vx5h@@KS7WWU?d^KgDWSA#MuL6pmZc{DQ?k#wGnm0=o0MIN&cgR>ECaHD_zqV##Pbl zUHH0vHsWcjn%VtS_fN5(*tXHnx8V+%c_~v7*TZLi>{q&F2Wg4Yi4Eryb)5lk<- zgbG42NlN+S)ImfocRaEusZ|iBXx5rnsr?ytceW0~;gMJD^vF{>2>ZlZ)2?*u2_`qe zpgOZkd4{LK0rMg7+`=H7*d>BX^U7K#oR6K<^1J%&O41@uf=r6Q|%oni`E(3 zJco?@Bx1%wDY;^AQ{=G&JL-3>NQ7bFc>N73&_6&wEJ+E+PDBQdg^_Ml6faE18peYQ z9K#)`4b-(6B;jt(f}v-I%dYl+Z6QPl70Yjyz3#cW<8|MwTW)#ZNFPPygoaCx3>_NY zaifBv6s{enTw(F-6=lJf(jAM77D!Fo5L=dvhA$joSBzimSOjh3k;*AcR$F7V4(_mA zZKe)HMo`_e_5p0P#u}ui*bJwkbSPYl=DQr+cknsA5|eBWt{7O)5<|t))Hi0YMs@!S z9NML*iy8fLE^ohEP&~ZsTI=BMw{i+GuJE@m^MBi6|r) zm8oK-yjH#=q6hfXf_W98m9g2GViS3Tq`A7IvcChGUCCwmOoR`wdJgeCz6J-lelm)=7vjy zjU%^|F|+Tvedaw}(amAmlwbT7y}pf8L3l#Uz!L&)j9wVsf}1y-7y0$-Cw0=_h$L~e zL+1=BK|?jKI9Cd({9nBK3{LT&nFd3$2#_|>3;90WwL$m8)^k^V)I0+c3q+d zLZI!^Ntx+f>M9ZR0$$O>P9^;OOJ4mQPap6E!&>F09nY{LGKrh4xT}g2gIIejf3yfo zlOffa7FYyT`d{NGL~YQDzs(22^H%VlPXJ05O%j(F_it61G`8zew@S1eD+4hD6_BRA z>-T8hUu<`2Rd2ZhKc&0VaNgCuSH5sDcn3e~uUxnojJvXVy%TE9;G{Qg%A1jybus^lX;H!5#jcIzG-Vf~d0j-q$+i*Do(AARM-jT0|DJziWrp1)$$m2(Gy+zt(wUu(IR zeK8B>s5cs3ExK9$jYZ>&>c$IKjk@yhz;>te#`=+*mo{GO9nV>6w&Kjl<2Nf`{nU8r zs_~Ks#tT-XG3dwDh8uY=6u9^ou^+9xAx9|6<0Z%lF%v zU(EcitVu5(FSwJI@ujYdo;$e{zYDNAOlHMd=*bNzC(Z-^yl z(z4Lyq8S(dnTfFb{zUhkV}=nP!kEn(Xg}^34Esl_XI!|PS-^7VjB@L=hqd7YGmz*$ ztWEW30qqHGswkut%v5G;TR52bXQt{Ax0W-wV#dXP?;Y~GH1BT*zZe|+)NL31^cpoS ze<*Lp#eeT1fVh@9;mR9xVP)QS70m=zYej=k&$#fTn`HctqcpZZCA;p z3sWhBwpTjv5Qg-`j0^wVYd{0T6Rx5$7d&}o&;a!EtN6z*MXCJ^$kjT?0`f3SG@?*C zK%VQ~ujyJ5q~jFaBSW^8M^^X9T?8|TrrGX#&fYur(Vgk?0doVPXeD9l~79OmtKiAd};2>fqTtfbr#+UV(p-Wqpvvc@2+Eabknb z2;_Q_cHJLOe;ipvu=l;gz0V=`Vx1(13~8y|FS8}mgS|=}$06x&dfjbiB>wI^= z@XF9_kbDribi^PcK=?to0V3Si19gXFgz!mUbWN^Y^_@-M-h|AfC%$`PRHYRpsnL|0 zQR>7aN_P(9Uv;Fi&OT@YtXT;Et~ais;Gr~Gjs$Z-jXEP2G=;W#N?q`*V;Sn3WANaI zHW@bA(CPK`#k!CO;sQvcQ@hZ0Fd*!8+}qLD*%jjeLb|CaC^N5&5-<3WYN-iHTgM|%%8LX8R1q&;YMo}74Aa9=QiL@uuV;)Ihyd3hPv}O-1ZXitS zO^2Ei%JAglAmJ_PXgO}mY#;M9MwB3~5zHC|axqVDI%;+GP&F#Yaj?qf{bPuiq7-V? z>2Y^o47s$8u~pDy{|y`7b~y7}&k01axc78>{|O^eabDu#v2OTtgFT7C!${Z)4ithE zunr#|;>}Ljmk2u<_uw+_x87m5p(c<+R+GRfRC>m@Eksy>g0W_tsCUaj*sSL>)v0jd zp!fOUPnWNp@wgYQy|aAfi07@E)gylB;ue>_^2m)xUO8~%z|Fj$EZXqXn$_>(=0=p6 zV%b6OkNrg-OuKL?rnO(M-I1T>K&xDDGUc6^;<5POO@c(<2%!Ttac-;E&Q-9>7#>8TnkiZ=qu3xy$+|i7YV|U+?{ru@$^Td zBKOm|_XB&MhOd-L9&f=A!VLj_J9_(}78U?q#hQdeb{{*Pa4ICylUVq0@Hib0+dvSU z|C!S@cr0n(MSuRn))%%;26GYVe$YEvv}mHJ>UL4p;2yZZW))CiT6Ocu9~G>BGk0>~ z;#W4@*znS(p$5cRU+~~h!v%;BR$Tp$2oal4x6v(Ew;)|m;X;~Rk5rBqE+;tOEnYNy z=#|zRt>eWj2EAX&{zVR6{c*wi{|8$}{z94v6~x2&;BK=Dei`GS|6yQfnfp6AJHx*3 zyZpHPK{&8;NyZOK(s^AL*tyF0gE|do2Y3^-1-$uSStGRyi_+!t7j`w`puz}}`^QN5P;fMu0X#76k&+)y3Z zN)bJ*B(@hPz>13R`Fys@!Hzta2>&_a{btsyS>u_tgaEME#$AvXHd@E*5sAp`EyH4)fA(nKi!{YRKlX5;E#;|4o;@~q8Xzvr zTd&7POQlS8+$^cnO(=+nb1xB8OC%Mvi1j4QbQq4kgI1c>ZkM3cBy_uH3;NfN=`zaV zsuAU3L+KTpN<2M|J~f^a>trrsIc%Xf6X?a)H1NQl?tXX`i4PZPhEq_|!ktc!JQJy+ zVS{=kaPth9gUu1K`$68|Sm9{NV2s8_QVGC5mBtIH^4JR8=P3F`OrcLJL;*=e_=g!J1xm&zs z`0Oq3pJcs}HMV@)Pl~q>?YNtdcu23*+^89O=Eka@sU~H_2k`>(vh^6YKQ743rj|-#|u|ZE-4@O+)H;AmRvgtO-Fv=aK*LFlljH>;Ml(8 z-G#1Dm}b|8;o_Ze0kIMc7D@MC->}o;`hh2~Gwk_6NW&Q>UPw$Mqyc<9Eh-?MVc}>Z zU`1}AAjt~RETb-w4OV9=VIir(gcOnQs08Gk3q|R2uw->A*<*x1%XkvmCZQx@S;E?4 z6*y4>uled|w3&Nx&kP9MwNts-zLirEpYMS7UUsgpM7__#9r&{j0HGYymG~zW!3z@C z$}|e*6ERfK>OGQB_?;HK(_V@y8oDI000~lqJB%!6(&6Q1cs?k#+9T(5YR!>e3=&@e z?CA^WdmW2`?1i2TFh=VTmgG$!J=o#IV(rJf0_T`#Q`Jaq7*h|xTn7R3@xjL~z*dI| z)Ie=JC~P`MfSDm#&H8{+oo^U)xLDzmpmtOt&4Ni=3~{3Cob|wms`og&CP}j+KNZ{0 z^~koIR&6oDu`QR97y}3T=Xr%JVHV2|K^qnWJD-W}eSl`hX!<<;^{`FQ(L z2+$37qE5kz@UHxj;`9`@4;#~lb*Yg3Q4}!ZE5T_dyfHPZCfrSve6j4~NbzwON;;U~ z4%UZmWqqiFW`y!9?vrVbd)ZWjj){9|8K{yEi*m+E$_U_tjM;-XkVV$SB3-D@NZ0k2 zKOeD?Ul@RWG7>abjjV&Y+Ni%ufp{6pF=&7Y=bh_Ke-h8;SzPok(s?3q8$ko!b*KCM zQwUwL@x3&+uUdVFWnj-ORTkjd@^9k2sx>Ngu|4Vyq07-;7yg+!tA(`c!DH`1*sI#{Gt^)m=B!MA8MiQBHW`@6 z!eF?&3X-tLH650WB48p5>yv=|X~M#$OI!lKgz?OfFrEPkgly zhs-38MgvB)c4W#x?0guV_V-+ueXS``+Qe!HhW`R1JcWE3*F5%m9j|Slka6DKz+0mt28) zH?B^}RXUzBxrU^e>pI)1!@oW5V|qCq=20>35q$Ktk-VJufQwGX(|gS7nY~1c1$jl@ zKz{l8i!u%e+8|U3+MqUbe(4exqh&G!D=D|#7bD@LvCeIyHWGopJp&Dg(1HliE`|#T zJ3ZW>gN}YPf|Qf&TbRPdg$EW2No}CKpAqsEmoub!v;_>Cv{m(Sy4l ziKjy~4-C@vx?42JaW_^1I|5m1F-r@7&Qm4+Vmom%VKgiB!jqSu96EI6sX;fmU|1n- zy}WhU{Yv0QU_7&8)LSt()N<>6Zox*^o8cXqp6>@Vod1724_gh^1sQKuf=`l5Sl%R+ zVKH?K)_2?wun`EFA=Revf1iG#?!MF0u=k+o!|>5& zMlVNQj;XMi+CRdRkGv!-0l`6w4Ma7@AxnZQIO&*gNhD-e>pUsZynA5ToQuPO$#;XC zlGPzJRbq8y?=VI1N|eRLqn6Bpru_*!3CDC~p^R`kB5G*BFWW+Cx!f|;dF3A_2Y zreP?YnDQ$GuR>x60Iyun!0Pn0_XD|~+6{EVfkhgUX|k zBC|~OK;{DO2}CDm724mvSRFTDxFEnD)7n8~yWne}ZxT8K#gNH%L2o4VO0zZG@a{BC~QVvvSm1`J3o#y{)gbP9=2>w;4FIF-a1M-H+INKQ~Lhr>|!B zZ2hL9K-89GjiyPfB=?(vK1RJue-r)QmfUZqLyut_`glDSR$*3;xiRQGk#5&1l>SY0 zZHKLEaAsRu3ATuI8xC{->~$UHrX)v#X#$~2@+aJx>4?#1wzB8!z^tzUvN}NoOPT1JE7<>XAo{*V%MX6aSD$iz(LjQqB9$`>4 zAQrLw28uB$q8PCZMZJJVU?7@yk|8trW_Wr?{5AYUC^opK$CZ<3Q*{PePWa&Tx5L3X z?q#)cpV)ZPEB&;>P%F`V{DidtJ=NnGUGR=3Yu*JZr*;aY?P~n3p^#VWu*L2X#Kn0O zbK7oQ#7^UM(e>9zuXu1Kz*s%)NV(Yg@}bw(4>wL^t{BT)aW|OrV#SL`uXkVV9?2Qc ztr!nh4r+HZf`gA=S#WV@;v!r;T>iDJOJ3NbqqfyoeP7u;nO87$bm*C(2QN25{h70b zTuS!Ey=wUwbBOP|T)Yc_=g+D@<)ESq#N4(&Ee57~|`LNA$83ySyc-!$q`actok zu--u*NcMVc3y_8)2^J_@A#mw*F4IW{U-lA^tZB6Q?d_9)JG;)pY=ShAz6&P@-9)ex z)7H=O3AaIbIRvw5l`)+AO7V^2v0(WxpkJ$)Ou9)9*w{ww9q^(C88pt}N7*uwUKeku zBh`?QT(y>#C$T_VD$Io^8|;6WHDDI(ry4Ctc9{g08!&Yq7HeQ6mIW!&Y0@mRFLTvk zIAIYHF?|22Bk8W~1rKMt6ObTxBK>uy1%y1x+}R`4Vvy1?B59fJj2vt4?tv7^zVXWp zQR;CFYv|Y-+gx(IsVY(IB2kM71)sx3tQseYb`=P|Ppy}A@)jZ8TeqoLuPcPsvMo}~9 z2n<-!<)WdAD~r|WC4MB29!JbPtkL^N+?h)qX#;6*v)kN(+QAP2TadmCNfzjKf_o!n{cQ08q-! zR5+)3T`g%*x7Woel2Qu$oAoY`KqKEr$tdV z;oPNjL$NELySV2s(z6iL>H6`j$A^zy>l@6xo3~)-{CHmNp#SYqSc;v6(f*#v^w4;E z$=gMdk<~YXgISZ=3&*pU!Rc!F*_)5w_`+yt)vX7|Lz@t7Wf)c%L!TRYeB{DN>uBNX z(eUcYVDa$dW5FeZjnHR?7X3JT8ML5?$l@N#8SEO|c=6HMG$n~HQrpx26(_20wrQs; zB#?!6I!?s&smKy$p|X#}O4Ajz6tu;27FdsAAAS;7xA z)Ht@fvt4Vgr4V&>DTATJ!UMV0?6F!2208JqsMlOVeD64P>J>gpnVpt8Zrl^;6yFBX|X%%q>F&6Mzz;SLilUXNnw) zL7GVMhB$*5-XHM{s`x}sLanip-XmcW3EIm~wFM#4P>`h|$RfTL_v2sXL9!H;CQ)Qi zl&KI8=vx~VqcQyiN`03l{{>Faxfd-S^)9}+`>iYl`?;HmtlKZ=O=K<}%Uq1`_m_9y z%_2p1t>n{iFUUbnSTyFP;_ftS(6C zyKS7Z>3>C#QeHeFOC?k&jW}jk2>^s)7Vc3PDwSA52vQ-AWKWfify-4!0cN4ZkZL_A zG;ck)N0bul!wFr0tBu1>D*)+bNi>WlvRlP&nJKEt)Fv;1m`Xbx zHZMAi?4YRg!0yxwC7n;%e@D}iK^qFX{Ta-;hkpaiqK$tu5n9|I4eZa{;EuSU=F5bd zFDPoetR*mKk7n)9-WSrt`*QT$eR+C*#3gFH0#V=ZClq!HC zZ*g=1&P!S|4{o>GZC#`ytXr3Gkkt__#JiDb5zb{&cQNWN*UM3N3GP+2Rw4`0Qkdv3 zG*>QcPC@;y#@`+QL$9lKnO&dN?QX<|CYGb_Ue{_@bkRwz7P!uQTVKu^aewhiExH7C zX+~WbY1k5#Hp7~HtsAuf#*A9z{S;**bCtEeRTV8mAF89}IIoCS;Jh+giF1wgbSZjT ztJk5Y%W-d&+^fR92lNMUuNwDO%e@u2w?<#HZ>_#|-#UFgo~^{Q2ctDOZ-~}L>*}=V zDnuS~>l>pF=$oQjqN^oX{O0Hyl-MG5tVJDL^=)|9A6pSH7L0s?D z>*aa_t{e1Sa=j7PyY)vRut&n%oA7Ioz6Vb>qxQYWGs;}83m`(q7~@_D_X5F+hhS`qbuNQjA#FbGqb~C)W3^mu`-EW%j z8c(I()>ZmyJiD3l*=l_wp8bB(GpskUr~ho~`^PiP`_)?qhU%5h+M@nXwfADXL{b@+Jk>^Tw77SBJKwP zcB%t0ny8^h&U3>WIv^B|Qe9`rH3>1(8r5&oKXE_9JIT(3jOe;tI92ABGMqYdr5{hF zJvVjWriR_pg(vCF)4OA*BsLkO84RebpY7_52fEIm#-OWS*-NQoiCkF_C`5Irbt#$Sl_ zpbCk`p5!EaZLxjN*5t=wyibbn>wLW6z@zm$4(w`c+R?bH zZEw>PI}YyM(R3&tLa7~(wHG;E-h-q?k`A(4=5vS~NwUasn5MYu3RJB+ zAco`!;OHfTNjZ7aVgDM^I?hwueC;v6Mpp2bpJ`%NxgIJ#h%qSpCs1(Jg9B`AKS>ik zNJJn`rokP>TgV3ArAuK_#e5ipBH;uI!j7#ka+LAQ)eYdSPz(VW`;J52*cIz&hfxrx zMT|VEgJLdXD#JGL{zjaXhf@JSl8X%9PH=6qZ0yrI5s0(1D~{C&wHlYZDZkWZ+3hS zKlTjnxEo$_yLA2C(p9%|rak{3b#DUS)^*;A;$q)O00g*GBDil7DT>ra%91HAqC}CD z2tlSTItoNm5^V~U0BWPWD9KC)w2~T>oCvZtHPvKly3I`FChu2w+L^}klC;ylM;LNR zBaAA)`j>frOG`^?>Sf;a{l9ZpfS@EhNq>FU*5Spy=bm%!x#xW6JKysEI7efs<(AWR zY2(z!Nat+%hM05Xtaamu&Y~N|8yAY#&KH-wQgyXzruCXDR=oa>PVL&bs8XkG3_OIk zCCn@8W;U-Xzwo@0rFi$8MV**MsDwXK?e&V4_o)|?4kee@mtu~Q5t}%NQjKX+uh1cK zXApm=ew}hKA2fk&C{Qs*jj~XW+3fQp)OZLBBpZh~<40s*2Oflh4$TeVboAhtpbASI zN$qrF7|D{6lsJN%nU|U`G+zn4eD=k&GxaY$Ggr7STDb1o;OmXC!iVPyJEDahvBJ)n zbH}U|81DAx&rF_)I3q(bTL~XFHD;@sHP$R07t&h83&0d#kQR}oL-~b3#U6~hLNFy- z@q09Wm>&AIy+)4?ytv-4_84%*NCGhr3=XxbR9+VSMdDXy^pG})Ne57mEn*&7pg#n< z=%z7{>Iq3sfUj(wC`=Gy3KnlxWvR3Z|2;i}Oa9re|vwH^1t5K25D3T49>qWoCYZloFAFRQ=Ch-@= zg7fO6U&LydfZ1w>6Qjj%=&n`f_0>bx`W+^pT}9VZ4MmY`!JRV2Ko#$@GK@)e4GF&u zVrzULn~?b$sQbOV3koK9KNCAZ27GokuA`0T_^q#3er_f5>%~%rz;eiM$Rfb#gfg|v ztpz>M-$!M64V0Fu`u8b+!Q7O@Htg6h*)HuT=?puVMG`C$-71;=>66$WF&ClQdW>FG zo!ZOo;Wp^kBmc1M6l3ZMc#)MU)q}LMHDM1()GV+b$%FxQ^sUMofWsK*KJiRJHlfL{{ulsrq#2EP>)6$t z7#%;rZ@nzSFShv-f3Up*q}zsLLN5KW11tmnva+dznYda=0*oTiRrbPzI0-g@1_7WR zmL;2>+XNfLt>@YjnRiAJY?<%{l!<}OML$6Y7S)Bi^o9DS*BgIS7&X?0tkcaucVvM< zDX+W6eQy+iS)uKbeK&2HzjWsP{;K(s>hP}lm8D?|OWwEV+;rqb9*M1J1i~!EaJ{&7 zdUURQW3+r@th_1aY`VoBD6R~5%~SHetKe2)dD!|(TVCYs%-YM(UK@%PHqEcBimt3f znR#W=yxQlwKCV$^WdEvGm6r4SmYdd`$iPf-bj9jxkHuDOop%;Sonqga^^?FJ-*0ohEV^LO(js|@rYR`@&YLkJONf}-Z%?_q(;e3Apg5hE6 z7FoB#Gs0L+ef z|5Ls*uuC9APIBC7QarMM&ExJG;qm?TkGmgw$bF1eK)N6rwGfi~fr?Er;e2jZuzPfv zkSq`wiA=|YX1h;~&<=yot57tVPrzA-tVE&9^$(7oU}g|hHk(^8O&_j3T&rw#@nBOO zBmu=$XcTWxQHe{%tK7x><>ebkUx8XoL6e|MUbb;`_sAHuUbI0nQ_I-5bMq|)J^|Ap zB(@eY@&f1!UiJe6S9p5j!w}S!ysN4;FL{@`I;yCS^bFug0!v;j>AvzUcM~j^k9lb}e8PdO@k?=S+ChFnZ=e*q^! ziVX|Cwp^84JYDpXHLA@#*B*AkYBA!Ps+qNrW`eN}5L9I_vc@ajsPqHS$V-z7#n6hT z!M{7&-xfoG#W$Hx1v{bZHG`qxz^AIgr)oSVzt&^Ma(_QgRqxe%;5GyGEXVvk&(H#k zfS-t%B3wDdu2?+j;Ck<|@OycGQKA~@y__cv?2A6tuBJa*U!dnX0q&L>E))cWf zPV?BMKET)l=Wk)XqCyZsG%g?hX|;zxZ|j)_O^K}TUig;B%?G!0V> z<-M4ybSh2&&@#WE!1f)&gkm$D9;)RTi+wcOXb3jl0pFz>7}z?1i7~(itjzVtxu(yI z;=MTZ)Q=%AbJPBao(deG1WH%(zfHx0@Y_U~3PY}`CDnG7nN2mtW&n{Iuo;M(LC_Bf zPD(na8jtIk@KcN>!iQTTbY{Sct_{)-TVM`|sI%$G7#>P~fPcZ0csoo_;D9Ow7zx|X z`HXCYN6X9&bpXc)u|#q!Lp$eP*^}+JGP3AK4&BJ68x?dT3uh2+n5ImT@|e9GVH+&~ zXA2jFHbpeBUxC|Rcu)8^V5U3(d4omQ%981|(=CxlUp{d8Kx{?rwd&Z4&6l~K6oqwA zTau5&bVDqs7QdW1k!=^7=kp7uy^*c6uIl;Rl`rRA&YNz%=6E$XmfHYVU}tWm@8V`f z7O2v*Bjw?V>H3+DYkOYZIa{*fb;nOy{-o*k=GRxwW^bRhZ$}eyR!pm>9g$%u+>cKO zroFS-)wA~M`Lv91eRxmkvB7VZu!1>6;ZF<;!oF#7ztg7-{>(jwF_(1UvT>ne!!dGw5B(oCF8p68g&qKWH?W3UOUJOV8XmTJuIDzaH8uR@yXiDoMDEXO>9 zIT;g5)|%UwmIIiG;TFK*agpMPE>sFD%gJ@& zMndt3jK`d0Z9Y9TYpI^qRxcfylH~Bu(9ADCGVdXO$0)g<{2ikR(m%-1X`bMK)SJjF zJ5m|?lBCL`^}xARexk}CY#AlWUMth_0EX*w@|r>1QWyjQNsK;skk$r)uF}?)S)`FB zB)Ag^_Fc6ZW4%Br#Df&A}JY|f#d(g$sKxO zGTyg`9p^WOTPB-lwOPMzLsu&sDs#unHI^-}Q`D;DrjkyDIeN2bB*clbrZFxPYJ`&z z=^X{j&A)U4mnrpZ;I~MHQ`282b}9i~mF=9+$pp0|P++_U>ELB5U4vPmu!BN>$oH6W zy?Q_K0PLs~{`z(yS4ye4OnYIpDDk86+L4OqR6L^xMW=C-bco_BaG&?M%NtT3CTRZ0 zmy^W8F9q?c-2AS%QrtcgzsB#;7`sP)I%c*5V-{UL{vm8P`EOpud)<&nTN@h6i-Qf6{vDFIaS#eH#L684eJ807qwj%ZbatHX1Ih^o_T1?>cV;PtUqRU@$-zhp z(ijAVCmVK!ECv+b6|<}ag|}pc8_z$4lboXI(wA()M(L)(8qN$KpUR2sjX8<{y7R5m zA=^!Z<-2VFaQg3t+;BFA5z zxIFRFQ&FZ0fZCSLijUlA+ZJL7;#@Ivwc^zsBu3cf~ck`+7dpJDJ{1}?f2CBIOzt~;|GpzZ!<`>RPyDmOE zeLR|76|+>&S=L4^Yk$1{&l+MD5`tRNqv>5g&UwA`&#V8W`Yq3&*4?Pz8B6bqS-NJm zUH4eV-a;kRM%(Yh{z`$;9YQ+ z4qo`4YFK+DwM8n;nMi%*0ZT2$kTj(nlA=vC@y*K(N!rg6xDl~San3EAF{hxt>>_Wc z`6JwBIAvlvuu~;-9V>&j2?E&z7E*B&2_#48lu_KkQ&gx805$w{U`R?qh@k!>t}8$N zAL4g_k}dS<58?!7*?N`H8rl|WJ$EL&Ge(vv&Pa3ARz7Pi#}3z+J!dG18cL?y<_uL) zLly1<6$x=JoxzC$mh{3hC8Vqk`6XKkni5PJbLO#2--Xz!@YB|O(^PS zrae+!eJN^A#caT|(IioPy=*k&z0X_llTUh5N4>+eaiGqa`1q}bPED~Y8Sb&w$x7%A z5a#3q8yAB(?NO?9`+?umEIn=PKh4@%j&>UNXNpC6bz%;7SL{z|o!gJ?J%7kK(I(`h z1I(dBs=W6ys!DuQK;I=FcvGn*2syl)l=xZ|ZTvx?tP`E>%;3-c43ptKLxz7OxxU{c0fo~#- z8;1QSM*<*h8f-I|9xlL^IONu=+L8g+ug+ZhT~PXgKg3opb)UkzVP@81`bs zXT~kC5g=PUX7*?m00h{tAaQJxc#oGVkhq-zFFeA?A`)>$Tt@%LRDX8Yqz=p=w0?Fc zN$hOTZ=Kv4SvO}X0!1XGPz%Hb-x>^;o*y}PeBNw1Ulwkg+CJSFb5%$(2Uz-Btm2LL zTopu&Gq3P4Cx+q$7_T% z7PHrdbPLYxhz`~+U|46WVdxTbu7^X7!5C`!#z~<5Md~Aa!Xt3DfkVTS-$z@kqL!+K zyn>f&UaXmZGM2YC)U}YEOW>rJo|$@P`iWR}eaL#tk`=R*BZ92G;L7P4W2~?~W~+zK zL)fyAoquKfbZ4w!^~~8=c5|rnL#2%)H6OM&5qR}fq7fD+YF`^Z61A+H)vjE+Ea>qS z*s@TL-P&(uS=dX*`JA(&@E8C8--3RK#qO^^VlMAd;)YYNgy6AQqn-8&3N|JU#o?Zb(G)Cw-0X#KN7ET5W8hXAEzYiiu)-v96eYBnP)uikt1M9)%dMQinB}KpL z*b_lk8tdyX^^GOo{a<$v_I^j25oz-HNgVZFtH@INO3*9UoAF(I*nRacu&?kS&w&yO z&k^g0XaDt$CB<7}n6bVfJ%_nhyL5i>6v788zg^vpx$iYGWHPWk`~hznh(FwznO?@w z2=mhdN&;5eZ-zHYh3H)ZV=1uU(sLN8c&?k~xK~T5Kb?8gOepd%t>=Yh>)Ee(PFW9R zU8v^-t0#@6dPQw^#Z$`KKo{}UB`;eamaX$Uil>!zVie%%r^R}D{;Qa;Dr4fH!0y3r z9JU`PeSmU=)gwG!4l%tf;Uxv#rMSMzU3wOOo@Q)e8P3YU3wn9JPw^a~FpUl$8V5_r zBcBY_G9Iv$rF?kSo(c7V)p4CKI5;xGE?2PhEK8pz8*s+W9gK6Oajq=RRm8coaqelx zJu=x$l`R!RNN5h^B^pm-B_H5TT!L}^(8%EtAWM?F427=<{5d`^V;lqDz?l*mF+hAG z;~nG1uHiGxaTJv?wlPL|jd*c>N3A=4Vr(1+@K7Klas=FW4#F-U5!eI5-=VQl;M}pg z;u`F%`MQ`p3_PF#@)6gdthkPasbff55?9He@Vup)8brxO4qI+m>fVpHM6mX8sIR8A zGi@>V8VD~#T|YNwE)m6Emf;jJip~ElWC}!nPvFd+AHhie*CuJm;*4IxA+%f4KV9)luh$ z*Gr?$EmSBKm61t>5{t|1T`5_}a9ygNs>XG5dMFU)LY3!Q=dEey+85H{;{twn`@Grq ztvU!b!ygH$RJA21D+&%n!9X@m}i|Op|*uAKviEH32i4J{ZatyGu?IlOKDJD z+ntfdY4ddEjN@wVY<^8NyC!O{xuAjcA>DRHQ#&HV)4t0iK(n3M9MHqsJ4B6S(M-IWtL0pRd6v#zQzcQY$H((+O_Ocka& z0TB*h@jX*J!|nJ`)9YsHuWp*nSsiZq6~MxCA}#;Ed(o(ORLy6voO*V_UHppW_bfly z_QRd8?)-7!kI(+m*`GATHf)cs>WsN}T-M!kS6sDT)}iAZt|@C+bJOXP3jgGm)i&7) zBMD<#*fD7i=@uVRt1R~4saxzrA1%@B2Ocu5Dh<;;zr-_2Cz6vLp=QHeL3-g|jV6ffI4Ur>U< z)ODd91vn}{zxyyJl(1#qU4AwFnltKdymm6`euyt-OHwiIm$%HcMf2B0U2B$>)u_rL za8-0qLGk5Xr~)1;Ri6c)0bO`=>&mWms<-WqT~(^LE4J)%sNN~pBK>K-quZ_enQ=?E zPW2ZCEz-YC+tR&N_1~;oO4nuWO4s~V8b_(av8!D3S7jWfRaxC?&0ljIr8-yl3e8^^ zaFn`pyEkk8x|ySNYkH4e^S|0Sq!4MR^A=>HKj0F%Iop#pf&cie?8&el7e#gV@^VNe zrB(Vjq|&?zX6u5HHSE9cr@w=s%MVK}d4J}Wq{K|*H=c*R0&bc( zoBm0Ys<%zJ%G;oAAWp|)V!$N%l*40|EJU~@ixR!;*Dfu_95&_yhice$P2`4Or^&0YQ)`zTh)KO z4}4tmA@>`-3B*#Ci8Zo+9B&^wJURj}E!gK0W+`*k5Z&JZX)->jFeVFp8-*~pk=kU# z113M`CFhSJ6Kudz37U4`7OyTL96}l0rS}h%P*O?>iIaG>CBiu{ zplg_w9ffx%NuE;LiWSillo-&%K{u9tDEw`X=g&NMCgM8(Y)DJOm!T`|bC%+$rC4Dp z#>~Ys^CmkKMqJP46X zZCI?WX;^a8Z7-CBhc8y2_rnzI(#FV%%cp17Lx2NnJJm^#N%8*?uCQ2Ms^W-9WgkPRvG z%G9ObF4hW32#Gq`Axl&+Z@7twr~-u%is)4(ddkaIC@@2J185UIq~tZ~7LnWuWMvS_ zc=K2Nagg8sJZV#gA96UC*x}kne;|4-4 zhgW@oTv|n4WII|N!0t;S*=3yi;Hja5aXsq92`|#6IRU*FO|`fNR}=K5jst=l`T_AR z0)LN;6kj{I8z+#+rYBhe*u$>pnM$$~xmN*;93;9Tft>GWR2`+e714erHM^I4Dv`q!OVs_*7EYJS8uYT(G84o83g z5DP`fJo_E2cgbo{9CZvOV2F_J6FQnECF|(lMF)R}u>||2t`^m?0MVm7?2tR%t7byn zr?6b9Q>lYfJtKZ7g6{Ap1v?V&r8YMb3B*tX2m}p#zBSU4DBZ`<@oN06e5kjvF!P5z z{S{MQdKzzqZ$gKn70bUf@^;gEW7t3(B5B1SMuGT%OifdHhe2P7@_i7u7qTErEpQ?& zg@+ggTx!uC;`S>A7a+t0_CYzMfvN6+yB00CY%kA@v_GPW@)5~w1259qT1r|ec?8Kw zIjGx6B_&lz;IIy8iE-u?j!5)FLkMQ+ABXnZ$HoOuOu&oqBbuij^lpKVk;ILs;0FU& z_y8N>82gN#*g^W>GCXuZyi4w5*rpp{hQ#>WxO(_>k{>8Wt61lOpP}+;(?`%9hPn_+EM?!WL8JPwv`SNH`5@BlXHu^K9|jm~-vV z5uwS z#EI9-d9_4|FU@R#VdC$$CBk)}kiR-6#2+a*}JfcHnMWI`cNY@JLLDx>nq^CcwT$$YP@e3lI)py!R}-hMeD7s@s!!2VI=|FY@J(ku zc1VhdqNopjww>$7%GdJ`2>J+#Tq5}h{0fx^{)rMIAAwJhd_+|LqZa!4DJ7rL&$EKyf;@p8HmW%QHC2QRQKhwL942}oVP{>&#Eo9aR(o(7_=qJ(w zahBZ`-UgS6(;@B6^o&Jyep=H)cIAvKmR%dx-mIy6VLSqIQZZ}abZsw^#YTY+G%z}l zlSYWYj1H8qhq4!p{i53B$OXZ1*UrEdv?1I%pIwLoZfS#j@kF=7O4eB@6aJcZs zdXBDaFmKc9u5)UfU)OMSu65FRPR_P^^>yULd3|=PMfawW^1Ny0=-g67=c}lkH`lsw z{+30D^A50qO!Pb`2M@wmQb`Kw-^1|5CWNlBL!N%%5pYkuD&ua8Q$(6@wM@(*dELvF zE`3JvdHJtmyMQQietjzP;ng#N1KM<0*SlH?385(a-dho-kiJjZP-CXD36ia*AXbsQ z;fL};*0I3zhulkIFANdcm&67AyTx82E=gf$Ba=wDu|f4Lmk%Sl`?W``%ZE+>GI=F# zOUjEj_dmS9NNTy1!=vIYYoN|b$97T9p%(cw%HcOBv|q9$@~YT3!n6m<0l&2IoSKru zswa_+9M#tcCTc$xD*o7y9_0_ONvu))OF*5e$0S?4Of9CK-vvp=U+{FqPO$@vDVTtS z8Zm~331dN0If;3Z&$yqAW7r{oPe0E&QVsu`ScACyVBu1}9lp5VB({eZcQJoLi(v0f zg11yHc*Lme!&D`SHCI`Cm{Tn|6$VbC$t=nogE#;@8Kc(&1GNLNyq?gqJf|s7KP9yL zm@o);`31$nwo?jgr8dg=e^ElhfWZGv$$m;`ZRgh%wz{x=7voelP-pQ=3{ih3b^@M4 z6J<}Q3;ze5J&PosPOFRTrWp8t=uS1=F(2`Pf8_;F_7Oj9K7FGSkIOGjh=NRR%G3;A z@x)SI`&2^(QSutCJwHON@UO9DN3`dkNtQ!p7Q!cy`6;d_4fRO-=n&Kd1)=T2L(|z1 zKh0;CV)d|BL42RZ9wHyc6(#&b!jAh^R(|qBCGdy5bYSYh^uAc;s*w4nE%*CnGul^b zu3~GM9noCe8fsfq+f3`kjV9tG7rJMy1-~j*+4CYpFOOXwn>jSMa$R)gI@D};J^$?F zvyq88TXob{J)cwlgTZUne>gT%1G72RVcnwEl2$~8 zdt=U;8MtpX%;&qqZHq3ppoYeYx!%E{t~)A&srXmmrn45ZR$LjJE`I57EUSE`ZPvbK z!I>XvySU}sZJ#gLvhJv~rggw^fWB$Iu;}Hpm(QZL3(i_9yAfFyO}PI#ytpY^swOS- z4%8i)WJU!({`0#Qwtj2VitsYxl1rRCYt-kAY5#oDg8QGb@JrX%q_vf)-m*J7T&lOq z%pDHRTXhxf`I@)$({TQFWnqU^^Nv-A^LJe4?dh6#O4BH<&)9C#{M4kw`QAZ{0qKx7 z-0S(pO}f#i%q3hUuP~A95Frx@CnM;zGhhdh+%UlC7*6n_yoZzxtstaiN%F6U=eQb+ znFfC2S}!+ ztgE~h@q4gmED!Juyu$tIilz9k#ibYkKV^JS4!_NBSG%?>?aY~2*`}zmIAn>K z7fM#m^v6opM~&`~IecaT5f|W0YeJHZoT2Ee0^=mbc>WgWMonOH(6^Y zJ3`ySYFfzE=bwThull8@0B(m6-cS`m)86r1%g4~<*F%hynIGPGB{<#m(z7$iqlIgt z&iZRRUO#xPJL+r+8E@LMVK5Tvp0{N@e|qwC#2B*`%^HgsRM5otxBPhXjTXYFVwFO0`N-5jsTTw_8m%Z{()t*I~)jp*HqKkiks>W%SgtMi?o}+#R`gw( z@crS_GxiH{{S&1=N-=_ozkB7nlF ze9&y+OQ-wOpF$7>4Xq4e?{0_7?&1?5Mu%@e|w<1Oc z06ty^cFI<;2zIKQt|-2sR2t>!f02ka4B4fY`(RG5?ov$RviLRJ_(#E}qGM!7!xP!Ob8A_MUB`U5H)g zcaH!%hgZ7tNWlyVD|pWcX2BB&SJV1fJ5dH31OXYF570rnT#5oqkzb^uc@DvgrUmv< z@@+~$O9fz7d@&Uhn@$w&MyUt}HAdk&j`)C>MwkaI;1*k!C(2r-NFI_Bnn1fGu7{cx zRAwW$a)K*ECg_+~3qM)59u^O;%9Rjft&JMfPDv8)0--U`^eORBLPUeHEh%HM@%!+v zQXU^AN|t4qE@0#;*9WdNdQ>xVE+8J=mmdStGAeYAZ2wUe>( z)>uKCV5$Na;(HZz)8<;pa?ciZ#w%!|AyWi+~{WvgJvzxBgM|^+Cy@Z!~^~smHtMxas zo8IUOS)y6H7t-wE{8-wGkXmu(S`j(;-R{Y@P)q1I001DFKR(s|?TPu^LI!t~7uJJe z0-uyw3_dBVAkqmDL&i&w%x0E_I^YZj1D(N_k6b=7eKNMPHfpP#HP(K5yIGaJhx>FP zYwM@zNPF$4kj*2#ovzAg`t*O#Zu%6T=##ryscQ|9`8vQ#aQ)i9!oh%KdEA*6>80dO+J@Wjta23*@Sqmwx(c${f*68Vc zebtUaG9rxk_QKW)NU5SK(a zoCdnX5~2;nDDajUxn!BKeWvYu-4GDXTGxKUq)(hF_kCv$8Dr!sj4{k5n&0C}G=V?B z(^Wg=;6Wu+b}1!QlrTa_s~2zZhOIg;apX6V9rSY$2|W+h`hf#{XeI;69(~6~0$V7< zPD-{?(nZO`lu*y}ntjU-7Mg<(at%I55R#_hEUxyC2ZD5oQFlhup^{Vueuon93xe0@ z3v@;-N8E&1X%h&dHVi}k00m@)1<{c};K!8Vk13&jJ#%fBBWMRcq-#Z#{5>WAKnd&o z+jMq^lDm}rzmzaFAQRNq(9czr5R1WRb)c3$90}tCb#z9e^1vE8Be_GMp3c_N*;+ay z@qM6y&PW2me{}k)Fn)TDE_{F_NUQIfHEe?#mxC;kV?O=|#vJbB(;~={7D1L^Dqv1K zr=K^m#ELV$`J84R*9`L}`f1L@nb~&E@OLWH&sB)Wl(C@7y{$D^auJd#L(63@x{A0} z|D@LFR)4HQa@*|CZM?nN#%<$nmscV5(pNYaw{o#|HCOTr?b_Q%xHPWjcD0V%2zjNe zaL!p7bym(fu@zi%&Uiy*r@&3w6vruhaV55T@0 zqhaoAo{;04`=%a^Y767qwI3s_X2Ttg#;HDM``C=kaqYVIbLwK+HPM{9aQ(R;@Uu(4 z@hE;owQDGI{Rhk51?Fu19gUWXx^2~QySUrwY1|I(_S#ik;qBAh6C7t-{Hms$tNev_ z_3hnUI+wRtY~^Zxp)EmnUCm#bZJsowb`}cE!9qJ_uz+CB0c)SQy^|WJQuQg$#nS=j zsCcSkVZ<_75UGr=tex3`9Jk6t0ip6(7_od7My!AZ1Y6~|@XNm&F zcqSjulz0j}D{2wKiv_+a9WeJ1nNB)9g#;ZHDEAb5+$(AzW3}Dzi|y`&eM?jBUK@8O5%2C?ts1O1M&=%2tmfSE77 z0?bcVC%hOcAA@y0(4NiI2g+bvqQjv0g@73$#AT#A-o9P*cvicVet@SS+I1960#YYi%kic0P zV&JS}L=z6C zY73Tj3%wd-&Z;}7+4_E8Ww0b2U#44Nu?0 zQdVRDSiBP{-0l!~6tC8=>4xSE2BXw3NypL>Xcg{nWXe=cHzaudYkAjp;mQGCitB}n z6cS6bSX`#V0wV~67NAny?iNw-iD+p+x+E@EZm7M&iN38o8N`6$47{B2ZJ=qnckA0KlDLatG44L_$m_k zz?fADSjUPPbPm=t7G3(!9T^l0jn_pMU9^T;2*;8<$6DuX?x@ZEpR@>;eL)Kkyx_%CZ0+i31rW#vEiB{ zW^9nvdsejeKeUu=Gpnwf>$Yu5)a%iEGGcuLC;t*ej*s|GX6k_afx&t|>@WeT-KqeA zg;=1!Ue@u*E{~B=J3(4K ze|GY01nA9$z|^wXLQS*U%%y7qXd*v)Uc||lA3d^_>=KPG-dl7@meB)cBc?uy(xL&v zQLO6cJTO#IfM)A@m_+CfeG9>Dl|(*5kaPa4kWeT<>_MOdi2^DcqQV_?nLZ1X*D*6j z5C@(#FsT_O%NAi>aVa8U6DPPzgh zZ4VE#+l&SQ;gWhu$#gL}BPCy_8*U^^1}V6WP+!OwT8H=w8_)H!mj?6pz=2f$5`})T zu28aOUv%7|8v(|SZsZsh(t=JE^MO2YNAEF+cgTqYR}5rGB?L+Vm(pLva_NK+Aa0aJ zPf$ML8X!%7YvDkcM3iLQJPa~|e2{dQ5As2yDuJ(*=7MtU$N7LAiKCwu7pCa@7EXec z;2YmF7zf4N;G=J3(iw%@kOo2P`OUYSIYN91Ab5n1haI7P;o$kl#W)o+nwO3uOXT>p zV>%;pV%AwY3x_W_O5{eiMfOC>aJe4wI5KCQ<+IlEdrTsltzUlRh_(nUlx`{xRI=p| z*E@clW0UU-fZ5YG>Ph%C%!aH7mzAG}LG2`d7$(Q3lgK{w4bl^MvsWI?r7vY z2`wRJAn8C$B)<}jIj)bCOGyWK&=gmj4y#m(0IpC#xv7sx{giaz`4m_AKmw_Ek<9J| z};{G4?Ppq|Fv9Q@n@zi@i1E$xkPhjWv(zR_bFViL-X1^g#k2bljot27Cxx zcG7uerfw7#rU=KzQiJEf4$rQhuDBsMegI-uAcF}Q2nqON51|-dL(AAUwnrmfqX>`I%3pQSx8#FZfSLNZ)JJ1QViD7y-Pxrm@=+#HB75{P7YgN%QgeqzNY>BeL)#52#cgcMP4J_Et#; z!kEbP1FMin%YcZ$;3};rMY>1pl!pf*f>aCmKwTMX0?bLFL(+Pn3!~`2Kn#%P zu=KE!ex{&3vbUnxj#Lx|IOT`$-5!sQ7J9-nms^At81Dp|K)r&8*5BjHWT9uIhWAOv z{?aAH#`Q`Ts(w9t<0AR4c&5k$|Hjns{dR+N$?LiwrffXtfO2!AQ1$<`Etu=e~8Ku`(T;}*x23<^DnC_8W}Pb0U6MWZgQU_O84 z%bPE6{(<_3rav(Kp(U2zIG5iX&2OGEV%f{dBPjCeazrDU>|E4pO*uceW?|u5;e%inK(wg-=JVg>#mQ>DF0o#V2=LIT*`e zVN5Fk^yCE#md3P#&mpsQ6_5j90X+S33UJwg^Uv=B{UaZFO*yxm+0S($uPNvAyLOd5 z2YF37`nXmuHPvbdw?ZMtz3lcTuN07nXhat;tU!-Y{B*WHij-TT zYhR$n@an#2i_QC`QkQA58IF(^cw*q|^G6?6oa6%_?rOG@sUd}wq34x;`S`ZviBbx% zzdq~@k`L@&Ko00Qf%iRj1iAA0-^$b@`8_aS?G?&<{JAVO7kkNva^S?6%8p;ss7ZOT z?f|%uh5GfI&|X~etAVY)e0_s>)+teDc;Ev>3XzaBdryR?5vpV+rNfHRqgFzjX~ z9_8VivFy91R8x0fsvIOJ|rN5A$ z8G~XccFgCG>kbFTP8{Rc-fgHb@C+prl+gOif{Orviq=HlqalnlF_y0esyg1Xl$OXi zcQnpD5%?O*z<`>W69GdmV@sou@GB&ZXl89%gxL^0pK66n^b8cBni-Dr-`aAXJM(jE z=6p^bff&!0Y<#`=&ny3=GM3XC+Ogosn{yOJX;Xw{72u2{kxz-tER>b~+-WL{55+NC zy#96dpBw+g7|U)6bz*;Ysc;H5@W8&Mk|5ES;h2pktia~<_pP)#_lCHeHan0P7mJw| zZ?Q;acRYV`@?_X|{>-G7k8pQt@>KZv`3a_RQ3f!X9(v{I)uY#1=gK!m%QvD~6azKf zM9Zqhlsj+BntXNvuWEVG^8IbE?7X`32Z0}+{e!cwH^%B7jsn0cXB#=-7hVREGf7Hw zBI@u)IP{|!b;J?g7#WT-{AWAh_%52DqqN#5cZJ$Mu25NQpWMx3iy&vpKv3l8TFAgT zU*~N@i>9MO^-hJg1J;A?LkJPkja}hw zNGl0=ZH10eqBqQ=t(_d}@1tMT!`&NU%we_gRnR7cD_7Fa{;!Kj8Qqxg{oi2zSJ(k5 zfS%A+8BN7!PxuA?&}-mhHVI(1=y9wBsdlB3N0?jHyfNe<%uVf{im99~L z#0B)&xaQc{G2U{(#1kZ172=wqv2mc*kB!q`?m*lo0(Y>;$-}`o4j5$p%i$Y5N{ z{*W9&qDwqcVs`D6JVr!`bWafB-UCgRR2_VbaRwwy`VIiN^RdWp+MM&wtk6z!JKp=f zt>ksgMcP1-6tJ;Sj+g)@7b4WANaIV*@7r^b;bQvlKl@+L+|0*-Y{>^ zowK{6cK5XFZ|voN>&Oe|;?kwGskHCfU_6kSw`f;6@<5_&D__aEnln@Oy~3z%4G0Y> zdc(n4W8PAsu_U@_`)y5EEE}l>HnIb-IH`ufw#dR71uH@0AnA~WAYcbD)#>o7de<#e zm&9=0x2}`|YjGke>rx7?MMj3H7;;360+_)l4Q*<9j|J-TWybr%xWz{IQb1QWEU6hv zCjNjnxtS!dO-M*(YqTXdDoP3kAB2+DZWeLxHbeG{0n>9s)v3sO^(mLXO~^ ztt4tI;d7W?G`(bDNTi4#0Ec-2&UF)NyDyMeC0_QovIszEhDAVz_d;X%BbAy08;mRp zNGNSc#LTKxrUibAa+!(Z~9?qLpSMXcW_T2S}1DjDY1G%>2c zUxtl2poy8ciFt1kt+r!$?96WRM;MgcE|HbYPh7 z0Xjv%+dV`NU19l$Pmf~*Rh0%2B=&7Aw*3sp;3-zqE#yDsHSTZ2N`nk?l8JrDEQN%^OVa&ZHoOdumsx#&)yE-(Zo*s(2YHk=; z{nKF%d$!5a#V0tyRJ2TG&n9TJOaU6rnHOsNxz$BzXqle{OYyni(mu3(qv~yql~P9` zrE9a0{&b_O)1mp9okI%#*%yGbX#!}OB(02qRDQ9AT(J|gfIt$>Wrxi6{YF8{pcnj2 zfR?2sgc_0PA*L+eg+F8|)P0`8f-ezDEbGu7rD7MPIvB(lh<(B{`UiN%C^Mw8#I^r) zoy4|CZ(;HhK$yg0$Z%>{tf63M0AZ67Ko|l`ifv&URqUx@(~v3lgZx)sir69`EuJ#+ zWGaBLMlBWzWO(y|A{ba!0TzrgFjWr45^$LA zHBiz>3Gv@?J**l6fc9cbK`&jVo@H!&pq0+rC}~HM66C9c?rui{s7maWRDthM!bm?` z1Ze(>=v`#2OtHw}<q2G%?rOW( zJ?E;7x+tu4xw?>}{8-S$~a zCz)ELFBqM3#?p69e|6}DAcw85~?sK8-5g)2q{vQtP&ml(3s*Ch<33{YC5jO>JR=@({{ z&`JZ4cF{8a@JhN7Ku}7QO>x!iH6`F*N!Y-U3}Q3Gv^YQOf6i+~hsroip!3kL7`;~5 zQ&@n*q-HowGG(U?A=e8%8+@N(xb08tkEYTVc_maVny(T9lSV>Q(lG=jqwq3t-131I zxfPO6c?;k%4y#37NKoyD&4J%2l%w$jhm4gZ*{jJG2nsAFiMj7{i#5uBiApbn#blmn z6R?=v!Qta4z?Msnf4@N}Cb4MVXkC^(GOCUaS1B=*B=O8rXr-P&EizX*5-^iw8D-K! zfd1yU0jWWfu&AmOYk^Gi(_uaUY93VZ`?LncElMb)9rQHO6Xy4aK$w9i=*K8!6mgLl z$rl1<1xbV@QhWX{PxI-G*lU^55y7WLnxB^OLdgpUFO5u%OiNfuzq~IN62CD}ZUq*# znLt2l*ci*&^xC?aMrKJ+^4(`&TStILn-;Yi({Aql`t`BQ4X%mOL&RaU>Y|3A#_baR7=E0sMueDS-==e2bD5l)Oj@lZP_- zXAS*)nvzwN5RGJm{8c^>6C3&pz?c7q`?MGbvyc*a2luhs48WI_O8{R?BH)V|m@YgL z457Y=fG-vq^Q94(FD@z*21tzGP#PoYL~8JQG>J3 z7YBHVlYB1!t~yVbzo@|(zh``7g??M1>WvNhZM7JBrfoHv>(v~kwWe)Nn(Lc5q<@Eg zln#S%cBdMj_d5b6h)3N;xFB#$>QV>P?5`%E#a~#S?9>PJZq?oa~e z0d*?Ni-5Hbwv!ASLJgDogLwNx7)F%K0`Ncu!#t@Rs8U?39;n3AE>EVY*ui(BD_NfGq$@d|+@vdcp8TXM zKxaw1veHwSbj9r{O1e_)DM`9g>M2XQQtqipx>D(>O1e_*sY$xB%CkD@O0B1E$(1!p zSLzeqqB>A>-yW+DtV)q*t*0TWIU78ilCCs)niW^7`(%xt zG`a>PxrgwLH+vpZJVRf7OTwGem90yzJnU&vJVj$~n>gylu}7kPHY!_}+yQUJ##bAj zA{G$`T2mdUP0@c#N9BWz!FErFqGWo9?MwPNvDfJxI+tzfjwRn?>6qTRq?fvu%#Ee9 zC2^clOV=elRUN2nt!~X}t!S+T;?o+>u0Xw~JFwRCJDy&KYt-P`4Vv8O*@JXlYU%_U z-nU2EJEEu8E9U+N&+{G+D{130w0f`DD|m9#fTmtOP}9@|)ectwfhP95mi-1F;|Y6u zVCCqoReSakI@1$epc$>+j8;E{R&Vhv%_rk;Me9?zr5_ps+Nq%9r@u>#vX14vsv zk0WjKdPg$&bEW99>i+c8R*=(Be27*%7M+iXE0CY85-ym zZ6pIbJ;SJ_YoJTfSG!ufP|6`zO80=>lSW=ifu7VY@f?=lXP`%#6>HE-M^JL_z)q}T zyZWZt@J~nvdI$Exm`rMrEBv zDL&6rNDnSk*3+J663SBdy~BSoW$JmB`8B&y;swt+_6-q-8nu26Bkt=Wl?n`_jwN%;Mqn`7q`zWjXTgi3PHvm7gAeSqi$z##OF%KUt z`s3RuY3#6ifD9_tKwis)Bn8*W7jC<*2bk3lX$n<`xFvUN%iPiS%rATAe-ZCgz2NIX zCA}UutT2J$0%$XW3hUWRkS{!#*wFAXCei;m10D(22Cp`=>YoN}+^MWDQ zkX{yf$Z-!?GYEw-J{CCRuJkb|0(V7iMU_|*y!-B367nopkfJ1@(NKe^>Pj>h*l}aP zvw>w8puVe^mYBVp1X|;+Bzzruv4H`(J<#DQ3St`FAUtLuaquM&TRwg%++fU|f$c4_6pM$dwQ+b!}ZrR&OA6M)_d~@`>^zQUi z@faz|@fJ+O9>gmT1cZ0?3x5Lxez_e(!-uFTVn5=ik1&9E%VS=5Pvd#`^zh(`al&5@ zimib6CV|(9Pm%(h&kr~-`XuZoGL1k`h>jP*?kf0kT4grx#yk!9j?xFjoETx~x6E=I zFYc}w3sz7B7vQ1$+y{rp(ZBA&BR)aucyJg4&`h(1LBiwyDMYWuzys(Q8#$tHP!RUt zy@xO+P6UF(tEgRP+(%Dfl;F&79`geNkZO}B8fy#LhodLZuS4#GXLx`m!Py8sN_c>) zgsEqy1_Htm^E*(*Llce;`v3^fK$+07Yy>6%2Li)Gn4e~$C?+jrZ~g@Eq5xR<5z)CG zW~w`QWO(q&14oC)kBkikt1@6o$p#)IhipPJXIa!u5rU7!4Z^638-yVeHwfQX@OIKt z2D->TUEJttZ|^$bY2PcHwR-!6v-X}g*{w?9gOx_8b2Jzj&@`~zhUn$vdVUfmxXNho z4)pI134y)?rG%_RS%)ih(6+x+^(v%T98Bg$#}4{Nq03?s;&?l`xJ87%8w+lMjEcv# z#zGI-F8&2c+;mO_Q-K#YT-*c|JY3_+v(~J!Htd(rYEJ)?DIVZ2t6yZT-8(^^m~nHhdN&N#568*{Vy~EjG=6vb1RR z|3#1F4UGxE-$>_>3IfA8XU4|{(j^zy(dQgza!LHM9iTu82c(%unAa2PH1kA0zy!yF zG9ajc@p%YVK|>P;VJgAtk9wR}8_);hMVL%_Ng5&EYMIF~Y2YMSNzfN&q)CwIAqcX>D!ycv|*?pbQQU2ZQl6{(5U?cW)am>jsaYqvfl;kM!_Y z$4>dNLtDT|-yK&E1{@kL>7agD6qHf!-89L>s*aJq(&19H++(K_;3%??*JLIw)$PbkHnjlW`syzKF>ZZAy=0`MXw!(3STx4g3*mYxAoVed457aq_zW=7Dci3Luk`5!I41a&2Pb~v_4wjkNTb*#yAgF zGA3#ND)8?^!w;<)+puB7EeQq#Z zhZK7b#xfFLN=BncQ32%wZ%wS=Bjmge!_p^*&8!rvWN`Qxv4dbi32QUqDaIKGhYuem z#=H{#@$M%C-q9TxIecWC_8V0a#3tV$uIn4FF~6YAR)2>295;uyUCvNKiZ{L2J!UpouDQJ?$ z%_Bhomx4ndgu~*&GvmWS7TZF`fzk1iP4tYPi)-oQ29DB`+9P;l9yAe-JTwA`MH5ur z#I^*Ei^*T&B>1ODVCm{oWn^8-yO0+lRF<#pKBlocjk4J9(ZvK1XW^z(uReKyX2O&Xw_(CtjSGDV-~6B&tyu*JL?Q-f|VPeX+G zUGoLgRqkC35?Mh*$n_FkBkZerztsuB#4!X zC_;ekV$AYq43OQz|4BKsdVO0>A&e(pm1t;W6D^tI>M#j>H-*4 zR$c=A_>~3L*_Rrp8bhUF{QCqs$T}MyweQ0(nD?xu1@esy%Qlnhy2-pPOLIMwLz;R^ z(Zo+)Ji#B!@F9tlphPk3S7Q>$TnW}=1y7TD%1Z{r;`C%urzI{#_6Ne`G>Pp}atVqW zB=REWQxT_=NK}-q#a2tvTJSa?3-n>xp{!Y&#I*9TW0^_pLKAq7Jyju`zH32sntzgj$D(%!jb%jbqBS9HQw(6IHBRS?=8}tt!yd#M;BvS=*0#yLTQBVc26MmlRi7f$7L^5scwrTz%N?{Wk zOqa0hpl~HDpvEDXHuE6i^fL7J^5fXWo){cI0h!uS-w;U1A@`ZF6Cf>vPrAX*9UTdh zxK#u_r(WcDT&!D?DCk%KT{lXMOiz_TK|_vV2=PqA4mu+m!P6COT!UVTYtSMEaiNJr z>;_L=48r&doWo@mCTx({50I9XBEx|gdW_##%3LfM?P1rq(igPmP{R$aOC&fEt7}q=lV-TZ6JsMadYgDCw3hN6cuTGP34rSxJyEoq~qAI zym^Av2t+PGN|Uxaa%NEw2z(F{<*@^@7BV1Xhq!eSNf{yhdsQb@-_gM*9+o`h-;aMr z`~w1t!Xj8AQGPQlq^(|e7T#Y?Y>8(PR1 z^S#C|^PKGLH`Ik%b!hA<*}e>Ym!|*T6X{1U{^%7$@Gf#kGlIY8etnWhqx-e?+K8&Hc6>D9vB{W^NcUF zgIJ3?NI~WsJfc|h1W#3Y5o8aEL4F}`7(3>!gty-434zT&X8!-!dlT@suKP|D7yCv6 z1VDm2!JVKeQVX?jrl^gwL@5GkD~W0fA|Z)3Mba0fWHF9SCz+bElZuL+m`eObbmP|4 z)H7D5c^&m@-;6CMv7L6NfI%BD!n(?f+Ie~J``&1a?b@B0_xqo7H-M1rB%SGd{dzy? z@Zv7#p5=f3=fD34p->z;+7f_hpO^{h4m78Xd}(Zj;TB_}515M5-`B22miA?v`o7xV8@aEp6FKOF@<3oYlf;7D!8=E*m+D z>|xm0sdAazKze2QEn-~IW%)~*o=H+wDESb&US)GynBwdX-9)x6$(t6nQlq6Nu!d$d zfiiZp>J|e` z8OtCo8W|<(3J%m^5s6^{FawaTHqwBAo?>;AbV>23=2J?pZ1^y#Y{LqT$|yJqU`eAH z!EH{a^2fQ!0+F~NBmstj%$c=Q^O!=PrkO@et&8B8+7$%Ypv_V%8O2CKJ8h#_3bn9y zK%$z8)TA95ZNgadHi2`_fVR7|>Bz{~7_246M`~KT-3o%fOtJNO!7fV`+F)p^blvwnR1!S z-e6xrsT%-;+1&soP9i+Etia@k0h}Cu*`*D51@lc!1f$RF0ZTMHx4oM&egZifh6-`fgmh>=}b)ptbiV8$fu~XfoFH#yMp+kZs<-yiKH?deu zBtb8*2xZg~sqK7TWqg$dFsMk30Je}QCUXf;b{W0`s7|^4oN2^j$eytb_y>S(Jx!(p z%xHqiQ&1Jz>QG%6AW4;jr1J!BZ1G4U6t-aOnTs5(7l~xpBG)WzNRy+-N5;Y30SX8M zamH%{)~YIeCTJeuSP0b+(txCg421wZiYQr<*V4CPC=(urV1+cpthHPk1ULde2v`A% zVaSj=LetEkj0>mfk|J^j;2=(pTnRmi+KEj>r4rtiu{lHLC&4K)qYZ!;DpF8AamQS* z&1O{liNMH_2Z4Vw1{=-c;HL`OkB$rtjhupURYv>>G%pJhMurh%A_`WV8h|E7$4BKs zI6)%=hM%n)yh$iOgV{yK$+6RbcXmCJF@0>f1C6{Dq)CJU3#uT5gO+!Op${DyULPRY zAo0JWKpmJ&F#;JIWbq43h`U9T)WJI*{+Stf1HrL|zD`*$GB8?4Ab^p*H=|4!Jfd<*Rofx{b{gLnq ztey3CyJWjF616kfmvr*7Ne}ICEi{zT!3oSakO$F0j98Hf6-GSB=%jJlz_+x83| zX(Nm{)EFd-xB&1TuxJy1w?-0LL<2QsSSH^@%bTPRHL;DAKTYEr46>1BLkz@3Fc}5r zg5}Ppn#@XSm@)%+xTXc7qTwd_(V868hV*sJX=CSoAuL=*1ThmnY89iUqODwf*~A_R z1_HIx)H19bzJsq;MAS`<{as$fjJN?cG7tvV9qXxpjh77w7-wOs(h#~9PML$Por8E zmDz#6a`t&SrW@DpKp7;zN3QDtH5ji2y=enJkhVzpIc<>;T-u>oB`g$W|3l)F)VL{X ztr18#nzmrL*@=y{ik;deeA1Sr&&JqG=H9UT=5)LXThs9?MSVP z_;EzKvEYb&elkif4>HpC#NWrO0Rh6G&w+FKC5eNOOwnY0vg<2dQ-d?!*;Dhzjo0$L z)16O$acb}6c8Wo=;oOE7jW5|=uuX0I8@nr&?>#$sX7K5U5OC5_INksJDjq%r@#UWC zLV%O2t^x#i^Z2GLlwrqqJ>P`5CMAJc?{~|mb|b2ayKu^w&hsNW-E}CON+CuntXv4x z&3+*fSTw_P`yOWIPw)?{#9Jh(0q+%Q8e46b~!d&c&6{y?g@ItjPS;-9*Dx8n!B&W9EOA%Odv5=X>Dm1EoxV>fTr-j(6zR%?5V99m zzE@lUVOU}1C)fOyP_7k}A~s9h-~3*2)vW3H{8U-h^tJ_G$tQ@7Qcy~-6+G03!ihIbIu$@ zz&|JiE0%pYqQ{6lRsZ)D_+Nra{ZO6_MLA1 z>s|p@UiZ1_yspEKA3xgY-dUsnv2zK|f4oM(Yd>CV-%(=tiQYkp!SgJ*@)Mtlu9O() zyxhJcX!=Qmu%ku)lSZoUCrtuf2^#21i+yLF=_jl6c3Mqu7)-ePhSh{CZ{!*1-0j?1 zWqPBWn)ODdK<8ELdX01Ea?=~F?D{f+&X=?6?KXVzjZOAl4$GUC4reK`m)znR2gLB9+!!d(Z z*S(|qfAM#ZDsjP>2*nuQ4XO3EJBv_yh|gin1t^cmBgoGUl_J?`FdBwf3{G%ziVXy@ zA_!^!tb!0ma2y@5+YbZmXcsu#5};Gs8ls1pkmayUsnT!oxyV!wQka66fsmtJ0dzd9 z{71*fxcq`%KRR%j(Y2i8M{4tau;64hE=FLB%vGsbA{O>p)&fvbJ)p3{11H17V_}ea zAli<~AHpUoe-wkmNY%lyMsVlhqj=>Qctr?iB&q;bA5eA$Ad&!Ql|?X6^O)6$Bv?SB zvFhk52@txmCqrSK#bS{3Lem$rv7<52u6uo9xVwTXaY422Ym@zlIyNv z0|b}?&p0?B>B))xAUX)Wmq;Lp$0DG-qa%z&mzb`B@lnh>9zG${?x!$Y)QyKCu)?Ps zl5AsW1f)9DgkgtTQjDdb%AFU)>G64RuB`G~giPW^g>Fo;z~%PyjaQ6HK0F(WIs z1~AN<_~(MS(??W!F4CBh)to$9T=73KjXYtMN2#Y9Nr=A&yea-GDt;G5+R?`bkWsTd zxH;Jhq|N-Yc!qvBrDytw03I;hq(2Dj`V3X_EEV6Pg0?B~MJk>{k+uv*8E-&Fv&3Yj zO-uw4wc(~hNOB_5#F`-f8{GL1L`DAZIAK)eRzYV&3XrF4)6Fyeb30!>I&a;(knfug zF+$N(F>9PXdTHflW2|aZtYCA@y=BUTm=!aj7wZ$ArYXyHz13FzzQ?~%Ry|vPsqxi) ziL#!gyC>%E`Ou*A7EjlIfKYwKsX#r^q2G6$%bPZ*yd}>cf^`!pr#NB z{p!vt!|N4#Dys~*-Va@da?mDQi~me-`GDsEFW>56kB`C1J~Fn$`+7~P)f3weVM3tM zVJg{*0wXTt@UVfz6^-z7hRXcp3`+-j!9&d)U~YHgSa_Yp5IwlIAfT;*X^jogTq;>x znARB2b~ulrC-gT%W2~*S6X+k71%M-1I%FS<;0Wvb(`TK9*M(UN`-|->s~4D8Y9G6c zO-j}b%YPZsZR_44ejlw7zk&j+7u(0Md@{YGfOB*!@&DFV6r1%j9^Qpk4r@GNLb@J( zkD*tfY3~(60HIqhgAxAfG@Gj%mZh;3)Fn5CJ9rYbvtHt3RS^FS9oWqePdc zO^mH#z(UL!8$rkpVF=rYW*NX$iQlD{W~ew%Z(2zF2jM9nadohLxQW5eI_|lLfgKM4 z{SqFz3Al(-IPt${phdC8D68jp9cS_oScl5g@}Jyxn+9i0@A+tUu=5$3-OvYubSdM#8g8NVq5-M=Nad-L$ljs zh0XKUCGWc`5h(ciBNrb0&VzIQSE?>nB`ep(E7zsmMI?jV^vzAP{+H|K#{XzZ(z`nD zU5)G4c*xEvdrA>GzF%7XhkfVjF4s(1epXn8{NCQ;=hmM?x|;W0MGO9_S>rR0O&hQ4 z^YTjQ4l=+!xB1*=S!igS_tkU3T&lS0LjL*u+3|OamqNf*yaXLBEN7C$_IG_vHwtw{ zfe#vBDWCF`%(Tzd$2@HbXWLb00ZGiBZ<+I7s(ZCC*0eKLvTNSibq)6Y!EXj#ehoeV2g=@79 zvtt*x%^jKB_QJ%aHGkTE`M~A&A8eYh?VwjW1$w7b_~>?@z+{sq%#y1R;yP7AX?WJT z;PiZQ-GO_b++M5mA^Ds+uLN203QDf}%ai`bxW6&!4bQ19PwGKOEVXwJ1>}u0pv2R_4A3xTu?<&#%cs)r0f4sQ> z=Ra|64dBO{ZT7Ar!<*~8T?K}>oF-g(tH6XSZxxYj@2wL1?grCabq%{c#-G})xbjnv zeRqxJr{w~!|FnXt`)Rd6S89xOrGegJY)J+(Bz#N=@fMlDX}t}!hQY^#pnl>wxuFd) zrASMl8EVETnDXt+J)CK&AgGaD#koj?X%S_0Bsb-tx4`m7NViUkEMmlErJ)-SAaos0>vk@Tii5+hbiX+T| zfNIJb6-7s`b%5nHDn zHttj6nWo83vRiGR?w=N?OJ+LXF$NY7*JlTeZ?M4`)eg?5jEiJI13?rIHz0|6!X!os zu&4**T!r8Sp9(#T$BCeadrXdsKSj4QpoS03s5p-sdo#htG1dN#v1su){5D|o5+9jg z8*YA!@nNF5&jwreMX-hKlw3_A#`-H7IRgsppqx}=w}x;liK{&tpmJ(}$}zQVI*Jr# z!I{uI#%ey8cvLwEsHoOY$2LFYEs=nVmj6E;Oxfx4us=D?%`mu~2`q2OfP@6MJS+-f zE@*A7EJ^~6VK(%M3G|#5zoP*?r_Pi&)$@+An2#2Xj(iY$Vxt99;4IvnfuRUH|7U6D zGz0coFx3BCNLz&4Kl@0E@1f6&!BBjcE>jVqG0evauzo%p!x`^8#tJryK{MMJ82)2x zodGQ$e|lF@JmFlYj4~;nurKJ3*dZ~XJM0)XfbiE38~3?X84U7=3+-enPw>p2(yQ{O zTvqdBIV*F(id+HT=_Srnhseu_j=9FXnz$+AIkou;6lo7~d($q*4n#jXg$M;@XsMz` zQojI|7ZK*{P~}a?6eq1kMCmp|f>Mj!&!TC!!r992lGD$@QROWwI9+P5Roh-UHg~Uy z=;&TkM7ZA`5ww=msvL?%qt3%ukqT+p4tr^wb=daqAjuA$9ThU{vB6~VCz0V4k`KIN zQr}DHe)eHAF|P6WDzaW7T^vT=ZvLo(J&0qfE@az zOaO#N#A*Xe#FCzIE0-a||8{$~~y%28n>iV&(YnC&J!2^T_ zvJP2*LoOtEf{4egBVg8p^1VT9zREE@W^?G$#D(GOHjzmciyHQhsV)RD<0qQ~y zDFSW?stv<>+z;SB#5Mfr)vF6lZi`Yk)l{NBDWf9F#Fpt&aKE074RHhPpzq{zhEbD# z$aS%xISPV;I|aHCAeRe-xaodGUYJ^OmWs|8V!%w1Xsi2#`s|&Y8@hX>cmkG*U+~;h zq$j0dSZaWJ$P$>Ak!+Wl+EI3n%b+=l1EHlipk-g0qJt-3tjLUO!%%WYhK7RhsD(On zC=46SRAhUZM80?2VJwn7m@yd)q1N=RZ z!AuuxhiXfDkt0T-Q2P%UKBNlIO^i6UF#M!Lft z2#!eS4@FK#gYLBTR9GBF2cqI%V}jH92q4mb92zrzG3`XxLDqolf@(DF+)D2K_w$=+ z11#*)ww}|YQUszRNmCo`W6H5Usqtz1ec_>T=^5+2k<%PiM)5guj0)Okc%GFJIsK2?hRNIGNPl^65;ztH6U_V)zb10lOz@ z3&d@KcWgB&t2=3}h+8XWj=$`jx2~d)_7$n(vI~~;mRa+6T~l2jT6NBvw;k0`vgI|V zDgv|q^M|JGsKr+i_ckq*)}@NK-7*MeJA~`7R@xz4h5XTWl~7gP%cYmP{(L+c+#U~Z zUmydZ1Pp*|9|m>y+UqS00~RAo3ed5`M`?qfUz2du#*DQe-EIVqBrJ%Qlt0x)u7DMv z+;-{;E1n;Wd7E%2ukby$57+YwKmO2<>d=#qqX*F4@A*4R41ZFvb-DgEivy>xc}<-L z{cFW5aeigFvr}ifvPn@hC{$3vD zZEtvV6yT9Yen588j}Iyb&?q}@9m1b)=?>{cA%yfhAwe{R^oYV}3>i?GLPnJ45XJho zuvp*LkOk++se#fSvY~W@>?oZf2grV52Xunw%x~E1gL%6`6?RxkCu^Z&k#Myj)VJ$fM29@_mD!k9n~)wttwXWY7c=-m$A7N_)7fm_%I)*TXaT41aZdyz@M}M zgU=+wnXIRyuMe09wi+ieW?sL0m#x6W|{;|3KMAeG8 zZzZIv2m<0ux{zKMW`zk?L(JOn(QVKw#T4SB`I@J6X5}+WXL~@#P^^#UkC}e|E0xQ2 zKk#>04H;Ym0T2!4tqBz18glBd)qy3VBj?bo)V*HSWgqm&8+ZV~eLxHP_!=F(LL*8U zc#V8K3FHtL5E0^rPx4_lVl6BhOW3gI7)#~qU(r~uL{%Ux^F3#W&kTdk%dbX0L5v;G zV_cYUH^Mr>nm-ktx0a?#tIpcb*r!)M<+=-CejPP_hH=uXd6rawlSnFM(V{Bp=+)aW z3Lq+!F#_Si!BGKWbry1gBdyr9b$l58SB8xM6YkdplcEVjn1-~D5W)cMp)~6t%ehnp zpb5929K)$xeTRl~8{WZiB4*74=N_2tOcXXDcNRRzOOZm51FV!=dVSp8fSe_WJaK1$ z{9ay*?qz?6VR6`)T72f#Fp65NN3Adyz=vjJA2Q_z;1s|P7J=%dwV#6$R;NNz{mJ?- z9jX5K$~N%a9&C9N29yRcZKOeC!3tfs7F0rNnQMqqxQ&)`!c{e8 z{F&F!GIu}MdaiZWoAA`nJL_*6biQJ)68p-^RYC?2K-0w*DpmK{$D~f$7Z8jOt^jN` zT@)BZL;(;wSt!=mhr8&4TZ5I@m21=kH=dl-Ex0_>?WAOR`tg{xk}naeLq2G{Sqo3% zrXB;+!N>D9G^e<9^~PtMuQHE%KpvsginlwlBJoChUfr%%Sxwqw$k|K<`ES&tdMHruj`!%Pm6G={8Lp~oRY!A(M^9_|Y z3XqBa4u2Rlv5kVyh!NMYBquqGOq$hnon}HPUU6Sv4$boaNt3hzk4vgoL!JHSmCMfA zrwxdl==Pm`?95|eiCs1E{QB7gbH-%T+IZ92%Y})iE%C;!?>IZtmCGbW?5efG1PBNw z(r^0Gg#ODxfd3RVmDWSrL>MB9p0I5WjvXTNW*eXtaDpo~4oe_~Wx?By7PUk73PCx%2YOWJi(i)%y13aA0hm@>~SV(e0j0}i1m`t%5 zg+%0uOX$MmcrcWyZe+;=wjt>UK5OsmgE#c}5S=^w`W_w+Gm#{I zx%%J@hOk9&FpCV2pqT>oz)Xdm3Ktb#DvGJ7qN0|HMk-pUSV0A$l5}AoOgZ3n*59YN zeMV7b13ds~wvMClkLZjFV*R3C6~bPA@b zn`V<~`OSO*kC+XnlACtD$#>IgGI@WMkAhcC753x5auA6~EBzJ?(F5iOELcLyO^DbJ z0uNz(pj~$uEBu66T~wf%%-D~??mlQ8)-Qv+PF+&DxF>Zd-UWgEIJz~u{a}cND^a9^ zMA9pPqJyer@cL z#VpZ!pa9HVV7`b1AY61yM3I4BG}6;W=%pIyMWG=>f*J=^MK8HjBujyooLJQ(`6o@Gasg$?|Py{ONWn9tjO*S4&9W|w^ z`*^TUX{%Og0_72hX0>@MW+E?!lHOn(M$|=BvB2s-_g#+sSy^)3-Z=gR_9lwDWA1KP z%1rIy$Qcb#4uUK;dZ21RKz&QsBWTq?xriqjO4Pl?1Rv!H;(T*H#LW2+zL!Yk4r5^M z*e^w>Q9%8oEfBQBd)|_n+GjQ-y>)SKUBcTCb2cn)KGA=y`OiwtSM4Nv{})XE0aAZt z9X%j`WpD#{AX@rn40zfVMgEDAW7u-xgcBZ(K>e2q9^w`}#-KyoP9UP^W@lD5I3x?D zJvAVWCq0p_yc3-8@hqXilnAkf&kiMIPc>_eHE&3GH^!VB7mqpZ=WNVruO^VmEmy!e zD8YT%G7)#7(Pa3*1ymwj9(5U=+I!bd@wY0dQ-%02QJ38KE4#6Xy++f*7v5jfSp_O) zZW!r8NMp!Yhr8IzL(8x@g0y$gbJPmH|LEw9SZhwj)0m69QADk%6r?;3$yhI)pE(uc zemrKSrap#8{~lBU*H+zxP`8AL-7@47rL@++(hIgm=4-o9T76;Z`K8}$JF^?CV{Oy9 z63BTf6V3qm#8Ij8L6ji&`wdFtZK8?%$i)PyCRUh4Vd90I6lW&4@_@{P5J_*CX$r_234U9W zUp}xSG>HgQ1O0~*RU!%jCS}l&f4U}Vs@X21eTQ+n`3GtCtNH5By_vwP2O zIJ03onsC&`jCE`UpjLWLyn$yHZ9jPVpK$w`DB>Xj?z90BCCN4*4TiY~ebMed&OW}k zu$sjCaJQXCL`%{ZCS8qjSL1@GELPtB!?DZT|M*MEHTTBxul(MGXHU$zC*|@@IXS){ zTqPgB4Y+;(|I^^cMhgIksMVaSJ|Ys-iL`5GfSQGa+7a>dxU(e#*4)KsA3gKvOlQIs zj9G&+tR2L2?BRZS6zMOGDucC0aq@uv0fUwl%q2Y25MX+hXv`grS>D!9K&jhnfTx7O z2sCg|>=zU23?n*YJ2)!rY8i__*%F4(u+92RDom!AVDLeWX9qTCdWRkIW+}6NVGl&d zIi>qOLXT!^Wz?52@!@tR_GIRq#3mpi5_41B4@>?%@XF+|q; za`&I2jMIWG1Kp2{4`VqZBQ2tu+%`!G!ksH zf}J55hD13dH!0B%WOJJiE+P5VID=sEV^_r!RQJ+gl!i3K40lfQ^H$2Wu;gV z$6qug9d&U>UCLYb+?I1&X4lT$m+&HCb^BFs+0?$f5Dfnm(6Nna$v!)DDDjbgYxuzI z!>1|h2 z!qq&vYa!2_%xiu-uQ`#|GP&aequo^gK{1N!#X6@i=BS8CCU`L1MzEr^IXW6X1ww%A zuY!iOd4J#i9bL#ewI9AG?93*g?aOczRb=81qBR*fPp|UeDxQOLo3t&;m@YH+HOOVu zLkBoZ)t!zE@L>N!AIo@8k>!L8>U*k#qm0gnO={eQ0Y9_eG4$izUL(xrG%7qeoU$vu z28~%c@UUtF#3T*qL9eNf0@W(Ud%Y%=;TgyM(PNtU4;Hy?a@)y8a&I-bZzAH^p$73J zoh@{*7r+$QzU=r$2_XwB=NIaBOsNAZ@?DYe%SO-~RpE zx222dA_LyP%soQf7E5$-5DuD8loSe65}ZV8gtXG8D!f-t>z`<{IS8myGRblRTs zco)iRXFKN#zPs<7ZQ4jYWIrMN_k88o{7a#+_OFP!SA2BcFXWXixDiC?+jc2VbfIHw zt?spI8_FxSd0SUxs-+c)Rs*`DT{i~-_mIU%s|1o3Rq~?`7h(|jh%`~M4jx1lLBYuC zIPa;hi2{U;sNDQ zX7|@xk!zLt9bGiPcUh7uWji!7f*eaMyoc7UhR-QhDGOT27cDo+|7W;p6PN^Xj7E|s zBp_pdX);H})427bX0ghXiN#u!aIKA5*Z$)yRz?{z02+-fn$1sJt^asas;p-g_!6-l zVe_imss1xq&hOHEpQQOF^oscoa3dWnU%il{e+f7LZLZ~O(abmKWroXXtuq*5uVtip zq0N&Pb`C!#)iZ~Ldf_5!4$b{g#>_YW%ibCk_%JVCpqyzK62FYGdzEI3=wZH@7EKS# z)+JnxF>51Vn+icA%?O(nE_@||hb9V&FI2=2Mh4+Jd^`=Sq)nJ)F6xFll(|INM19&C z{j8LbvH}rXcoaF;{@JWR#W|I&nH)=y<6MY%9>-L?MRQt%34yhyTL;UK6=#maslBL5?pppGb*6uV#r!Yx{i*YR-g`4sk`+Qp3^c+5UD8p z!6JbW1T>#!mXKwF0B!RId?5@kQ#DX1nN4Orrw4MPKn{eF8tVUkTc~CmIHa;T-{fzW)RwM8YN`&{PkRy{tczT&081>j+|6I5pvt zpJ$9@y~w3YOGYW~Bw{Zrxm4v)?c>8o#*ZSrCU#E9fFt1(QSo;%MLh^PWMY0=umqt1 z*Jfl?M!?Rr1&>plL(p_n1XO2GP~2%GUlE_ixh$VjEJ?T`kK|KnN&q0qBhse*EZekk zf7kx)2s3y}43GA)(19Ysp!jvF%9J*s*NmG?+jujf_z=HApEOcMatI)qE;X@kiqGN! z#PHKaBZ?y?N&I$bQOh?oN2_jXCfA8EoS4&dR4Zq`VbLZ*ANQ*;A^y^-@o2 z$*NbjT-=gsS#{l_^VMC~8GLJ|wvkG_3eFQ>I{&4)Z3*x4m~;8n>=&EcUunD8c83=y z&QHv>C%nsIPRZI-3pwa6J8rGTpWnoZNVFfbA^77oDjLiK5to4+2*VgzC&l7Z5~O#b@wJ2LH&+-{6L#!hqtvlaIzo2Cu2I zYJ?0bsrbfjzPBkKMpKj~eg{98jfd1g?Vnr*1G3;bKuSD(EBm;c;TakEOD1h-3!?B5 z7G+0BuZW)o;0hSEEyVzWDmHer<;WbVe@TzS?&>+b%)(5GGdP2o74lhT69SnE8#iQ@ zAVUR`$!YbpJTz5-cGTGVDWDU#+~YBK4jU#Kbp{M%%tRwC8CG$7LqBe7 zHTAYWxG-{;ghFjYmCL1Q>@DIj$Uw$Fb#LyeWh_XY^ufDXd6Ba}H=q^R@Lc3W$fCMv z$BwKtNw5i9%q+0uSIencWS7IoaQB(r-;m7Fl-&?F@em&i81QH9ng_Jc;VvC84wSA+ zV+Nc}x^^<#WKbYYIGg;8)^c|(dJYXnY5@gTVx348^z~JuIg$`{NaZ>mWzlJg zq>>kin4E*Ukn|KmhPKke5tyry_9<<^4b@C1tsfjo=MkBJw7vuU;MU4S7l~9f(3Fu-8M`>N`A43wO*$&$j>?66 zf2{bPAGN=!e|>Gd_})bRo|tvd&y0Bp+%R4D)yGrbLTOXpmGCZ|vZfq)XV*NnW_rcU z=VOkom)hTUY`wfX?${bLZe6@I6k_-~+IFWIzMH0$w1$KjbJ^(*3-BZraykO&lzG$y z&_WCXWjTK8H(~6e1}_O250FSb>%h0&S(orr(^AEKGS_o50+U?BXk^3LCbN%jUTsF&Q*t@EPh386x_K681A_ z3X|;t4}riGSrlXws0L;-hG+%2v6KbYSCT40e?x{82uZ;0ZJ-MqMG_#; z)|9sgiZxu|yE!gt%`Ko45}8tsltYMGAlm~mMWJ{U5$WkwIc*tm{+*iE%5uk{l3dM3 z6=d$MZDLD6i9Wy@7apYe2uda5$Vo)*A7Fi@`_k)LGbK%Hb5~|3PY9k`r>}3KP0P7R z_0WK6s*#dZaohCni8aa_U-~jOJh>(cB#)Ht+=w%?OVr9QeHjET;VN!gJ4R>BX!%bu zyz?;MADM9`E%k9rJ##q%Cs0s0-SdonvI{{WO`epmBI#?2`7IDg zJ&31JvsJid(7QSjRY7m-L{!EqowM|o&SYA*;P6bZn;A+vmc$)P5Cig>rwr9q)TZiN zll5!j^=obzgo?EYlHgs3>v`+0Iehe<2OLn+Q5C0uWKMafcT$_TQeXvq*o^3r2=!?4 ze9Q>X5`>Ohhf!p6E)@JgG#xVMV%o_&Lnhuu>meJ3 zMo@m+57}yTha58YKu`pOn0L&K?Z_%GtU*Gi6P+DL06B<2A2CSYFiKvh!7YnwU5sbw z;}U*>Il8wy!xwBjS<7X64vGZfX|LQ<&5{WdcoMn>c$#&t8U!rj+n=(<;2xggt>?@n zBtX3JD3Qw<%R*xqDX8cjTMxa-4v-dz7Ddg#LV6W{M4D%D8C`(;Z~ssxM6rbp1Hgt)O;GG~LL&b(A_oEa{}~sw4l|rl+>Rfo-;FZcoCyF6Laf;HrpOdGNCC zV16!A5=*ylV5A=(0hZZD*HneS}ehMzI5(chA4A*2rask zq(~uE(GP?Upm(wk%yQNh`YCTXbu7kh_e9CYMXRUjOV#3+gPSJ`bKDAU1_R7y|IeuH z*=#krf!?9p+?oARf`V$a15n`do;`i`bjrUX>0cN3ue)6LAA^4yO!&9O+}l##W;Q{< z%?#cc)hX~WNy!nwN10Z+{$RA)mMf_ zjIeS^p4<^M^mL<0 z3#~ofJV1?}sfw8H5))5qBT0|>u=p1J_zNn&h9T$a68;=#i0cBPc?kPDW!CKjwZ&<} zE%az5J^IIV_McIteMiO-G;eTNcB3aZktlLcvA<#!JzPpf9Tm)rlC*?kJr#t)dHw|l zVkaP{G9#72#f?M5p9qjdzA_X+vedhx|g;{D-@{`_|g*zf<)RUMcT$hD-}dZ zi!^p31`$Ems3@kQg^J}UU@nbB*(Avzms*w^nWcY4-mtV9>n{TR8^+^gq;GH_Dv~fc z?NFY^lf~)}mX}#h4;vMU!4OFrDUwh}e3*(yshC8OHuD88euJ+3J{8-kxSxuDL&YCb z@uyVGQSlNL|A~q?74uXisYp=4Y{AlW=B46SRD3|iM^x;mS!1q@J#==1uH8px|DDbl z_kEClex3?K_8Je0qx6$3*2Uvgh*adT7tN3e%NY;%UI5vxak4o@Q7yTUo z2Do2AxS=l;jJKBQ1jo;G_Mhnr{#Li-=M<-9#(S>o>BlFXS8dLutvYV2o-`wsd*cFY!8W`>v9aBdW1|QNiOm0J@u*sbZMn8gCnezVHT9vZ8&gP%VpFTBjt-58_ znJN%-k!}QUS#_p@l+p2I_Y>W4KA-JPc$dr@Ti&zgT{YRJ?)&NkP*hTNKB~?qRac%} zUFk0%JXI?>knlFm8-ppUoqgtgYXkTVM^UV3Wy0PbGqztXshBi8>3G61)fLwjeW(|N zybpCKAU_cDAObKsZkW-Xn4>&tsCe5@@t&*b>C=*-aK+uk!;W44l+ zUGv6zoK98E?3_2&Wu8^e?3g#!N)O7nE98q)m6})NYSe4Wb1_@#%kVVVmmCN6=I;Z+(2Is9!NP0YZui8#} zi#~OuMF;3mhg=zGT$4v-QAhBlN0OG}xTTot{~h$s%H~TMXw8I_YbGhj9P-<#Dn#xq zziM@+tbW84MSLFQLU!g&LSXNdire-|!E^H-!6!7_Y$+BBuD9z1>y!CUl93ys&ujMDw7lk>WwtAMMz$&J%n5{8;N%O&6JxYqI**AG_3dJ5)+%)bIOb})vEWgP~D{Feqys_-2(IgZhV2V(E(`^#` zH}fq*%}tM4D7opj2$k18O3QZ6>vr8XRtVnP_dw)R_aU+*3#)D$cM5`c>ap88`g`+$ zzDy{-u~FwJN!Uv#Eh(etHqbyl1^_ve>&~~tbVVthg?buut(@1j|DB-(bhN4P2J%@K z&sZ+xozF{IebW(Ez=PghF}VvX&sKQbXf!pW8s6}jw|U;UBPPRs;RzJDri7n^X%&twAwZzL>e&E0CPcH9>FYmaTmp{29RaTBEn%p&Y`YJ~c zZ+lnI8`s=)mY7!FTx~I}z3H){D7Ko`-SnZjUL<|^ZSR(O<30QnYm)|F+<@>g7E{wr zkIl3a&TZ1T?wXc$WCF4K}5Iuti++$Q^t28PorlZL9ep=!1>S-0u!x=o3? zEw5H5>N;=fEv6u1beGh`jfEdw@2b@~5p_^7<)s1E2K@bmfIItA`Ql5y>`Na*hYhIb1Dl)pe-${|Z+ZhZwi83N_$M9Q(KzgIvUTKcP}ShVz58Fcehwb?9z<&s4S+rV;Zkx}d+qzhETQ`etTfm~*dO}qc z-}XU4^s)%IJ{IA&kVUvHVi9irp?thw9CD#73As_0;++EaP8rTT?5sTG#hr?f4`pSj z5M@=U2xTDTM_C;zMp+XoL0KCrMOharLs=gxN7;bhbSq<~oE+G%oGK?oc+x?+77sP3 zKJAeFRG_Bdq2^E}vkn0Xc_^s8e@u_eIDzn=fRgP%h#CZ&kXS{ zH#~+}qEH~LQBnKQ;E}e`(-0I7Z$zGHV(>S&v6jkH!<_Az-&{bZR>Av6$NQ0vCn|g4 z^A@qxYk^1@x4>wkV@N4OZNmI=)_w>vMex!o1W;#xDW?xLAmf8l(@2qrS&YDdh=Pt# z_htD2gcBG6_Jz|t+zB}+BGNkR6UiP_Xu=%~2$MP>Pd1Mm#UvZVDp7oN5Y6KvSBx@$ zX@DOTp<%8wA!cnLP&0b^BwS-!`;Q*0;ok!X4Ng{W4`QesAsL1|?Bip^*0!)|P-jKC z4ZAWvQ)n_cEH1SPBY=x6F=kEX`c~F(7BB?uAc0KgP&LsfN&BPJDa}5+rUd~Gi9@Ht zrzyWW6Q$IEWgn_R+aQoJMx-6H7CCQX`Ktyj56s~}%~1?Pq{iOVkDe|?!$=ZE zEGNK@YL_Y;ikyrLsoh~cj*h{56Y*_G=mf{bNLVCM%i@vTz`rMJu}=q1jSM#;ijKVl zuS)}?0wQa=vXtd{y8~F-?+BK>U7rS)b{Q-?7}Cfw*d%w80QMBia!z0yfPR>b4)K@v zjnZ=7+&VgTd;`hr*aSgGh*xRp3=CjIN66__)15#QfjP{!u}X&{K|9tJU_0o`fOLxYFX2*D@jaEUe2u#@4sJZ9FQru}r3{eE?cC zgw2{fE~f+PGi@qTUeUTL6Fc%mXpjI!@cr>4^6L!tj*g7LCINXWXbj+Gc7h?lz}Tq~ z208W|*bctkBO?S8>>a#I=NQqBXcR7?%1yjUc_bJ>A;}s;Cl*YQ^QiN+T3tA(6EN%9-Gay@KAs zaF2)s5s`iBvki6|Z}?|?nEGmmikrbEl=7^*G|M9=2FCzK0LcC@MXLd7&j{AFflV49 zsXqcMSvF?!qv|+8dI)?mdOUmt@!B~Vb0mVbtxVDeW!mvgdya3SC1hK|3N;*niMVwOS|AoFv#TC=!r}js@;@(!l^;*0Y@RMCR~cS zgWW%;7C?ef|5sH;CRO0yu_aYZR`(HN1! zEQbtG+%Jjl@6N5sA_=J06eO1>E0+Pf%ua;Ku8l;`?9duz=i)&Sk_8V{Gaj4l?8al=n%ukaei}}X{ns4`Z7 z)#ZZsT=9IFdj@wmLmT$iQ8Xbnef2}z$_iJ(>f54jZO~4wA-lSw6qzuYBa*1Gaj}@SGCaY$wPl96H`2!h_<-gh| zzeqYbc6_m1K5I83!Zt+%AF?)?XyYLjc2*d78E2wqCwKPiAV1=eO8HVm)8Fhl)| zpYV|wJOYZ72?l6)If9J~zuErWO^J$TLG5@H@XlZi%$AVPXc>8Bdw{^BVmZfg*XN@GdcpqBbcQ zs+IdkUVbOidD0j8?wElbZ0K(vLmW(@`5wD@@Btx~^OB!Y8*qx`L_~ zEiacq4vzb_g7=(mASPSECuB>TaVIU^`8c{4o&L8)Tif)n<+XMqt=GoZZBG4_HhX8Q z>B{;*XSwn9a(id9<@E*uS6&Yablz;F^W}xxY^EPs1uC6|+v-g}suNIVpgRC5M|XVd zY6E&wJ!r5Z*)gmM4wY+b2Vz?X#HQD5>x%LHH~@9D_TX}I{TLwh1=IvoMEdQlLro;Z zOyYBGRf>a1K(}`TM0i@>z-HgQq!bc=#0gL7Y z=i#s)VSQ4zX(mm>9!2yc2)+|`c?n_*6f5vWu0|)LJ048L%(;7*UJeYv>r~j2c04pZ za%xzDV?w`(i90CLzNp&wvAr;#+W?|r9Og;q{sjI&&j{(AW2-oc^=>&g`4n`L46>h6}nD zC}zFBuXU1U?#$<)B!U_gX{`y{X267EV{#jJv|FG851%sTfQMZ~j$k7pT*HoBbCVMa z6mmu(7y}>}6=+b&6%JW|r99~qnm?*55g-L^*}GeY7DnPI8w`-UjHW?)$mkum&D$j_ zl`xY9y4Y$_!UqTHlO}ssRMRI#J(`S;~P~5MpuIuumT{AQH=6 z*Ksb=R}GRqYy_;S?<*uMS|J@Ev6W;B$f2yj48kZHLnhgfPIb=7MQ|(y4wIpBpcehn z)`FadIcg!~kacKl2}84_hGc|azmerUQm`jjA3<~9y7)f&T_k@X7lEhkw_Zotoez}B z&#Qlxm2Dw>soKI5L3Y3800D8<5wgj|9r8ri%Qt&12O8yb^{-re$SJ!}0Yktthppi6 z^x6*u)o10iP@Y`BJmM^bC0c^#m&i}4f0b|K%O1;nVTT77wcNG47S&Ghxm2#N*Dl`& z{(zYgYN0RyS%>`1Vfz;eU$f(&UG5|6-Jc)4LOWmhAZl0PlXl&#;{aNlee^1hAIcc4 zKt1j9b2)M98u_mJSFHy-tNsA?>g=P}sp;=u0bgQv_9i5pX;8k79)Nj4{vU=#$!d%p zDv5kdka1|W?oJ7McM9E0c#2*S-=9*4no1bo*hOS~2-@0v-NV-0P}yrefOVOD$nzxk z5fED_KNGU^H5GE){av;$6%0b`1p4u1wYOhfFV~2cK7-va?~9w{D8=v;36$H{>Is2kU8IIKMalK&N_7KI>K12i6igIPB_m-EHmRDKKb&RJB!w zy>==Vn2kYSke*8vhLICxj3Hmj7%&kJxy;Twg{JKLhyKmM3#`Xat$e} zLIotCl8=?Majt@iGo9dHO5>tli`?rQ9z zpTy#+9Nk1&i1ZFbP8{c=O{K@{0~1BkK+tXNb=&yZ(WPslDmyme?Bpq(nVs!KE$L5t zdv+{c+ZyO)_Rr9f4IRNyfxP8T%z8ZJNknizFkIPizxKjJJcnjHRunFSEfE z3Dry(N$G`rdv=lV)`UI~m?$MvZ72c2F49dlSCaHFSi?vX4Oi%;Pn(7?WMiBqlw$=T zJua@LZM{4Cc6Dvrw!J%DxT9;&_P&muo&#N5dwaG^mzji)xn|oa)C$ZS2O?=i;tLPR zSxwR&sK@Ctk2}seRq&^fjYrZB7)QzjL8*M9%z)T7f*>y70$A!QaKC&)2|OqUj5s)& zHqxZ0kuQdRaaxUVG$;C7=!{lR+O}Pmr;0@MFk9NRjY$@13es+p=!W4>EER~2%jl8; zwTtA)f%YQux;Vh{OL9kawd8I`b^yAxj>JB^@&f)xF95YOHpA+TTS^y->Jmi_Qx2qc zJ!87+E<{3CiGrl02|HP|ZxYG57V=zY4?cBp`gkI*YDy1RJbS^kXZj1X1qoa2ivuqW zzc8G%wJ+G*)1FviaBg|Rw)BU_HpU#w=8enA$di5K&{KzIn&xrq;Z$kag@*GD-))+@7m;!D>#p1FhynmfpuZ+r z)D$mjnk!2bt(tOx+4fb;d@)(EGG4JVQL*aM!|!_6ov}br;BZm4?U|L_8x%4Dy0ZSv z`lmO}tVlR2n2?|Vw)^lrdHl@dv8vTc*P6I%&4SxE-Se#dJ$Eqzd_1?|+=gd1O>J8! ztDW7MC|hx657NiD5E?Z2@{w1LT|D;6@WtWFp=4`Eyp_}9=d91U&bej{^X|HoyNsP% z-gP&D)^6J>AZOhTzs|S*gI1k24|bXudB&T4bQ{*gT!`s<&zes{OxMRBy3y-*^J+i2 z=J1esQ@QiWZP4tHO_(trFs!u|rHZPhAt_1*H^hS*62VQ0qRmqdjQn)@%<=Pw-~`*; zoN8W{Y~C1e-k50K91nKjEACDKMzA&vtAi^0Dig`K~{H4!LoSV1_$JyFnILlL|waL=AHnq>LXc=^(IkpO+$ zf)9bTXU5J4U#@+n`C{|DZxx&YE0*0r#+~&5p*&B_)AqyufB)bQ9(>!`@i)$bPp%i> z%O6L_0H}Xlw6j@vrLAa}Q}?>5VCQqS;NuPWG8uKUsE>aOMbA6Iv*#-BHu?K{^P z-dHVAx!%6ZW_iAy7cx$OZ<#PL;eA8PSwwm|YOn+%J z;YUVLL1JhP__f{UgNaaB;#`bRhG!C@Z+Lb0nWFkOT~yCV55&4Z zpb%8*cfb(Qu7g7+AejIN><6BQ7%2M)nX{i~BtMXDuW7$tCOw9YVBera;)lxAfxv-` z8TS7B;YfX)aOgJ$ZWxFxyxOo;6bw8&_=ys)w2@h(dT~{S*0w5(OjI{s5O$Bbh zG=qF&rM_zW6qLZQ{Nuy|@u2nCH8Qx`Rm1ipOy87xd6CQ7~_8lOvW_HETKlrI>@v_fr;6 z?j40=&X%~bcycGuUBXenfJB|vGuE@NGp-rSyfu)rdfB-H*4cc!aeJP#f73p*CgHA~ zGQrNas*dEW+l2Fx=>cq3&*h!Vn>m_v*8`#Cds3|{UKzPKa=Aa*x|OyH&-uvYc3?a_ zf6ZMqJ^t-HWbZC-nF&@{S;LGoyD1fehad(?>`{64&IN}p|`Kq7j@R_UfWXA zxypE@+(%`*8RhHs_RbZC*Ov<@`|+G|5cx##cx#s94&}zLtwY885DX|5CNBXnvjG_8feCHqjHQ(Jq?610YWXn5!G2#SC4xLKJ~+^J z451SvlzWx%jN)k}--3AtdDN{BY~#iZl3g3DB}DiTl08EdZff=&WId;O2(EjqV@(+i zfmbo ziln6iInl0J^1m)luT5IY&WySDkAA=gd9?YI?5&Fl4oK$h@Ldh;Y-;^u1xhR9kEG}TS=4zL?p;!+e?{K z^{OaVrm^I{A)LqEdtzZNBfO(Nmjj!~Uk(HB&^JTokoE3wglwAoIq*(M7qT05OYzlJ z1THuz#3HNNp|(Eg>`v!%yQbdI_5)ixLfbb}LlL=*tT4t-Qh6#I9aIA1Qo0-%*WtPy zDv5q@uf+bc4@d=p0})`iPNMitfag;tQ5i_-d-y{n#Ic(6G;l=EQtDQt1tDVf+q zopW>q&d8L^u#Y;!5}>DzbQ+}<4$6yn-l^@f_CuZm`9Wlsuw$7>VB!49x=>({$;}}`4{t3#Z@oX zCTmv2YgSxZaj7F#vpQb98u6UmYe9M0)`Dhp`ldT)iW82Sn6ZZAHS|I`h*DvA?N4y^ z(?AngN5O0=NUG`!Wz7QEL)uh~IRJD6K1}vb;0TB_1AnH5YL;;d;u0Eiaa+oLqiWG| zAO{YSupk7WYHM@xTe;%hK^&}5Y{)LAgCN=5Ysd$0gfq)ZWCzpK=~Kp2ISE-Ao`V8K z^PHkOQXW(H0W0kTsN2Sb*7lV~U?=+R=oLav8g`t6!wTi`^IkoE+gDnkXwUCXTf;{N zxpkf}CX$F-e1eKFinMTOBL5I=;)*zzxzidRA2H*uju!S{?gD+bf+v1s>+w-`!4sad)3!Grh z<`*RME93cHcxh^%7V$V zws=`vqHKB0SiE4dDJ$6Le{T1=-AP|V+}AK0o!gr5wN2Slp3>>knH4j`v5KX0gL7ZJ z?25T|#jLv)uVen?s#x_ZWHY}s9CK}tS+`%!FPi$o^p|GW%q@Rm{cOuz_>$$a@B{nY zqnCGI-uUWcF~@x|<9&j+H)aHMc-&Ezs;Y}Q%VBxrEX2gXJffs#wkc7(WU32+29>E& zrUMlj@t;lAi#WkrQ0}RbS^_!N1U5H%lO4)N25F6ksKkV3AGx+C)n-Pi$ANnCNw(59s)4bc8Rmsv zC_(5>#`M307apYPCt855M98unSO_}{kppWk|6=lPu%_MYE67fhD7 z$IIJEj06=%v(}_anPyam;pQN46>IWaI+)oBDi|m$R*yA`-9ufs#Fu%YGTrq#NH#%x zDAR{6_uvX@C6kbXe1=+Ip@eW*IRWGo!rBceieqsHm@Eq||zIP%>=-6#aL7B4lC`9{>;xR}`7D+%L39 zkziwCSRi5EhIz1RTBleHtMBA8mN~eVXegK(nI*c(f^(}xH<|NwD@`z`krw-~4Y9s* zw53-uxPdHt2bX0-nU3+i!}A7NnvS;Ttnt_HN3S7dM@tEr;ZW;GJ0MGD(scpo!x7F0 z@XMP9&kZYkcafBvZ0Pvbdk3vPEHbgP?|{sVIS?zzfgCz1b}^xj!-w&MITT~7hG!uY zuSvBYKD__H_8naZw}%cNh7>KwhKrprXtPUK}YCv5=l z8FVotLPUI(`o#3kJRnco%9v&ul>iZgTu6$90V09I19RAZDD8l!qy!AV~iHd$@G;-BE5(}ZE$ zP(a_Duk#g6?pfeLX|7saaf^Qe+03oiJf&0S_g#fEMc=I?1+CRdih=2(c|;E`X-Sl{ zCQI7mCGCll)l>Nj6^%S$4$reIXY5HwZQM~iXLvdK%A*$_O*Cytm6V^^eYK=)YWD(! zf2+@|o(?^|iFB5aoqH?>MfXm!s0HUdi$tsqDYyT*{B!v;bXbHJvzH1)wn9wu=-N;^70>?ymb6>_*KKJ9j}=$Kk}yi)kkA>J*m2th+tB@YT5{m zbU{VZT^o1T&Tf0x9lUMRmDRu&J+CC`tcp9UX3g`?#+0*||9VmXlH~=-SN7I$@!b0l;MKz+`%rz&Joa zly&6VA5z{!dVA}caLTuV$$RB3kpTnGX>E4KF& z7^#vY@ek-H+w=`wo%IS`AnjJB0L6t(KLZ>|bTUieNJdexorU#*qh;Q>birFQyY^jg z%an!SWzCs2XE&YMG~-V?swuUOvuOI%yUrG3A{FOb!@A04StBNtwve@*uPx$)R$Urdm48q=~rEh(q_ol$^e6Ks6Jh zQULrtBY~qs50V5H^ZkVnhkg&O9Zjkq2@Ome@$us1_Ahza{tg_D=}dQ=|?4p zUc!4a*BY)vgb@&6u$}zE$%&LNer`UY;FNqNA%9$cHzj{ArR>d=vgzXU%OfdkA8USW z@4`*bzO?sds*eVTO)4_Hd#6c-A-0eZ@g`B6;iuBsbx@DQ)kH+u;E~12Z%n^xV7bG7 zlgKcqqgCLVgh>rZvI9`W#3~I;5pn_AG}luS5B{L>KAwxSc=8CA9BD@5jEIiSSZmbN z1MEtOhmFAro1@wyrhN+x>-KfbHa>1daFSu>$uS-q5xpm3(m}9u=~ZpP{_Z%E&Y%mT z^aQYQSwM+VlOt-Gd$f!+*GhVah93?cJ91QC|Gn_H20W^SP%?e3z~-QyDr(mfjQ#=P z1s#xscz|iN)$eav5vXr%N4TTE4N`qoIDuRd_!I>E0`)^77`kL2VQv{VnF>xTo@H2%>OT=!09zZH%a6>xMSGZAubA1MyE*c zQh?_q!=KG~Elv|W$w0rnuyyNRG1l-yx9^FaXLn4w=29wVQz~=`LWtCz4Uzk}h_7N? z`JvrC@9;kEIpvu+K6TGbYV{>Y4PkrkQ|>3)pW1(B|5IIOx~2-xN#An5;EbfMI^S@y zfDAy-q%>S|G#d4qcO=d`R-&XuyPT2wSo7t0EHeTk40vuwj2K-ZKEMae>kC^c;yIctd7kHFNC-Jv<5 z6?Y-mohlwrDL{vteTe+(>?4y+b%%4}IDCS31D>M|+GVLhyc{(Bmt2r)LCfhf_Z-lf z%ILHqoUn#p=3kqy$o1@6+vP#dspNq(C0Ye1qK{9W*hA7*0B z+_J)wk~PjS3Su@W7#jh-0ae-c z#u1j^M%K_c1qLY>`YdkA;DJ_kD{_(mB20Tsz#%k`q;Jyn>qG=NiVHgQk8e1&Va{EG z{|iYePnDl3f2!(C)lB}%NYbit`w!ho^T}D`tvW8e`PAmK(lhp_?Qnt0NiJ z^RSB`iyrc-qGsQWw-`&W0N=FEV3XHnaU}q$iP58tOx}YAiFGTT#W0!l7=s){motzG z&nK_}MFQ-wz!4^IJg^mZ1mg&|7Q}I2x}DuPYsCYemb>ME$UdNEqMjB`8~A4!h>j-5 z$+2`{Cvw4*&;a%?GH-$fzJNylhy_AY}EV=ae8f`Ox#VZDFyWP7ygGxX!#WeMF$8DzCeR~{~1}LXp2LlE`v!j)Y zafhDl6p!26JUFJMDYxW0ZqF4u?CtqW9^I zJG_M^lOaBe_q0~oWr~-!e#4?aWW28yQF~e^ORo09B@b|Wm$=SmDeu#Id1cO?0489) zX41}Lwnv+#KzVMlc0f{Tr#AXp&`lL+=V@Gdq`!~bTcc$Jtr{@82&@tm?dUl~Hr`wS zs+NzD)i(mV`brCYu6haZBPbjLc|jBc&}v_eu>-`uLzKL31qW0oKd3MtaGL@vTzCQ0 zv?tay5C`op#(l$KHKDKsTt<_jC)5}CbW0#K0G$iIo=3ef;kQw5OFy7&LVaB;oiKIp zyQjTz-=1iqwms~q3%1mE)1zMNP|+Gs#^2)I2)0U3Vr6%T?HHb=SBHhAdPKmSG3Ky| zgVajqcpot|mN_;eN0T0ev|qozfib z{j1KeyX@ce(LzembDy6{UbiT~o&w}U5>v0)5#vs`zL=OQJn1i$pBGEzvXrO|dOM)q zqYk~IQMU!~!X!V46CCkZ8Lw0HCnsP&lhkNnL<1T@Ev7vr_<@F+4)E$|0#IsLPsA+k zrfCp`PJT}x*S2OGC&9RA7IxEa%~yia&#<3#1cKTg{bQsW75Wj9v(1+6+Dt$aTRH7D zC{>&2e1tqPm9uqY3&9|vjeG-x7WsQr)>R7rCso3(eTaYKU+6iFU+A9^gdGToItm1~ zZ)YPHiqbm@{)ILrl4||wn6T&<)Fjx;P)uzoyt#m~PfmTyo^YzyReYS8oyfit}Q`zVaPMHI7k} z^CL+GoSU}cD;s7~OXu8Wv+lCL%$?6IKGk+5w`eZ6YBslOyp5UXnD=DQc`9c;mD5Kq zdDi~B12#QSveUDJO03@^yt)k5HDqR2Lw>c= zRS%7m4I+hG3K|OJ*YZV#z1Fo%-OqOPLs<7#R43k!WIf}J$Dq;nPLO{=2s&;;(LH%U z;ql9_cx479q8GM6PuGMR0|bNE)#f*!#uL;;EORfWJbf(L%k+)ILTPr0SZv8BRx6sGe zv6r1<4+gH&HfRs3IAk=A06XmvHMMV$puO+xbb@vN5LoxFprg~Z2{mQxcd*`}p`N{@ z;`zfV_b*6%-hPO z=ZIF>chB98t#^0tsq1X5Z-yLG_o&OXRvZJQ2pp`&-{LTWw-RAI z;1XBL;3ktT`k7Ftcv5&$#d$The>xpLBCL}SiyE?G9^gc6$HKJ3LU2l|s);&?#H0Hd zi4EuGBXCmq&~RvLG@V&s-pnL$!&|G27b|s4P89Tm5X=G@M1F&IA( zWnnmFQ(2mYR=1%unaCj!6p~_tE-)FBC6P0dde-BdoPV7Xryz)`-BccQgu(aYOh1Lx zpUHtMj9L=cGSo_mf1iTCpd4;0Of&x+xTX^jOP$N?>g7LTcvwFeT=C7Yb)E zF8Gw^jAwFx#9zB$xjz{3uYX^~{8^Nd5=Yri?_#1e%{JEhVVdAbn@=wqhca0XG?8u4 zJ)2lDo&KhG<@vkb&d8il=9AMV3!mIHUs(El>$9!rS4Rrho!JYq=*Ic1WzUp7UH0{g zxvYxWtcplhP@b!SJxyl|x2^qN2*D%6F2WdPGa61?cZO}WQaj=__ zYGyokrpDpGZV9^*P~fZ+kHGOYkC`?lKtIvKV;9PsU_%oHQ_XBGKq0HSR0rOHrBs6lVCITCdMe>6!YECXMx2~t{q3VScw$d==xaN7>J6lGH)mY^Ca|d=#5Y(1$R-v zpegu1+;IQG9AOnHx-7@B}_u@WD5=0*!mJ%y#Ob$!#!^0DA#2 zo$#}3PCWk^aamIr1-n`eVHeJA&6#uOEP(ae`ju7~nBDWWJzsDAfv4hKJlS<>*PJKk zO-~NaR+3VmT6SjHTw=+k#FB3&UsI*Tst;w^Tm3$$vRO z7?yEXVN3;?FUTRR!cYN~u^d6nBnFYgiSKiGb0^{(>}XLTgO@}vv&$fLV9Vk5crcS2 zMT>5hstpLH-jFGA1-zQt&n~6{;nnZ-Z+^xiQ5%!bAYx*kCNIs8@219iW)QUccaTm` z7S|$hdzSIqi0GSOAGLUy{@7BYK{i^R8ST|`_kc`2n16HbBO>X^j=sud!$yE-;$)i( zi5Z&?&{O6>n@n{=`8aVE1~%bl72Aw464 zi~FZ!`1wn8`;QbvD4=Z(mLD|}_3R*tZ9Ht=lU~UXWG|RGQHI6G5J(E+I+Eh!7qLLX zzlWlLMEixrl&2hL98V`sxW`%+k^*4F0oS$rpQwMT`Al=fowBvQ`R##dt692c84 zEieX1VZjzm&^VB2C9FsqV9D$!^NdSxOF#(v?wE^+U3QtdOs-hZGZbhA(N8Po$XX#tCO?2jWB)8#?`9^n(^xAeU=fA1&xcA{B(^j!bC{`(2$TC$lIt{zfad;S7& zjMxN4;lRPlNt^h8zH3b|6feMaT*{e2^iK z7UQyBMxL885G-e$3X(N5RQTxJvKq&ThE5qM7_eZ#3+ZD;!G=ajQJ92asWOcu+e(O- z=6%Cbc{-%jZmISgS^7YrCQxZAS(%zpq<^Se+@OL3ft9yTsJSqKUm0%DLo0gKC(8jL zI!)0_%ST^BWto88QWGNdF0hrAJjm=M2H1HO%gL1(JYWYgKktDpfrBs~h$||th>G{d z@E{536Be^bg4)D?JX9332;)q_xZFo$x*3ZZQwKPOR3^8ER-^1uZ;Xc>Ae{ueIJfPO z5rcLhZPyl=8I~=Y-p!3CnCF@}dxSBUi?qE4kOQVUe95!Eyytd2zw_Ch&+mP9@A<;H z!gaGy+fC2Al3vUkzm|W3Y130GVK}ZC*oPsQk}((0Y*`ex-E0ZxS^TT#QZ^D zr5?OW`&F5rVI9m~!bzqR$<^a%#q)OlA;tcNf)y0}0R_)eKwS~FGbNS&Va{cA;EZ+T zLHKeb>xyu^GlB!iH!1DsC@oj0qqWGrZfDRN>gK5J&B!adpY^p`C$+4c9ruvFwBJs5Qiq{8!tM-&h z1;`U@7C!Dh<$VGUiUaYU{fpg;FP%R0`2DBuXO2q_M-qxIIf{Se&VJLKP2_*`SDGj8 z`kmbi-eps%Z+eSkAI*A;EDwk`pe6sYBb|EVC@ZrMJiVjO9-aQovk$zu>aRBb`No-| zt+TmXBU(dYR0}mv`W+9OkHiBZOtHJ0^WiISn%vzt1cweBb7gCTiKUWgW2k|GItu=R z0ylJ^am+dI@sByL z+a$5{y2}P9&q*m_;`J&&+$$HmMDO*iZDRV31}Po)wP~XN`gVK}j)YUh<=1Qc;(n1* zrC!hSAt>-7X>O62aidkVBYl!rTz5T?gg51)xZ=9QC1zjGQpB3;37f={>yL`HNHZuV ziq+RkS&%K}T-$0GL?S;%@WTCA({-g*OudFxr+CIkBXZ_jiu+3~K+BaZHZy*VZZIyL zK3#<4XhO@GJ6*WaB{#a{LYLg((%7KDm}%R?o>!cZyh%Wz+g`-)&u zXhpC%R2eJ@RiVDssCNz8u@Y@sg|@8@mWFEay9W1b@q8W9tVh}n$g>goH=&%(Xvdad zS!ippJhUxX5!xPH5vmJThIRz2LiNGwP(!dL)EHbDYU)Y~uBw%~l7p)e`h&FyeZe&d zy}`8z6N2jyCI;8nO11W`vfu{%ig2pCk^NS5EW;@`Wxi zNpw$AN9qg_wH>2F^^nH_!9NnN*46yEr8I-!CfQByY7=VZhXX_5DzX?{%H7uDju{m$ zEd%NmJaGhmzJQVem4e5wjhZJ0q}H9Vm2m-CFD3UFIrZ2Diiy#aVx(m$m8!AkX)7}nts+mpitQ9UjwQU9fh%m5Y!gdM*6x>I_7zHTem@q}bOH0~B_z(Rp79#++ zkAOM5Oj{PF2;IhJHdNwhsn%LDZpX}Y(!dbgh+M$*nD}=Uq~h2)EOmHOLrXgYlGb+7 ziy*xqCfh3fEz;%*JqmZ?L?P_Ut()aWj;L)hGwIi>_~zSJy!R+*l3r|maQ6v*FnMq7 zKM55SF6$W6nEK{hG=^T#2+^S}H!uAgs{8ue*ZmOA@*lW!y?5-{9e)t$MK0>R@i$%X zird#4B6=qVdO#>)9mLL;_Qsv@t4c5OQO&Kt>8jS;zN$?vO>KcvI?V423?CcrFN>`& z-riJS2hDHF7b-+$cl@R+yyEs14nKVS&=7Q}$Q1npv6bD^dW(5LFG^6)rr&g3i|$ZY zOyB+yqmtBdO~JPMn`_Csl)WiO6?fr}`6M)9#(HS3&nU|oJdA-E1l$;~QxM^%B}bRv zzE*uhL!qjs_%NAOq@k^?oe_ksD07iE!7<^A+yBWvUVht;!<{UII!4%Lc-uPcYisXd z%e~!E*`{geMLDLTV#ph+@LmmVY1quZY3j7oVC>Wza*d7%J zqGC8IRz}4`=fVUz-VzgQfLyn2w+2H=i53Pw(KODaPT zKE(f*aFKu%NCYDVYST`5a(jB`oZ>KOqfSwZI02M;?QI(uvJQP)V zLK%L0qYCZBRx@x633AXLL1i*2hUZX1cn|?CIPX})LPq{`)j!Bs1xIe`+nKqiTF9M1 z@~P3u;ALNcEL*$JxF;Jf`SYXx)c5T|Rvu_hf9j<8)zK^3%laSq1J?NasY2#z$N+f~ z$bi8_?Nz<5FqtuND8teJH{RcXEq%+vgBK!5o0X@>b|G-Y3W@r08o<@%x&?89G z#?!QQH1jli29~C6U)^1u zjVy0#TPGhUFEZ4(?S-wFV6d?v>cVYDdtLo*#HlPYZhCiJ=bjE$faZ0@9khI$ZtB|W zn_KRtEV!|Jo?h|KdlAJa;HRa&1L-J}Q3Y09Yu&zJb6W>{)6~+wmrWviLp9ig$}wLi zY%N67mUw;9J|E3o^4!v{rH*1SS)r>P%~+BH$a!NuDTChhrm?lY{hobP_oYQ?oszet zsFv1_#+{fT_jIGxjdgo(%GcV~zPD~qv|vfT*0v4|2r{?Q(rUoWYKZ3Cl%_ja-`=@{ zb2 zw+jmCZK4@KKgOMi54ijkm@&G=3y1cCz5TTU@D%-7WA1rhCK!qcJVuP&!X;1En3tZp zV&AeHEYNc3>C6{Ah8EZpCc-mn_PkC1^=kLG|Gnn5smq{J86E$>XI!0=ERFfDZ%z<1uayc}IWt1qd`@6S$eho}nh{dxvzN^X8S~kAk};o= zNlyw&W`w-?jBJV*mCXnR^La%xLe6|9Ql`Q4(2S5ipSPTzEJLm=Emw9fm5_-r?V1BF zGT%|sKZ4r}s27P&FkWefJGs})*D}4-YxF}>y^b7#KD4PaTRf}Vp-gVI9ReQZr|Eoj#w@XPGlNMi zmYM;p-@)W8A(*1;KZMfQvs64w>q=~|GFom#bmMZN43;t-DKokx<7wuRgtDyB%FdBv zaNYGVJ7;C5ln_b>%69@<;K2GcS)NcB9^giLs~E=*NRMp~^KXrqA9&aaxMU-i5A$Y? zXI|(rLhj~dKa&upM9j@KOTyh$;~5Ni1K-oLc=p!qgu-WQ=iVKS?RcBm-Cno9d+9^w z@>=`U(1}nlX^?vR;H3-bWmtcZ$YVSi%YjtsW(^2=gsEZpEQZ+sRqCzQ7^*Isv^cE?0Fs~47yya+o6Zy%c7jrbaAE*>v@AL1v{1p zOX1;OhJ}Z#pii%m_i^YGu-0``Im|a2n&h#T#d&Gb^v&qxQHW&maf1z(suLLBtsHqI zmKrDwAxsD)(aF9!c6N3tr*ityh40K z2}l)O290J84h1yBww$qc_!tI_PV`5M0#M$Cy(*aQVGrUJ8!lt)ATHVs^2q8S&$`Q# zAHLyGh`I%-m_Iu@PG)WzVThY-@xUCA&YBF|W1-zTTTwDyoy?#g*`K1NeFW~aA?8mrdC5g{suwJDi$D+A zVwX(eu6~#hxXDE;W+UdBQ!k9!a+l3KL9yR3S5T((bfbb6SU`}7%@qO+jK9pL6Q74T zerbX|NEkyQ!4Lin5|z;1C+9hsWSF8bC`rtA%C1dblBDbzAZ_S}b%@I!%vu(Uw#KncQ7R~*th6zzn{JR5j8rX(?5)+RKf_2a~t z0i}`pI3?y04F$##R{CWON7Sy(Elo~VpAAu$IkM4&x)Jbx4xJd`BMlQx#B>0+27Mp3 z@d9Aq6!UorFiJ7^cD@Z$4#rp@j&k_R2yn=jD>yt)tS0x55qs`}51tGozM>gN(Yp|{ z%|4So*)f|~Fb+~B@zhp06}l$bop2YK`P8;E+r}G!0>h!^qYG()sfMYwGi4iR@;61& zHqZDsBkB0=k8ZdHKm0d}&L(joDQ8NVJULUeVP@IJNYbX4Qf54jKqT?%<1pl?g$tg# zbm8Unth$wQ47{TAO9rpr1q}J*J0F8tl#g8|%xZ%qJV7KAVTcEj7}To+1e4;~3^n&z zu9_ZW$r>UfrsYuVm2x%q&kYhebnjH+DP#?*FpmktEC&fG;I%E%(aRXs+BlH2lc~lJ z+B@wG!aDE`d%Gcis+Who+0p4>5SExu?BbptGNTaF|~>j4e-81E2$w(>#yvEiC1HjinBUP$<$1r~v@eT2xeY9C0axL9GJlqo$7VAm!} zi~OCGF;lF7=bXh$)0kw;2zo-#4hqynLXlU>(SZIGW?VHG&2}!ftC2aP(KI@@A(4X6 z!&E%>4%#0BkkBL`-paYg`G~^(3u6e=p>L>wg5?OJt`N2;t{V+nji?aFVnDKuafXX2 zMe<%o`o-A8VcQ93CKn+MtgtaYH64Uo{4u-v?#IYOW_}S{EW9(bt(LVmD)xtnl3>j2 zFd9UKXyH106WLnWpND(IeC~PYQLiK9HS>vgzfKw5sXP%%-gbQtVD!NX?sapC3IxFq>LG-b7Y*_KEYkg{1O) z#tn{7cHa1I+N??=zM2_FjlNkOm`yDHwKuCGA*Fz9_UscE(#q!3)}DXl&xe3}H;F6e zSJb|+8Jkt=hWTwf-&dvd7V%1J8|g0Y6MuFM+Kc$Pk@d;;x2p88bb zl^R!llKjfX%3y1ztmp_!l&$24T&F zAGMKq@J%XB$NM2M#i+hs)C@2Jg6Kp6o`7RC@($Sx(cDc~P5mxzff+DIL+-Gg*r6;^ z;p<00H$K?&Fbo`akeyJ7C?O?WegLlqXXVJyP@fBQ+h8vtm3V{ygpEB&4SASQN8||% zK3v=SCd4c2$tY2^saz(0zCu*dZ-`B z>@h+lvG}RVf!+|92=EFJ2($nrgtY%aADW0(04ZkNh(7qa96SPLU~PbOD#L0GmRU9{ z&}z}mh?4?p7n1}6=;PR|KHQeU;0Dgnd>1D%bSMR4X6ZmvA2M5nsA?O5(+5Fim@Rgd zldZIJa88EF<}EqxgjNEE1FR~&>Lgl)PS((R&A@HoIE+gkgMmTtT_EGbwb8<^<2}IH zF)Zi?4(!l-V9YQC+>($DGRj1n0n(w<_DXn0Fh4}^`pL>9|5W8L_%`%4s54+BSV{|3 z0CI*-*IlkXARJg5X=BsM)#?(jCY&tN-Nfu{*@IcCb-d95Xgcah&C(msJkeBI8WccI z)+lU_dZWo;%-%K^3v_Z-4VyY!)8!yIoeGAA6M1D6gHPz!@qiOr5tCo+B)3AD#Z?HP7tIt5Y< z;MWm|L$*ToQ8_d;GyujacW=vAFFg+T4;&6{L0VlIlIQ|LKxpQ6cSmb~1qcq>ljnMh z%A-?$IB8p!KUEo7Rx_?#c4Tq>kWn`zpq8-K>_g6}Ego62Gr@gYN- z5CsJbazKcdbZa&c`}sW9Cb79Eg?Xn$9eTQ`JT%bvg2)_>XmX3Jb6^kw%N%Zzx}$4; zwcgRPeGT;qlO8a-CpmpCdE1-G+g?(>=Y825Np2liPCFR0E`Dbbfx5T{0V7WFyYwRF z={Ae)!+0HL)t4l*LcF77uB|}5721ISnm#0D$K8mscZPnsK1s-$;IBSOc&L7DzEo`%oiQgNo!#)lfa6zuK(V=gS{aNhDDW=4)!^TxtpakB4R)RnvDN zVC{eyDf?&xQni-3O@kVQZgW_L?(}qblcQ=POmOGx24@BAL9(z3^^9&q?j*DgrGy9# z4v{1rd7~jl(#XTS4XNPo;86KkZ?{1%guA=p8=A?J&B6;?}^^?QzGDoxEhgcKn{6 z(TDdk%HrxYiW=QrM=UUAc0?CK;=RM9r3rt4*EC>`5LyobKf}QkLFp62AcBm>0+Hy2 zCVEwT{?6Ti6fy7y_e(DlQP+7R#KnoXl-LOcHLR@*i~7|snx~k+6~SReVt$J1{X1Uj#plA7|kE1bX@Eyx+ zq}^u8h0&Kg75%IX$J9&a&p|`U*_>s!HK~`WnbdQQuJ7PWlOgW3I+rYBqD%Ps1505n z*(%0Gh$>`HG`x5p#$hZ&J9-~9D6(*m5%kni5EK+ z*KEh}`j{LQ<_IHdJ26aDW)#f;s|p%By|AGR=*&Mx5MBE&*fQFV3kDD8sPxcB$sAnh z(+HwovS4v+5SHU;cYvo|Bn-pXF4?u?@xh@7qh226pY4mvFeInjkn^AvjjLj^Rzmkt z**O+43{)<*FU}!F_za*s&XAKc=aS23lgp=T&u2xFH;+4@uRE8%Vm5sROtyJ5VG_-o z53?Blv^ih#tgm=#Wcpylx8Wj!=J}k`>Fn8@H4{#-RZ;>|p1I`8`Ru~E>@~C5YtHvY zvgodiF%~T$d071n6F$l)f>quU&zdcW@~FCv*KLn zeEFYON2+&R&fKBDecvlAuZ1{OV&+r6Grl>0#jL+#8q%XHQA|ocyms$?c6TJX8jj5- z3xEHi=T<>~6vpJvSI!o1k1Vf?q}MIvmd;dcxo~`TODi0Hw23Pbmal}@kGxfgWv;@0 z%FCYeUh-F=t5R|&`<~l9ms~TOT(gjprTHL6zg;N1l+y5Fw}?KuaYz*W=@TOnU%`x{ z;6o4v2?dwE`P_iq^wy><`Q@6rV*I?CwWAV0-_3G0mD*!=KLvwGyU5~Z1h+cfFvWxe zma}^k1^{6sdo$HHt#Mk_j12%J1Z2)}wzm8FVbmWSpDGX`e45$uh~_8mX|jjzM-W4N zU}78>dn{_Ok?7QSxzTogpfZE9B7z)I9tT4LE`tDVh#94UM~*JR6+{fOGzcM)IM|Yoz)?e%%$I}4J1b_S?>K!p zSF_4`=(~Eq2$K}BCD2b*)hl`&w(&F%BB0h`b(2@Mv%rRO8rzGpMjW zWVhhy(G-}aBPLjPKXC}z_5g=td1l`Lgx#Fr|D{p_2mr=>X%iMBxTR! zY>gysoAGReO0S=z>oJRm77qO_u0`-^;nU)iLPuP|m=1#w2ciLC75Z@BH?IhMJqqlmXV@F$7RWH76Tto}fCcPLyK$h`4qynKs26ZRY z;JXdtTB9Z!G0bK+DB>1mh}s@_5Jw&1sN6dc=G{x<9SFc;J*V$B5A+;A)Yr2$T4?E2 z@IJ`9i)qzCPxTQphY6SZXiRuE43h!1GZi~7tevgcajB%9EfSn&$3Sa@XyB|P2j4Z z2oxUhTbU}HVwOT*LT*-B9h$LeN)^|HbQqBqO}128XOeu3L>jpWmrZky{8>l-RPiMT z4g+$2$IUt{evQ}bHOBAKD;|+x0(6}vBC#sNNG*dD+S=1wP=+$C@R<2Vjb>O{5R>f} zl$?-SX3pdBM@~I5=PRA{l}@Kbd{sK#8^0lBeBenE%aq`-1#F9U9cEfu72kxZITW|b zWpaW*vB)UJVJTFL-j0ePYK&1%ah=2%bd}UjY_27j4#km5r7{>DW~bPJmGNlE0i$jv zMbRk^7`Q!bu{cI^_Uf)6HK}tLp9Gg2xsWR+8@=PUOO8w+M;Tc_B$t;xzwOy= zbIaGwE?*Z}zG2)m@hL3o`NHzK!rIxwTHGJRikZ(VedhB|e?F2|g9mrdI&$WV$`R|D zbrj5(tmefRE@b1J?lR1$5qJtcil7zd7jK0TK+2NwO^(Cy(@-B<;!!u_MQBgHOreqSsxJ z{J!o0x8(y{qFTbM&q^f%wJeJvFc25*In*1XtqEKtuz5#trq(kYqS0Z3g&~?qT;?a) ze9su4Ay5(_nte>bl-roZHZFvSObC$?3&uQU1Pzq5upNiFSZOZ3B8Cw=ie-$XsB16d z;LxVcX(d+ESbQp;8bcVxFg1p^gw^i|8Sej{umM(T*kZ$2qPZk6Q6Np5@>OnH#Z zxFIWU!#iD8+>W>|EABvCmlby+&Sk~LpbK$Gi?eUI5r@P$i+d1<)HsWK5r-KN#1nuT zCLi&Y`A0W&&;d?QFC4x0!}}VJCvb#;^Lq#c!<++`lUt!-6gYGti@*4>N_cAn7{oCm zwrbyw6UT67HrT>S=?~#iLKBlTHlC0F7Oqk#!bY)>%n*|K+{NVcwD5Ec;ym4CCixG`zAMm_jUw_Yfd5g}BN zp>-rYo^@$i)vUYf(#rZ-cm0e~A48VSM@^s8vUWbKFU z$>I;VvegoaO%w=S28teXGL;R`eL-87OXtgl-0UeRz@WqO)I-MKVJRj(=w!+wUgO@y z?i0FvwIW#(f=Y>>mEb`M-mXNW+@xRz0S~-SW+i2kItnSEu$)jzK|Ga|Qea&uOH)Zn z@5%@!Go|I-g3y&owQsLAdc=t6lwUAqBZjC4e_h#7Wl2S9!d;hK!L$t$cnVVdvVx*h z=t{oTmx3Ys~@i7c7R$TEOtVdpuypQ%!ZZC z%en(+{m24Y9Ahx!Qz3+xJt=^^qpGsYlExw81R)?p9q&yLq9E)e)z&wPAM`U#_S)wSH zkjo|4oyuUO81_a8`cjv%%QTDCTA`c8;)+rbKSK(JzryDoi3))UZk2$KI(GLz%s5LN z)1}=-r+JCTM~4sk8GmYQ=WCDiDaWS}p!bv0pW1R}%eX`HzUH6v=R8HTo+6Dm zTsm94>5^wNxD%j!+|RmC%jBbZq8U6(cG&+B9EJE{cS>|7zUA?gq}3O-#tasEL)tBT|u*_Ua`UjZ0hh zuancsmyuB(mXXxTPv#X)d8FYT-`;67Uy#`L&!rJ!#tP>_njFHCb;6&PBXf8=0*n-C zzmbvc`LfEnvQ4vPn=aJNmTf&<|M>1xyC;=ryia@I^c27APv-U_p4t2K-Wh+nzL*#z z3V0PGi`WFCiQEb?N7R6T4A|Ab&M`j2Wtiad@K$$ua)@K+C5tPmV*j5ZJ zT!CV((}K~dI6jD}wgEg>QR)l?m=vj5r(Fw`tG{_*#<6Bx0S98T;Tx@Nuy0yxtbu=t zY`0o#@uB7(F;=O~RO#p!Zx8vn$_F|K-{cp*Kyz=&b*EBjoiaB3Xl|XRGzR%S7@<8$ zTRYpDxanrT0&SrxWZIt1Ek%$arPOf`@jr#IcJ7Lsyj^0q~iw$FIBFXZGs)BJSv)Lmc;(V)zyWj%HO znfn1a9j9PO_ABoABgCNLeJKCdBNW3tRFHJZb%(wbd0&QT|1DElA8`SB)@2N6t;Q>6 zrzK`WvekX_gyc|)R!um7fF@)n^TDN@cA?R8X(h91B}d!il0~6x+GMRf?(rnN9vTz+tskJZ;q2_|LPabL$)H` zLj?UT9m40pYSr;RJso~c`}{Z)QK%GnDzL*_qXWOrw$%_&u>un-1YA0mptQk`gHPguvCDe!*(s6`*=SjF{{VPg zB$EwPjcd^Z105VXj+1#qv5-*w)-pRA7TO^QHRn47Q&8^%-?a!|pe;jZ#FA8iru>VP z$U}N|&;qd;A_Tg)fsM-nL~Xn*L!m+;rYl&!VCMEg$biuDBLhQ+dIrK#50lN*?ihl^ zQC9i}WXB#j!jV@urv%symqt(z)8-c1j>?8<$OFd3CJ9d`Xk@@Y?tEe@bSM1T<0@jOY*%m~o_8jX9%ay}J3ZE)xRYny z*^n`K>hotl4=-wpZ%#>@Rnn$PVQ>QcU@(&@EUKI@D8J?v)b#fSo4NvSb5-Yf$|WUx zo;h6O;DUBT{h}de(|0Q-ET%8h1ngAX;3gs-k_6o}O3f~FI>W7~-J;cQxJw{uFlfhF zzo+GmJ2f4a3Fqh(4=g{>xJFxQjNu2Kf-d26^ZkBDJK-ctE`6`Pt;|j_m)W_sqs%*% zt;zgIqib%lDEc2X2{2Bl0ud)-k|7hcKo}>TI*LIdhLF?T=Q2KQO3`#4ei({H^^~fS z0)~GzQEVp#%@njCh`K>I4{Kyr)Q#`x3t)*#5kvF+Z0aHrnX_Oscpu6*h`;a`5wIDY zQ#hMlaccMZjK9kJ^SrUf1!u~{flJQZsfu%-yU>5Rx?w&oe=eUa>e%rqUUF-umCiyUlTfoO3ZWp9Vx-K6WY4uI)s%A0Sg~7+WLS` zU<^u@B*AUaua~2@yhk5D!`n$eqvL~q;wulj4p!@>9C%jmH5lt~wAbj*&0lyccK7P_ zPFY%Sa0lG&gybx_EMw*A^ceZ!i#N922OOQAT5e*2);+sG&F^8tuW|S8L-<jHE@%u7jut zziJh<=pMAl31wybEymEfv<5v`0q|Ju!uSh8w?c*~JWP4oyPBIlvC~Y##u8^vLmZS) zGt`=n|g;Bp$jV84YS()U0@GwN($z5WMIzeD- z(W3gELDE5kdZE!vU@GhHwL(UvO@Yx$O?8sn+hAP!UY_|-zh+PzJZ|2P{e7b~MHm4( z8lxI9F1`5yjF_3#$dQLiGe*BADBPp_US%Cr6fVn(G0<}hHRu@geB4$K*V(4E7?mL} zYl^NpXhNZP!=Vm(X(M?^82C%jXzBg@ZPdwU5{_u23K?yRI%zl=+P~BiheaAL#$bm7 z%*`+{yy1D9PTuqBds&775%5WRLcK>pV(=*u#xWdfsv$@aw1oOR#J`9M9(B+Q>L&1;_9go&*I5>eud@vuDlPvnE&1+4Dd=yp@nVlR{pnXB->nQV@ zPA5lFE5Fb>);!)bk@!Qq@0#KuSF&jn4_)#EZX^jQ>11Ps?1oIOk0h^vh%ylodFSls z9T&>yN*iZO8{hF1fnl4R^Px>xw*2X)>E_9%nVjZpb~q||-vN&#PvlO?k;KAFNT#^d z7IDFs@%ZOXeGcBwXMH8pj)-sNxN;d&-+pz|NN=XPd*g! zm7;<+vw~|bIA&9}M-u909CfJFWbKSQZ$`=c=*AHU7H2QQ;XCZ_3I4>#Po6q?>T^^1 z&lf*iJlz~AsKxQZTt>xgM#Xg9x0+sPIv;#t&s@fa*^CYI{?uRo6m|{CLvOL*%{ZHT zF7w4*GwyARf&)E<(tNu`Xmz=h;j9;op2^NR_i|Y1p7;1Bj!!jD2d58B?VZ{NwfEI9 zAsCn#oylKIitp>+7ew!d@%n#CNS>&FYS)=vlMkIsnLhN*jJdLnvt=7E?1-dnizIA+ z>ClX$`DfP>>03X84FG>Cc@aiG`qJTu`;n&~fg52|5gq;ZhK+yIjFK~(sKb(XQipkW zB9ooc|Lg|r{HEiDT8!R(qG@vF@3%w}a;MNyMNqiMFO&8hP1sVZ(>UuJ9Z%C9dk zYH`TlM~%Jm_x-MxmGbwql3G^C-(R63-iwbIm$v5#i^Qf}%BLkRZAd+$l&Mi$H`@-b z{x>8W-NCm8CI@V#ZF<6NUBdN;ru~g0G@J)Af{giogEkfT734sgSp;r{nP!3{OZiE} zv53n>IzcZeplXCw1YZ^wls%ktM9*WG#dbU(3}o>Mw30lTTTI3QzXJBdjlSVr-zs!$ zo-^q9E72dr(xBXyY|8n($PB@xZww~s{7HmrG`7LxFwks}unfQ_F;_K-k~h&yCHP zl=5LxflWb5q3^;v+CUooP~eBPEjSj$K{M0RBSZ;_>G*^>*E08Z&B7QqeEcVbf~pcC z?1&qCA>I?OQfZmXP~g^PIq(N&-azBjQFXNHGjsrLfbnx6Uq>z9bGhocy{(fZMg{W< zWSI>)fybPL;R*UO>N04yoHYnvB0W%YnGO>Q+&7_qD#U#I=?p;aM&|))w>k$M-6aV>>4|NsdGkPavX@myx#pOQii7x zfT5COSJQszPMyq{`cx#ddZA?Fh4ru99Vyu}>nR*>epY$6WZP@DNXbs^7Dfj7Rz5ij zg`>IT)w9W~$M*cto(NMePYsX=8~}}i=GMqd9~uB8(zT! zW3rN(wve^#nX0o@f3kcgp=w;#ebOb92fCk;k=?Y9!$jc!R$zxs_@g8Quh?AmcKH>5 zWxXW7DyfL~DoCJT1{5O{2J&4Rv?2JVQz{JdD5P9T@Q)b-lMQ+uoNAM$c;K!Bg=@6Z zVTenE2*{(>z@#N;AOl8}i6{OZg*CF#HH9ExfrL$J!UYMWo01#H$j}642qSIaLX*s$ z^c;ew%Up8LH3;8oEcWwqc@NU={^);sjZ@2yb**`N&inQ7e>)Q4|n4!D0gq zQ#m{|4CgKk66jy~A7f94UE1`qW;@gm{8%&dLGn0Q={nRv9cYEK>fu|=s^5rVl@JN_ z)yLL3Nx?y_j+wF5SKlTVv&%$AHdbKKQc19YsAtm*R~Wrh5h&4N5C|e>anVIt42e5@ z66Q24qzamQKWVcVMHrt$-T8tdjwi1?*-GJd9%+#sthtxks_E%*?kK@1-Q*#_AwM-> zG?9f4J*cqpi6e`8qy+*V>L=>Y=;y!=vd95*OfE9YgW+HUiS#gts4E@v ziiKg9!x%3E;%dq(XtOT6NZ;awEq#bXsKCvmU**DS7OfzzoyFjhjZ?dgc*tqvu$OkvhQkH?!m<940>vB6~YAfIA z+#ugeM!4OwQMW#8u-$T2jm@OE`J5pU9LV-STa1~ggr>p(J#iXTC@6a_c!h0}iT;~v z3xvUi9@2w3f6cxbfMya>+6Fahzz zn0SKD2`uwZ4 z?M^3TlwUgqQ#2$^j5!vXV8MwJg<|sdCg?rVa{J6+<*Z=9TC$xIouR0Z6cxHLz<8A z7ydkgG2x$;`~`o~Q}#1Z9YzhqBeKs4&9Z+z~95ugcv2c2zr&Bsm6SQqmf$$jwV>=16FS+8e`-5Q0>tAKZRK_uu zKKB{&`4G;nv-RR)&aIsX4XY4luds7#XFKWlEVh0MfKr;l%(!MwNTJEom;Q^Hkq$z z=8H9^o^6SrB-ekg=10W%H9sPnHUH1{&f#11&S9f>G?->TF^?ss6B~@eV7z4DhdrE5 zCIJ$5n2%js7hTt6?xFYZa?mLBap(iN#3IbSq4Rfy?Rx>A|qx7D3 z9**1-UxM#@HYh*9RuxCT2x6GRA0ft}*hSCwB8b{TaQp_|%3<8VW|q^KPh1jYj1umo zfGQJp=yhg0Bc~&p=xr+nZ3vhFaJF0WfYS{`dNXAu8>V}B1Of0sm@D^_tWt6wP7r+Q zbH0LEAbqPNH~ZrNOJ&1`PXT<(V1+zk`%h4jEw%K1I>g)1&N zzzxaRA^vDb)60dg7Jq0Lk}75r%dt@>mCPg-U-QV`)CI^qJI**5D&V~AFaKyEc^Pn1 zZ|YnA6v9nYKmO2%Z1~W}de*tb;vXayfBea^gTL}gzVaVonoF*EWfgP zRYR%zYLOH1SF4}pK3f5&U5 zcxqnb8sR%@TuqYvT~VY^6`R({-?f90uY9+d#Yl<4_tk>a&7;*2I?-mXXU z&4W)1zyoyR6f_thSTqX3EYLD^m5CiNd(qldCLz9z$@+2W*<|C;ugcK8W4hMS1oI6; z6;IQgWUCAMb)=cs%@-6&u5n+V=E`B~g`}54L=rLLDC%r{sJEYSa2Ugo@!}Y5%$FTo zmu%kWBTG~s=pPIbPcW+D@EX>cZQ&8f^o6*Kz+@_wC?<<`-E+9bLJ`9MjsVj{6yKNZ zqJk3(5n8%gZwsk!3r_sUDU_NxQGQL9+|ro+eHTu&CYFEoo-x-AB~=Ve6yFf=bEC>D zmQLJ#L%`3q01P_M7neg$|Av|&reCWS$|~nq)XZ0}zM;Cs+-o^PS?vvB6LO8>t9!-q zdv3s8)L!vMLY7!@ZM{%ZF<)AFL(UN!#cP{|!s;7>UtDp$*d_XJWYmbM*A9z<;u#-} z$eI6Sca5)peEq5QU;OOEXCn5Dw;bM?gq0WMzjJ-t6>-#G@%SEZKGi&N*ZA(Y9NClg zx=iwAM=4|t;dz_-<;VClF6vOa771Q~HvlbSrho?={!4 zG@ilu8p-6tT#SP$-T_hV0vf9$Qc!twl2MqBUiM8bpfREAPDe-n4zPN-PH*SP;q~1s znNRl{RL58T@&%#w1sk31bB@`squOu_U4{_N+C{2hG)dQa>h3-YwKJGE+{!1YjJNc+ zNTdxNCHa|+1NQPa($-bXVf_he>pzaM8ntpm=4?qN;4#-LARLrwnzHANWx!t2^WR8C zYOfNpeS)UVwPz-8SCv$%3I&wGIAcrU9YfD!>O;Lpe~VcNtlVjnXu<4(O`6tG4`eq7 zhR6{8Kwmz<7+?RaQ+VM-Y)2L1sW9<=Fs`{MFbtR~&he_tN+wHZN`m10FzO~oF&wFr zzA_(F)|admOx*=@879OjFuL0UT!Z?##J5dISwVq&73j3m6@twwV=|0 z6^Sr6|0{pT&~A_YPF4SrBjI25WB=7ANXE?*qzb$vbRu7w|K(>14JTdNwnQtg3+pQe z9!X_#M=U%d>(y3JqCqEp*`(;b!oA>ilUaM~NK>z{X+^-toZN2->e%3AA(c%#EeSy! zf=2^gPvvVqhQG*Qi%a8p*ry8OMVnyT?h?cR;QosqK~C`sqLLuUn^D!HK0$iU zCy0-s{wYa<(wr=ar&9&nIgok_8G`N6EJ1laTX1wO6U5Evw8DHre4;>*-zdO+p6~KuU84uaJ68osS$*lRf27#RuF!&R#5h>LocmIKdl$U z`!)!wW4oZdv0V^;zFm+nqJOqG2y#QCVC!l^-J1pVxi&%0X&0pCc0mp7M_UdE()xSw z{d)xUy?X_*>pnsKD1`Q%5Y*C9!FJd(&$!sLG!)Sp}w#PfeEsBgR?DDS=|h%3H}@%_G_UU)-L&i(`1 z_m6`5Vnh%-ejo^!etMJUt-V_6%ay4~e$nVNrPP zGom{F+oHH{TvUI4O0+F}73H25)tuiIg-gFHs?(FAc=2gbdGTw=b5;~Co)yJ~Z;0v> z|4kI9r$ynu7ev+bO;MOSC)&Esql~{1g^7!zc=qo^;fa?-apq;wcK$n}F!nuB9s5Vr zdq!0Kmqg*YOQO2(2dML$s4iR)mF@pSv|aqMsFeP*s1961x<#b>P!wMOP*g{LigZ6i zzx^Ej@E@We{6Z8*ekt1CfEkcsMY7evS@CmD$+kX4Ql`=*^+Kj(yOJ#llglLALwS;N zC0`OBTP~^Z7E8iZiKPC#ToRwCkko5cl9Ev)sm-;La$~I|o?a&j&Fdvw*Ct80wn?(> z+af8$+a;l}P7*tINQ$RH5*HdJ;X;$7UTKz;(%q8kZ6l6wAO zNt_>*)S2IsY#onDO4pYpA>+%E>UmtUy*q*L|31F;grpXJO%h-Kx@3Fo8 zGmS_czVG1O_aynf?@8kL>yj<-_mXn{?P4F@ zzUY+YfJ;_Jyt3_r4?K!Q*>){S7S1KZopq`#y_PB~uVu>O>0BB8FH7TjvT`wB77I&c z;X;Wly;mZO)1|VoxlERa%VgVo<+5B@AxoPpWZ{VlSxl*tg{dl8si{Gpm9p~QI$7Sl zK~_DRWZO?R%kscBSvt2(7Vq1EZ#LljJ7r;e3%<8Y7IOB;V&7hr-6~7>wW6FhS$eJw zY3`DxoV#RkxLuZi-Y!d1ow9iTZdqA>K$b2Xkj1HcWl8w7EPJ|_jP?iP;W!oFWvUFouRvaN&x){RlG9oKE zCuQ-ald{nDpe*khm8IcPS(toO7T+6_9XVf=g?GOwOa8}X+3{srSn=Dkc=n7eWIQ2@ zZ#*fhrIWH$GbziH_tUz5e3oW+JTh38YK{~yZo=|4h$|FJAz`(s%-H!Vx& zr)9D9Ph{cfH_`XsL|xCx(qrdj;kiGPmFe@S<9W32FJ$SVZ(}_ET9)7aYgrNg7Ulmf z#`GmweC%cP&&#s<(JQi)@+#`}J=s?JhAh_pgX~>+6YaYsOBt8&jmxsM=Q7&z16epQ zk9J1U|8L9Uz8}g$;777L@z1E|zsT|%|AIRFt1NZ>t1Non!}z@?i{n>iX&Pkf8~;-l z1OJA;`+sC{;hL;0+(3VRfVzEvKL0=#&;7eBz4Y(0coA%`(vM`@m5>5UFY?A==t=!o;}~+^L?J*>$&gOYkPMb$NBd-ulv5Q<9#0IbxRsd zm8^WRq{4Km3yzhn_;?u>n>9~yua&HSwd4b!lT5 zDS2e2q^3$KsY+5~73x+=*|||t_T5ru-y>P)y^<s5ARxfqxW0GY& zA;SirmOPgpFH>)9rC-%FAOU&b6-B`e&H zaczeW+a%?*Nj3;E0lPqN+*;O~#5ZukWL`%1FdUa2a7khM*;cz?z? z@Jp{{q+}*nDo-k2CKVMa#qzZh63?o)yh>O26mRe;of%LnD@?J0FeTzfC{{UA@%oWU z#D^JE4-$Ti!>54jH zm57?52wSr}Z-!#sGn7c4si<|P68U>885^%CD<18|E8dE~Gxkv;agL(8IZ71ot9Ww) z#<{-|efukFK0xW>gA_#{tXOiAqS7SA1`km@{7~rTDUmZz(ZFGf(|pDH=PMDLq9|ga zV#NzFmxW3cE>gT|krL&L6^~3)s{3fgvF)i!k5{7icqM};pw5YkXPv01`Xt2*PF5`X zRK=@LQ#5#*VtHpM%Fn@Aa+HoaOHtg}ipQU=C^1*@q+CTQ=O~_fj?#nYVhragS#$x) zUZ8YizEVBQlnh_4c=U2S3i%4f6R%Lz2Ba$$bziAe&b5ltOO=W%Q#`#)sooov?79i% z%av#;S7STZsFA^&l`pG8QTsaO%eh6d@=8U$mCB!TyBb%uL5)tjTaAypA3l6QjV!Fg zTEM;$;y`%i`}kd?{>`TRYi@j zDKYRG+G|syxlOUS*A;Jh9bGH)RlcQI(%VXuysfC_?@A`UkL%}s zjQ@Sb+CNY{EiuHVib^2KG%#W4G?#6Z9twhYHN|t_xHa-Zb2-8V|ae~UKz6bt_j*WGuDHGYq4;|C@3K%8~|fPQ{dy#Ghc^(V#KaS*j~ zK%`7F)q_SV`Puko3xW#;~x(hoqN ziJBS{HOo3s>;8i^l_hBweTb&+Lp4uM)+`lSGLeTtw?I?=0xi-OYL=0TzK_tXJxx>5 z5-l2+pr55^Hyve;(k$s{P1Q$h=FQMllc8D3v6`&oG;25>eVwFvH}a|zvM`rZG{v5( zrS~+=5>MB%D@T(&OS9s$G0t$D`^8$M7ogrHTGcMYye`9hiqLNne0Zg%!7DM( ztF_2ofi_oa7Ez)pvqbaC63wbtY2LU>v*gv97p~S+Tc$;O8S34LGHbMMx>@t~o3SSA zG>=<{ajw^*em%x?ixye8Xr6P6rnpKiGAl8cTeV2KRkPMxF_zolkK5s++co!AX{xW% zqPq(H-2tE8safNlnh)HmskB;dLJpn2B= zno8<4uc$-42Q{aM@Fe?(aUDIZSwg+$N%fjVJ)(&o)ok!lO%0D>?2lnik876sq^7iI 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

HirSKfILqSF?Ta8K33gU(5E(NR#gj- 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

  • 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�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
    #?Z6upPbPaij{cSdJ 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 z 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%0AdzVccG?XznoyNuEKt}`S!RX0y{Bxu7?I=9jEC~V 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

    WYoV5w{D4rBDd$h$1F7M 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%0A@qjYe_JKNZ%I^DS*g)BCwu{k2Mk5n4!_`r2cJ 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

    1Q_IhdOs~N@= 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½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

    wW;(H&He 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

    ! ze5|QpGG%!AN7IL9*MlsrgWH0MZbO3cZWvK5V~3kaV`U|UiGzvJLpbdX;SJS^;wmBw zyjdNG7(c5l-K-w$xV*Y>#(SBq*S{HB&soE$srxTkTY`A{&s+j&Qm}gTi(N>}lih;x z(>dJ#6lJa@pVP&3)%7U6Q^Ra^>*OEw}bK3B$n-FM@JGF z^Vv}R-E`SpQb89@NbdJgsPOAR`;v}@?hYi+#iID_sjEWqwW4~)CigpOY;>fkmIwn5 z62Q{j7~z^gl4wn`H@9Nv=Dit}^QJ2A&7hn&hvvPp+?MLk=c%@rEW{~N9JL#UFTD@R zsjnSVlHQfHf!8!BAKYl7%a1BCf>gwn8Q}H&ku&h>-N#0RR&>uLnfn;?`LczAE#QgB z7KIIg@^5bX1}Y85j#DZF(H~&@jXiB7Y(yNdK_yuAa`+AaBQgjF8SC=w6@7!@4cW4=Kb{ETAxrMG4_Up;y1Iti&@|GQ}4GE#|U{rsr)niSuk-6r?)M1 zpc9HW2JkOofqNH(n?v#M(g*3jZ~RQ_TNf&92@q>HLh^G0cFvTs=4%o}K=oHs15TB^T@rvX_P#otTq z!*?h7LBDMLO`rcF-V^>5l4l>;_>|bW&DQ;m&~tk(6dk-4^MbPGKsmR{g96t0Rx-B1 z?tS5$ai_>)9R_RkHm-y`VaZutbrL#bUCEpPA?2Dy@o89ByXlSwKwAG?!S-e`A>m=7 z6uG&E4Pso*CkX+4gwVSY;+7bh`t{H8{PoOpD`p}c>2!@4184C=$eQp4|8F%Mlc>cN z^uSP=-Mh@rWi#`rMfW~)8#H|5Zn zzb*gxxweJ0Py|F-+i_dueE+|aVKD^Bx$Cx?3w(Av>w*j=buH~_bfqgjD)D5~!BSC< zOZ{gG9!94k88Hay)@id=m)chlq{YyNHQ;`CJ!R^0EcHZ(oFd^>7*X&vRFlXS zK69SmtYMH}SE|B9rP*#Pc?Zp9=)8Lkjn+MqPzU>9Pt6@8WB0P2dQ z-!Dz**BlADt&qrUr?Z?InVzondb(IW{gpTApJv|WQJeRgT7F2d{0LT4dFL$ti=jlr z%qzrbyjY971>!5rfC|Hpi1IRWtJ0i1mheF>X(vOU`1(Nqd=CURIZmi{Ck#|-7O289 zj%M({)&LQ6IA;VWf=T(eaBZlNt&>P)VV+1OxnFDhl5{`17_BpSN|~vGNp<^cZgMLb zVHkPJZh`2?0U)u@wY8-9eLs{qVgO;&t=RiK0Z+esuB0i|#gSdO0gJ=eBj#C9MHC`e zfLX1}l}&a9DaX7ZK?`Cs&tf( zEP-&$>`I=F+@}{i*$>qGZ7#|^Wc-t0*<}C6{w~am28&GKdkO70O9d}E**4H>_)sw=tnB-SN{SUtv7vTd{FjcK+g5%S(wmZMxJ;(Aq$Wvp3hIA zB4<4#;P-f9hNUM%)X0)y`y}Zmyb2$I5z{0xA$n-%)(a=+STDRoU<*$BPQrAYwZ>=y zUEN>qI-|;Pd6Z-g77mv#z|sMzHuA^hnXDaI^BiZ@_>2kzFj1Q5txh;?`twv6N@F&p zA=RIc4)W@b`-e^zS-x%)VL=jYA;Cv1TF-*nJ4*2Tz#nDh_is=mNB*!?+;F5hD}x9o z4h$-!A~8`wbnBhLO8F>MiJ1Vc510Jps9=1sFNp}CB66+iTn_UH4|5H0e)1tGD!wYs z^@BRF#>JfLof)4gltHyF(KC(MKgWs!)>Lkc!W2f}Z_PP^)kyCryteWK(_G$L1ynKw ze=af#BrL-scxuIu(Aov!R^&Z3au1ET{KKm|<7cr80ZF+kBWbi?V1132_}Cq7UVa5k zX8700Pdig=b=XfWNS=P{#h?KWJVu8T>8SoJ}eBmJCk{m0w#NCjMT#b29kQ$W-=9 zUyh0{%sRMn!(L+9)CV4~&v=1x8K{9<7Z@fXnK7bEPN=krSzwpH3UcSRS8U&@1M$Wg z$ZxJ-zQ-{UET1q?9>t5T`eu6bc-t0_w-t{o-gbe<+s@ySx1EbwRUIDV*8z)oj2p-C zlFIAwl)TO=sgwuhg?vurb0VMeq^z{y9ZKvHt7KxCRWfO?)dwcI?9!ZhPtIk36~ zAM)$?Y~b@kJ{Rygk#YKR8=&~P8fG-G%4w?A{q^sLhs z6BNufb$LY3+Gdz%1f$2v8TaNu95?IusKMzH-=iYq+LI_6cZSdUIhZfZT&is`X3x$e zD|X;_W`6#-*)@b?MZ0?yJ$=9pFgHdYFrs4kY0}gFT?8odpFfBZa{X@G|Kxs`a^PN` zJLAnr<#%g1lC`{dPB71`*ak5Ku1NVglJZr>mnueZ{3x2`s?o=eY5?Q-D;F1E4WI}A zuU%Z!hrs;5RRfT1xc@Zv&vRf-_cHQ_{}cKDySegz4a=E!u;K5IVn=XRxxjq%ut#7o zSpT;6X9v$#{In-hkzHojOmCIOcm1Z}nWT7eU7blYcRy zo8&WYx!WA^&DWI{`;d<&uXP{`+OZ;?|eO7%Ck6^z-CEuMD??9595~;!bX7N%3RYtaKP}MCT z@m&kC9}guJb8V5HC#W0H@1t3({@iM%^&yu-=t z^Jw;DUiw(}WPbZwPT|wH3WsDo;;VV@%s0m42<1bOLk zyg--=mrbNdHmw z4;`4yvpia8{+o~x^_yzXvg#$Q=Kx^abuNQ*PxZO(8Hk*2;GeSTfPY3JZaZFVrb)bW z9(}}!2OcdMp4gQ zLZqnqS1vHhXX7QlJ5#3$@T}PDI{e9^((8`~2Ml*A*#bRQ3`}R#Z`cpgj)QC@8#`l( z8JX+nA>5ZRLA*X4>rXBEWM*kE>}+bIAW1c~Q8}v6qkp&4Y2^fyE?=P?&p^Xo>7GxK z9MOXfR|maIc(>T<@E+b)X{EbSDYiO7i0Gm>8Kc?BT>E#|-Z>Eemt;f6KYQj=ig?g& zKQDmi-wa}(;CTMpbT|5m0#QjWv#o+P(<&h#W={w@x@r2ssBj2(qKz2RP}TZMVYp8q z(Q|1wMNV)DpoY|1AutsqaI5q5N^d;_+9$NkyzXM%xs*n$7NNK1fYNd2w!Dj;S<5a_rQWuqX-t3y0Flc z2Me&pBW+z>fW-7e8Fco3LASik0LUI67*y1c3otn1){@&cWY%-f^g)a(-Cu+2)F;2# zOtzyLIl>}u1Mp$W&>vdi?D_|Rd)B|HGh(P>|W&ZrbvvcRJH-bHH?(YJ7Z*{Q0%7d3H|Jvz%6Sw5U%Zugz z3wUw4`s-YalJIf5D`&KI)8AscSa$kv01i#$m;bJ{S+rME~O%uc48wdRwzHW>i+a6zm$mO}&&! ziC}^$*8hunQEMM+rKCe=rEo(dc_6l|)`X93Yr+~R`}Hi8Oa)L@K-&Lv29jyKUKCe3 zhpz7#!0^M+^Z%UjL@-fnY{k;D728miups48{1I|Z#F99kIas#p((X%;9z(@9`jlX} zPkN}iDg6f#xj7?bjYy$a6<^`p-t+^(nZE77U($d5^4im_n6&9k>WER0dSfz;F+T!NdQ)!3g9kI0iO8=5m%<M{Vqe85e{=ln)gqixO?pRv|F*b zKrGqoo(J=Yvq1ZJ7)mhBu$eUNLGR@*^xA}ouCL*{lY9lxJ>9^lT)T=w_v!RDk(Mku ztcvf>_gA^3=MkopqDLmXq~|O5xTL32ZaB>k7}E24VS@M?=RKtAhT;-ms||5U&nqgK z;h{P&#r_Nru6nkx>S>5WmxHllv#DVcA!L}J6`%o+`T5(&@a<0*3cg2sMCmx@{opS< zo43o-WbN~Qw^Y;yr_Jpud|>)eI?w#vJzdIM1PJ~URIBEAg!ig0{&#h(m6*zjVaGFt z>ewgYe(8fXkBMs2ybZ5c?bs&~;!~}4X5Xd6W;nrS!z^d+FWtXJ--g9^;^s1vzE;}h z_CUo=ti+TOhwDO^+NP44)b0KA;F7_hBv0WVJH5i1Z*;FPf|?qVr|lR3L?rMQ zZK6ov4B69%BAs2|b{rDeV@JyGabaQrRBG}8mrBJ{_>cp6F7d&8S9k;}UJR^pzFzQm zbot*Bsq>({8UE~Y4PS0W{FoynJe}Qs`ScCs7lC)JuN$TSZImcfTJ6q@T@mXLmD=$o_8GVUP0O*?zgE7Ctyje?bPx+@#1IQvDwcsvlL7 zo(1DFcciOLmd4SPx)yYtUIi{f<2ZVNuRL-?BY4`QJp*0C*rLj1dZTl}dxnNQ!`B;O z&jVtUeu&Is&14osr&!(M%sVEdKSVnw7wL`8&=sm0ZsF{qF4onBP*>)?Y)A^lDQrgP z2rkj6gOQ<3!=d!KS-NYFx%u=af}a18-o!bwb29fpdfHKA+Tp&*qfe!O%Z2yg8J)uW zs_R^MU(23rEs6(w@IFxhlLzmUd9qV@hblXhEi`1lHRk}emONy{UAm?>rAM&Ae?37P zjG@4-E>?2pfQ$3t574Y1OHI_7!4X%MSjjh8`|*j}(wrta$!-i|Q(QFWUKjY#uWoRD zd6|GLLL3bvv_Fh@PQ7^+PRtFVhkDBEZSFgO)31I+fxUN*0(%b+LjNHM^?dIQJRvXc z08ciGU0^5UQYXsmlhXQDslo zNBb7v78-HY0QT-f-i=FyKNln8oW|iaw^>(ieK!Yyd&#`+O&(*Fwa&;zO#THIbM|k) zQ`@{&e$f@DgJX;$QCH+2F4dL?t?F$CW#;kpR|2t}m{Hh29zl-2#cEysmbR^S*8usX z4l>%r%pQqU(;gvTUF+Qc51o3BV@DR-KYuy;(299;&Csn_9qYl3JJ3vP1;OBx!}jC5 zI)3L8?-D>Y`YkQn@fDch-91<*kkzk+c^&BSo6u z07ZjYyEA?1Q!nMuFh^esv-|Jg5QQN*Y#SfW@^8pN6irux`({3`~H87O;HL2#qEFzR<%VU=TvikY)98hbt4Bz?KB5onl zM+YFXhdSz8lPaTuxMj}7rg(22M$)iTH7WYZ$g6#L@a1ps7^)Q6PSPbzPZC|^oPT%!U$fWy14h1A-#jiwCEs<^EM#ePlG0tEFu&y z4M^U!o}gl8aojVY8SF$Jgt<>3PCiK1mN=^IsFY)zI8e7w`vG5G%A{s(# z09e%G#4-(zxuQvBxp?zC4xjEEXFA1m4dQwWxSJEK>q{KRR+G8r0CxDS7G6-hcwu0E?H{QuMVha!RojLhO3 ztTEa`fmQeREO5mO+$*ug%o@hgex6VLt3xOfK9tc$2-jOwbfJ$39(e>ru;Df`amiA^ zELOUAHu9=Ot!7r_Tp3aE?6Guqq=<%h?&&GYlswNfv{H}g1#y1YI4_zPkx}kQNF<|u z$jZnMWYKyK@M>K~t;nm{&IlU@R$ijqt68F$Oz{?Fw=+L?a(-R>7L30ZLQok8QaA$t zMx#K4_aJ$$$o8pw72BMM*;T&pOCG=52HGGVRybI=F1?RSd*8=4@{>)|Y|LA;f!)o- zRf#pqRI*Ib?m0!f2NK}oR!zKl`fz*eo1_9z@Z%m|;%QgL#1BLCPA+&&ywToD9KL3| z2kkj!VG`;zYvS9}yCS#m5pQPJt!~`3PJChN7-%+slJEbF>1l%<54E^-w{cZ9a6V!P z5HZOk(CEonJiQ3G{a7{uEBb)GW%8)wvMIY0a+W zFV?;b(?22Q>jL<0NCps?)W)gfK^T4#@cO~RkJSrR3dC7uvd9Lz4!fG?p4q#b0G7P3 z@IrVWji|VrcUJ63ddL~=j0eqVKRnZn)=PNerINe^Ics|Xsk`TyO>)jT znlb{36mE%3)SFBVhH0{op4OZaL*jYgInNiHOBdU3jYKy45#WVOX_>R8&fCt{&8ubV zhpDqgKCoPJ6u?sdHr-_1d4VJ0)PP>a&SQyPII6tR>?SENU=bI}kAT-t^4EFnUauQj zXD|Y&A@Uc(x<}i9oekO~VCGZ}MiNNhfZWxGVL%S~vf1hKcR;3oHPa*ifzF4a3lvLx zVZw!%V|i%BhVeI-T;l3yg*;$c!~n#A8&cn@|0_R5?*HL$f|pNIzt-<$(aO{O+h@uz zxP7MFBzYBn|MEJ>Kun;iJEfU>^#TuuItP}qYFkkQrZtDjlH^Zre?y^QLa)PBe-{g^ zN%p63>URC$aq4EX>@v4k--7*W(;qg)q4?4C3}A;EOg1vXwrA&%73!_PTtc8XWVOqQ zS;&+Ff>ypfgzMZ`o^Z1M zQ+L?S{z=4I34dLNpb9A@+MIa5;Ucf$$JMaeQJHkJ0t8o}@vMhIw)w6qz+1ohuc_*6 z!T>=JQ=jt7JvS*Ox94n_6?{SFO5VQlI#o$AnBG)5qtS12jr04%)Bx}ESA6b3|9QOL zDO;el;0OPM{BLFcu#K1$adH?66y)n~(LwGcBK@2rm_T|D=MX+}ONavGkoo1aTl&4s z5|R~XJ}>6N<19FBhMUm+w$_j%HK}*{TR`?aJ$Ikv@;{jPW7SIY6Uu0-={}`@s!4r$ zNS7RcGsVAG7|;^uX3%kI?~cBKE&M!uD`QWbv} zL6#Mh`I4Qp)@WyR$)Id`_5j{Mo?>m!Qica0|2$&=5-?Oth(0QJMVc6+y_s%N8ZDCmul1ei)NBe5Esot%B05eqbj<+XzG}SKcR=w)}vc) zgq7$Y9e7xQSTQR$NOcqaZ{R_?yz}0!p`{_KQ|+7@N)FCcRp1jI9KeHk*VHw?LUV=^E=uO;Rju*xmxsaALrXvcvVSqIff=Jfb9hwj{NNPNjS&s^n71Zof6Q6g}t zkq8VD^WRmv)SgmM$CpVXF9il?tIXKqcyfZ3Motj^SNh!?`za=}b*|(kM}Je;nfwFp zSnDBS96a$YcY2rQZ_Px=*XJht?GiZ#(EB`dH66y}oj0yUwd8ZeVS`n=MmUXYowxr4 zVz~&p_$uV$EKjuq0v7{x7@j*OEse)VOOXTnsWe;L6(B7US;dm9<7ROf_<9Czj)s|L z>grkoa?*N))>S^zl6{$p#|g|AgI~ZgnS9p2G0oJZj--CxKc9azIM&&Y@yVizgiN%% z4*Sy~B5j+TS9^Z173a7_dOIPmVnb!r(~2YrL6^9x4V$ZLt@DyvnC-SO#cN@FKidur9w1&^&9ZILtK;wq4+V-!U^rQU> z(xcFip2VI!KGr1{h!*^U2A|%8hxg_@bjQ zlAs|gKTC|x`Q$Bwh zlqv9aD}Dx)diks7*Z63&*x9 zjqAGF$&q!4NSvkrCdHtLd!6f0d_5QpBFLJvMeQ)i7fShp7M_r-bCk<)b9#5ze@_vw z+gA{)hxf#TnAj31-x5v*apjv3@AmqrrqQn#@4~Bb@iSg8(JvVgn1ZVDngM!cf* zi%9qOJQ!6(9My4lLFy%*GKBS}%)DX)L2}U2+WAH}0TDa0G!$rEZ#3d-!MetD{98xD z+99hc5|>$GhQhDk$_P^5@yGdMrWgG@mF6cQlH!46x1~Odkw6}crNhPOthcrV3prlh zUMZs-Ps@<*4wPIG$SLQOM>4xz<9-E$jVcbr?^vJ$iK2lAX>NBEFbK-*dON<+@jJB6 z{Q4Z58h#DuU0~*`1(jO-2Of9dRdV)tCq^z5|ATfy)BNsHksjJv;*l;hOA!A-_&Zs& z@dgjD0q9|0-ziMsym*Hi5^+gmHh4H=v!^O*`{8L-yFoo`#*=&5HG-jwt7YX~{HlP^OXF zvyD_|8<8bjp563ruE_tlzn3I%qw{`Wuc7xS=#J);Y(w9NywTJKI%}kcMgp4H?-b(` zSC#DK?xMLWyuX;p9LYe2tTsFxnlrDVtK2C?E)jy=lZMjgOr9&};<543AC=;MuG$<> z`{HJ0AqkYfG3_*BZh&S-?t|8$I>B98z9Rgg)BFWFpFo#O($}b|<(Ly_g$lii)vsZ9 z&A5<;J1^QH}a6x8wOb|a-N^Y41W-?fiHv;_=_x2HkF#-kqEcm`gUUqTypQ&jju zsDq|@_A)PoGlKCy8|)28O*Z`y$ zaIkzq9bgn$$4cqS;rWZ2h4VHvDpS>W{o|_^M*lq9>Q3+%UW8g2Bl+A$2Q##yXm{k2 zW}-J4xE$%iWhugSP0F&4o{ERvo=(VDx93 zTo}E^z$k8Kzt!8kyLAZtL+9Z5km=vOU&B}Y@8Pw_trCZPqWSOV&fkPBlSPTb9qj1h z)hSrJeqX?hplpobE?zGNrO7xXp6otf<368aIFV7sP4(CDZMfdW>uXiGx~|eK+3i+= zbM@>d^6|P))|*36J+G;HzRisu!H%z8toz+NfUWDgI#ynt8$MLFCsDrezGv zwziBeZ1b+@c>Qp7S3i=!#T2ZX`FcU6!q)s=Zf|xnH>b%Nd{t7lu76Q)2 z5A^fxMSXgje17l~&XL9F5)vX8Q_UR|FiC((ktiB6`sepb5 zk4xOPp;R357a1YMCx%hz9{IqTO3&$kiFmlWmsQXj6~gZlCdz*YmZC?7C1#TT_f$Ex zGw_%huP>s2|YAYRNtrVc#|csOFykR~N18GV&zM7b*X7?=A() zs^7t6O&7$t5;sQW=;AJHb29}*-faFmIkywNMM~@rWaV7ofp~A%9p~XkBwv{}f6+kZ zm9C*L&+KJ?b(@F{5aI|X2E!g$vCs6K)%e?k{q*S$^fZ5?N+Ayp zkNO$OAC#_6=8yr;tpm6#@?1NtUG_st$3J^scQ`-Bq^Ic9y>f0Q z8Th<~(Ou$}l7OrymzAdb*hw2Oz##y}7Y)u06-Xd(vmpjYvS{K>N-2pfLTkOe>UlPx zpz5?M3a;qlyfFgq7?}reWE&&kKgyhqw!%me%w@V;FmVk`*ZzW-!AE3y@elekAh`MO zzn2!<@Z!Cl8IwJ3UfiP&@$|Ou3}DX|s8dX>e0F$NCh&mQ%Cn{wg|b8@Q0}+V!Z?Lh zhx@JEO)J9kYUWWj)9eZcCV0(Uo7>D+mwJQooB499HyGKg(aZwCJTg-PskP2CcX>h@ z`Gvc@ZTNCFwz#$K&y1ohavn!y?g`!zIZG$x9I6_&|K^)}1LdBzAwhyEpEB`wuz&Gu zj4ypbLWA@KV$(P!10Zf_BhFXw%lXZm*tmzj023$5=T1OcPhB zp%kX$fP8rd_L#3JXfZTcF&t9(a7k8+TW{B{a1|^j5`S_}1$HS2bVcN9Cw4c!LCtu> z;PLF6fVv(y#DMN8c$)nSumatpaB&ruQfk?Xv}etEl&=cHHs_}R!q{Xt1rNb2azLHY z3mJh(x4OWfrHILZAX2vPu?OPR{&qXy#OA@;VfjczcLJ8MtX8a>U=5N*%>)v6=$64{ zu8i&3O2@U7!67FX&>vj=+R3ZRFgi+P{kUE_p+c%_RPifJ*G z?v@mO` z+TUekPDafD>2(<^w-nOrb4ahtAiX}3j~r=IOuU8mSLAuV7xdO7Vss1{iH&K(>RP^s#$& zz&+x1q6?G64Q7dwyun7um=5ev?K)Epkq2ZlM`?%m6M3Ie6Xb?n0-VD`4LC!oX0Y+| zy$v>QxY;N*81uv%LC1~x_^so8&v9L;D<3Jf3<$5;&<}m}7*|^|Uz=oz{~S>0dQFKn z`wp{3Yn?d*vJh~By61*I=NmzQcej3cz6Sw~+A(m-2U|P{7)2Axlw>u%S2qkivtmYrltG_3f%)6aK)(Ho&3LWbc2pJdTOuZ`reW0)ym#$Nr7N`X#| zMaJHp16+CHkHNh0y}WY4gS7~!hn5&Sg}Rm zodV|=R9ESn?1e~)^v@z)`b`s^C$0eC5COB=V2WFFR4%nY??(fpFnh%psH4?uN9;Wg z>|IryMlM?M>Xohq_TRVpEl2*~uR5r;6Me7DSzJ1hta!)snOnav^{-U@$*O-M^<{4-`?X$n`P7o>tgBJ(09L17>w;!-*hDHgU!A_Q ze2MH;c7$YMik?&$DOZy>m?p0>O#%p8L8e;B(-1LvyzVJR##|gZNhf{59Cm4#c!Pe} z9qRI`Gl49yB9=&erE?brH2wBI>TM^;M|jROpms}||ZVnBFAF=tl3AKL$j ze`cp&X*~B*GNa0#T)TY9O?{oOV8etT!Mg`=>!luaE03EZ!Q2|>*f#%l_#=!j@g=FF z05#+XkD#-BNqA)9%mzF9-N31YL44Eh8frmS8Rt==hrxXBAgr1TP1tNFW$BK?m-phu zc%Srh0b>#032NxvAf82T?Cvh|i0X9_0(fpga;Y8lP=eDtN?fB%J{_n%-Lb*ibCLdv z;7eA#dB3~Xn5Tdv&jtH?IC7nbBg2>JdIvw62jIu~K7QN_6OQzSK7MT2g|&W!u4(k7 zu)o&3g9)*%sMqrxB)RmaKF%z$ss>3$_C*JMDfK>?EG)OddA-$t75>yjA2?&D?p!W1 z?fsu3(_9Oetn<wAfq z3D=L}B@dYKGWvr+NLfrf0(86c_d8%Ew5nAvyD(ibsfcwxK+I;cV&x6~I{#^kV7fge zUzY4b3#Nn4{+9@7jkMw{%1B_kgFod`#e$DDL&uCujNFhR13iP($QlPnf%f!D`mDUv zJqiQA@mmf5iE~Qr{)wc-}BUBI0u%!}<6u*nzLn@3q3k(q`ZgH$xEoW9w4@}Evy-P2 z2eSnm=`I|_cq3N5oWq_sb{q0m`W8F7?)xEc`TBz@tEAhz{0Y8WQf2iSy|R?Q!IcAf zGWy*z^L(&*KHNOF&GSn0e4=?i$vmH8o?mF5UuT}z^7qb_A^=T#>uAIGk^78HVBPo9 z^&J~X4qb`7iUb3DzH3S}epE!9k-7AH!WOHf=Lrnv#4T2zo+o0cQD&Ea8~M~OUuD%l z4gVKNo&wdNh+ZAZ27CoG&N5Tm0`UokY+yHhVf7Nx+d{#;FlH%sJv+LQ6)9Qqz;yu7 zQ!Kl4IfzdVU2U?Z2T2gWfT&i4!!K_MSV58(Ew-)kFbS=<=W)jCN#^|XgRky9Z-KY0u-?rV*qmlg@J7lZn+GnYI9Q> zN=B%B_?F%UPS+E57mi3&4vn@QGXv+z@$g1{|Ds!@{M5k!EKA+q93Mr*(D6XWia`5{ zn`LsfZLUt8w52DeFIT>h6}3_ZY&Xp5ml^QhXt<>Ak+sehoHIG`jz{EP@ejYY+&E7~ z!uZ`DGl+o2WmZ{|xNo-b-^}k;plqCq9A?X*O65Q|Yi{tJf z(hqs}kH5Zt{B1j!xE9i4Q+Qu4ROgzg>|eu!tT{2p#r*ca7HL{{zFb^{ATYYr7NEGP zUs9*8;O0z5=4lJgY%N3^@p_@uaUAI`Fuj$}qmaVmjQcAdYM_v-VtDPBu5e!p3HqHL zFcSXXpUDKoD{Z5W;X0xl}td3!UAl~74`e(?)uD^znCa2AFqjZ0c z+JSawOKv4f{Rw8Mx6X~<6&9rCtJ!3=Av7e3PF^}M-AfUB%4Kvd*2=U3BS^zF-5}>4 zHtp4(JvMRMwle37Gt98VHbYh+MtrN8Uu`z}*#aOZK=iZ6wN6JeTDk0YW@X=pcV=h< zx4}j*)&jC?uxh%HD6BXI3h{HxQFvxD$Fa@KVMq6+2DHqv;db zc8JQr%f5ALwur&6%rjl;OumSr$vR?8*2+~jt4LS^jY|&*S%2MV2+=PhE9`}S7k1H? z!CnP{A{@Q8gneNeI$zR0OHg(vL?nlk(&^kql9|jeWp}73>2-2aV`}vh$VToRSn*J9bGu9}( z+2_+%rkm!@0*vG*M;L*2qH?#B9HJdvt-;TE{21P&$%>n=;Bq*P^X>!@p{1v|#QAj> z;@z1}L!hxCXXu7+sw`o4#@-hBE4t^OLdm?!{U%}M^$CNCUF3<#!*%i`u}pj~LSwW= zH{#@pist4vSY7U|iN(kZaj|i2dUE|;v6t|SXOcxPou`|p33(Na+hMH0+ckO+9mqz6 zyJNz`W6hx99=L5RZ(lmr*w7A!iUyHw?{dSwynK|GMk|CS?pCrwGaYiKQGf%~i!Y_= z9$x4=RE5&~o?nx?*b;@3g*WM^kzDb9n=W|u88m(V(_0DaC*OaFz^5^H|*xwvZ?b%WLmtM_S5okJaO57lgpi5l+_11{P1%g_(-FS1sjsKJDq|hGfO)J3J5yCZ?2BDYzxH*zYB5fsV;( zZ&97zh<@pN+@6o{xa_*MG{5G}_o5#~(25 zT0#BR_1mGbn!1_IZJ!wV6P0e<>JA5uW@L9n2^wgYI9%eqe1mjI2LG{j5*!+OA~Qe1 zkL$g1N{Q}T$x#qK_T5c`DStE4+XQwP7KpD&{eju}tO((GiU#iI$+S%bVM0cTwDFrk1*tX`f>tMA>@(cuKjliCoXcu2yQ#bL z)EPYG`mgB6u$-a|8EMf-Bs*}k*tym(pFR|hv@{n!?D)_Y0a^L0(*E020DgBWvRqC8|>@3bg zx>q)QK}cCavaU)U_S>^}f*t?H+%lKxdMykW>Cm$~MSGm7eILc{7#W5ym%H!ZgTy9S zbKXK+VQz-yMsA@?g?}^fpxycn8L6i4!Tpk>R7jnU+!fdbpuYhC5VIsJN}}#YH`&QC zB4_s?y-CZ|i?Tw)%zodnll>kaVZSdokcq5eO-czVU0{XgQGVxl(byqhXr!x!AMhlJApMQ-qVW8h`gEzQg88z*8gKl@Yh`t_W%^1C`)cqLfehha%Z1-c5 z`!U7+sMSYonXna;1qPeGkGzQNU(Eq0;X_E4#|_pn&~Ds-fzNVNt9Xk(x)leajV$Ir zBcIvj--Y|2!EK+*Jq%{V^kT&g|JLC#^4dg?&O|SrogdewDhF;m)vo}*eT}LEaWC2v zbGvjgw@b2UH~HI>dnY+;*9+iJpE$wQqWJQw9DED$i6GaQ;b-?NG~%+7Y5N*#2;Rx% zStd<@rEXu!t@n|*s2%QOLob5AjZYg_lN6Npg`#Q^Mm;ZWXF+%i% z2P$if@oltXGR*+7TC;!9Rw6WT4Z=qh?YCu6fzm$p8nu_^Rqm@;&-ao1;b(&6m7fm3 zI4(jH25pts#RV@JYtq^CO{2GRuY^_+-O3bmF8T)q4vg3wnVE}ji%x4Pi0seDs=~wq@`SSz`&bK@FuJvD#m=H|L zTD364!pJ!ipf?rDyfw)6;F-!GMMacqbPoUd?chRpSq6ZVq#(N9#E|yk6WK2Dd%Lnv zCWiE4D>lOn#=n`maI;aQ)D+3wSIgrkre85=n8;6S(!Ve`I6c>=H?Y*>HiWjVUyg9{ zOH_}^UQdnJzS_mu9!l(tI+>kS9e^z^^?E66%&ijt~0NNk#GQ4~rX4^r=P8@#3hy+xXx zUxyUL#foVodDZm>#egdj1UoVFDtwdBrqulyIG2F%yTb)COTx&01Z)Sbz&gxJjwT*# z$O`?yy&1IZwov)^(*`2r@#Q%mBOdfl`ZePu@0&3!a-eGmjoU!7=;nQVjB@w6z}q>; z3EsSL%(<9Ke8eLkeaE4GCH;}VpE>x(wI--=^&6g<1MzE{)YXW|CDVQa*1_gFzQ)Bm z>&Ke0thpIi)(pf*C>L+{f2NM2J43MVKrh21B#TxAwZ~03pNq+Eg^7hmd*LD%??7K3 znfg>mL{^;Z^o4!QNRm_cP%d+x`hO1Dk(gd$2;lAQ_j+;5tk};@J=tU2+E-!?HV zwvZF1kVc-=99Gl>b3f25XZAkGwWqLR3ajyBHWhDTQ}Kpc$lDJN9}L*?Fuune#G6a( z!)u9Odc)f9$kS1ix`NOA@`k^AxnUza(zW8z&juAZyNvD$Vm#eQXZCfi+biZhB?%4Z z)XbwM_0~vSbCVUbIy`=n#~sGw@{fRm^#;Z~5@V`OGek1!Hq;(!ZtL=9+X^{)4(gcqAj%bvN|c@?Ye zXxnafGG^6o;kz{o%Kd4}Jhw(Ku5si4!cVr&lH|V&rlT_(b%9E(l_-#kq~e^~3|LI0 z^O>2hhSJprx*B|L;%z|FQo)^XAVk zM9wygaOVHbL1=UTXz=`_BBDBh-&qscgDjcV0iNu{tV!AZZg(?ZwUa|n^EPvEW;4G7ZtffGZRScgbFjCWDuhD*%$r~7!rRlxEx-*v<|nfhKxCh%ye8BQ7r z<_$~TfKbmF3|rGeJcX4T1|ikBv_V-j)BBk9r7ZX8khd@fb1F@ZuY?;tS)P*oG(|>?2 z9?qbPXl+m0K2p6KB|RCSVqzKTwG!&SH>%2o449{Ks%dRxWX5nK`l4Jasj7i%oIUKM zJGKyGyX(fx*zCNq{g2>emp_~fPN1^kiyG!Lx~{`+_=F3izQ9;R)=O+`bSysRPWDZo zCVgP99;aivnC!JTA6)7~TB{Z|z?nPe4VKca?>>5*?DYv{DfE@9xP_Wj=y1p_q>)KbPGM6Ed+uta5f!ny6f(?6mbhhvxQz$p=P&Gky~h@Tj>03p%xW- z)Gbut7CPK5RGuyLjtWh83$^NTvezzdp*^#O@^=QG9h) zUVrB}&d=qae4;ILzhw0_@wd$sjCR~`_wFo)m|0xt?b1dO>bsa(U_&eP zsa@K3k!Im0x*1hB^2C8weUz056>eWJuZDqm4HpV=r2=&fnOK-q@Z8aBrNrKWfvFs7+UNX!DP>nHj(6 z9d6A;uUlz{`?4w4eVzQB_=inZcZcsb&$f8a_}Z59x&X%jy)Kr6fT~0r2HO<{b%h0y zXLbE%^~=Clvf|g*WboZ2!jiP&4%3Zp(>d|u$2P@|^*aNuO9L~vtGV##lX>BfY;5AC zV>Pm@taW_ceIk9zOPSm1?;=4_4E@P@&~wFF`L2_7S5duNmM*Ugu}G7Df^y<=1cva@$%<81s`KbJcT5jVU`!_%8>iY5 zag{GMxkEWXF2^GohP#sQy}hog_>Or%i>Di>@d$P4ZEv@?`1_3QTz_l^WU}_BqF*Pv zimm7(PK1aGN$!NU6NYjHfdA;yOA2dfJ(rLh@XT*F3R%p0m`6xEgNa8)%EOoAJV+E% z*wX1oBF)I)0~5|&*H{#gfS|twq!ui{x+Q{TqlpXg#{%j{_O43I(pjQJH34y};&o)3I6 zx!vuBEonX}(}CHK=*wpP!@Ja^da^=(ME+P_VJmhQ69&!roGsouh8E4R z7;Chd$%`wTJ&CZzf z#ZQd3o_$pCPhRElWTrZIiZ@l$cyd^MP(p2T*ypS#7wYKvx;LFF)IB7nz3C{Ef-W^K z5&J=>Og!fYkXq77-~2X%A1#_o=jiJIN4Bxaz!@u>iBhl|kv?V%aq*9PAeS@o?<<=& zk`-TFme~l2Yi>kkl+B^@mkgb$8S&c$>|e4_dx7} zq$|(dK&gI@agjl?C4N1HVM&N9Qy}M9fs2HnF$OAnD^ckkf|BsyMWxsnKa62ElMkPYA&(o>qmt|F(&V16>j{rTcGfj*2UdqMHjt} zql?lHCcYB#Vb5a4B#$;=GqSD?t;9RDhO%^NF$&xxoYWI;+@6~`4yYu;-AVj`^?UbF z;bwo{#*(Se5^3zoeL{{l=a$of*~GYkf%pZ*!V!`uk7KDo6}qio!Cp8NpIXvt?&xme z-FPUkn`G(tC=9%_nPm{nQT2bOh97IZqr9eWp((GK$n)vNozP<(Ey@3JLvCNE^~{m~ zjWmk@QL&d?2DrcN@^DKjOC%GGHzOF^bdWFFiI+uCh;Hvm>cq%qb1Ul}?$xJ?Fcb}T z`9H1uj4ZE?ZE@`fWzV=BG+OM`@JJAIA_k+vkal8riD_2-I`% zRX$0ZL@&Dww>@z-xJ}B(v>0d@Ohb14$bD|K#@}<;-}+hR_NpzZA|i~40_=$zQ(cEN z&itqyd&fZX7h+k0$s+=z%43`LJ+j;Q^6+O^bv&k#%ZVw85v|f;wK@%Z=n+nv5>K+;B%sGqIIdE*^ zyw5P8Ssm_cZl^wDlRZDfprHhV)xBSo$>pTFVjbN zIA4MC#o>oSiFg~QnA^uD z$&fPr2g<)gp32*tKGH$OdpLxLTrI1=If^L_hYr5C65{%*eO&tq zB43{}I$k{w&f;-9{!Fb}#AF9BUl2@OfgZnFJiq`>o1N@`>?l!tpGb)mns5HjHh<@) zR?#$j6tA9Z{?0ak=NpYFB7>_J1QIns5iZDES)|OZ9y~RVT5uLWVy<&o9B%qThD+v? z0;ji1fh*dV==ASD-=JbE))gv2xhv?Djh7 z3K0|et?#^s8Kr-gdwyiZQa_FPvD(-$GQy8J;?6JVN7Ns#B-~by5oXb78roi%9|v*o_AK#kPd03=a}6bgh3^25ij6d5tNo>NPlXAjF69Y@GyW;DkO+BUveXhb0aNT$I;Rkc?4F^*L_D^~p=vvzn@ zVfK+c@`=Hi^H|j>m7a4WufQqEzRQO5l&w!&GPjhuC&}3fch8x|u*N2CNFebK;nfiN zd{~fj`R|3`aKWp~^Um|w^6-k%@JoUA#!z`P`1_C@@b{MRuR@7B7k@Y4pIQEHIB6#q zxmX+KqCGsqZ~b(y^&I>>zWk~c;O{dzSY98S(nsXH50yJs?0DYh^pOsf6I1saD`w)7 zC5uY8_$a*P1h)Q38?*i`R19d+yBJ9T zd7k7kcz3NhjO0uRDC$%pO`qA|e!Y;dZKkEFDSTb$e!Wi2SCOqs@tN~!U1&pFV*HG> z9r1aB(bhV3O(!*vhl{l=>43xl=Dj3^!T16h^vD`6Q3%_SICCB?aQw`$#e_5ZN%}CE zNNl+5*>&dW#4;Y$;jJ++l(-sGxzPhyo$7`3)ST{{p%0UG3(j0OhIB^;E=H^rZ99JY zXIzfqO}ZE>bm;~Y*A2v_?%%C-e_|+gaP!GtLpNy)d~?Xt%1t<^1CEds412?AoHR`b=M)%< zYV3he8P4bYKzx=cZZ6i@q4;0R3}m%C`y)REEs%=In%(}b0%x>4yWVbMkjFNAzpwbf zp#MPPIRl88v7L_8>FfocHfFJO%clRDg|Gv;cExGt+su#J=l z8QGHwav}~w?1l3u0KU3jSz?;4*|*RJ7O?XR!uu_n_ZQR7L2f(FJ5h7O=(S9tiq7ywQ1`Y)}{pe?)*Ulh5= zn^daJos=gGy5DV2lREjY#A))RX;ytB@AcWHb{#Dl`N7WQ zjl1g5?;vly==X?yR_HRJmcd1y^)11_uC z^+}F-GTQd!RD~w$It2fW!;w2Uj~?POdaNzUA_k#6wq73nb1sH%vLC{B(R#V(&%p}q z;ch&`Ow5RKJo%w7+m?>*U&la!BIN$Hxv}b3N3i@IwwZ^3%=C>yp8R*VLKDTCxSFp- zwdNaRdiH$k;a0OZ6g9)GAQdZSkCnBi}(Yg}zyy=ENR6CKC z8eq|!4Vn2e+yfY{KkYEfot<`;Kgb{71v%r})h<6B%5XIub{yky#t2iM-c|mF4Z-rp z@K44kf(?vsW@dc9%o*S5j4yQ$4Y}z(x`Z#W6TkA`vks@1hNq%boW$WW@;t3WmDk5! zhTzT06Wsm|{vZ2GAEN#LG`k-1AWIGl0f7FRT!xRBKSO90VeN_DqP2ez4M9(9@M8xO_Xu#Zumsw@~Me#W=z25ih~iQ z;jgjH?mDR~XJj4V36W-IJ&e37SO4dxXferR@e3JI6eT=Cct2e{2Ofk49kK=ta3g)2 zl-{g8MWh3d#cyv9zaL8cUVC8Nyo_%|Q?)M9{PcG5nr0IVR#d9V*3Gd#E@Whriuu_7 zh9W9v#z$iB4@y0v4+&_I?BtNTrziOEEiz92I;WOE`?$t(a8N@7JJ{BK%T<4;Z(F;< zE|2-fa@dLMyFSFT_N{k{l`2^#rOk!7cJBxaTztoiSz9TYjrtIg0*t-ZFE*w8Tz#)WlXiu z{|0lk7J7VIZ#k=Z2~XA8qKOWzGR=736+^nobl5SJXu$UbPXA!@sO`lC+wY@Jf-? zf!|g8_SSdpgP$`jOpkZ%xcO#=;N90XDVRc;9C^Qef2oA0p=0Keh?mL;GWNhPQ5A$Q zAsoIUARX9j_dr8uiaJNV;|}-~b8ZO0JNVLjAJQqv+HqrH zt36JQ(22=0xQ+DXu?w<4kf4E6I9oy%!^>`WKHFd@Qs4&vp62ib6S^nyxYRBpi%$}2 zyD8qrdH0A~Bf=N6Rn`7404+`oeldypRAdLcUt22SdU9D1wW6f1~ z>mHuS05r`c6&?`QWimtNdx{j`_;Ptaa^ zhB_*YPp`X`o(lGeV?8Y6DuvB`IOMIG)Sf7Vv-)`SBUA9tfCo63zrr4g=LUX-M+My1 z5q6@e_rgIEtVI_tpt(X~xzG#tB$)faz`y8Kb@VIoRNI%?dhb5x)tjGJuPLwI0=Hgs zPQ73G^_0&t+n+J1$@Ew2)|;18Z?a#nF0bC%dHq$o^`_+1JIb$jU0%Hd^6HtZGx5~$ zoO-R#dh@$5uii!hdS;xu!daK%oO+A=dK2^N$&M>qZ=PFkl^kc-2blPxJN$Z;dG)5| z)Dvy@)Z;mIPV?&w&Z{#jw+^iPQ^s?Feg@Fb{(haZ+&Uge^)NM!l|fFtMAu#|{yNDp zUH`yf;>n4upN`tm&amA?>eaN2j(=ROc#1@eg8Bc#sku=YU~4rpv-k(Fk}b}y?Y)e_ z5YhEtzEJDW**-APG)v$0FQc{WY3{A=R%|eDsys6*t9}^2sA@J#>Ik?mvOLey@7(G* zeextFiLqZda%gV7*_7_2UU+i)deHVOqcUh)jv=$A(2mBF{2wj(gXJ$}E%_6*2w&T| zkDDq>b4N$kY+cITBSp@(;bdO)jmVB-gj!TpI*8Hf`%daD$*E`6O9Mq+QJ1Mc{BeGl z`#ScTq(aGx%_slgoK?RaW+lYRtiq-KguLlMSP|!EeEM>ySI)4!m*I~!+wsPm62k&F z3$ydd@u1r50^~HPIfe(Pug-a!ff;`QCv+%Jd|djdp^9qft*GtoM5S{*U8c*OEBNS8 zJ&YAgyBur(KjPj4KFVTyA5ValpoTY;Xh4C0QG<;{2@+#8(L{H3qhQ5?#>T~hg6?7v zkYIL&^<@zh6??7~J1A;Y450>4k)jwyC0O5erC93dCP9tAm4la-@l)G$-6UW z`k6Cl&YS}G(Y|-BE*7gUS~Xf_1kD6rh@O+s7@Fnp*k*xdBe5V?6#qjDlBqgaUz8c! z3V1$Q5G_D%1ZsL(;AwmmS3XbHa7%Ihq)Mw_>Ue%Nw>{8EVSCu!>~@JLHQW`qg>TxG z(iLLq0^Ab1h~-mwMi*rbRl3?uGZLWfg2r~x7_FPrH)*T8c}j9MltiJwn>-VL`CrUL zpfcYWceCCIvysSy$TNP)qudV9rbBrrQ2puokMt)ewm)dtKgk<@V+fAFImx+oTeaCb zzx{`yH$3TlN9Qh|oxHVJo88erKuDtVutg@I`>Q=Z)W#2OlK1RQM*P7_?6Jvw(Fw+* zsM0Lt`v6-mS{SqCz*7hIOKAC@2L5F>(<2fwBj2p?d?rv3#n3&Ah1L z5=FD6(8Ap1#+7ro^R}i!4_h}jJS_*lMKOqz)K*4l;^*WyL`-;Row^Y}a+^%~lQ)0d zHb^-|c+0FyPlr5qM_Vm0g5OAjTpls2rfW;Y5M2AjXX%b#u2Nxr{SM+Si z#^UI!H-D!OGJudGf6MW{A5I;f!P)v4S{wT0Y?-O$J`M9?&eCc~zS7G=-y?K#Je9{) z*p32q9!JG%X1gpcSc)IKoNBN{j10t&J?Xn8kElRAT|AbEKBQ~Qi@-wDC7M#dQrjWf zk0`FEneXjse(2t({`PUK*kb-p(IVc^5f@K}ep)BFz+#cncIhKnya2hy^U)h@cvrw| zN&+~gVq=tumT5(dRtJQg5553lXE%lt=o*6PDFnqiiQ5Py@$Vmf-Fo6~IxVxU|5)Ju zoda!Ri-*dvXpk8@C$+_>6IA@ zZ{b~1&NAo}G_S%#U?ht4GX1#}{(--(3?qH41U*4?WTpuY%cU(O9{Sz-;}sls_yM-3 zR@S)hUOXz!$8SnHCR3Kd(|*@S762MEYPVAE=?Q&VF${v&ENF2NbzP{BE@reT*PyXt z*y3b{R#bg+Xw@H3EaQpTv>?+znl?HEBb6Ln*!6xN>#gn0OyKsqZ8(ed_oY*Md)12w zgKGh_Pg?30X8&G>wYpZWNBiXUT=@g=v@s={dZ9I)F^&r1CUU+_s(8HIc5 zF$3}G8R+Zc&A%!Kdxk3ebt%ywm~ThNF0JJBfO{v>G);VWtFagJKkb2Q6e~ zAl&%qs6H|!f8;9vx2R?r5^nz`+5pLNWfFtnTv%xivuHSOH>teJ*i)rMoX(m1%F&pK z*7cjFGFyM2tBzwBYJ!lGSSPm@{2eACCc_+z;M=$o;E@gdTHS}<{$k{vPP_=nQe0;| zZ*9~@^T5&qe2p+&qB^V-jOll)SW+W#C|i7vlX@wc1i{#5pOadGREx86QjbHbB3rSr zAZGSq@4&Xf0jsAz`5e31!Cg?+=szz$Jc1Y05{rDzi9oOLn{>VWu9Dtu7wPAc-aK$q zpXti%)SCf?9VmK3#WiUMgKzk4+pcEgB|r)L8c*NE9>6lPB4=Sdx1!l%%IK6z$xT7( zaZ9{7dMOA;X@8q=PznD(<eeoo)U5sb^SZ z)glX!(=Vg$J7z>@-r4@u5yQinM8aXNoXLz2K3aI zpN7Sep1S0zzBoU>14ZQ0d&9vD{t0aXo%yMn)&yGMWlWYk^f;AX-MU#5W4f7N0vv2-}@XA9141xI-gl&HJ@8 zN&Bx++A&b45mH*JHGTvz%mmdM8GKIA&=Z1&ah>n@GQ4U-Z=9ij*C_ci^u=MH@xG^d zVHxc+66iDT^gUUo_#Kp_KI3P;sb2L+?g{N=wFPFi+Ei*Bv1(_1&d$Gl75KT!v5ICJ zn<94s%Hl^o`JZcnQv?Tur(zpXcm7%}&=-l3i%Gpnc`w7nc=NYw0b#K8dk1p%!meXU zkU8p(%nu=0@dHFS8hkKs>Pu;N zo8(W;tplG5othbSq0+~ow>r&i*d3B^*TwG>4BYU0@;7whWNqrT=n0-Wr{VOZGS1xu z2)j;Rs+e3|e7*WWSkadwabf4Upyg8y-J4mFF6a;Tv$=h|pr9oevi>^XLAdsa*}N8j zXboCX?IXA=V9~zAvGiKC+Wf-Q&FaiCF`jn=nvUh`pe_^=PH0Xt$|)n>ng-|-xZApZ zdy;rBOkPa`m?9)?lq5ObqsNwp{=y5(WKaG&?J;Pq2?OU%hV%z7)k`7sEk%T1F!x&E zIxNfNvblI#nRSkS(^d#oErroEDHyP?3>ldG`HR)$ zBlf`naAAWCa$y%v=G0?cO{H_uZ!&_BcUoYPEPf4gFgK;M)M{(NsK@I_0$N48;@!4HA77~q z&?jpF(SQ(i@EI9c7T&RF9b~wx#rkz!)%dwdU@?)XzsVYnek$XAuy8~0o2S8JcXj4I z0BNm2ib*Z08hA#=IiZsqF}u}#cPxEJDf_*OCDQ`8N?{yhZ*q`E!;^w_!OQGq4%Ap+ zCYRXB9IWx8nS3mMV6l!~ZsE`a{Yk(7zzY8>8TYO;%s!$2#&cc&fTc*Y?|A+Q9YLRh zj`reBa!-U76gE6vRQacs=p*KG-}|qM;(}|MN%fBbGwA|YR)v@`<#+@=pGoFrd=2gQ zW2gw-_^1S@2{Af(2^sd?6|cqW-l~G-US`$>>N?A#UkPRm{;UxJg-fYTDFEKY?@I2k zU?Zj(c5avJ21<>-fELko^ltoBzFt^P`JF5cZt`ou zSb)nBLF3Po5PPG@0wfs0r*Je#6`Ob#O>twTBU7z32&p&uKZ?#{mA+H>Bj28ZKzo2< z;0M^H5qa4fanx$kw=wc5R4#ce>F<*t0@61>l*8E}@k_@CkGpzN9puM)HRn43Z}l$f}mP9A6``i4F?2FK!BC%|comUkBr( zLlmZXLi4gn0~~Q!S!ixn5>kNTLk6oRa`1iVVlqyFEa`37RT!pdIgnMPAdlOunj~oi z@Rlv=XPxvQ%soq`b1IyBLQ}FR4OO6phwKjeZ{;|6gO7-y3R}WLXk7Ds znXTdM^F7Q_S>ofag3|4Y(alE4%#|~;z1$$R;L06X<6913w+ojY8FTsYz!G#gN4HNh zVsHL4&g-AtKFX?jI|iBKG>PPvUf~o0Gioz9)6ZWvigH&VM*< z8^~SQGg1;7UrD;{KirxbL^ch(p0kgK;L$i9CT#@&dp&DI{HG)SvBAK#g{24m)kDfr z!KOD9UEKv1R|^)PyU0JhCr@}TMumvQ1aUN{l&5F{mV3U;P7dDQ@7hX+j*HTL)xGXQ9{cp$!wFS?^e zQ9J@Ba?4m+%S0%Ou%lVlSFJfKr`#+R-@R2e}4l!7-?+wLvx=_KywH>v-mCn89^yHg-VR$Z?M2IAP~K>;Aq;{_z~s z%|Gr`qxcf12RL=hr{5E*B-Q@UoAsB7GHz#5w@@mWBjT`uwCk_2*q(jEaCN5xJ<}}Ic zX6EgTs=R^7!@ijY^BhoClUR{1(a{v8m$>Uvs8#7lh#ptfJFy$+-w2y1a)^7L9&Ze*n))hx{+Z#`7_BO_0u6fLz&|G zGgH#gB0V9%NH&EI*{bTZ5l_m$RG7o`;>symtbI~?l5$`Q(vs%z$~79SvyMs@V@PMRcO!2LA)=Xj$36~RI{F{ zdD2Fb?=bWp({sTgywj(Sr_fX@!8^c|tQ~;o1rS^rK~gui%&QtdO8_uARbz^h5LvM5 z9V`|29{9y~y*|A!CMS@^6y&>A{!Ban5i_4Dt?h%&ng8HE$f;GggS=H}nRvRjLhS=M z(16)pL3;KyycWQZitFOHEgsnqy*MDr8BM^7WuRS#_Zt&y-z6nGQ=z{Wd>Oyg7SMv# z_(t`SN<5AW8Ti3iw`_Z})%tm6>kIEv#BP*;|7e`{lS1pO@SA8xmgfc0oh(+`c0HB0 z9p{vJcp;96|QNU1Hm|Crmp4qk~f5<#ua#36g|x? z9(|rLF2>jq>=qtu!mgwYQOt$UQR#F? zd4~4u^^YwdXtj~{l&qIJocPib=ePC&vc2xG1UM!wdtC;i1@=Rii|5bAlzH10etIv& zcR9x0jpizTgG`FA#Pe-z4aRL|aURIH84W_^eDmSuZ1_Ah1o~M+I|6B1dJx7)~E7{U2jBx*`@laSP=6a*bIiX68I^-oWfaz&#xw!ChB2|$c)ZUa)8dY zl7`(-#Z^Xe4@kjgAEN)5_4*{cz5gbjV55;8y&B>hE{j@%k&rja9Fp<_T?_jFT``aE z{fecw-t?7PMqA$n4kxZcr$NMwn!f#X9VKG;iZj#A`#+Vj72j9k) zPMFyeeqGf8EO2N;WJ;4#h>4ST*Cb(+93~p%3H8?*TNQd}ztZp5I~WlEo8a!f8e4Ga zFW7?l^?t-6g(&_wN;?^;?&%{K!3_I%iFnS*!2mf67N;f8yyB<(l|$4H94KLYsUsOV z>EZ2;>|gZz_t1~O=zPXB%tmxW_%p`J!7+{&6r~lt$G219UXLySf)KbRMeb!bMBea^ zzl@*g;H82(&8y6}(2?$f9?zi=qESN*`19snxMIVbSR!-&C)21>)l^aHI}_ffuQFTm z;o+#q1^5xgvucmatW>Obk8_xc(6~KHtyDM>f)#?eVu3H{-;i~@m4&ms$Kfo1fM;>* z14lv;$iMJlrtImIzDTih;5zLgjH+$kV>%eb<}J`o!3gmx4|@gSoqi5sWFy@AMD_Ag z=R1+|SJ5kg6)N-!+mSsMWtE+81xjX-!3GnXq+*OMY+uAO3@)?cpW{AE_YIU;M}g8*J=o9U4c*LtN#aq#^@d#pwB^^ST}HbG(NWi&k)2LK%z z-Z|R(`*4Xr?}*I_-4_HIY%(rKZ$QTEs@BE(&=ve6{+K#D@>|}AE})MkM56;W{n2>t zb?iKJ_!yaZM_UI7VdBxjW)C#>;9~Z`WvtqeDk?dFtQRoBZTuIO>Ep84F=hJt=mD`x zIn72VEFlOI+JV_Oov!>L%fg_1EMKVw`S7pWQ6i(ryGSU*$*DAR+Cx+TUq;{u*ZT@B z&75mwQ8yTeO%a*!SqKs) zVlh`5bg2w|wfRyQ?T3dB_&&&X>$j#f-Te}#HWPs%`1lCN8J&?CPCt$dkUyP|FN^?) z+FmwmQ}^Qbs1eif5Z=?GFUGxp!+R;bVd60#Zv5D@Jd`ExjnJb~TM>Sj+db>Ro^4wN z^r-_aO|wjM-~(ih?+8bgB@?eE0xTQ?>FHG>f#QCPt+BZg zOiTktg)=vGsEef;JckC+4CEON6m1vZB%CAc zid;QaXPElur>Wqd#>4jjxW!k1D?GmkBuNYy3*F+GhKKhznFgr#0eZWUv3n<2QXkae zm1tQDUPqi0c0mhXVnSVwVi7Mh5LAf@Sj878YcnAGV&TJ^jIVEN!!7Qd{_(bZy`<%4 z--B#*&1=7dKUr)wYWC6OPk!%!%~G|iS@0*H_yutL~(3Q&!H{DsZ@uzwj@Jp>ubTB&bODB7vBk>fE z%$QD`jCdbEw)2MDo#L5TCylAFHm9%?9_@4(VNW@Q=^m{FBn;MgA-MFiR{F%PveLd| z!JGTDw=X1r>PypIy^xMGY`>5z9beEw=!idMAt@H^AdLK1TtKpIn34o_9%ykMNUKUusF)$F!Lbbm>a`6msM^@3YW%z;zY9j({*Ioi zclhFfZL=ExIvJOHLm$I=>FLmWU?Zp7jZEYusjEA}gNKAcq**h3@?|;trh3UXn4eS% zhoS|?Y1nm&H-uZuq41|7S_vLq&O9=Jy+BNE-^_zzo4-qF>BJwncnIr}T8Y+h*3YW+ z=kS=iP@() z*rx{yY}oh*imJjC)~^K)67e5y0cbkx9t1Cb)9|+(e`n+GNc@Grr{TlB;hJjBOjxPL zhRSB*bF$18o;t$rA^^@pl8C87Ws{xYo5QpTLB4h&?!tp0jnO=EWjSP(o_|zCH&eHv znil$Fo~m(K1Cz?a*JcgW0=GdX$OI^z|LC~}ayxhZ0wN>L(hJXoT;}#cNJ$a0|5M?1 zEadH{A^|U$nCJ`Z3O6w2Sfmv3Sko_@UC70`{Sc&-s}u-75l%6*w6Gc(w<6xNS3h3f z(pSoErD(yE3@O2N{1ESXT0j^ESeZ7pX#;f@5+VdEb*>m%pexb}`5JfYcm&Oo*{fg5 zev6MfZE`sTTOR!&NX)(-kK4~pTvV!c4l3KBq{pWcfU*lUUlbd6z1|iZHvj=Gx!Fe? zhKP>gLI&U5$`7}}K|U8h3i(!e>v3=lGu&Ojl+zTw%&t>U_uL5Me28= z5Z@GUO+}%RD8#9Z9#L4w*dV@s?e&D{O)gZQx34_xGdIj#b`$X6<%jh*nJ zN?34*)yjJ+VV0fnq9kwwr{4d>aY>Q>SUWV*K5|^ruNoAr!>(}+@(Jtxn_$W1N`2PO zd1|(NrXh!tlJimCEK@W~J~NO5msYOgwRTQVaQFbqM9#)x+AXhedk@n_e?Lqc`QiKc z=R0GVwtnL;_=S(rUm@jNCa-7mmq_Nv)t@8lQ>3n7)*5E5M%Ib|l9wQ56_e|jyb#HC zNWOa6FIw6M!?aP`v|-w33to5;uM%2tjq+mjlD#Mkn4r79v1bQfqnPlHo$#bem~1CZ zRdqaMFAAO%xk?8uw2%WlITK3lb-YZ~@yQr#QO;5ckJ<_OD&bZ;AzRha`!ov|Ob1L! z4_UadpDNPcF7i8N-@5BgJK;N(@MeY8>{^vD!%kQz34#k((oIV~VmaP}w8#ri#?ntz zMqreab~Ozv2t1L%2rGs&zI0WYUPGyh+&VtOj`dWXiZf#ozHlTxlp;q`sC2d`Tq*1@ zJe4SY#A2w6%u4fT%*xb)ncV4o$J=duf69(#I^a!W`mXkN`p`3WfYL4DAsO(%BQjj4 z(zB2{7xAaghl?Qm`oSndymSAzr=LEsxarKaB0r=UcwGDm^4UkH@lkehU_GQj$1`3t z(~W1ZF;jg#?F)=jDlq*P_y22`*xNhu<#f4*AYuZP4z?Iw&3sxoPQC@wP`Fpi#JM&h zle4P@=?5-)JKF=zUP`%;(K{^CG5DD!I5-DLhkJamlk;QuAx_9Ud)F>Vhc{^fjRo{m zjeE~9pIL8AA&;^24QSpAhryZDg0G{^$WHu&#ocNxF5RY@P~=8sIl0*WA(2{Ug$rNU zFNOi}=#@4nzYn(2fjH)a_4;mvG>xus1E`&NH6feRlFe!Hook}Y4<+VFmg%p$kw!4YCUp}r~S;DK5Gmnrd@@#n7Q=u;RdU*QCc8}ZS~K$kEp zTv+G&M+bT<2ikKF{wC3Q-?GMA`pcf<-5GYqdkF}9!tp-y2ghrTuYOo(LKdnaQfLK%3uQF zKRnO{IpRr)W^VU_8HEN{zHcY=p-;dMM3hI|bpIyYc*2Fhea;g@Y~OlHp0a%t`Sq;Z zNVFxdL(9DHZng7%V{4|(oRrJ(*?AjU=6&bXxuRuWj+6Ih%e)Vr_Nrs@B1hwg#Z=a9 z!Qn%u@<7x4aAEcF$WakzNZNi%k&WKiG%B zfAPF3_lUE266)okVLvL_`IWzQgM45(W6qRmB|r1T=#M0jIy6E(c=W$75+F-I57F$7 z$o8LImi!yz4j%i^cio{QTwFOW3xVtM5V)=ckuI7SBWzvN3|qG!O8pq^ZicFZdFN*1 zt6!zA)t;)w2sKz1`i)CkUSu8@AL9uQ-)#K%LXEIdKyHHOW#G7 z2U%7lg#aMX3tQn9d1nr#W$gZC;B>k*RPsp9A zXh3im(vg&nq->iO1b>s%dq^2TW8_a&jiL;}A50`>>1tU8n#Z@o#Igx5+yK}gk;(yZ zdkXx0h7jbZ3f|TP1Ol`cAZY>uE$@m91p@Wd79be{0-t0RnF=Ix50Fd&$plEY0?FP3 zBwIkT0Rm6M>@Fm2EgH%Z5RM4m&jmQUnmFO|cgD9w2T3 zaRX$K0vWUi$RGh31dt&L1TS_i`Z7d7h5)2ofpEp*7oc1~$^kN5fehaRWVnC~2gpbT zGI9@)kpeOjAQcLvVh@lC0jYpjuS%d|610i+*ZD=jZbS(@^b;lCW}**nF=tC|Rn0W~ zR^a^F1DuHhF1b}TGi`8w?E%h20hin=kshkrs}q4UQNSg)s)id{f%9vR+Lue69rsyt7;nXTh-35J!)s7fJ<&wO(T9QaDMFp&O`y1+$y;cD)6m|z?mrEl3OLh z0R?U(0%xLtOKw#S>6ro-%GMGinJD0rTP2q^1->Iu?MxJK$*roP2tt92FrsDcOcZd* ztr8D}3Oo%td&~?I1zd8gYBHpDJX_z#FTM?QH+Pc3V+}Kc<1IgOJqW06>>O z)$wDE?+$nrm67SANM%~5=!5=_q5~kFqW5y^=cTcYgG{3D0m$Gq_J2?sU)iExV@TlRFcyvtcI`+U5OxgsC!2M;`#*z-t$s8FlZ{vF%eQQgHwFa z2O5+TqwfX3x5Q+y)HuTXfT77@SGv(Wr@g13BrC_4>IoI)Ko}TE;(q`vO7iywgEWml z{k>462oOacJ;)T?*!d?G9!ECeXWH;?z+)lAMFrrQ5etvQxf^Q5;aul~b+p+LoXjXT z1nmP+m=8uGHXm4m{DEkwQW_di+!W*^Vv5gIT5h%bf7U*slV2bYm6yOK-;{d-5pJ0yZA_u*zz~}S$EN)7Mv-Z;2J~#fY zHU*ylm9!1_YFwLeW1eOVsN~g1BCg^0EaM3ItxaCH0Svk+tMTeXXZkZS3ib~@mOpwa z9Mlw5IQo9*e*^N>c=;7SUZ%)+`C*Q?5uXa4U-9rv5qN$Gyk4n@GCcSIr`0z^F^iG! z&R?blX<_ZrlV2bfDr;RV9L*H)7zY;vNo4k^q>>z&j$c(9%iSFoctRZ_B7=qV0u*Bx z2H8u*6yJpyFh86o{nMl8V}lh5JV@q|kg=kS7I=+d1vA714t{U(D{=txU?J{wH#is% zBhfDLX@y9ehWRtk6U?+aPh#;!4in-FKg{{d#HX4+e#OrpQ)K@5VZvwI@cfF0XNth{ z!-UVV;rSI0&lG{@hY9bt;rSI0&lG{@hY3H~hUZs2JW~Xo9|Er@hZau!Mnrzf4R>fI z-sp=^khksoA+3=UY$gSz)~zde50k^`PhQXwx2C+2<*=N{f3t{H25%u?Xc~V+t|1s5 zq=U+xguOQi81ytI7oX+$d`W!{$0yAXkvbBef^a4qix&`PppOf-ug0~r1Phby(I>NZ zR(dL|fquCXZ@L3!!OHzjffcy{WEs#v{!5!ATEJmf-rXYq@aTgmAUPljQHYLjgF3>l zL*jBCX+}6TF%i>?q2*jONOd*H_)^eBEk{y0lF;Q~nMxXtq~WUT;)e=QBat)`lU0rW z0FZbHJp}#&qVZ4UC?t96D~Uw-YMzw>7p;2bDrCX*w-GmJa1cRyzyJ_asriRCK)aON z8-3;=WP0`6K!2O=ysRv=-Lri|@!Vu(9UtxO(2uhG-;1@!79+GJLKMSiz!G{3@b!W{ z5L5u6$7;q2_kBi5pRsukl|sg>V8k3Pn7y91KJ$`%eJFD@a@U#$8c3FeYBM3pOsKq< z1U=2j_=GANks(MXmG#F-$3NI4cYpQ3^xx9kS|uIGd-Vz>$E>|WNyl&gLeW_*xEjwd z7Sv=wL4LKs1kUv+;9>yd?Qh{w)B)Oz#j8*us=}__Rk3K(eYbf1iY$ci>_8Oa{-M5G z?(*$-&%(&5#sgoIbPo-w0=5^>HBKLHP;rcZUj&R`A!RailsmNzmpf#t$+^BnZ}iEG z0uPhz&@_G^XnZAL=#iltM5!gA>pt;Sc=ea);B=tSva8Y{UHcLJqT^2X%Nu%{pW?sMbOs7{LFWU`6PCjdZIy+dAI|Y>rAtgF zr|U0QJryUXXN9|tK%+_C}K2P1@c3s>q>38_RE*OH-^JU&peo1IlN{N2m zCtBb%>>ntoa;DtP=pIzPe=r7rMt>elD8eM=fT9dvP7i=7;U1F+zr_DH7p*;1@0E*I zuGqnQ@zdJD^wS#6P2@NAILmM90LKF=l+0m|Tb>3d6^0m3#Jf=a?8-EZQ@K!Gk;sLr ze|{8C{}z4%`A1xq&|fNoGbHer3dQ71l$nDv%6r}pL@jM}hy2F;;h?wfwuL>J74|oZ zWrdN=+0|1g3Ov1I?eOo1US|$nWPHA^n`k7(**7@;ma2Y+BH)GCl1&T<5-yw?v4{sW zMZNkd2yBI^*lgTA3G2&S*9WqYFm|Ao(=_fch7*|h9eET#I6d3&>12<7FlpFs|K)`A+em}YwZ0YE(+MeP` z-VMG5n7j;%iYYj5VV+xLn=qUsZNks~3K}thjG{5qied28aYhQh(&+g{_(d`NLgW#| zkD4pQh~vHJ1^Q}iiXPA452_C6=F`&Qz+rKfh!(ItoGnm!QT7aRv4`fMjB0+q=yr5K0kRRI5-SuZx-gZP3i8GkK3`h*scwc?fKI zJ0VhH4vzAE_<{F904RgeHn8!6k<&ARKNg>=1r~Byv3z2Ewi~m^m7gZn@)4h^T}y7} zG}y|}TJSN}VQOIW0>myiehE`B%U(?jOh$5qev>fQ=|FrqH&l@0>u76c;r40hq-}6! zcm;5Aq%XJ$xbP52I~N_q`+2vU%)XeGalSs0-=znzy8FR6#OkS;s|AJ2w?z6xXnCzd zUqwN{?l3e#6%Z}ZwisOi0K$f73#c`B%{v%Jl5xdi8oMdaPIoh*aF*bc7CeUI)K51p zbD?H=vLrZ@d>4Ml>=8A|O{jyLMU2Ib@)731%m=?Cr9Qchp&hEd4j4)ET3m~}G9DpYuv6$h(e{SS zkU5Fz5$aqiE+0XX{xYs2j$nBQ!pI6y`a+w%p>Lq04y%Q-&^7~>6F^nlkW0MokPxO4 z$9`yl_67~5Z0jyNwr&gk5#ir1GHr1%n%z!3n@T^7(<~por1GYJ-aFARM_)SMNB_JL z_SMuih?XOI%n(6ZT(rMpj;Urn8y!;c+-NrZ!x)vd-roFeTHsMBBbwH@1@R3uwd(?^ z$gk7_6OdPHz|0ZP`wyK@QgxxhA)hdNmnfCLEoH|W;wA1E`C;Dzw7?1`6pT&L0(Ful z{``f$hU7Oiq8aF&m$=+DUV1rq(y2yt_j~YaEY39{mcu8UER(1`ssUK~VN(D%x_){8DBU;1TQ%U!Po-f9*=> zKt%izdY1zKbWS7rCs1&kew?kBY)%y4>}+#>Jvw|N0I~ne*k-t0Ld*TaI^)9uA{jf2 zt|s!o8dqs)+QH;%7Sum#dL__XU2 z9E-ZY4s#1h#7y6L@LUGbE2OR_i=hSAv37?uJfFHi7gl@nKLZa3-H`3gh^}czVUmy! zF#Fa56e2Rf(P4&BEr+VlMV1U=-}UgQ1si<~+4yLlSes+rs|Gm)e}W=A?ihlvEZV^h zh70qtl~I#@kl++qca0de``%WEuT*`js@hh!c~oYoz5jlkzJ?3Kj)v-~{g4!$$ocwp zEqn5HWE9RH$Fb%-o`mwe`ESQcFb6`gZ3u^gUI z17ev=?utJX`74hB3L z#Pc4jcR>;?k;R<*Y_U48acd;WtuJlFCP4g(QbYdA!&A8M-CC?WoHrg25SIk`K$7*F z^!|lONeg!LvSKWX)h$i}Ti!!^a0F75 zE&wm#j=1nlX>z48M4D9cN_P!L!v7|Cde?iZn%mwAA323bZ0SzsnQk#b>~YFp9^R<#T5h#)(n&o(-$x?jTut zXt#~OA6NI{xAuX4|e+fLQ*?) zGtiAGnA~1a+!tNyU0{qn`n_ZlXp04W0_!R4=AAgMV(FDTANF}#UQ^FZx}CHM8^!2zAH5+cE-O}C0my%ukjl7xEue)f8}tegdZjS% zd(bAtOy(WAM$d6&c``x(||MSiia9I&ZJ zyKm%mOfv4A&}WCSuG(?@1h~^UJH?$pI0w&fDBrvckv965g?4%JFV6Az z#7FGGgHmWBy3r1yRGQd4tLeYU9fXz*{W|)Xaygy-Sww$MO)Z- z*X&3xek&PWSjFG|jOgL`=7c7}DdCsDqLJtg4>RK z*gFGF-1>QKqE*@pZrKrtxLyd|0Dm#^mlb2${oU>JU)kcAo|>}IIYgf6-(1Jt;Hi3_ z>y_j?q-w`?;|}7ii#WkviwBlr$Z<)FFn`g5r&;@@jJBVg$l%)`Q2fQGHD6<#`?}*X z;nC}3kJ1ir$x*tFVzqE8wCL%q83iYFi9RdxbwtR4KfCXdbmt6D)sl?pA@TGHY1y7; ztlw=|{Nk$dThshM7dMqACHudJ=xm2uKN+5HntcuKdfIvri_LXf3gmOcD@v`=jbjU^ zc1GjT*-9QHuDd}fSB@ZgnnX513ob-)FWF}OUUgeu?i=9MJ(*?s3+|-jlTI=+v~V%v z`iQ&qPu?MA6=@&DDyzUVY+S?^Zqs zj7S&@_DUSs9|XhW;>ExoRTY>YS11l9<6W~4X#EznF1Kz8tZctunD-YUyqv6~4Mf4k z0e5z$yTF|Z*|~mpHomg)HrKQu8LwdtPT*&>_xWo$`b=Qo+UU1jpv30~_!lVC!X1k? zwGCE7E(L$l%`ogyR$2TDqx?qmtn+|+|HCg4FACT?IA2K{W9o;_vbSJtniie|WIspu z{fQfb6)?Hdw-HAN5xb55U^p%yw}N<6kfHi7k1kdGE-fEy5Q)r~>mr+=W~? z_(;+gR(HPFaw|>jMfnds-W55EeWq??_gra|*nNOki%E3iG7}enmqJ^%ePvEyhc&!LPUE_p|XVh-MH@ zoi_WT7?;U4@`mxMOnw~a(c~+6unwRHQrt-WKbzqM;meKGW8xygm{0?(;e;9fkg4^h zHAD(fr?9^UGf{`zAg)Ox4pr0fqR^efD?T!JxUT(dbMu z(hmR7{uOTJup)4wUm=Z43KC};a2!j6$pG?4T zS<7I5RGhnBXnO4P$9w3jX`AH##_Wp!^C;8`+hs`}`RPi3y*WaEEf=-Zf?ds$8GX&! zFBU#3c?Wp^+M;K%GHvt5o(yjc=Uk6*@%8XkE|=*fPoGYbi^p5=AK?1%?bRppk*N%n zuh6_D<1M4Od6h6wiEhckI`wdT3F7DB;aF;e$4P)6CGtdHJua~!c5reqTX2{(?6SHb11KgoO>dKU+M*E?%?D047H1w@}*PE^sY43A>~_4%BIHSa-YS%W#pq zBtXApLl=4VGr&{T`3?ujv*i}ZX8-~BvhFAx^J{R%>rX1^q0Qe|`ZbP!J%;G9w0Yh| zb4D0~AX&hESRYx9BE;~i<^qy|jYN-{w-P0<2R;ZKYbfb#g< z%2JW{={&a2}fbU;Xzv@~fA6*O5a|*=GU*d;bPf=Ui4^#T(?obMZ z*LvYXlbmCl1m=v@GQxGAfs#P71r`* z)B^)9z6)IA#b^)l5Xe?6f)ZM@{}|&nSZZPQ5JLCUsrb@en@<#Fg62UL7EpUM0~!H3 zrCw~~rTabE54z7Zo&KqK>fi?zM)n&BjAVay!}o?Ve>`z1`cpp<{W;3Q$D;s{Zg==h z001A)$Tsou&&P<5g84%iHACj5I={d1%Vg<1=#zP&9~$}im_J&c*B1Rz@&~+$BDlNK zWm&jXp-QGlAD>cNpTacYl55rU zlNT|qLR*cwgW@WSN0-~B3nuxn?qnb#IDa`m?$9de!whY1H2DXx**INXgV7+5&k(Lb zq48Vi&xY19bc+@aKyui>RYE!&AFe05ryee_j&4yJbc@En-Yv=W*D3U=Hwp@U+WM-6 z4Sg2_8{V1V&?gVHBmM2&`sfVMAI!mDmsz0w01CW#a7ni$X&I!d@ex(9<$Zy2&TI@| z8ha`OfD{FuG(!FcD*c}ZUZ`=t0UCwT{FW!9Sw;8UNycufB4Xtc)i)(~y}5Y@n49-F zI;c1XZwb+?`8jZAi_&jdrEz&kGU`-m|3Wzh(E-iuKtbtNe+ToB#l&1YryFFU4*eGY zu_Budt#yaCia<8+mBrm4XofSX(grVt;iAbU@@Vt|V}IrbC69g%4LiHPl0N!pQ%uRH zg^_OkPF&hQ#LVs+r(7=_#o zLdZH_miZnD(=bB0^S_2&X8uY(!P|1oZ^79#fU{`?rJP&^yD0zaH$(k00#8{TD)p{ zw+!d~xBwV*`*SA?(Z7h*z#}>rZJKC`sO20{uGJ8@O`RiU5afEAS3uxb z2aXz^mB*w-ueasr$f+nfS1(zeQKrvS^Rt%o^Dw_LKc}KMLoTt9^d9sEBipvH8~S6R zY5q(Mq?9h3Da>tgpD5EOt6CTMI(ZP$?#MFrmX3qk|1G4dYnoSKBC#WS+=Ic#-J3TK zQO)Wekl4H-(scTwmv~*r^ew^#G5WFNAJ>%sD}6G=G;`g``eb*k!ofLrfyG*epiy(p zLX0B$VgmGEK>BDrbEWJIEwGfUujpbi-nrYrS2~g3dl)^YC;89zh(9=dRyyat53bN0 zO6k@QFn88Lva=5GcO(f9EiyiSOO6v(50twSH+ftuu3P3=uo>R;no>OBu5|8I7jw4L zdc;xgE0B8Dfxeo`eKi#Ri4zsyNpbYicS5w-Xq-e>qj~wq14B(Fpi`H*b4z=UtFD0|^NI$lo~8ZZdg&Ew~fygKYgZPmwKCYG?BML#0(1 zyXo!r10~S{UL@d9vaWW*v*Bf!-jyyJz}IqHzeEdm1#ILb{A1KrktrUVQrq~T%)qi^ zF$0fYYR&*vwd77{Gl*~l?x?Zk!r3~8%`2WLI45SHznX)4Y6uF;&A#!8A>IQ7`fIV+ zk@ex7yg8s+qx|%^uKR~Zs?aAjZc?w7HrmIvn z@(Ln6$3O~4 zZ43O(jb1=^fpg#~5WMWr*>Ftg@}nr-2bR!%;4p2&>S0=R)vwxw3u`E)6sDH^;&P+w zsqt$>5BwfP&*;N7y7)D$5$|cI@TQk9MuWbis0j#F5S)sxGt7?jm_yLE1~785$DF5L ziU9c})Pw(n=m*Ax=g8#R@<^q7VDq<@Qb;&&$vg3UE;e3L44*siN>Tl|Sy;=0yx>t- z;T-aq@FrTpA1Cp!>aZ0rYhl;N=UQueV-1$Q{5D>enxnapRyMG6qFKh0r=X;NDUur{ z8MjK-;hTraXoe~URM=yA)zj~0@!>0SzZkCW z7Z+Kj<$h7FN;~(9*O)EbN8J6Q-LtLSFGM96_Y3Uyys{eZ?bfarrB}$b_i#A+W(n(F z0nLpbNoW?1j~(3r;piRwxB2yc+2(%SU2QGQiFmLx>PN|bJj-U*yIUNN#qjn+GY_M5 z^aw2LjxwwCQ7DbAI{ocf{`&JNLYzzyK@0vmZa+fjD(3$GR_y&h8}A)Bnr(@F<8qk>E&gd$x-;W>$I(Ow*LD%QVGj_pctNCQ;*hs~^zsY%k-4|LR7agFN z>)$A+;>5?$4@-XpyA$#oyu25-c~h-lw&e<~FUnC49l8g{8OZ1WkWqR6$G?cIz7sls zMz{qTjPr3h2z_<%I)z8>P<2~PEYEH>dV=x`^8hv}Nw#d>(}!c!qt6oz(gGA)3zGmP zj(E8?aVbWwU91dhpzpd{$+hh{SI_Qd9D!F}5V z=$fl)`4Dv&XF_I|xc{4G2{$8qRi-v__RXoW@3F)O`#j%rm`OisAG0XH_Bo&*lST;r zI5GA-U+b|zT(1j}Xop}5yg&no--c8z+5zXe-lHT72x}rF^v3tNA7>!mpowDOn+R-P zk+1o~$V6NT%#;@3jUCHQonbdr>E_RbQZ#7&EOZygt_p=^yuM6Pkuyvt5fb_*`;eKX zArN+4AG^aH&|&nl6MC6=*4};|v!=H#uEp`(te#$asvp>oZWvXhfgv-d11h?onXbF; zV{g>e6yaadW{Er?#Hwp`Ek|%U76j>8Vls|k< zh6?>_8K)LJ9vz@IwhUAY9)_Qhj`+vu`2?=k&iYyLS}X~g9VR938i?CWNt)bf#WYJv z(XO~yjydd;@sP3|-X5;}JbM2uW59Wg<$;I-h-uxc26I>G$*&)m<h0%fe44IFHH zqhc;Hjq7g}mXPY_&CyPn(-LgP&=*Fh_3$NV@e)oE6U%*zG*;Q_irq@;$F%rXRkZyIpNsTYRXy ziy&Maoe3O=RP8#NwII-$YrHzfF!Y;HG`gs%C_CAIE;eby{EGeX7}vJ2EsDsib%R^_ z#Ki@F{0W}lcxcRYXdVc!Jla6SUvKn(hNt+S5kF=W?WEi79F2Bb>OWr$4QTKh&{xN~ zur*BLkf&pG#uZ-kTxk8hlg8aK=fXa|cRuiRYww-wUr}d*_1-x;_Pz6Z&<*QStQJ{a ziqAMQj*0MMx)uI@a46>Y30PjrvG7mh@2AzR z&F>*E{Ri`VcUIi^&H1ev-Ew|^gS1@X?~KZr`E7rEeDOWz_lWE`fcW|CfU*27{#x;w zGE5T%`0+o)VK%~rSud(1bu`WbY9DXIJF0$BIp41|oVah24CSAs%~%MAbq%yRO0>6r z!p;Uj9h_c;(`N`kny<7p^fP_32krqU3j0_vEJK&o8n`)N&us5bhK13^n~f7rLXw_( zx%7g97DS2|fie*)0ns3Uj@K#mgWnAGz*L7=z*g+SI%MR+AqO6YygM>{1*Wg)ZP8=! zpcQxi;CTtR$~b$$hDlHW%wK>5H1u+->6fx|U~AqTsN9}xK@$M*UD0wBxiO;{ zk&g}*xP~D~3qB#ebzQ=IJq2ShpB)Z0342$(#-EH#o* zH)oDCReK7`_)CNg7Mz~qJAwBgLRruKh(o~VHaR`C;GO)&I~X90&5uJc=y&*S2zH^4Mz3@@}OY9-^u;S)c?pZx#elot@CsFb2vXQxfP((B3h< z?Hz-+GwhgY|H*!t6^Pp}s%z;-v1`~b_vE#3_DiFv2jo3{kTXLY&=u^)1|+rEFG~pJ?3XDq`=wIt7uI9cK7##ni`p;uNs-j| z4NZ~Wj>6&X~}Rt_>|EKeHxF_SjT3mI!;L|-!`k&%c zN@W~Asjj8p(;58$KK+!_8a|n0xQc)#K0Tf*`1Bx>Yqa1Wo{ePea1{icbrroP|&A zs`mw-GXEBzGF!u^XJq$%n&zxUCoCKWc#_k9h==|c=UvVCczlwsrJuyE0iPZ@u2p#;1Jdw}wxLBGWi=Mgn}QxL;=I4b7RME$9lUpMj(n`1C2E_Ilp2 z9%JSG4n934MN&VIKYPKa7aaiLQ;NQKe9E>g>0P%Bry~z3Nh**OB!EMn4NkcRs&sYp-Ex~Ke4!&}!hCf!-ar9h%Yjbsw7_4) zmTppC;pvYn1ilS|K(Ldz;KVU(CDPm-uo+5p!y&`gM=@;K4g!6e_IY=FaSXhWeDM81jFt|l8wJ(nBN-yUXD!T_UR7(S}RwpRxR(>1D)FYsoJwq z2JflR1Mn1_q3$>7stt=ChGY1(iHcuiJw`_~6d9@bwQpFlo_c_kbnrL!-B|87KM9;g z58aa!<8O=iV?A{&i-pP>ftq(cY72NpRT8Ti`-D8ESVWC!&Rb@pN8T8HDe{MVw0D5h zUgy2H*THUYe1p=4gxe)s5Nt^>W7;$IZ8sjk3FC%@oE-YL)2gx7Z41w1vaJts`E1!% zZwf3YP5JVpzHRCxOW#)MS4?kFUxwPIZQ|-XP}O%`g8JUSJHEc+7WGx@(!baDkL};Q z*Q9^x3F;eR)hGNn{WB;5Y57#vlXnB^F$zyaafmR6QU@?r^?IXhOH1`y874cXAfjQD zSp9nJR3%wD02`bFTt1u`Z(W)Sy+sfZk!A&-0LD=4UOVt{>B@!<=*sH@R9E18M7jd^ zuBIZm|5Ec27)g{q|0}*DwwXx0Sm+moyYq&A#mlRIfRTp|;JLuPy`i)l%uYW}j&xTv z2qzjHjs<%u0TW+=C!)tuFS?IwN$N~eO<1qQ>OjKK)6s!E88svl>E71Ks?iUDMO!s` z^~Msw0whHq#y?61Y`y6frCUXOAC(5a^A{+Qhbyf;&Whu3ZNKt3N)MpHD-XtNXUa3y zS$LdNwOcPdzJsHOqh=%XM%WB9ntGy#pS4ru;YYo0@y(O(S`fX%9|m$tLOU!CD2gNE z-(&6f!ujkN^;o7>T4Ig*2OyEScrb)}arOq!9%})71^^6Y-FCcGi2ch=lwO$11kGzg zi)bpbzY!Rs^nSi`U-PHRjEs8Z_hzNvuJ&8+l=%Id1~*~YzxSb2&i;MuW!WFUGf~bU zXaAN}nfopA{dA!eQRj8Iu-$|E!v76v{rEKH9YdVsGwyzBC@ZZ`_haXkgs{^Q7!UYA zyX%k;{%`od+v3ho)wT4K*fsKhSuM^_oN#qGLm}l~TL$gLn~S>kXGPLtD@l@_$Hb$^Q{*@BAMijFq7n{!faeejtCG^E3AS zR?g2C9RTuw6BD1Gd&-+{m2wt7&AoqL@TvT7@u|EOd>XFUv0yuAwiX;F`1BK#EOzXF zf=|Oo#o?3cTKZ3I(GTF$S$$f=Cvyx72x#t!zW|ICZ$grdPZ8#~hEE?N)A$j={Pw`7 zYBfXG#MJ(zs(mJsTHsSqwPEpN3FIBD$G8&>S@+ZPq)6&m`Lh>%y3_#xKGod0ulUqQ z%31hy?eu-Yr{RB#Ps3Zmr%ZLX%WLDT#i-tbPmeI^e~M2Tx5VL->RS3E$><00>5pEm z;gdOrQ3N#c>6J{ur{|DlE z`K{s8F~~H|tV)1SX|JNHwt0(oJ2TXbu7LXOKvD~Q`kqjGJ?~hL@%3E}KD{nQQrF9$ zz2MWk4gl~e8mA58k6(x-|W z;_yjzE&Y#O=m+rW(nDIqCvyy|324%%RF0v*wI9Y{fgvp?DJROu{^SJp4_E!aIj;T+ zRsU)xwwRy3d#V550v|s=s}z2AjH^FG)jujh{mXA_eSV4))bCdF^Xm54`KftK;eUeq zuTNBe;`{y@*6Hv+cegyRV70CE8=&`S>NmV=K!%g}$bu3?`ZUVB@~08VIkoPC+{wN% z&sI0)4NV-5y7eD&5O$!RS|Ys>GKzrqC=;2Ee=MQ-kEk+6FX(7nXub>?x$wzg>#O`H z^7EQ&;?6JC$@G)hNt|DgbZzbYGDp)XW;A8#=qT?0NV3nbeCD@yejSQToL|`w zkTm7J@w+ouThJBMZXl_}`SmHG9De97ipWjmqCI z{Cd#=!1XruKVP?URwz0>AvK4U0cYfM2Y~xET#u_;s2TNxf12>;=EhasYr| zvu@rKzfAt1w*bb|-)cqQr~bkzvf>fVd`RfyHYT>9?;cgXLoY<%Oz|HJ1U|n0nToz2 z7gzs4RsZw^^+!e|rtf$ha$OZy|JM0i6>qR+oAllEck<4+kuAcj?q;g;O8_kFQmYx%+mHn2fZXucsLDBQG(`3K-nDqbCelv!~?KjoQ^c%LK zN7!#GI<~go%+VAR(A;n1HQ8^Yk!0_;>zUu$e)A&J_?IuielwIj_uDN_?Y&g(87R|Y zzqwQ!d)aTS$Jl+Fv)|URVmX z%MvSGe@AuD`;voz2ks-i|c9urJ=RH7Y@i;*}7 zfZfEQ=hKpAsqN%TS+ki=WH;Q(x491BK z#KX>=C*onJAJWUNVR{ZWk=}cpMV+5wKyrX=qCwBMJm+?1`}myR1|b>m-S(T(i`TD~upcCi3%2LRreMt^0#FCBee-1`zA z7u5?>pHtKeQ;a{W=8ZcO`Li;_=8)zW`bCSK}rGn@Ofv}D>h*G@-Ec)o4jzWL{o*m_y>tM8N2qpi}=2}v?4RcXh* z`D13wGR4_9XQ9)r*dHnDFWNVc7)zyqrq&Fcuk9^L0ojgHKy&k2ntQ=#QC=^!8%;H) zovaMI;1AynRAeE^p7hmGP1 zwa1GnEauJ~I$4DaP#C!L6l7eEJE5P>MXziNMk89F(B{eLd$IodfU~x-eK@ZiH7FCf zJq)of%anr?5Nb{$cUM=MS1@zA^xAH%`Io@{hjdJ#d_w zo?;C^6?LEe&Zqcm{;m-xK5oQE$9<|Tz>IaB<($$2KMSVAb7N78@@8iFF@sKxqii$| z9JX@jv&C`eWBT6q_W@n2I7@&g_$i3@o95(-7?1_Re3ACt=G1=2257V+`(l5oA?iS8WG{(~e6c zA8;Ezf7WeJgYFvcH0aM(R`Ri0inc|4kpt&zFrK&)hl}h_dvBilt;rvDl&!|SdFCjd z|HokOoNsT-!|9jMQ7!5V?tokBct^G9pwZxA!>;BOYfI*$8f?j#w>tFxn=@^CpTHj5 zlJ{VLG^zNpccF9U{xF7-;Lz#S8SvIyp5hH3+wQ!6NoDyz`w+VU{(v48hxxv1asF1i zvooX6I2*}$3|in%EM{zYDiw5dev$|d3!nQ2ZP*?VW~->ch)rQhzWk?~rg!kvS8p^9 z!yyhQstoNr5)`Vi7^B4E7+{ejU=X2`XJ?(KvOYo85K;zSTAmwv9a#pKrtAtk`?auoTb4 zUGBC?Nw=nX!r^L6lDodHW*3gd%Zn%O+JSkzHPsU?8;;ZzI5CZ$fz(DTbtF^wd%fjz-D5$BC zBMJp8kO-YNguSRQ{RBy1Ki~tjCfdunZ(&st4WY&p9zC!$e^`+gJPZAyj7=Yn+dpD6 zTsYUr?xk*_=bMftmVE`XJPaNtZut_Y@{LI4YshIFNdDjyYV#u8XMWi-{~&xJtT~)g zSR`Xwqy*C#bAPBBKeyR;gIkxry7NnyX)=`P2veUMm1iSfSB|IPq8#6~5CyMA@OUB z40l)6BN{-R?-)=1D*tA8=oB|1K}5f|x}ulW{6E^x1U{-FdHhL8AV|Us2pSYHDroRb zglI;HCXm1zoFLvOin5~Xswm6=Do4W1NXBv0-Bs81Ua!U7)%8SBfdr6%XS@(a1w7!* zj>@5ia7g~&>V9vI9In6J{qxbxOuv5J)z#J2Rn^s1HGdI?KoAfDwx3fU9Vipu*p(tc zQ(X{l*uEWJ+i*Qy7QY|stN5Q8E;juQl2?N4SyF!zH`*H;g?334Y}W1@!!*pefFdDW zPgr5Ib{|co%@{?g5H9K7>uUFHkfI`rglZ|evv!|^nw>F#A|Y0a7S!%jG<(D49w#CrIEFzu$34U4JNwU9mtq<` zjvwyu-ReHQP$jqfk2Awl`O-Y+CFefEI#h#tNb64>q{$L6U+JO{UJ8MKl?*y zkL`pZ8dVJplVrRNvMkI{I(69Ru1b!J71vKByC54=o|47m5tn`akz&%%a-^7pe#aIo z@g$Ep6@h4qw8z~a9i2JTTOr};bU=YQC7$rie2H&mhi>+bqoHlB$3kyN6KCZ^?FbAd zy`2U>!gv-NNS(Km>O@N3z1r^ZB{8lg1**4``HA=bKr)spgjaA-$$jjLcjbF0#qoU% zfy0vh%}v)Q-l{hFlk>+2zTYJGX(Y>&=pXO}#y=|<2>VyzBneN7bHvR=>li8jb-#9iOyA` zL!q{BKH8@Zb7Z4e3Iodhj@CbF4vrj{IY{mJM(|_dD5B6v-jX+DSrJj~qzTZf2;L}| z3;9Umhid;n_bls01*pnthJ-I6Q8~UMZ_?2sPtG8mk`gy<$Nzq+hps*emSlZ;FHvFggD)J z^-rzV@-O$) zmf`KA3{_neioN|~NAWX87|jjV_v>~iiy5gGMj9?saYWk3TVk}!gwJVxFvEMW8D4a~ z>}F6@U+Z5xB*jCcS=;ysWfP+Ny|k-!nf}`PVu$wRgg#ySZE2=#r($|J^J6XFias5_ zLu9t*h74bCcVvFH%r*Sedw!HN69oRU=~p<~HtW|No`03pKx~W*D>oZ9XPS`_CjgK2 zMh5S-^e`iV6J~DXyD_TK<9f}>>q)q+`h02EcUoxmV3pQ$Bw`zE-#5UlT_a1u9a4aZ zf#|FAB&o0ZNhJ=o*knVR;H{nGb!N{yd8Io1&++Qx3KW>HjoXFfiwUM`$KQ8{J+IU0 z;`1qHL%2i6(^~I#tt9`Oe{Z@Ge325QO4gW)t6v?Sj0iSsP`WjBjapJh;3!^Y$}7U% zh>q5!BGkJSGDL_m7mDF>se6%#y5Tx*C>p@zo->` zUuHFuwR5+<+*MY%^RKj-+C~=?jr}wEwHM^I`+05FnTzN%t$0n__+RxN*Cua?1PW_y z;Op$~+~JEq%Ew}$)|1gQBTv+ADsSrPsrsEcacJsEdpXd@>&j6QSPHN|V9^-^&zvJA1e!dcB9CPo_kjv1Cl zYgY>KCG9Rt3m@T0my+>PJ978NJ+fGKyER^|mhlai5<~O*ue|z8I_Nn)6B(`_~`*yixA~%G=)oqyKRtBJW)&abdi+#7 zmf(-7W)k&aHO}{hh*kWwyx|F1V7rWvGSnLz86h$hEiYNeGs}2fAzlaS!PY9N*aG*1 z1`(oztJUkRVk5s>Ro{F@Kdezvw|^5lPeh6&b2QR*GW@OeX5@@?2m@iy2pmmg?r@)X z+>?ggVY;T~&Dr1yU$Y}0@vgVVuMmkQ5DD@>Y;9FI^H10t^D0{Ft0zHfjdMO1fh8`l zjB{PHD&PBnyH%bc&n#0q*!R}3%3Ugv){&3^G-QMComgD&2`f-zJ=J`|BQo5?3UUM0 zD)*$E`KD`Z-kg3O*EMhC`+B!FRD^QoC->(LpS>#EJ;^hlDWoF3O2x%ek+Rsc#r4fW z!87Y}D?3|qtH$l0%l;=X7{T}Xs#}jX^3{4#l)(-YH1BsVDY4O8xbOBD(-Y3>{(gek z1N$TKS(B>!$yGb6_0gYOqcJ2hA?wSJ5c2|=4=|a1EM*w2^e&2$ko9A;VgbG@M5364 zP04>y0s!xI(Ij%)=H}BT<^0ujnR#)l5LgE?< zOuGc|a6~W#YaYUeyOFPIkmeA0R^P>!$&@xQ;?XV{@k*LZQ$mTamy*aZVsrSi)f#ga zT~AsGywaFEeI?Dx&`f`nWWx&IW=NGxJ=h(oWKSp)Ow8yxd1PZ?u=IKiXkOVN7Ok=W z5EOcIv1kbXjd@={2vB(M9~Fi3k~CmFcA!w5?yJ3V>xnZ(Hfpt&JPak_%>h|ELt$S- zd}SyEE!}F(qGIgj1pi5~S8*anJSpM{?_0V~9Y~ja^R{d?=d6~tYmZ7Y&Pi4PENA3! zY4%FyHp~CumP8W&6mt{SdMmK+N44i(2#ElWh`xuyp~R-^AVSAB1`&|c zR%_ZBdnG$+?t2Ao|o$al@+cmPR z0-9vsPK{Y6+&&53IKFj!R#4qMUq~+9ce#Yc2b(t_KfW642ii*-)kp40PYZk8fqei{ zjcxCxBVvP)>%?4ZuK^ziu(@As7n*T#{~A7^(g>AYs;s!L!=6=cp4U_jPD{p#hBTF@ zvAz)76Dh^FQOx>S_74uc>a7s(s)4GpB?7l%*v25+YDEuK3y$2xOh3BS@8ITmlC1Nc zR2`a((z^6~$T}enR)7=SCQz4cy9I!ftJ&iSPw^@S$}v#Z@cI(4&ElaLq7@0`5-xy+!j#8+3F*A;yX6p z&5&3s&cJnQwkk=T2g|gFzpH~tpxELqW8oX!DV2sz3?;PjyuF5w8|D=*FqkWgM zo;|J|q)${$#Pfc|VguvyhI)QOo9Ad6B7bOm6ujul*>HS;ycetm>QGjWNZ<8uF(skk zL<)tURp5Oml|*!?)|INmPYNaIT)2`1wkn>M*sFG~&)pmZgr1Q~>{-%MI9+A2NOy;B zmu`w%ts%o~(R&wQdO}YqQ*>xAToi6A9oO~J9*D0~zhlR>BRnGGRl8J2)ud()t5%F) z0c7n7EfGUD?FpkE9u(+j=TRLb9|ku+Ej;TRB>ZM8?I7uA5p`P)bDhnVH&ytT*3fa9 z3}~lyF{8(Kuj*t>Ok#(BPGF7oe`6^` z<}M{{sOyFz?1Q0fWa#YJX0wq_1Wg$3*^f;OU9nzwikUB5K^3vt)|0W&wQ+hZJf2*^ z0ae{KzR9g5vi*2L?Rd+ByZh*dnBva>>A7%2>Ei%Q_ zqYpTZ;ODzl^X^bLBlsTQWlO$?8qt;fu(HdQ%U8<&!2Y4R9jSa0n+RLPNh=G}RCv?G zdXfEPLUb~#PV2X7e^K^5XA`-A2wJjX&L0A9KhgEnRdMfORQ(Yk47X?j*(ctxH6HpLyHTx`)-1=k*hG zMFAjs5gJmP{TcgeW0l+rkrBRnq!`N^3DXkVWmCUzkXhTHjEbSvF%;Y^V}Lp_SlYyi znAm^lA$B7pGZG^kpJ#?^f4!N}blsL}W(=3Us#_nhqd|%M+c?Cvp82bc&DR?k!u|EB z1*KQ@$`v-LBa(MOFUo!@@r-cf+2f4qR5RjNlN&BjjuSzKFAV)))H)ITh0hQS#~I@_ zKmn~IyIK8EkYYD6+=B5*6KRJ1@!|Hts`@2X)nUEN+Eqzb)n2w$b(QIQpqDB)Dp!eB z)uVw3-VArBP+fYul?szqMuoKz0%Ve!Wj-TR|7^<@34lRS(G2FO%3=mSBI0{jFe~@rI%{q)xszdCS zGdLA)sU3b0u{+|2Kj7ugrr4@Ja=-aw5yG&0?5}>AAO8GRGUI#U44WTrPAPty zV))^7x`Q9SaabFE_=zWJCjKja=uE@1B_f`eIxO$11-ntLwS1)Yl`#k|FDqIh`P%yv zqFo`7r2Rzcb8X4%aMsZQ`I_m-31_6_=Q9zAq#8PSXQ%u-<6!r(|VD)qIv^lbmuYi`tNRe+n zD9!dt;Z{d&5^gnNqZ}#tS2{Xq^8Cp9CYgNLUfbZ6gSXHQkb9J~g3*w(YBwp`Q^(Db zlE)!3rsA3crb4S)Wi?|v!G8SIt2p)4tJpd9fh&c1 zKo1ym{zA3b4`L#Y;posA?GeJ8M{L~JirZEsYkgl$I+2pXPy3}=zsYnQ9C2t=l7Xf_ zYPt&a4qTvURbrPVcH;dL{5N)Xacea449JX>-Q$jr^uK4lOVj?L=~8LouU9z3lITt~UG{e&hIqV(%nX{ZESi zZz-4EV)%Ud@D4|-{HGdTR^1mi)2&8u7?n>?D6$?LjO(py2jq5;N6H-zik85FHUbCA zmq_1Cv})XTu?(cbgVZKf-Jy47`4i@m^wMJr%;6OUKK8INg?uaYjY4-SkamXG%73nZesdrmM;OAWal`|74PHJN&8!3&Se=CoKD{0_OI& zxW%|bU&Ibn{x9Lh8lHEQ{q;QQHMGkdeqMp^Dndd6&y9t?OR!OBcor*o#_?Ojvsl4% zN_eq`XQ_PbY)lh?hVVK7?esoC8%5rGV)@`B38dh)Ocn;3&==LNokk$Wn@qta9w^L( zSD9C=;$gGE?Ycwy^!DS6bmlEYX%x!OFaqPL6Du(z71?gr?FvAna4pA7G@5m^3BN4e*MPC4)I%&C6ZEd`ocLs~e6Z+nI?8sfR)DoI+ceR~W zrFqS&VDrrJ$~w;ObU=Jp%F(-$5%5btwjN*v>-go4XqO0aIt#u_LG*ZF5VQPeE;%S@ zzVTVMtS09rZ?>%HUMI-`(8Dr1(Tuelx=dP)5!@zSECr7VXB|0<7j5}gT8zr1TQz)h znlu74rE;X~%~47GiFyC^N(HVO38ex`nSy3fp!`6tkR5*H+c0d3&lDG<@JzfdTIZCw zTi>lJ#)24^uQ`4kBnA~r)U88=5QUx1%yCDm(yLutnJeFCaXWw!7zof#PCMRih*BplZAh;*7b66R5pU!1<~PJ5w*o@5@vOtm?@w+<)RG9*xpoa%oy95 zPo)aZlcpu;wQjeX8!VBsp(ABp5W{rtMk9bnJseBrZ_HE>p@_=_Ck1zfEh8}D?0(Oy z%I7%Vvk{n2<*0bG$kZJ8nQ%OOGn$Q{h^f&NSUlEqU2+x64i4fMc=>a#k{}$6eEK~1 zD6Y*w+{xs*9-#Hz>ePP%@)(kj0JZg~)@b*Ef(6^dx zOYYUga^0<~Ji~qX+{y(OjITc;oIA%zHAY~lj6OVJkth6j#Ypg9w~kN^enN4*xRsym z4p(C%Uo+?2;`iI^XKq*JNBA>1`S)VO+B{e1?l;NO3y0DK{NNg2j3b1v2Z|5|P?xA> zS+agKd_N2i;~v__YWu~DI3EtSr?1>ca42e)!VreBX|mKGEk4uZ;m&LFz6fHuV^NO!`g@0KM50uFq`@Z-(hO3?xW;DzUE2c$pu+rUnN_X32svK3x^+ZA3{t* zk_M28Xy~KlZX+<5=ABjM{U@tz4Cln!?}ot*OtmDPv0u1JPSt~ zMU~&6+qpU!8Y;-!q9$Sz4H8^t99=s-W=M}8t+#uWn_Y^{C9>F$P3n=0+w$D zKA0~Fwf%Z$B-c}Q{jKs@K$&F5Is(vQb~|g~Etz@O7K8@%`e>G2y>a_1G9Tfvrq?yz zGguouc;C2Pw%X!mcX(DaVro76!C2Rg;Mc{zX?P53E(b&tf;mfjL7hqHaEj zzSX*j4r8YluR&%Ve=v^m2egq_)zOuA1Wq#VV6xmG0$mITFTIvqIZtt|^?usuSM&!k z&3+|Tk&&~}Unimn|Fjw!-?gNJ_nPTde`{X!xE@bP0wM(1or)8Ib<-T>(t}@hs38I1neN(^0-rmSGbpNsahrRj#QJ_4 zmm+7LjNr4hr-3GNyPh;7NW`tQC=L}ehJ7c;$54)``!0=wR{WQSooPFs7R6QY-8i1! zRb;E+A2Ws`TLu3ZFUJBiw4aGmqHgk7_uQlOEC-U*^)&<-9mJ|9rW2{$;E7VV?HkG+ z$S2UyIZdzy#1v2XO1uwm8?;D`CF^~rTU`RhyX{(b9@H0qfnaQSV32$o!5scN^i?Rr zZV$n)qBl~ESum-ydcyN5Ze*tgMF5S1f1DPv0ei#(!9!oS=zTm=F5*czYM<{`-*rjQ8NCXu1;@g&4sh01 zovz#WwR&5^pipQlVT!B%pwdMA0J zZ#hU!^jWzoqX8n=+yi4zK}^~niY8D{oz7;|Jm)UAzcIhwqT znQ5SJTes|NNo)Y#O|W|1qL@c_|DHPoVFRVdC|MdJt-f(dAM47@-Q+K%$u8h5A_{{v+`lS6w=J*FrZAA4! zzLQa^ok3}tgmpP6e*frJ^^A+WvT=xWfXef3k9ngr=8v5*zrd7Px4dVIliyQc39u>S zwj%;;E7VS#*p-`2fzjr#xi&}1vP|GiF&?-> z1M!nTSKA{T zlNMWN<6r1e&ryxoaD)~(Yt*404wExF-;fC_XyepzHha3=j`n#GCa&W zD3TMpVILTsC3CjZD*8d$@lmg{K7Z5(;!u7x@gtNSJAhZHh75bq!H-Ow#FUjdQ26omsu~VN)xFhQ4~yNbEOGMP(O5y*j2<7`)tA{DKU|h zuQLXyt=64`#W1Uefx%lE9$t1fZFx_VRp#8ttAcu-T;)(tj!@4@|ALn$10FnwxAl53 zf^NQB!)QBtsMg1^1KVR z{6fsf^mHaY8G-4{o!dVb$D`XN$B6ae4K@ibk_Tdg8lzQB@rsk{8&@m<)sIlj8OSl~ zl06QgVGP6&P`!1@-aU$dmJ4Ns M#yR+D;#ejU~t;#_>F6mm3%rL$9}ocJPTi@EJfs={%;975jNpX=Me7RFway62^<}qz)*u=1PKKoH-D2ia z8jhI8zr0(U#vLn8iXK))!=l9p#Z9H-c{z+KaV_2mo}xO38s*|>F+V^xd=NH>Gq?eg^y~9L><-m7o9J6 z?2X`qV5>Q6?|#Q)Md$~2JF5pqkh873zO!fI?jFcPOR$cdKoy)h|HyN>%N`l#Zl_`I zLc_kz(Xih&U3WPe_Ph9#!Yo}&?|hu;NB(<&DgBFIc290O6SyE$E8t)VP5~~k9N?UH z#`2C_%@Db9bBkVgE&I`&fA(q?xVnWIzB${eez0^gCrx&8*z9dWEwJ3sgeIqx@V&ZA z=ek7d%Bn07UU~(mX`dT`XXNehKwA+Ki7wlF1(4$3ohi0?@A*uNW0wcMxLtnVW6iCx zYHJL;vm$E~c%w%P5hh(5VY$dKY*)^~e79B|0!bb$rK&N-Hs=t(rSS@XYld-~*lQ#<79wpaFM&ldF)SVbCyKk2d~zQc{0Fz)6b9YW zs+@-+3ZqoP$6B}gOiYc z@~<)j&l?~p#~A;WqF#(OViZooxiDuN=MqWG2<)$Lj*(I5t(9v=>~nS~v68=l^DOl| z`LJi;6G|xQY}Q-*+p|8tn~hO$w z6=%u_azMvn#gqcQ2OB}z&K#y|1mss#sLI-8DUG^f2_+4&%N{ZnR;%>ihunw<)M2%XUvSU{1I$<$aMyw9v)P zkq-r?Nba#qk_TM?F#$%t0z;pH8NopU^nv`T2z5;wcAz`NBNrZ=p{MRQcVYWV>QG_0 z{_N9~~!mCH;yJ5jcX1Tnj)J3ABO-Ii?G&ploU3Uue2Z$rRp{W%usxJtE_FMo!OS zB~whKgq_O_Ps_H?`gdTs1L|I6rB#xgeVV944cj`mmv$kUc>9$7{Mkd^?F|uUWFJj~&UJ<3mtx&pDa2vjk_yn`ltq(Wq?EeC6(!JB0gy7>`Z2|L1hy zWQnQpdb;;i!Z;-2DY!$Pl?Ab*orS_R0p>G`gat$nQJ*CPI06Y#X7*yr=}0#A8txT} ztk%_cmEffeP-B-sU-rf7TzAO(VIgKX4C3AZ0zu*~HK2W1kb0N;eeP1fqb)W{8M6Dx z@a5Rw3M!1d5K1;wqAxt(4Y7bxAETr+=k9lg??Ns_-~Pu!=hD-q{G2O4VFj@>oiU~| zgZT$037_0u2dipOBK5w`57t`r-ko%ZDD`R&IfK{A=w(t71C!=j1rndvhuAj2pg-kE zaUDN0_z~(7n}jS?zwA!V4^eBM`Gcde$^;4;(O7F=Av&b&D_>9`gTk;`O>Z1!IrEUZ zl9~<>X>C0|&4iqMk(ZWX9spSJ<-s~mXeM{)6Bc?Qv50A}EDM&Z*Yt6f5u6W9U{el#=7PZJyC4#Z6sUdOVu$k8OH|vATlyYbRL5X{sGc~- z{F*;G2lk z*=C*ktyWXs5|Rne-X=#Gg$d`A0wX9ay8{crs{Qx2TE&-Pq6l&Agh_HQwQ%NPtE|** zTe5UF#-#a~$8soUi3e=1^kE&;Ai-~D9;kjq?vyqpL?ks@eYvs2B>sx};iX19(`Pju z%Zmc(!SUxpjwbE}-K}GJ9?MWujbfUA5r+7`;k~O~5m3X1K6x;LqeaV+6gP%1%WCc| z%~oxT7E#*n{97>MFnE2vCUt)7`!zDe6UCzP9{ zVQP`A7gViMi2Vp^Sd||;&t=mWr?E&`3HQ!*pJp2w?Dv)7Qb(XOWwb&kod5s%iEOC<5qTz_k7!Ee;EP$ft)jh#GxhGh>UTz8= zCN~A;r?SRudQRqDX7sOxYR;Rs<#16te$7aY-{F5@ZlR@DAyo-a>t8CdwbF>_o%fDJ>$*jU+N$>saQo*F+tJ{oAkUXwQFFUO zkj(_GKcM2pUXlJedx;0CD(B#6KlE)m^iT7SFtwv|b3>l5KdZ{$V$2%(gNOpkrCQDw$`FJHIc-$vK_` zh}~Gd;nJL>&qcJuMj*yKagh)Q15V5z;U^T?IzGGFHEU40w@@@myIj^DYI*KU+>|9K zOt!?jKw)dPeteRG@Xf5rRxZ~zj>@AEaAPw(*+gMz-Xe94iz+2l$xo?rxXtqpcIYWu z+!LBShClX8zBipmZSRjI`G2jo@IM|CFXIt7F*Q#1$m zl_587uN6NcjR`bUzFSB0MpRjGBV}_BvUY3c~s)CJx)Y=pG~aBdE|L4)&C>M6w3QoBUx2z5Jb` z-tnSlDZ2NxaOGZ8=$`E!-{j%Be+hDwasV|g+i^5f@-;Q1zoSVeM%I{@8x$-iE!Wo= z!RaVIteThA3yujU%1a1+x5iM$hG}r_iMRNSwAhbQFq8aG_#5}7v-c+5Z-a&G03j2i zThEr*xheaV)HnTe@^qe*f&Xxj`k7$xpYPhIn31gC^uo-{Y03`Me^XwX?}Jzrk+w3) zpCfMX4reX6g=vNJF|%g)64t}}-u*n`%dsS_%8zm4zlxihd(wTqJ>gRlMyNcmCpHt0 zR%AJxGpp)7k*vDIkJq+6IeIT%Q?VFoO&fo8+STb+@b9_e##f*grkt~Q!We&@@T7UZ z!HoHW<3xxqx$-?Fqkepv?4!G^qi++xnC9qUUUH{@CgA{m-EkE1=V52hBswd-mz~&0 zo98jFGLmu=HS2z6Rc3jx8Acdo`S!QAHMA%VG1n26knCbvR=@RPt;rn3i*V~jt1+Zo zC0^haCL%7k2>Qw4Xy!l>-+6PAkF=^o*X6q#M;FM(CCi@H)(4^r8+$& z2<6@%MSJWRfNB7UD`>=dvb_#{gJK5(bc|r~l5|EJ3Q`Wt`tYKL)VXn(pjYJEJZH)} zly6mh0W*9lyV{s-s3P2g+q73j;uxRp{}OD!VTSOJX&kdnhHUz;Y)Qvkg{f&Lzel|`0uhPlnZa9 z?20_KGm7RV3tHA?y{yXzueaA_h@L7~Vwknq$aC1pC+3-r=Cfs@W>!DuK@y8QC` zd|N;7bbUUppBHwvek1yMQD@JuRnLF@dM=}WyY>8U`I+L!63ts&&S2wQYbuUqe9bUg);@CCK>I^YY3=z0oH zsRz|}$Uk0ZXeHq?U z(I{*g=2>JI4|f>EJi{qnvxqQKPehmuYx$!|BFrLT<=hBM|H%^u`El7Wk60{`vTp|~ zN#?=TN|MPPC0qL@>oUK%az|&YU0_^x#mni~;4{2KJ>lz=L_y9E=WHp{_Z#HV@<)$_ z`H6!51Pxm6y^eIZK3c~60&}FSyoY8lRSRsfhr}9>&r)I!7f&CN2mo62In?@TkrsV= zJNqa*cx*r9>e$OxzxS~~M#|nWj!(17e#ao;x+40>sYhE~$us=ek@R5PRbP?Ku_~Qt zuQW6yhy8OwYiNv+g7L9?C4k?95L~-Jc}i-5gw* zro)9V!CSxVew?vRH2=foR?osIK7LQ?lV_tE+Y&S=tulA%r@1aTOi-Hpo;-@AL zRp4gNO}TY>L4k4~UA~Pj$9I?cR_wTWW^DtC=H!{OZpisR}-*mR7L8i%KqPPT!&Hr!_1diCZr!|JROxEBX4vGI`03`nXa_!U|&gx@> zF}$j6Qo_kUF*oh+|A;;_URgnA;1X9hNC7PBud*tMXG0u#+4Jy(%{N^Y+1_K_k#QW^ zJNAC!SeUNu1bYk5`k+99Gn=k4*~Fi2T~1`a*%L*kTYQZch-cYHts-&t6krF4;dS-jOBY=6SKYR)uQ|o7tb%$DbZk#hYm${ zj$z*G=#<>TYtAttr@HKG`&2xhk{D04X?DLu!S40dJrx|M%bbc!{66dF^*U1(xg&6m zq=+~LJ2-n9eA_Ra(qBdYjvVXl6C)97$Db%lA%d@8L|J+G;#@ZTa3w?YDJpHA=g-eD9?8!@9N_JGIFK zqwtVY+cEVG0|-HeNJiYPQHV*YILJ2m_1F7!bR>;iWx5CZMIXUh;6okZ?*|czB%6sj zyiTy;E#`}W?md++GGcO1MY4{)-{BX}_miV3iLc%7Q`r||mt!I-4`--ol^JH}ta2dr z9Tyu#abZ%i2qnG)V;nf#T#!^;(3!+{GadwqOYk}*j#6F{@)PuQ7SK$Ho;s=%d(F4( z8d()ShqJ<&XKyq^oH|9y{w3pxry3?#8MB>xfU26BYWTWs@V!L7n51~EnsI;Wb((J? znG;e^v(7$djQc_)psr%kiJ^UCv1!EQD1E4$vD6JiscKL$|my+pVK7mHXH40GPS4ynG74+Q(a zCg;4osXUo%>x~gyMP)&Y+8mAG!5o!Dd-4Yt>eSYKk5-0Wx`yr;Y*g&4VBzJdg;*Cf zl7iew7VQ4+XO1yKcN0EFk7IU$Ot~Bji22<5>_dH|DlymbZ&a=BSR z%*3mJm%;kV(2|R(Y6RX<<59w@zSd$@KBELy?K|oStxU4K85Ow%q>&>}sTh5%u4+^> zuO*;(aXn&vI^og7vx}_nKTs#U=im(vsjRXo#@mzMUZTyFJaYgR;X+94ZW35+1SM77 zu^X+ckZi^Z8AgB{1dOHRuhaw!6CPApu&Q1WK?U=$q5!ei2Pg7+bOwK{)vLsySS4eI zrD?;(*O#)SgqD8*cG+yhiu#>ErtT1q{3MGCM`YrVhPx;}*2NvV6vN_}0$y@#7hSc4 z*_D&PLLModDXE!K%F3m>u`oE7wkqnzkp4^vhi~q1P!P_yu_`;Vm?^7)v%Q&eM%+v} z12g66BASYs^4;4-mtov5$wWv6$%nXVjoqbP822CM@KJ>8!Gj!GnB!^e*dfOqo-~cvb2 z&D^nR;)IcGrC-WnLR!sSlXL%?x$d+@bNGqFGHj_5O&%|0@+kI_^Rfxi-(HE-l#E}@ zF$JvVUe`DRO|rZ+HZNIT%KZWE9M0YRJE@u~FP*ZboxFs8h(YaV@sQ?hG}HtTYmI}_ zbUxXtZg4Vg z?j0J+i*dPdwoIB4Sf_xlZn7%9wzHrd5j*=OSKF|MNl=`=Xa9s);KDEPN#0PWJ4)k| z1D<}D?PHB|ro*Px?m%SL_j{CwY$XE{g>lw8#?+Yu;^|b5?*qpv=H1PA1Z`U-JP~!a zqoMcXSx4$@y!HY1Hh{Svv-_Kt^_`I8Cv3+9?@-$@q2HOJQ+q;B+&shOXd}bQcn9~5 zr`(NIiu&V?-5vA8kW%!wRLT{0)#kZ>Zh0E=LOAQ(--_EECrlXS`lkOV4kIN;Q6`xf zi6?<%nl)5@y58g3-YV9J_ScJK`EFN$0_6v}NKaj#*9WzU{MTdD6dTUW*?JQ846MIu zeGafLo2sT5;lOt0HAACHor;mHsXqXYtzMS^J7#4Y2-lLwooO?G}-MRnyUnFCx-w8~m&DFPH+c7bP*pt}A7+gY&A5 zxUwm$F6x7?2LR0J$|B5|b)pz_J(B;Kc-d*TL03*QZ9S*rOr_>*<7k;~3wR>HU(ETo z>~*elDdzXp(0StA7Y~m-Av!r3ij=+n(=bHagh@%;;KbBM6wXw0O(O+5E*wB~-9AHSdWpUNYh2n`GVCCl{JA7ad;ehPnu20=%0Ce`#V{-C-Fu0!Q{a2zJgW-X3AAycYb187>lr1F3Kt0HBW|CoZ} z8xWlYQ8u=Dsvutm7M-g z&zlf^Yo%a2fHk0n2(Aj`H1|1v#3_Ztm&XY}~{#B=Cz>xMWzivJt&k9MSV*?xX{gE`sXLzl+q z=coO2(R7Lu^8+J4C*9E6i8{W?eye-$%)p+4UsUGl1Y zbVIq`aJVVgBjZL3??v=<+V{uF9qd`O5gp22$y{g;mOEh@Tl9d4mLSXR{8 zlLN6ADRXj)J!BLZ`4^zW;h%g)*+UK(f<5Hg-zx7FfF5N7ty0ni(D1dl!&PDzouIkE zxX6g33HYdtB#(b5Mv_)9;=91l5yDupRQ%c`s*&1{Y6tV;YY~IfavwS`Cu| z!jdP%eQj-Z*~W9Zqpz(lqoeYii%T8J2fMyeA_&aacTn`7V&w>DEx8Q;-|)=r1b?m! zJuSDBE9T)rR)^-~8w;yyD(XfTg@b|;z7<#0oqIyUNHDGdXC-wgtBA03D?lgCN^9mQXCg#pM#Wf?Z zi_xn}&ULTQ5H!8Qrj=&h|CNHk8;8L19V|k$a%1CcIh=bz;*s|o>*bGSg{A6S{<$27 zi$2wrs!E?KK%aVUv(l$Ny-4_UT%Y<%ezwu4QY;Pa=LhbZRqOD9`V9EMJ&&iz6V7>K zYgF$N5@*Ub*2-C!b<$YHbG@g8d#G!ZJ;40%pK;G{nxsM$x&f@`0&RP#SZ`P z_WjFAnf0>!|7-tBA7rt1rmv}WGQiqCslC2dVC!q3IOChn^i3WH=Q{Y`kPiM2c&sh{ z#l&L=)XFWqP*Zao`W(KmUmN;tjdVnx&(eePJ5cnwXQQIe4=-?5NIUvmoOlF%9{5pv z`uunF<)2%i>31|uDf;C=t?%})6#X6~%_r#haQWGWej`~|%yID3Q}EOLmt_2?`T6(y z`WctEpP#tC9?7~~!0Aw5SNh9%O@iBD0@iuQ_DmCUxIheAc)wF7ehV94g&k5nTA7OQ z5BS2GaLX^4f5v|%o0YBS9a|0Wk?p*j@32@t=d)t{aWZ(OTrKa%Yg!$Sd!x4F7x`)4 zuK2^Rl0-&Xg|i*xRS5KpAJNE*>wEv!o@4J`w7BGRf>pLoh<-D6A1bcB|2Wo?q-1AO zr-3?3zg6?YBI#`X6j%!<>Z#e^ktQ+K#7!Ob_N>JFllCsfNU|OipPc&)!T$rdb$tB7 z13o+#@?od#Yn|{%Eur>Ew22pob0D3ppR4xJPJXQ~bn72G^i1yNtaUpK=7i{!Pqnnr zmY+*}=3lf25cPS72|Yy04r=YkLHQBvBuV;TDDk|PdfqkVx$zIhuMv<7*bpoG*J=n@2)6%XAujFECb@z!rozebS&Ga|x3-$fVZ@HNEnfbK zn?aI`)i}a?eUG%-5%Tdvjs__55%z46+%aUR;=81v|q)+DsIy)mG!x z;yu$zcp$E-ePh%YMYM**Cw0^-$ za-w#T$c2*sId+Cewl0;}98kS$3-$ebBOu8RQ4l|h=QDSQD%Tcp2md4XP$jSvUctGMn8fa;(4^FV)*vd6wmF%R5pvazw_uRKfm@}fmU5hW(Jl< z6neX|F~-+J%6!w*`5iUYSk)vQ3gcH%jUv_cBDx(@yc-SeJJ#l@9v+e7bG0XOMSa}9 z#4Xy@;qn6i#xBKcFclhiHMrB?)>DV&Sll%KRV24BeQN>sz$9Q_*hyN-bOflBVJm*X zey(Grvk0`?q~fh5iw8iPz7O-&al&H?*b;Lu#sT2GL=|IWjFdd`b-pS(O&48Ck+Dw~ zmFgmL?Ua0fnSODwE^;H@m3ygZwmTwqj{E-B$R&AlqEUQaRy>4Xjuy z`y}yimuAXm&x)lIB|wry$f{G3RF&^|fM5E22TtPneHeiod5erQp@xQNhJRDH(DI${ zH!q*)JKDdC`)ObE20LN4KoQA(dk<z#llVQ8bdD7&cX)MBLh<_maMyB`W-xs>@v#f-Dsw&u zQQiamyE1%7nErj)(@F>xAa4~*Clna|L&Q>`3r~m__68!ma43cD&^EV!W6NY?>v~?E zY)r}8|BL>x)UABqN{)rNy#2#SW6q$l^7opt*^`aSzT*EF^|w=R8=re88!?)hyl=9x ze#>NI!!F9+rR*&}zogDaK7ZmjbtnHwo$sl$gR-@hedH#~ZMAE)?>-7XrSdvHH|duq z)6sew*+3&P%C3KlH>Z5a!zMmI(Um8EKqV?{c#ldvyZ()H5-n|Qpi5d@Po)jK5c_m; zg)!%o=z)-L`{DQbJbCzu@lPIUTsLSx`FqWNnUjr)GJgJ_2oC=Dc=$sC`v3oU7z{-u z@UX@vgPhM49^QB40cL(m|6AqnZ*I*4Jgxz5wfOvjPnlEZcKsJ17?e!J@ zU2~0FB-DLH?XEOFrm{Qry;zSTT|>~@hTwjIpa2M{+6vR3e!aZIONKwlPvhmxsj(t? z#zW(lyC_o6d+}TZm2l?sv0jwaNL|0&bT$@do&aa=CKoG2rHb?&t2?eEC@~ZLXFdeM z3#8+}{z;+l3xENAlXZ<5c8$MCji9dawysgBYn)@(cvNak(lwUo8i(l`L+u(*NR0|z z;~8BeP1opU*LYHD9HMI+rE7fgqk?oR9|GxpQsd`)6r@M!8n5XZZ`(B0W49?K1)})53V=r zV$!}!S&P&-*DP)!qQ=hc1WTPhqcT+WAtoa;GAf4n-Ot<)ZuX^d>B>i!K5aCvyN< z{QKt4C|Q-6pB9_0lZKYG@91QR20d^Z-y$b!&{hFAu|1x~vcmc|HGgg8N{ ztL1Le7FS35_jdbN6#BpFR*8;SMcS-}?=vd=o4ZvsHx~Fj9+9kEKX@)4-03^`c+;K!rpNf_3Qy=`kK`Cx zZV|97E!v6@rpB2qWbEIE7zruc<5W==>~RWP>v)_8=qL6#6%IV<1YB(_1V2I2nW3$X z#NVUO3}UuskByAL^RmIs1!H&mc8}|wY2`A*ae1rKSa`tX%201U&rRpcnHlmeL%wCo zw=VJxFNIZ^2!+|aKlN?Xwa@UM$UxlbtKI4K?jeYFEd|EB8z7Ofk<6~9Yx%TXzKk?o ztBiRUiTD#K=it4;Y=~x>4^s+pTrST%TQ(FqqqO! zn04+CHRhK)9&>4YK4rYlaGfz`@FiOfmM=N>So378@2Rnl6#+JNtiCp5ou|fnsU9ol za2abCJys;-yYyHIWW$jfQTD~_7KSKfes_Jt#y+{S?eH^wne0tQRf|mSD|6+0<;RQo z5G}yCeWhxC#PijWoDa~wLkF19a_VR*;kAn zzO_DOy#Q}cSN@#c742l=YW{Bm^qi6WIeTOt4?JDv@7Z1RlOB6U7O3Y%l0gw+bf0gL zUX$CJ8`8apQ9o1K^hld%L&n7A{Qm~8WJq#w&9RX_V?F8bIP$Wwuqzp_ zCWkUW9LU)>_50}k)bj6PAwA3&JMBVC|J+9D%8inlYR50CWWjPx=!TKZ8V zmVP|*oDsjrOflkH88J(^QsgcfuNrQq40mhvAF@0YhqLDkOy-Q1IT#H(We_O?5Im1o zQ#6_>ia%}-_#%xR)*|*ZHAm8@M;aB#1?n~sdt7V0hYPf0Bg4ko@hXg$g?VNq0REmc zC$$|bM=CujSxk?b6iGqwpRKp_oh&()+pv*sm)ls6>y2s0!`^yV)*Z+P9KP;%7O!Lbv3#m9d(cD>cr!E0`b z5B^lmYi<`_a~Nu0)(daa+GfRVE@$s_H*Cz%?4}NO1Bta` zH~o!yjWS;iRz_$1MmBdwBynT@vk|G;WI)5_wH?r{ZD&&^QO#zyGn+Z~Y%;p!*$m)6 zkTSZl&gc@;S=%BuXJg*E%!SOTJw~P!=|QFx>PVi_CMq9v>Gf#jLzMVkzoSbfxVUOK11!`f~R7in(j;9-3jv5Fuzcn^TnT>M=_L7tfeIk{ol#OI9L(>Z4v=~!~TdCEB; zZrSzikEQ+K&Hd7r4ngp?0uSRoJ&X)-Zn+BuoeWt$l}IWpIC!bX>DKMqHtl#+q{t(V zj&+KKiga9%TVahWL^yGdrV?rrTI5U;dapAL&pO1}!#%G0IpkKzI`l=SjUw9MPA67) z{I^GPtQUKp=jrk1KW;&fyN`Cfzm>y{>seda3~uMUy10z_KI-Q7mQt0iM|bGxi;@_P zR$f){D~X9dx4=R(X0IkP+?)dIX1-%MZ>DK=46qwvlipV{{-~Uf5OG019Qi=>bJKrn zI_Z=AbMsq$`!|m%=t3OaNY?UCIB(^$IM-++S=I4qnRomEUJeN4q$vqdd&ws03({Vw z1-{_l*sWajwH6}HRa%#80L8BxcthT-Bwh_iH_O}KLDFSJ!c2Xjpx zVq-tDO1H@|+K55bp<@X7rO)V$;0U2R6(*5vqI|cCm*C5G1m6~kX~yi5wWyTqo1x4> zi8H@!{f?U)&cVIxoafe2i#!Bc=PEDKNO;-*9 z*9v&isR|NR{Xx6>=~A8l@r1pkkpFQ-99N)W6Qg1eF)H>{RvN>$h;*|pA|Nmh{UN4n zg>l>dG;ckA55}8i48Jwnh2L@gGHwr(_)yIf%z*3L10}9TKZxpgn;@#Ygs48ePeqQ1 z9xQsapTqpX2Jj*A9|Hdp#E3>#g}tBo4y6QESTgly8X8GLy~D;ERSF|=iLvpxs0~ee8&{=c}o0dQXijPa zGW<$WEjsj<7x?O8M#%SCI-Z6Ks^`sMmVIQKRWOFjHcbSoMQB7CvlDqE>TQLm~ zT0joZWY!t4Bv4A}zOz9|-@B&|i_@F2u(-Ug$XIwoW_jK9>3nAMnZaicpUCuTfCzf; zP5np#Evm2#sx8p(nma%CAa>TaN{-s1u{9uRTRx9r7CDiWpXYMI9VF#-;=%a}Jy z>UA(Kks}$GC^YU+i|7Q!%`zDymTR%(IgvV^OA$-71bDrO70)T5l40(*|9NXb$~Vp!6EBTFR!SF%(R;IB?d1$<7X zbl@pM@?P#e%#&U(kSF##W1)h-4i6<{txZ$6vPKw6OFE%$*b!9N)%X(Ic>-SOt{)5) zao6$bFoNP;9EO zEyA5nwz*TF-eb78OTzg64iubAYd4Tw+0Yg)#0`YY zdawBX3DNHn;o3jPe zCV@{^S)ut;eE(4Kf!v|JX5`Ym=hBPow;9i#p6AUL>|9l1&{)~_WwytPCwzULk3NX+>VGIU+61ZYeC^jUd|xVR!Y5MxA7BDPHqz z`nC$=S;I>R$X08h^h8D}yUp1|X}cxOm6kRxJi?OD&5FFL!-FK2v31t-`S5OJfGvsP zTdz%F;3AqxZe+DvuX=@k(ky=t`M*MqPRre^!%s@fu`2{<@}POdccrD*t9ev5jp}vo z@KSk>QSoz1ct2eU0!H9LektdrTV&Yo$O!JTergU8UxqH^p4{|IK02ss+Z}pHs>py& z4~_U%jn#OzheqnqVFvKEJt|S>JwuHImO`J3a1s7{9SC$ss)%^#m#+Zqo?kgAJB~ji z_!q9x;^?ED_-r@$_Upm+*9^Wtlga#mUj40^-fPJ~=AF&$ z6CNg|x+)Nwlob$;Sj)gydg*kelx!5^9LOf7d zm6MMXnwNL;9TGE~{JKGI6YQ4sOgABBG)~`29dFN?lj--&^c&w%QoO9`7r)f=aSLlg z&qr4Y0+7OTF>tv=C=s_kf}-yEI|9kMh)`|$Rg(S;<0CJzl0$`dF03+MK8Z6&r8~_3 zjNzXa$((LBY(%ci{p1)y_-Zpt#L9}uxscJ9LPou8GOB2XvW&`gQ869As&#?^kMmOW zDhf`EjF@3AaxDFxL$_5&ju}(!`q{WeGP}GYQtINleA5zW{QOD8FOSPI{6Y)ZS25dM zzZ$Qa7&f{oc+^a7VmpuV<@If8!5!Wv|Lz*^!L_^7XimGXA(PU48U?YJIZs$DLwiLY z#}=q-~b7<6-DJhL4m6P7nt|c{8^*~ zk$}b+FBb)O_y)$lPo@7v|3Le`K>MAB)|;1rlo!8=y`+8>E9%=K8%)0Rin`d;b8!xgZ0<~BO zqf0jaFbV^5LDrkME>vgx*jY$}a z3|qcigM8<3-?%HQ5MX>gIs1j?jSd4iiTy%@s~{H+kS+0vg~CmYiDScg!8d#bv8`(PC-9%tfABr; zdjj*f8fI^=BzS}G`M!?5AO(5AgWs=S{?B}-m;W)qC|VkeUxqW|aO828`(y@o%O4b!GXq&>Ftm^jm1Yv=j6${)3Ty0U1Vjp-- z#uZnx+uH{uGX~?UmSH9jCq*jT{unGgNRKksl&dc+agikM6G?xK4HixshA;cnzM%}h zyYMrjo>8?N)3|G`5fH-?Z>tyYJoxv+D(MSO8VSBHms}uo&del2cphzpv_l zit4}3eu3L{eMNA!_XFvAptEBPNbUL+EzhL%9~bDs@U&CPoBtneX96EpbvFD=76=f$ z5fMQVf}#=;C5l1>g^>)*)ET4#YTK7$U2xyR42u$&FcZk_IDl1K+V^dx_N}G1wpc5h z3kgdCxDZeQr4>*M_cAKr0!hH+`#KWA8K!py>wlNr znQDL2v*nhrE_Q9sZ($X6#;Rjxj@^&$2suSxU)oGxmr7rIN0P>Snm%hyZ)r=f*pz~! z>yU=xD?%M4Bz^EAJ6L|K*zNogY37reOEz>P_XJ1+WI3xi+ z_LrEbU5MA9P`+iCY0*OgpWrYP%}rD@MK3BUw{UeGzmC1a6?dqZ!9_kg;YW`WIVyD& z@0>P5Ml6NTxU>&-n??N0aJkJ#vL!*=kK{^%Xcmv;(cf$|fe^v&EZs(QB_krr*qC(r z3o$flghxJ;XY|?5@)aMM)|JE)KJd`I+oV*y6lJ>B9P@d=#)_T58cZt54~hHRn#dki8J5ga8!p z{xT`*MC99qFR(HH(=)?--(CXrNpU^GqeG~|>GcFk&3lwT6CZ_Z>}V$eYTgW0Z{_8pS>`q`XQ03>>)?-z{(IU9EgEvE^?=RGgLy;c@5G@e>yb%M zUQ}?xrKgO4Xs#}LvM!nQ34S_16JMlH4(ohrI_vyW`8HcM=9k9WQ7Dt%sRj`XsPp>< z&hLP$HbqacOwS_nmm8xb8~EU)lc>KwZi3C);>> zYu`VG_6Jn{=_+bX8j|PiIfpBk@(fldI@yKFTP#20STNCAs$u*7M+rV#IjgL z(Asx+%?bkHHPxI6`i<8uUu0vQdOVsv zKRbArGhbfg^-bPYm(dLWh0${HuDMGeVN<=w4vM3UYHOsox-rx1TIVZ%&sfx#CJ}VK zAm!ny`{S3motjJfyBHCvJ@m)ae(=`TO20;2N)&Cr@ENcB`-9^e(uU={*2B`*SW&Gi zDWW!Wll?0`!)i6Hj}=v`>3p-{t@hqtPnSyiXZj)=G85C_Y)BWKXH`j#*W8-;A%Ffa z`s*#;X)GGsMV3+aS|pTiP@%3r)zRhf+bZMZe{NP+?dw=~Fn3GQW~@`fjk(4G808u6 z)treLZpDZU>oyDg=+xYuM9WMr%Kc?!M)Nl(jjM-K;w+YfYROIMAGHis^=e?l5k zVU+R98h7qtqvHEKdn09)8HPEAWE*-X{>a)$(@g_`oafd*;=fLm*8O{4iJU9Yo_|?gQvCoq=-@HK$pLF;r2cZsh*fl66 z^Z8^q-{KNI-ZhgPv=3r=N1C@p8ncZB!-Ryv9hqvX`_H|uFPc9ZaZj*=v7#zce@AQ* zo3e4h3`5qqY|3@H=A^}mJiXM!bKImQ{#eGEvt{|k%a+r4mG$8h;K|!J;a_Swv|^=a z!H7YarPTTh35Z%&=`G&sHO4hSPmc5zf9*4F_}bhR*^9~f(Lf!Xan0P0 ziSy-6pCkrUSbZ?u9Dyq$ep#E*5{Z25qVYM`Va0x}H>UA#>;=IrxO?-)o)%D67XX^I z5jU!;OX}P8eCyA8L0PZciAmw|h_>@Tb zw`>80l$VkKDG#!LL&8C(#)9!e&!r<&`+MZ1UW=pq*00^^uZ3sR`t_vr*EgQ@+MoXV zmXlt~2dTF2Z~NLC8*Ka8;xSIsNc{j~!H-pmYHwCxDFO>q4%s5Mn^7^D7pg>*y^7gK zs(?M0j8qHX(Ro1}t$X(pIkYZqME|ARz*R$~vEWXs75kEwhNh5n(mpX3yshd?+bi}a za^$QUq|Yju-IlY8g**rO!pVzFbiq~+mX&a8Cl;AnV7Dq2e3{2@P9t=&aIt3X*& zN`Y2${(KvlV?E1{XJm-E>N-Fx{rEhVr#A^sNFH^Ko(C?`Tt_48N-UdDY z_c?ttjEX4FmAzf|+%~;wje)`PcYM%OG{z=9E{J#+i1@`w{Y)b&%$P|1Ek?yb7FLbt z#hJGFfu^r|ksp_8TXp#BR6`oom$XIoU&i2p=A*p!`qi>l`wwjr4~{7pBNYjfhSRkEJ6Ps7az+dV}P7X@$oKn;iQD3stf4A z)LPH-!87rgiN2WHiMR`aWck2)k6Ep#vj4&;Of`FRB42q1ttGO|-sLS@*nUP0lB^>P z6-`Jm)Cnu1(nO5F@}5e)twi8S021bWp(Ndr5i2sVEh33!4YG~UXZB0-5NoMOzK=A5 ziiF&iZ?_u@CFu^2xQcIO1k|@*gy4SeuwQKRxg2#5rv@`Ml7pF4hLO&U=_NzAm(T2u zZTjFe9Xv-hJEyM#ml)sz>K7qof;$q#06%7JTg;G(%g$rg%pFL7OVaur?5X-Yr?-MP zh^mq5=aB@f;h6Q`i;`cWoEq<1{fwxw;Ey{%r_hj?C5#hiHl+T8-r8z*7oIbBSr2~Y z$~cvC@h_gh(ig&%b(51wX5P~Gl+}8o#5+!F!-`i3;xZT=R zDJwDO%2fNg_`kDy+=MPWYdYuLRQ^phs75qRLh`5Hgc*dI#_dEQ_WeKlE@?> zjL*4QBsvJcQ*@V5`xv)wgDJ8j<}Pwh0Qh$8x<{j}Cp@%|=!E_LvlNNrjHZAKfA7-nH{Zes~ zH>%BwrE>o)&F?({lt?vw0T(1m zS8xFRp<8AfeuvXP)jim~J4-)@+A8q74tve4qAEExwNxm{KUDG^{GZ19BC{zFLgq|w zEeELti@7pGJWzgUpT+d1^rxT9VQGtm#zn4EG^yl_8woy46}?-EDy?Uu;vHUy9^k7c zhhvRA6i>?!c9*PPzt+YrC0_J=Q4A3+P!y*TBF{@zbuLw**&TY?{wd#rCX(9QM#T@= z7%W@-exbpA9-v@f@ka`UgOS9oX`2P6nKGnkty#C z{cRmwTj)?npoW|(Hc}M0dwFYBZqf>guv#)69VI-&WP5q#@n#u+Z~3Qn6!V%d52H%2 z`Sd9D6ZfhH6t~=ODkd|mwF^^hbQPM+D4Y~F3MVf%3h!KM6h5%rC=9`9FRSy$a(*IR zQ{4A@Z(MP1pqUSQ!9V-76lAt-+RbuWO$a4sp*=gcbd|MMg#N7D6O=Jm z;2p6$ zE8;OPNH1mGpSMu3&_X3W^D60?w?%pe%2=py&q8nyXJeZFp0+JHPh@9Osb4Bhlbs=4 zl8XHcMYd!_AEIB8k2;E32|UI5MVrB=#!5mCk60+KK#I47j@Z{zrZx27PilQ|Vs5+W z(*az3Cgkd3?IO>UI5mO!#S)_O(zc}Dps@a>gc02)RYtzaFYUuIIKW%{ zh7m#WLyr1a7(PU~n~aDhdkoh{@kwCnLudhY3=Y6fD{a1*-|WF9CL$m{k!$lYncu^{ z!mrt-9gTVS2^8DY=XXfHIphgrMKIrG2A^PlgZY^xnBQQ2776Azn4e98`3>ghkYIj; z`5j0wzrp;DB$!_W^TqFlUQ}$MG+e>nQn(`3%LF~3m$}nmc)V}FAy4reu(I3Ytv-mA z-8xob?zHp48NrkDjmYPe2O;_C1Vk|8ev>$-JXFPA&ua&Z!~~1PPKiZg3X8-P7Gct` zP!l$NWPkn9b&dy-Qy>wk*B^r_|2o*m9r+iOayIOeyqAi$BYz(qt?sF@u8F0=n{t& z+R$CS|MaA<+4TL1Rl`6rEt5G87lyVF|_BLL`N!#7!Eng?5 zAMw#Be(&v|O+k=~9$hbHAM7M$khE6D$o$aCTFwFl4?Y|77MNQiANA(Y4s|(-_TlN? zn0HvBuOu-qCwY0%c2QGw+{?!E@Lf?oV5-^6sj4aA2RtrP*M}t)oFj#oi0i# zsa+yUYE*=d+VC_yg_#=NLr3jm6Ens=3B2YuCkCe#NZRtKPeVkjp5|z(VFrI#%#F{T z*;Z4n6~ANxQJ`*-C4Wy^TvA3yJ2?>gJ~uQ~e((Ss<_7|H37nLo?bZiZe5GP02|ezO zg_c2Q8qxn&4`md=fcbrEj8I|RG~#7T@Gt$9R_)`!{L`}>m>s%uV0MRYMe$syN)9?j ztlkdigX=#hiPXX5-lC($+4X{6@te^nxiZiF11s}yZmA)Gv*etP`V9vl9Z);97bS{z zGku@ZP6BO90Qm`kFbQJse<97T))q)z&#S+Pq9~(a%E;0 z2S+#-5%FvOGCyTPd27DdFiyT8KO-_TFC*B~7kRaR-7wmb(9F^PyRe~@<=(~ImAWKK zysJAwD@}ipscN>ao+YlcgEx{@|Dv!&o2`p<)=09-p3_;~b=D>Fy6L|+A=e?4Xl<2H8?<%RLIlAfg!uKBMB8T=W!-xWSe*aApFh z{UHyp@L{tpPWc@Cq{iRzhkv)v-0CymO{qZr<0!aCt3Zj4o%yy!)B?3WCm`}r7wMra zMq!vopJ9+Z_=@fCiE;^1m*lu-t1m7ZD)C7KR)^bu&GC%BqR8-7c3(Nt6ITlLnRZ@? zpT4Nbd&fe!;xg$ph#LH_L*|?gjqWiM)Ez9Pl`YpD&0f?ol;?g;5S}~ScxmVZRBOen zr3WGAO3H=)rfTa$Z8aUHP*LKyTq`>}JyLNK1gFJNv;Sv^?2XXI znhqJ^vW=n8-QlvDVCc4RS?$!&e<3d0G-8UeBCy%;Yzj9N8PN#ey8kCZ`C|1w4;E!y5!lqJIyl~|G9R2$1VZ*~ z436@yx@X!$Q-%$@vRFR%u2xBTOL-~^_EiPs{S;OIO6rdsDUvoSc1ZIK?f0}vsF+T` zt?2+6z(J)vUkv?<#gbwhD$f@!*5#LAUA{5JI<)N`bkhBrb}ljKn=dcQu(Qe0BZ5Y# zwT?4i2IF%Xz3no3>%8#*qt`k6s!+hm;VCC0G&1#-vgx*No~1v1>Eur@4|Plb)QHwm zh6RQY=3%yla>N35bSuBX?$y0{Yc0D*W8^z{aLQR5{?sVPs}U92R9N2NpC)*!~M8Q*?=j!>%ds5Ho=gUknsP&p^vtheD6mJ5nytSSxAb}g}k#m*>dNep( zNt?b>(X}y*76FAvDZ^@;@Dy#l;SftVKEfp?=g`LXY3Prnd{zH}m$qoBKssmv#b^I3 zgI%k3?p|I9dmw3-rpy_RZtUncU!KWa7|{d35->lPoiSgWc6wK}7?j%%KLdZn!7jv* zNfc;#8A;9jcz;HYucAZn5MDHl=nrMLVT58-$^qePMofK#7p2wqXr9+zOhZ<;TJ9Hu zQAFr3FvfG%#*<#IUnZr!T>pubkS1q53}Qf7$M+dYht}?zu?2VVr!d*Cs3`fQt?DFI z>rU%tMK4)^aSsfeUDG?$UjgjC#MP~OOXs3AB-r6}Z^gRMXs>w|+lQdYk01!diB0kQ zbZPoN`S!9v;pc(k{YJ$c%G+h2ajQpwK$LpeD@^DI`woTN-=_GqZT`Y9@sQi62p#)T za-wwa5ZylWoXYMv&#S_rQ|MF1R9A`iU55|!L_c+3C^1K94H3^$wJegQo|aO^ic9(TjVIbX z6HMY+s*FHnEs4kAjU|m-I(LGIQEPvB`@mJNFz2^l;J9 zHFCSO?g1UL&ML!H#Cy@3k!swL6QCwB%2v&MqY|ia^NDB+eq&E!ouKj{d&6hGY2Els zp+EPz%?-)sN}r&P>`*tSBkot(U>Wu$l=lyOSx#4WmS~iz_b=Z~N`=bRRYGJ{;idoB zuf*Y8*B){-#+7QlKOR^G*%ThnpE~)oi9Z$cwfstbX=c$yr;r=~VCM%6n$Q8uKrOh7z|^I((|q-`BOBvbCb`Xzg^~bFI}*Q)Z?q zoTT?R?fwqd^*VIF_@WrshPeCT!Su5)O(xvN--rEcCLo1^`}38)g`UzQ$6z5H&P{Yx z`{CQ^hq@H~(Ek~xg3BEAgX52*i}J@o{Nd(S4pNdR&vD8z^=`RyIc{WH49rseZy67n zkZ$dZyk2|Y)bUNzc-S4SzmMf!e7(B+9}}Cqc+R8uC9l_iUP2&3HXr&rKhI$+&OD!+ zD)it@zeJ0|@L-9=h2#UpeNoa*d+g1flYWRC@n>sz<2mQ>sqom-@6+iluCCVk00c`* zS)?nlI9mm*kMB)_b$1G^yEIt$aI5pjuUWeUjB0pJ02YFJ(RN#TlO}OlF0Dx1vDCM_ ztEvwdhwus%nS1ju6f+Il7)tk5e;TFRMH589`v5H6lT?yk4GvYbs&I`{lGJw&2(9{M zaBGsZ3T;fiTgf|H&Z$*w{S z)cQf4M%GV{U!<=e>&T62mO`1WJX#C&)`os__%9&i!J^&6onrcvqCW=-0!{|>vHR6# zGospET#Y|=C;7G3H*6+f@dl$p1X2`+X*p>Vmo!ehWBLZ=F&nJH8@gde!}aKx^_!I^ z;2t-BV?@OYmI<^t5>g_KPlEzie6Im`*<1F z_%(Z{r9#-v%#W|D{!sA(Y1quRu4e5 znN!`mbqeQ#Ze6JBmq&cvjKh?xB)yrm95vlULH;GBFVz#F)Dtx5)NEZf^6O^%x6~uN z)yPLksS;P2$3|5h>M$z2wQ5x5uuUy)&#MceIK>_%M00yFO6aD*oWFovd1&HHDq~ zyp#2Joh9)HUvjd3tFt8j;3rPjLY;LjS)GEq`p3v(h5WyXKiGor3Rt;~`;yybSNeA8 zY#kYiWJ0v=TNEGVVBTSQZOs8K-s+;;Z zhvcTdBQYd-pVEv;#i#VL16y%DKS^;tKNha%?KF|%dWv6?Z{d1|{$Mvyg6^H;bZ@w4 zmr>yZVrENoxm1vCtxsi(JPic?mSS_h6%q#L+riL(h0C^14c)}myH2q=wX0+6>QrAF9?I2fcyoTwF*0M?QH5o49YmQB4PKJsZIOtY{Lcdp| zxZW0I-NFo2ADzU}yg`-aL#0$Xe7vFpjOYd$RfpHi+@lNr#6xb#hd6ZiKM;rJdt+B_ zCt*F%xe4Ze@V__)*WKwHlV@JN2&od4a!fXGYZ zwYQ;CznfL<`7n9h>u#7@VLC0$tvdCab|iPT;=?snelGR;%rD?gxY1dGli-??Ma}HCw+glri;i6NaHR3Jo3x4c3Imgfa6jZHrQ8%(FqTXN9P* z+C3@b!?}*HxjJAHw`A`L6k(Jiwclln%7=1Kd}i4_;`-;IbAPXYFZk!B@+?tGll~b{ ztG)l_4AHI)zAV~c2MJ0^z{!U{BOd7PPp2C1ZX^?D6H|#;`S9n-Or#t&sGA-Rt);{! z-c;kW=H2S4USm#8pcnzmZpKIWQ{}}H+0Gw#qeK27$9=W0xT^G^EzU%z){ZV{MumL+ zc}~xwqq~3_VY@5R7FTYU`635S1YCzah;$defc|2j_|SA;D|(zucOavBU+z@1izHnt zdA+Ey2Qqb9G}!}LI*l^>MgUn))YNZEH!$Z$WNT*`>}r3ZjcQF#V_u?@au-qPEq+Io z*}GpaR_F8HBNuBnh`b$mx5^gHp-3aj>^bBYZMW~>2O!z0UiKyYn6C08Ya*Ugzfh9C zYNmII%-_Q49dS4t&r>Te;IhZXyO%MexYaty(I=CYOLz`gZ>vho(BJ)LV5#4nv@Fpn zP`t-jcs1V!%oBmae?-bQ;POahOfZ#Fe(L6W`&F~5CrgFmaW2?$S^`R}errd@%zuhD@Zp*;OBg0*a-@ZBPrdF?Gc+W6aj?dJ| z37Mp`opd(o4o;fTKsX;~c-cgyPpkWyp8&oQQSCBT=9*i|Kgy`jkji(F5nW04)M_-} zAn=$!KEz>lUFmyvH81GJubp0~9`q;AS6n^g68m@ZS#tfFTdF_Gt+sPJZF6d%GF-Ny z3pSf#v0Or6?j$_suJVSAy|g*+Msi8BCQCQ)?ZM9F>#8VVtT;+Nopww$uSnJy*_Y+o zR$eVmMW>qAqvNrjm80q|U1s;C8X3=9|FiKdQse22rRj{LIYE!1Iic0~{k~=V#QyB0 z@e4lIX59X1o0O9=I@_KrUxrpHzY$#kS2GX~ir0ltVR0ya zD5O&u%g80{lyxyUm)P>bwyc9cDQwU2?wi~btuKDa5JPhjUP)oahmchGkPil8GdX@$ z?2A9r%iNIRK02yk6lZOyx7|g=8Te1OTT(Zj&(W)dxp2%DvY18_-<9SyTp1K!K6C3!bfVp!r1d8u9m3H1Pe zsVPv$XrnZ=XQFt0-YeeC4*lS3Pg*AEWAp93GwdBujA>^d zyGia*oP90jeoHyfz;+G}oH!jIB2ul|X+o0VIA;2A!QaM;d^Uz`{}tn1D#fZ@F+Ni# zvq@&@q^wnsk_@i=% zcF-%G#x)Tbb}5x$F4X7%b+uy0r0ZwqJHSnq{RCwEDzNx%1=D-LG|iuar$ECaZs!1_ z4LtM76$n~^q~Uo_!y^blYOsZz*I}TWikiU&*~9qbA0|hsM82!zw~Aj0*wp z`j#cbl-A`iw6;$wHt{jhyDWK3EJv_}!TYMC{EYY28WkDf-)ZD~@!t60LW^6L6q?Vh z9%nwi%~g6z1>p*&PT0$2bX7?6ww-7R-6z2N+XA0@U7~>YrvdGRGtfZyX*DvbudSp{oEJJkS>L>wT6IHv}Xpl1=4=_S^k@kg-^}X+=3%S)Z5NZyC7zeU!M6r` zI%kLp@p|j$gGK(hO9u2DWh8ovdEZ$Qri|5S*lO6hov>Y?$<==SBqtv z(~2&jE!(6&sRDl0kBMphcqzRf7qr)pmK`Fs`&A!;7kvx-&N(l@e=6r0;(^xpkhb=z zN`I~V(@OeTvE6O_rY6lZ7k4kkB24G+{AN(X0-` z9T@}xz!O#xeDav|JGe8A8FwZz(`EViPR#60MfODj*Ab812Q*`&mm?4lJvVicP<~XAE_JT1yAyelO_mtbJCx2=?vny zGi*+Ns)YGLE`2w>Pjn5S#t^$RY%Cl`-4KBOLR40v;}{5{Lu_JrxTE})`rF(|WQcw& zSc9wL{Qm)ufu`#ezUQ3y5AG-Z#6|B0c1RY~hul2a>zhhnNt4$Ic@Ys)i!ammiifboZ-wR~!x&8e7aWV&k*8ARcj- zAJGst7%OLHyUj*-`4^Ib7ynTmJaAXazm!K$zjr+S-f-iVh2>V-%RIxJmTf+kTVjqD zz*A%Y4ChRx8gya3$rj@@UaC5w&-0V7fx=spX=s^*4{Txm$o*>ke>T4T)adH5)g#+x zT$eLC(@OPf3)2QSM13nwj%V-+8A}a{jO3n#S4t}?bv4XMED`}#u!t9XDegO5f4a#h zl7$c^{R*@t0XwQ?0Hj2~^+BL`ixJHeR(QNLc_$LB3~yZNeBe7sFbkMx*_>XA=2!Y0 z%Hb9lqky^7eWSI5O)GaJtQ!>y94dTjB*^~Q)K+&Ram5}w?dTY}9_qMMP2((XLO#RyrnxHp60)e!V<>y1c$LT1yioHbs z+9k|3nVi_9Kg%H@t5!(H_)Qx7JR%IbNq^$U8+F|nEQb7f`&;7#&h@a zD{#}6JxxB~ytzc3H_l;`JZX~0Oq(<2U3JF1&Sa!$O&litx0S5ROzx+)_FRy-0DRFx<{NIq)~(q<&;a<3vv2-ruvz9Cbp=_5E>jwc~1)U z`K0y~0L3Vt0?x$PHLZyMNo8U8q)@o|io*S?rVO#u<)$}KzJZq3jZphTXLfBBYJ&!{ zr4|2^n#L99`kF>Wy)DWEyB+!h1xn~!NDy`yOxum{UpMh8tutIv+jK;zS1~u13#^Ve zev0m#RPf|ZIb^%;)S$MVYTtafrCY(isV;FJO!lXxGpIjLW~uBtiJDB=%cPUBoviPj zFH-%<>qV1wRH)0EFheof{%V?1dcoFf>@e|Wjc&wb+vvvPi;o?U%4jo)enO8+TM zMA6AQcwVahq|<`XnTRG(iAbyZ@6@CuE|cw9G~EiTIF{*2C`@TIIiJ#AQXZSuY-ej4 z&DuXx(@Kacl$C^By=sh-8zC5eD3sKJS@Vd}fw@;HD_z+wsFanyLU8YBd>y<@D=W3t z#~;p-bg6v_n+EekrKmKWIuYO_;_5LVO-o5!lX=Z7vG&3L!&oJOO0zOj1XL@1EYZd= zzZCT=@2Bb_swCjowR**LXd|RvCU=M75Z?sd`WiHG)r5TSIE?xnH)U-+)4nHClaH zgBWn^_;wU?&W!y+E9NY66mwWliJsQ(&n4s@DmmLf6nOWLYpzpfCu(-@XS`2>H?wDR9t*w8@FC1Tg9pFGWose)RNw)$tRh9=sqZNqg(gr|lOWkppT6upd ziu;TC7k11tWUT%p{r$(CXcOq~6OlSSL@Kvp#uwKrrY9`7ftHxlX!Mi0n14&f&%{8_ zDw0d!C<&W@2}hcra{DfEhaw+|i2IeKc?edG$@2|Q#R1pXG77bxH?!r-R4IS#0XghUAGI6M7e8eO6E7^e%jqxX{@Tu}K-;iVtuaVM4K0(bxSHx_{cM!6;@GHg(;j2NAgNgCg^UU}uQTSE!bmIJ2?y0De3Hj! z@ocPk6s0Yw=?u!OH5OqTmjO;Fi4VEfU0xI33JN89fjy3F4UafdFyAXt3UR743uqg~ zr%;9mt+<<|BSC@R9ch|7eS2bbvQJp;988=yb+OOs&*5+DPdRm>TXngrBu;yTT-*bU z#)7fZr}CzC@-VL_#n4Fc7aoKGMTbu4ah-%ea=P*&FynQggWI*k=?ddUM6f1VAjW+0 ztSHlNPlxH%a^8bQ^*qM2-HD#qYc6{v8)Z~y z{HVN959oL{fT$%E;&r2m0ewLaXvoEaVnj_|6Vg(K(e*|7I$0gg*vP=lJ0M8sQ9emO zU&|X0$#5^oXkGO}FVBo(D7E^efl<1>vdr?vy?hnwLc2?+on;Rozr67?$?8njGsc1* z*8-;IFkkcAj>(KSe(o#x_X0z_ zN$3ZBs=p=&ytNfqp9*8l2lPmNmJ#i$PzOPzqFnAx4`-c{Q7dvFu1#*@XMT>_Hrmtv zxMvkoYIqfj_dDLPuhAlFGL>l!zXHv8>&w1CtW0cLFqjb?Ml<#}hA4^eaAfalDIkVN zNIfEfGjdmp}=MT zh!G|61=2uRON`%67Ma>ekXfe;;j_^EiZdqOm|v9DutmGV46UsaJvX~ zk@B}ZlYXv|!q!*^$`D&oN-D?#VHMg!1h+J3REV=4WfygfM5;a5#Y=pyjSj*W#AkPh zmmyP3P3i=!c$vi|9H>C?*G6=idT2BGfkI4)mCS&NUvjTA@i;7&b=LHat`AOi>m?H) z+)c}8Gh05}#TRxhe~2?sm0?62UW4Qq3i9E`0FInJyMyP!d^-$9UvJ}lMBD2@Ar_E{wL31r{NQ0ruQ<5xgnED)!c zfx<(ylVvRW4eg{3reY~8xIxg)+#dX0WGpD8uJT49Dvb(B>r>0_N?D^qEYnZICSOpe zhVY-HG)gfl-Y0GEa<&QA?nj9fKQ@sYZyI??`DMngfO9>qU5r|EUh^tr?JpxW6w^Lv>z%FKnN z`f&YHBk~w2`^UOA8it~-vt_DI8r~-Xh0L-{PJd5Ua%%47b9%Jch=^iw;*pk7>?h;H ztjZC*mv4=Vzf&UIxYU@}fmgP$_D%v*m}q2vFOxqvX6XUiO&+i=Hs;B-!WL>w9}Yor z%_v=#urAw>PkELoygq*bJG`Vg^!Q1*r9h36g9C}#YJFDZ;6EU0jahllYFvERn2a7$;0I3p(F_p&T{tQW56Cx;t>ygTo0d7?|7g*ww6mY0x> z?$>FV?lmw+NI@XR^4vHRa=Q+XjSq1NA+zU*&}3P*kREz3sY8)1;sQZZA77qJ&F7^xf`nYcVkTQ7!!B(z78H&HAB%%LXu94hQ?~D0&xYSKkF|r zY1n&7Qh$d@3rU${Rs63MSH}nB_rM2WiF>O2CY;3A~H0E-zP;h zkzif+ypWAGiTl5!+M(ZFZFgNn&h%3OcjO9X1t^*YZ3Xx17vI2gd4_*G_;>$N{ZI6b zQv4S2hmHTS=HT_#uKC@B(aS*b2ul z7k5RU1jh$(%nT(zyMKXIJXq}bYC~B6Ux+7-%!~vcyK<^ONb>X6%z~fy?6EFzU$Xm) zXex{oF<}8__ZPkV1J-j?+KMIGnjf0-_vj4Sqr%yIwjwoZ_kyheSVk>P6EZ(kCT-;+ zA&cik-%-G%xuClAR>uX^J>A4yzyZvtIG4&C;EalV9t6M~0JO8DnRZ8be^Hwe7Nj3A z57_enfM4;PC3+$G%;ni5+L_DN%tFO{{u~b8Up{cA=l4X3)wvF{&>H=zOj2zM@HQhl z5r~v+(KtbR!rLccWgvD}YYqm!FEIhwFhB><^u=x#zv;ni#By#jJ{2bVir+LM+0-Ds zoiKet_7WM94GAb#O1^k^G#uBV3XBA}cuVQW_WR^=*EQx`!=T}2&wm*=1zFcsyzm$9 z^;Xws+GWW?0bQu$K&Ox}pDC1>Leo$Ai}xAxO>&CF0c>hLsOEz!ou+AC!gX&cwGuzU zw@i0`@!sjT$OkRu!+;xPFI3@}ByiZU0=%rb#~9$Y6)}< zbz{`6j)P%Q=LXDc)#669BChhV7Mbi=Q>V2j`&;?4(YNIlzUpW0|a*!Bl>~76s43+_EwVc58~G~5A&Y^CmPkrSLJOy z`wTpJ%-Em&OuGdX_rZd{oY&L$@!^SL{~0IvFmzDnRSgQki{ss&OnzGY!Swr;yU~{U zD9*bgI0Zp5Y6ap(AE&bT=suY6cwO5Se-+(Rn*VS*hP0(kQ)vJp$QL2oyR9j4N%9>I z98>qDVbphqsQ3^pJAy-HHj#ZUR%3jeZDm#;+jg}2))1zr*AEc(_El1}7gk@#>Qq*ILjJN_QJC7| zjk%C{s29s_4F!-r4oF<@ja@&OuR>drKA+j9Q~a^pvDvv#BFF|GqMoVryMVl@E)0nr;@Wy^Lm@Yi@N8JVG_2>l4ON#-uX>Mw{7Ht>9GgP@hB3^C( zvt|D~t%ZJ;ZVI~*1`GYPe%TR8+J~fCH9X;0qAgjga7?ufN324@8L29WytWC55rF^x zO@94G$zIqJzW7|1b?Gd{^$r%p-1VBH2m4Kos#2b>I$zW?V{}c)HL?g*r>#EO=#xv3 z8*##6OK|q&n{3`#%^lRt;5k%Y-@zZh{!ljU<*u(mnV+M{B~K+hi9D*8f|)?Oer6KK zvaV3SqAFW-I+8U%pXIdKRVtMmGyO(`tEs3eF~r<4s_Ju$a^J3UR}Kw-G%~y;?5@1o z1%4MwdZJP)&xHLwz+EX}M^V`cUc(E;5?`X|elqNLsYNtG@No|V-KETb|aOG-d1^F~I(?olWsGPfrNYZbh5n^o?} z-mK7U+;8RxTvk-Lebq_zDbS{(1HqE;l`S_c-yp_>Df)& zlEeS<&Gc;O=c%6Ya#p8gw=e!aFVAlEa>%*Km(wTn@|(|6Upiyr#Mc%FeR^bMU^~me zcB$-Ml;||o?EVOGs=B`@Is|%riZ-*}=woudrQ=&APc~I#LnMn;{KI`$MLS{t?II|ci-a4f}=5Z@Iz{Fc8e z0zhK$E84B-xo`XqTq#H5KRfY#EyxnWcpK>wvwt~!M4Y6_r%Q`AyU`vf{^zt1jcihq z1o`SYK43@I#Jy|dz=X31LdP!%YK?=q5?U$88HYbT;M-?Tv?0h-V{u zJ)B%$ctz(d^t|YMhen+#WPYyWRQGEL|=A zbzCM@fhHZjK!U*`tGp(ukd!ex5K}|XfEke@Ku`mw2BTs&BMeW^J8%-x zu&1R8#E~w>7}9JPIitv#cA2pvH_|Z3h!VR5f7?7Qb9)LA1CsMUKkyliuy7*L8-W6Y$xFkb7b_jNAcmvO>i?bcr)c4}Psg%=}ceeji@ zQhcQ)T)CGzJnM5EzEW9Om`Y3fYNk>%i&6?nDArh@Qn=L7E{wA9tt-R^L$Q^deW7Of z8%D`4;tdVUK0{kebyNU_J0wE^RY@Og;rWT|9Qkgs=VXBTqyS#PnAL=Uuu2#^IkJTJ?`)3ez=m+}TWyXLSoun|<8@&?Aj(nA2G;HcrS}`72YKq9fI{3xG2#U3YMB z*xT4lC6yywEeoKuSZ_Z;l!zz5nU1n<5@SWhVS~MxuC}lumkKhi)m?9mKp$o`DFk{K z35`JiBqrc@OnV8C$YFJoeI1*`={m{4cj0Gwlts$giU;bvu`k5 zt^U1?BzUgZj2{Y~Bf4svkz=f!DVM{WgU3_1S`q+8ST=Te#Rv7w@?X`cYh?pCtVvYa zPf+E6aAU6-`Jl?QMUsHwr%Ja)o`N}dw!xfwq!j*qfW`!Wt^#bqpzrJjWiIjdtM|Th z$elu(SZBarYR2GI>@UpPlV|$^0a|GMR`)|X%hKHMVC|CPJ5R<{=TmQLDU=YkzM(LzPzIUfsyI zGqN|H`<(;#tSX`g&WNgm$l*m96;}%wj@tI6q^;?cwfieDCoQ!%vxt-DncT0${}L<> z^LX)$?xh1^G4#ZzOo2Z7=bRIpkWW@FhkEb|SuZ1HSxSLKv0l~Y9w7=MXQ@@jCLLYS z@=53|Em}HF?LN_1T%W@1qYEU!ngjz&Ti*(vB>xuja{vw;K$Ai$yn*73uwIhJb&+c` zLZ@59yPzm)c2I|TGvkbux&V|!7l_*x!=i)0J0tqb>I#ZCdH=7DVn-1wkW6$YEdT$g z=X_Pj{Lp&y*YX^^Ql4L7z=WG`ME@pKLTz?`>SxC$Ee^!+N)Izk^D}zG(uFJRd{h;> z$`+XFche zsC3bK{O8J_oe^EG&~X4W^M0(;I)4_P(r~U9yBedz05euZkDXJ_|3f{T z-~^|s%U7+{`5bI6%tJ!I5S3?E$AAl=t4hxtgYsEDSJY0l$F;Jc3{NABZWat*51-q8MmJ6eZ{f~B zY-~?oVV%FYc8sWM@+xRE~##Ha`UjDXo7hj_*-2v8@ ziN3zOsM0iJH^q1e=c(~h6$Lp+Xg&`k5U5hC+3XCi!(~v>?mq%kICMTZ(MY)vI#aK@ zG|xrRULqlZpd65f#M1qBI`J2JLMEA^cS~Y-6=2v@5V}kp0C{6mP{!UZ-mPd%{=+_E z{cJDQp;?_|4BE@TgvnFIXGybFJOtqhVIxqh??Y8wtO%Og>Z9ZPz5?40`KQ#1?^JyE z*pef+I-$o`L0ZD3XNjTtx!YK{h-Y{8r`VN#(h&c=EdLlspZBv156 z;~^{}gWp1OFnv2u2qfD*!=L_ny))nsA)O63!De}?nqQYhfQTLqb}cE`9Lg;q z(w5xkVXy~#z1X2-K(+6kk8!RvlBToIsO$jinQp|#Zj01+DLu=qkL=w86&0yJyR>tp zc~CGX(mXKKp{Bzi%8jbLR+T=w+(kzf`Uc+E?AH{y72gLrN$Jz3)^->;2-bL}eHq(c z_h5#n9q2Po4L$mu08I~!iajLgMTO{;)N~jK2og=m#WD6N1LQ^>&(FfD-ka|>kK;KC zLG^m^0ORYl-W{p$V9XOazQ?S>mu92i+~i&Tr|0#5-edc!4`xaPu8*>U7bWKl{|pq{ zRf5>z9V@bTFz8WTP^On#)yhn8_y)W&2aI0!}>B2lzGVhvrcYp4A!rBV~W)0%vf4}K>2M^?wecpRXV5+Jl)MFxn6x|Hwza3 z8~ropjaAInFayWsMTYJFU;pggTJVPyrJ!k{gvhy-N0X%h+{Kx47|Upyh-PNOfJeB#>(xHeIrpI>9ma% z-wB^)wJ53Jp96*uriU=jCe^vk?8gO+c@r7R#ADt#Hn(xSxnGvz&wJx;VX(N zi{yHTY>iB8bxe`7TGOsWUZ}f?#jdrQ_Gv`=SnV&iL$4B5R{Vk}zr5_lkE~x%A~g;} z0YIte*STx6qr8!iLH?VASzc4z?=JV71x35n;Wez~v{}#1$7=eqOwOcburPxc;8-1c zz;&I_I9Nkfao}tSnI{vI<59W^< z$lUz#?0LA$_Z1&8BD;k4T9eYU@5TA)ZC>v&2?kY_4GE_Ty+k3dfW17?-A3i>bjK|= zAm~rOfe*d8)8DrLKwfHm1Mwda$?(hR9eJOaCHm7Ye??vB2>M{VsMuKX54U*>R^;N8 zFQ006d(2yM&GprZp5*8G%=NzNM1hl!FLHSt;5>HMj}mc1zUqmWqhW4yRBwPS@JX{O z(DxDGo^Ikk$cUD)%4qi-fzz0O9s|WYEY$Y^@Qg7eKmX_xJ2`azuriW-{#@a@F`!ix6fru1c#xNwQmNPy%ja#Um)v9p6jY z(2e2aOQ%gy0bs}y)g@!WX8vM<cW)NzX~$(Rg+_*t zFP`SNMMs7#N5$(nifR9noNyD`)>01W^XNc{Yd3x9lOqag^dT!z;xr!W6h4mb*mC_5 zU6x(%R?6C8{dqTPkk3(`a=Shp9nT(0EuuSB%}m0#XR)xH=IsE1DR<#+0+=8 zS$fn$x$ak4oEeETWXwvty2GkqOWZF>nzUc9r+@5U9$6?iiZyG|cvc2o*BLr(lA~&*(6-n3) z(zG^PuHG5)3giMh6d`{a3A?_HJsbB;kNH-K=^-GQoC$O_gde6RE0QNxe;eEgfP=;S z?GPN{UaQZeZ#a+sz%Yw@f|odrK69@X5LyNZkL7a)+fkkhjYU78 zC}-2}Wf+Bw!?n<)A268QJHW9$Y|$sS&XD0%IYxAVs#{5l7Rs?#v>CaPCyJ`IoJ)z` zY4lU2xPuY}cQkdP;^e{|>%LG7J@%VB${U+uLeJ=3ttHlYgw_)4N&-%!vXj^Z{zJq7 zA563BL;cGe!^js#8Bf-XD)^9<37P#D>cq7M^nK}*_HTJm^+G|;7*zdv9+L3A)GH<- zNX1)xR3{q}-JmS{zZk#j&%06huv3^1TMD=RIy3pTcrnSg`|x!N->Uwq&OXa%N@wXj zVDnJ=v4AG-IHvVFRhKtX0NQuj#s4nsi6{T>0apP}xc3w`L3G2JR&#%@n2zqaS)p`z)i zm>rT!-Rdar%qjZr)tsWHOF_}qicp1nt(>NbSFJHrh{U@_TMrMC+)A9 zIJZ{#Bgw@{#$u8%O(0IMmaa)Rx|G0*KrO1QOX3<%WJ%5*f>YPfWwEnlTACohL~hJG zR&EmrA7deugs92=s`Ovc6eVUqZ*i>=75#p{S#dY{)B(kiP4|d4(NTVkaSd8vtc1lx zjDJ`@uk|ctnF#B^8-G~V7F?#IUc-Bs7lQD-N^c0aV3B$vA1nTYj_RiP0M;Y4$j#oU z5SMo_N>!bwP+WbllkoeLe}{GzTVK}inVa?%U!UeZcf>cq?5*d+I}qm(=HzAKx`5y1 zbi8jd^NL_sEPUg_bKqu+Gmm&&M6BMF@Ky)E5pk|(x%^o+-kO3AA&W-|a0g1^m>MX& zFe-iu?f}l$;(r7a^_eg}YO4=)FNY?OfpD$jC&MVI$Ge4UDK;6V-eEM;7{6@eaq%YP zkB>Pa22C+XROwmFTp0_i_)u7nQ>QM5Ug?6CbWeUKxZKqr<$F49A$?z_yZT?bo=)$P zzCO#-=`A-FTnqN_T}fr0l0eaafARY1Yway$w&;tLn3pI~kA7_|__KV{ejE6n!^@ec z(>7_(X=BD*H z)rF@a?s64J=U(i{C)64(F%McVgSfc>ReJae{IIxXQj}5BRw_{)dP{1PxJH{ui2g>~ z@f1{ksy<#%ACm(*Fga(ku3C?&5j~4M8P{jkxI((O%pZJt+0q%IAS7+@A%)8dVd1ml z>6#gm1%KC7NFzH-Pfp$pKa_W$Ls96eF@ezQfgyFaOr3oupRUqsAUPY#l?i+B4xc$V zF@+5vtqWT2s4Iu>eCl0%C`aw`Q|{ue@?N75>&eHcH?m=7+6|}$yD>WuH85)sT{PQp zp4;;CeTv@>Xme3MD)8e17V5qDaG7Bp-{WZPDAqgYhu3u^Hg+&>hR4F89;w*fa#X^{ z?`IoQNNJ0|FvflXwPOAAN;O(qf}+^kXZS_dVAgVIY!(H@KMkcsYHi*3C=3=i08|5k6sAb)CVi+1O|T_q?eGcRr{kximUp9*knJJAUC2(? zkkNcQz;y>WZ>&qqU7(PE8Y(=hQDGVnxZaiI0h<%L^94GbJ-jjZFf<%hSQf)^BR zC#J_GX{whTj-5GzP=8Do3hj=4zW|n6XT=4hT~tbh|SE}NfBb6hSz zS>`yrmMMi?O#8Q%z7HGRhy(?L!^kTnOkD%6kiyKoKb~j!i{GBsmBd1d8uP^B#vk|9 z2h1(L>VsK646q{&xZ6`gY~q}7vMVTtsrw`Ci|ZW)f+RE)Dy0BXsaCMOrCrEj?tv&D-=oJ(N@5xi`2wN;9#jEqz5?{mdg#nYXXD2PW}dJ`7-bZ}9%B$8di zmB8f^i%h+5%TMeXAebW@Jc%;>9t;GpmKx?9>cr70n81h@%OZ$*z}x}EfZ}kIt0%;f z=5Phf25aX`wi027L`onxD)5u_@e_`KPS&gPBa;lhn;j~IdLI4Tq?~FaM~wCEhAw=j zBkmen?L_?UV3u2epzaxpAgF^!^?R3_j;`6EQ1X zy^8I#&P{le)dp`*JfgB)TYRP}H3(COxdURk&DFt7q3w0^tpoo4sJRhq;n1c8j&yS7 z>`4Os{FN%`6`(xIfsy(Y)p>w)d=nM$sj^UPd#g^vA2J{44|7fV8O&5c?AQkg72EMg zlkMiuI%Vh(udVcV_5I;z7-zM;Ka_vEM2)u6{nO57svy%BlZj5IM_w`)We~F?;2Fq4 zygAsJ2%;ENlyy!NOE9aZ%-Ka1+e3rg#!64dHR3$Mh!Rr^FKpMSJ49DUy<*cEPEU1( z$TUwEe*jTbT|p_H<>sV!30M)&nR2O2TG!j;#~8=3#6=3P?h%SC<{BY%EHSS_HHI#WuEi3|+l(zBrl+9dnqKH8l{VkXrNnbN5S-#U<8<+o@e?TC)cmITk2sjP zR{M|e;}7I89ypW(h@L8BmE#(s^5IPJ15r6%-R$LCW+&+@WP|t$iCjZlNP31`j@qre z`V$U?5ofzQo$$x+#X09;bf)Veh=qnhA_#ZGU4BAcLlzw1yA~fN^8$>q{kiIk5a=!N zHWT=-)hOUdL-+gzYT)ikkA171kbUe5mXRdP^uMe-7uK}RF=SG zB)7vTwOZ+-QmZZ2`WIUT#3~6(5*<8)J){6g>nHe1Vf^CNQe^#80aQklZ}6>|Er^y{;0k(`EFmSYy8qwYnoFHEeBdr zeqWqp9;Cy_lOw0*wEvJ5#VTorE%BS^GT98KHR%!9j7ULs_;W5)6=+eHBiEL%WL#8- zs%>+TniUN1oZosac`kW*jy zT{XJ%xykHzcV*9CGx!5eyqtHMD)s*Y@m{%{jxNf#HXf~H#_d=5JZnEpe_ydo_1KVk`FYlUnLS_W{yN>| zIF51&;)g=#e zY*E=Fb3cqwe?#<6f#^CQid>B3a7nJYPi+u-)RMdBYcCspgJ<+*>h{Fy6%<_xob_Ms4^BKnO^!L*Oq&*W}-{994?E=MtU zUjwlk1Q5~0!nC;U!;dT!LsBy=FkE&f!nO(0z~8N^6o6)vv1D4!%^5j z$EjT2pD6DK@E%FJqD_w>2~X@I(SR7+9^?Hz`u*%9w+0J~njk?Nrbo6S`OA zz2*q42k)ZVY0HG^$r2KBrhdlqxeo&5dH%h_zwGrR{FvsimOSqASMX=aLH{^(QBD(V zB^?`85J<#!l+Z^d*K{1ZDRPFBm(gnbN0?tEJu?!jm@c94RqD^^i>G}(SBA=5<+y7F z%(s>3KNHOmXFlO~DCGtO6-U1Nu>eAsjJ{?RFSTlBp6kyCCsiZm`4LV^S?(k!&(a*y z;ji?n_Q2Aq;Eu1z9uW3^X*~KD_%{T@m2|f5pz5r4a!ZxE6TR&o@$viEsJe)+Q6)<& z_BmXanFIC0WfBv2R)-Q!tzR3l3#e74=L(VIflYZ}FS0h=g13?0R#bQQHHJJ8_-c8D zz5g*{H}En@P<7nS{nc!qxAgKLBtPU!4#i^heq)9h{g%%66tBhGa}f;$?-*De@{k`p z|CYj&a+mJRG@H5H$vrk8(hr%L^pJO}@mm4nnHgulSIT5X_1at_sz7Hd#`xZ9a4|Vo{WY=}_ zxprAZC#Fu2q<@xdgVp?TL)XQn9=VsjXqe?+<8F_{Oknxh(`Z-dLp3PGek0sjAo-wJ zQO%Qsr86CfqR$zaXTMBwPLF{B`;T04QEkt59{KDUTphg%qsoASR^w2>g{o={rCUzk zvA(_v>{ed~xv0y{yTu;D#j#4ycT0KKAx za*8M9-Cl8~n0d&Ovx@inDkojynQT;T;k^i0$hb-P*X_uNsxj*TSze-DdoAN8n>^VOO63m_Y7USlRfMQO5g969;Zupu+RK~(j(o{Vw*xQ^X)x2za6WWrEcjf zbm{hX9i{*7!5BQ5Kkt-gBOIG8%<=pZXVA-%LmG*d)qVo%g+|%om|oc_Tgz<3#!)u) zz_FU$#9XNX*un)scC?4mEHyqyjcuf+3CG3iUrL<{6t4k={UJT(^_GlMd+GtDIHyow{x8z8i!s=T<9of|?!p(NH zJHF5d)7`Yve7B684A9X|)jgE)qx~d~eRAH|2`*$~@Yxay=IEV{>G6r)%GxX1Y~FC*nTbn?o5EQz0Tuva_kHA<8$Qkna<-|a_nyUv2?}m=sa$hW9R6{ zh|zNFJ^OXtc{#StC3Uk%bL>x@$Akb`s~>ZG=Gb-4;|@9YTlz5@dyf68^Ef}penCIZ zm&dc6$L(|Mq<+k9nqyCM9^>pWUO(n&B!nB+%nXx!plwB0Ju5Gz&R~+?J&8#^0?@o> zk`FM+KW9hMMOK)j)kNo(V!S^_4r0-kCG*SpXc~wi%JLy9`H|IqjgwE$bzO}d31eI_mh-&&?-hW5nVSR%CRpt$C&fZvepvii_O?P1eanz zPfwCl76Sld+LaptVg-&QvUJ+0&Wgs3bzQqPSNu!#vhGlkm+WyFizao4vn<h!)z z7Tv9-)&279Z(xCvaj0vd2$klKRS?>8uR<6(+!~lv$*}ODV&xwX1rdMm)9*ampt9WjXQnqOu?1Q%-*& zm4YVuihj@(YULNg0_ilj$Kc`qB1Hrz??+gvxv^xMzprq0SAXb=!tIWiL~W%xtthFa5x~6-Rluk7weQon7DcE$*}5$+esz+0Wzz zl6yI~OMx`lohe)jrdh)8x=XY3Rdsfj$Kw7uaSqFj7HxT+=*5c zQZRRugN0q+%WZel( zQ|`EM#D^}fA9 zZ`~ABu*)*vPXLaf@#?k)$f8F`&l|M zwtlc@MBlo>t^1NiN0J2AT3t{>7$SUaS6V$KH~qLE`*EA}<4)O++om7qWk1H6#;F@k zU#4#K=ib;B10_ed>KoeA&ki!)9Jln(s8Ui;LQF?a(>X20ngzzbORkC)mXVL6cJ5M! zxhk*6PpxZv3zu9QGsOF%Zm=gBN_fomLGwVc*6uU}4OL!Q_25=K^qFgXq-jSvWw?)9 z^SJh_Tws!h3aW3Q_s7My355NtZ)gLAZSB!i3%i}wexgg2ZhpeFS!TiWs#{7e^rVf$wVomL%{iI+-70jVvHSWK4_Fhg`d0wub zTh876>h2@wZX)Ant__;_99X&TgmD;T235J?*?*-xWYq?--;334VxQk&js13y&>q#7 zD+YJ;2D^ldA17~8EN8vab2H{hb>hO(t4lHG*bOp8=e@ZcDS%IBXdNuHcL)?ZL<*#Du5v~RqB7DCpA zp@dW2mqzRh0W>)R8f3&m#7t528%J)59xvjmxCrY*-Yv#-5l|Aqr>Y{L2v)!p*L-We z2J#H5U}RewbBgv#2%70C7IdYcO9o$r0MNlx5Mj)6L>RM_jAs~RpHQV$mvI5))wYba z`aJW!%k<-^uy1|9vmOaxUrMp4r{*JP0qEFn=xBO|EKK*zL(ig-^Z7f%h=0o-pn?M9 zKgdT3{ZV-@`%S)rJL>1NSAj6Td78Pr-mUa^LY$j#jG`_0w+_DKgN?pLjob;nSKf>J z=X{G^()Vr4yKukQw+ISX-b2ZKs9}QZ1i)*!p^}q*$%;nbJK2>~Jm-5SyON5<`;IZI8to<11j&WqJO$Fp=@7$eEE#XQT@=hO8;UQ?e0F4FZi zz&=1?E5Irzuj^2L0Uz`5Ie92G^000BN&4Ypc_>x#kbeG$TKt}s*d6EkJsbU`7J*(* zjHqcnVx9zp-jdro+Ti)nUsXeZ2%{)YI#2Ln zK(xx3F`i|5Obm(~uXvgzlmYYdl!dO$Xu!^q&!Wu{PdPBo!h9#vHFm@kJyS$2g6hWf z<0uW`tT=G}qzT$HbzGVkmqK3)IhuS3B%7=%=`59Wq1^(T++V_HM*^+v8C-Hzooi3# z3Z!hS#ySiVf&i_2$#IRoH`5ab7L9w(_hx$1z@l-BeQ#zaY?ge7#E*(#1(-DP{-mPg zeaZ4h-&@%gl|ScuE4!ld#lE*P6%FA#DuLvulEut|p81-xM7(PA~{JYvq3fn{<8wEvch@ub;dNE*tL6B-u_JW^2^xF<+7xgl2n9Ab~f z0+@?L@^G;{6zDV(y#zplH$*P?dv;>e&D95f&ng`2z@M5j&qiLhp4{NsN4yyOSZ1WXK{wTeW-j=Tvm>e?C`@t5V!iR$tk*VY_rv7h29 zYrj_d9q7R?_WxIUu)8(&wT|LOt^KysaZtr6?9%N zIogjx=Mhsli_UwT`m;l2CVO}#jICQ!biT58ln4>&#_f-v+tVbpA#gz)zQ-M0q$Uo9 z#udU)Ij%~82(r~GLQ#@jsN>S{8^`I=>U>i}L`7F^T=8$6> zh`Kck^6X0Iz9CJXO&IzA0cmy*z4`waJ!@|`3h9+fY0_&Q%NC{Y275IZ1jV)M_&th! zCVRh+Fp}mQ!&Eu&w@u!)I?OO;wfJo@{_sg}dI%ny%%9lA4{qB5f)i4n7i&7Ar%vX_ z+w!AdjFT5oaQv{*2n9FGxg=Ie0qzZZYYUC|7@@!t6H16VgU$3CphuOxPq}XBR=ynu+}~V-USE+QiPS?Q_@C=?2eaH zP@4Yc-ERCIavBS@envs)d_Gh@7yB26S)9>4@r8UIAQGG#8+s##5`q;$bAxq@AG?~O zA60Y>r?%51C?@C@?@TkcCJTo!7jc0jxQ|rf&>CId36iCbnuE!KQ*iz$()J&T++X^W z)j2)E#@K<%@@xIoxgBv~l^9YUf@Q8$+ZpI~wnDc?sEgdrSszrqpE@mjKO`%C?$GS_ zWK6CPc-{|sR)x%GWUl1oC1Ra3fpYlDLqhMVpQNnDP$Dkl!5J(okwZ7Y&#>!#Bdy8M z5Nzj#^lg;9k~Q{68C!IJ@&(apiC((x%b)+=mMsHMjm*FXWmdbCEieeqoZPoyHF z%114djX_H@@}eOu^JFjKg7eDF6dbwA{zTBm^VCAVDqbN1*gw>oNx@pDa;L_ux+1R& zT(KpEsUns6pwy^(no2nM$l*A$c?JaNUe2&3gkl<6;2?;#@I{U+HN(zy6aGzrNIWBb zPNxXy!r>h>+eL7%$>NV3EL?%cA?0Nj_(}%HMef(+`57>Bg2%7Ee^Ay=deJ!ePZ6OS z^^fhZRp`V?>%t(xjqc{ z4s@POBL5Bp#0-9g6Zt#8LeFIj@!DG}v14)aZ@XBp@?)RYEI;;>zd=N|*U6AQ5@N6! z9o8a4_FWXtk|)9%!J8e)jh?(n7&-|D|6)BZ2y*<&&1`kUo!lh2$-?LF!+UZDUcBP+ z0jiREM%$tlV~I7-82;%~41Y2!WB9u~$X+i}f3|&5HFZf)K#l{YKX_d7^=dC)&#Uh42Gmvca^49ZlNAu?yRrkq3MBs*i`HbQaT6nMr zJ!D)^&Kp7RM&r?`Xi3@VgbPUB3rG=vkZ~nJwvq$1&dOr^;1F=cvnDXDcGPK}976ll zRbu1b79Wy;Fb!VojMm)LFMhce6w?iF!KeRe);?qov}Ef5$~=z*(nJxlz@~3KoYbB%hUY zc_Dlr5=!|gFsjxH=@cWU51slCk9?G5AJ&oYBuZ0N8@?xgljicsHyl61sj!4os>Cj0 zSCF7SzeSf9a6EBFO9>97K{+|c;Y{%;ZJItF;_vV+Bwkq-cur@crzspD zu~Ju=i|~qrN`iMmdOXh4$ZkF(qBMnT&nV_M6F>k(#w9t5Xup&nOs8aZKpRYy51gp* z%Aiz*hL?|pPnYV3S^0mXjONdkYegUdCUYQ24IuRN3)v3sJuI0Yfd!tW8Vl~1b=nLI zvLh=?uDgLM*PUz9Hz#Y#US->L2E>Rz&y5U9NrUj&+%O*(1>SVyK|yZ5GnIiQQBXx6 zTv?(grP^b5N+R2X(Qbj{!+FG=7{8sjk4pU3 ziJ>4XhSu?$?J0>qmW@^F-@!mvPxX7Hoi3!WzMS;;U|d_6e#-0 z#b0CoMSf#Jp9y8~Ow)fUy-h^t5V4@ISc93-IRZI>1~=Fe3&)t>T4IGfwwH2BMle)H zDLM>!d!KfxF{-7zoR)$`8-;(9P!Yz0PD97W4v;QZhe8`MXRO(27@4J!HAw@c)s3#V zFW^G~Wk{-nKhbAKO2Tn85SBr$(5e_s5|-inJKcFORKpll*8-(d!ZVy$qfuQ9_yyG= zN2E+<-%DeBAD!K?kHUC2w1Miib7o9`N%)^%$;j|Td@6rn#nX-wYY{etRbP5o@$f!= z{+L>LJ{jv<7rlK1S-*46!mEUdTJ(@wKp zav*ekeQ%W~X_vM5oo+ey>jFx$jd`bQNbrA$NM&=f*)c~<#@alXetsX%7s&~Q*7oKX z&}F)Nev71PO-mJ!3y%flXZrmyJF!^5uRPZG&+*=o-%VRq4fGizJ6k`TO)mvxX(if3 zFHehPvZzZOtsPx(SK+CMI@c=pc{`4)izF&+s?@sX8KFI)YcE#cE4tQ*za|^*v}ICt z764g;O&@D@+}hrS$Wn4h4W~=WIQge-c)&l;=pC-v?K7s9^(ycg$Ax-v zbnSCa!>_E+TivKZn8n0XiVYhe4-!uab_7M)ICDSnhRx5hEE1dd1q0sUvcVOxQi_Qh573D zpfmb)sr*^KM8DUZ+XZ?i#H+a0YA2=vSRIs*<|Q}OUh-4qUWOeh;hr9n!LROe8TJWH zOKcJIT4VDM!13yYXEL6Wl~qZuw<}!So542$?-T*=Y}~ENF3v%*)eJu36_-VGQu*%r zc4eaMjT{22RCRSIezDh66#qVJocnB*dbW(+TLza%dL-eq{(jbhCZD-H%@TKYSmJzP ziT#TYYW;dDMs-~3uiaXx!$mVwSRK{{YmXF$yl==9Vz;dp z7>I%d3VS}>Ejv-Fzut+E8AR{--Y#N?ehb}=IaxKOiHmDj@|y;^85jS=JBlrr zx?QH-h!2%U9G%IPTwC{2%J$0D#y7eV|G6bUxe(xyAO--Gc!t7OCfWoX5G4wImia)v z(lt?DMAAa{$YnZ^_TA*jLm1r@c_@^qC=eyfUaRR*5q$VD&IAYEgLhM`YNz&~@m_@v zYhc%0QZ0}qo{shu%K~7e}X@r6&j$LW8zBr&PWytln`Y=Cl4Y7 z5QR!2M~HtGYid%PoYa}={ZBt!Fp0eyoGs<-p-^H{oJqy}enfRZyI5Gmfemsla=Hpe z@GDxt;D1)IsSaa)qT z2 z`A~8Qqs%{B>}mR@&T07&08+=dc$gT7@5>SE^L|Lz1P{+rO!J`gE(KG(`;GW+MlQ2} zB$1-KfaY**o%a?CNb(D|sFwY&Z_3y5AstHfY4I@A84X?7hldawZP?SK2m7B62eGgYE;b=wyufDMEA{#zGpwf=Z=0`T1LcPqJFw=-=PTV z9sGzS(`BJmCc0t18=9iCtR8R5w+Pr}>VBbk$K{#a5QsBh8AV-2{6-KH+DI{#k_{r5 z2$$HBoD1Ze#r7Za?wHiWK20D=Xs_2Mp6yaAzp5RNvlb6)fGu$h^+vkMQs@N|lgURR zvFIBLQaAGilRW3ig4|)LAWw*sr4hZPIR@x&S|F<^CWf^{*0MzItVL(YLP$=Yqr68R z*xp^J?ymE?!Fu`UR51zz04$We?~m&IH{RLbVm1yk_G&f;stac0Oojp6@iQgM32pwa zeE`%+C$vyQ5dTey)zOkzeHViIVy*(?QElz|Kau*gKW(?Raq0Lbfk84* zI3KZL&tjCPoWm%5NwIaXm@AA01MhAz#7_gh!gEoZsIeA* zWXTrfeMR`v=u%>hyPwY=*t^B&qukF&xu1)&q1opH-Om#P=eGFzWcTZn-LH4jfvm5W zIm5$3mqE?!ZCx>)(0iMn^8)UztLHPxZRJh!;@iFv&NhDxKX4@z)Cg;GF?JHWxhRX#LuPVDWgb< zRB{X+caAFJuT~)~DVyE9=(W0M(V+DZ#Zp(ae4o*0+$hx~FE0ODb+&?^?|1g%`O=rk zP%cN0KiXA8>kP(GJGATd|JtGVDWcfR5Bmz)l2My9r%{$#XZ}rSw_91Z{{+#;@$YA7 z6XaU{T?~2W(#Or{yJ10dbLsLI)e|y%@8cZu7U-l8#;t;c z=CZ(mHU{7jbBPy99IjQ6NYA=TiNtWy+9%o~&@Ui4z~pm-WGPBuL#!9PcQuQBr;yao zuheT@Xb8#^$N<@~n6LziJD(&?9y#BMIBoU&ziyDvr`c^OC&8R^5YMTjUz~;o(en94 zd&UvT3E4SwLZT>;=q}kOq!dUWkSFp!wry(S2KRhCAm`%>cH^IQF7a29Wpt0~;faCd zRUXN6F!S%++d6t}n~oRCl;kOh_SN!&U1k|S?k1@S=ft2dE;uJAb(f5X7)CE=I3%k6 zgKG2B8=s8DZ&t`yMDo+zMWlD?;b7u);Vgbxu%Df*vjhewj9GPAM+PXjmz(!yxZ2g= zLavsw&;A|M_QCi|STqgw{@I z-C1XCzfvby&nNUpqix9ljJ%*3z6Pd!-JMB;j$eMhrsIVLG2c*jI${Xbz^5vpGCEqRm58k7 z$e&sAr&7jI=yCZK5{lVUN>Ye5go2ag3h!fWq?p;zC zJugHc(1ies8t#o!J}<}k?iu-i8wDI-Y2r#73*>o&9OW@-p+q zfz*-3kNK+$gH1JM3H2OiDbTdas1k7s0*njz_Z=~_apfCZCdr*0Lgxk}FAhjv9Fu7%=F=bI-|%+{U4Sh)$}A+@7_JUZNsTbPRFu zeXlpk4N65(L7*Y;BG5oueObV523+dp;6@igTWhAyJ%)D*V(%#+m5sGSse)V?4mHI$o6v7Z zM;5vVizAWsF;OwRWqS@i}!+R;94D;X%c(y6!I}x)BtA4R+6|{Z14!xo4C4! zZT$>;I2=&%T4gMe=C%yd3Wi(8IT~qy2MCx2 z$up7IK&uYw(fb^v1&p5@e_|_?tphjWl0HbGtUD7`zh)nEc1s9Ut6!~rX3*j4r+DL@ zm@2_)(~6*JpbcjU+a34=3!FZ0h+ZV-Ams!EPNE`YnW+(W@-U}^7|D(yL5%YMtQA2U zq;*|1@s#Z9d@gP{%2DGcfK@8+QCvv4BKvwST+DNNkQHb-@G^?=GkN#15) zz(bW>g%z?>>Kg^vA&HY>pG?!A;{wX(l#2iQjb!5^t z>YP9s2U2?!_yc8W2i0$r@{6RFa2x(bPw3&=D&?JF4`-M$ z$lW`nurzvIP*Q7R+N>z?$3Ij?B$1(sVTyPh8b}17`@@a?!~>XzEH8}QN^FO{%Q?6a zscsgVP4uvJy>S|x8WyFvD2sfFc1=jplnIyF&fdx+ncR*17OzkQrusJEsns&0OzqL< z#o(UGru+k8SA(zi8?5EOY!}$~u}>$sI*oiC7*!Lh`iknZGsJwRr?7=h%b>+Pkvqww zr2J*S^F({&)H>;GOq`phjDI(ER%ZVjLVnJ%N7VDzh?wcPK^{mids+K zottCU&MSRZVaA!h7bYP_>rQh0tLG4{o%J$7KKQFR9wL>@67le4(AI=a4;g#cw;N+GU*5d zB>u&{Yaxax^RO8AT^BM(&+%RViyYCGR#GuetDl5D?}j~xvp-Qqeb+ZdyITWkUgXW; zqVKSHVQ-zw|bz9hStF+aS%`3OvIqvQ?7{91ZmPF%C4&ALvPb1%^R%-gx{%XT6=H ze!obyVr;zMGFjhZd)dmTh~%&l=0vTP@iW59i&yBulC`FQkz9RoL9b z5Lgww53$nd4<-W44!a%)f2c@^O(Y(PhYQUkwf|`q+uE*lZ#}G}oB@HvbtM@3>O__d zkr5XmD$=N{pxCbnkgg#nW`_Y!P0(xz7s>x&GFxE@5i$nXUY+a|2<%%M@T?U7z1Wr` z7{<5awC+9R6hiyRcVd#OZKC{zv687q{BJx>Tvez939tu0Dp9gokeZ11FHo0~a@1qiuLH*FL0~JZM-M3~`xjmy;Nbn_iudIrTBAW!~Ktd9rc; zPOZ!b3POo%3c}{sh{7gy!)|Y4o1pn_DxV#TorwF8F?4g#^Dn+&QHPCdwli5FBluOg z=<6`K;bzLVYHYR&#(p@5X4))YWpv)VOC1z9eE-1?T*JAaP9z zMIz_21vQq5Hhndt#@=PVZ>>8|uy1lB=@o=Lg`}#2xWddQH*y(UU-TDZnOi-FN10SM z3bmi-5e6y`066kf`V=r%hD?<@rt)%pb8h3qiT5=7DDog5yn2)m-XF#X7svJhBR7G5mvQ^$pqlX{__UKTd4RORvl z^tm7d|5U=z4R}IPj!AU?6D^(NA0 zVnU(0Tibex$}kJ5oF0K&#&qF_B)?-~YC%{sWk9rf-%q2~s#Jc!bAZ&=8nyn7tG}P< zA95rOU9VAVEvcGAMQcOemB!2{m6h(TV;fo~Q=FL83luY|M0S~lW)KWTB55H(3~IaO zyp)k10y@4@5>F4zIZM_Xaqi(G&>BZ)H(S1CGEb4A!(7u4(2r!2~>PJ=weE2d=e z3i{(N0zSiVTULP)@53aZnIkc}n8J&)lE?i3-VH}5^x}m0pnFR znR;_$*j#UI!geS~)K6^7L*z}fOKC>I`kV`^K(Am!4aq846UIaBCbn>uf0fA-1hCt? z9g@)nvZsHrLvMxoTsQ*X-m+eWrIB{Ny?zK!)+6VNXh}j6#Nh`<`tMuEX6+GZ$%&9);;JlS#r!`*a(ujs6KT%)i7MCZY`@DhsFacS8#^0 z-EPg==B~fqStqqJKuGi3vfoO+5^|4{(P{#;_O5_;^(4}%u!FMIq&gw}62vAA*3dNp zPn}>qNdbp$1R^qHZNT;zbf2OODC_ij%U*~M1Sw*VKs`3<$Yc9vA-O9~6dASg>JetY z%v@o8@pDc!p*j#;8f6;-Djl-K{b^w@(L&$w{qyFn{@MG3xkl{|e|{+Iys$EM_-?p9gnL_m}ycekBzEZ zSn6eok(^s=kmQos2)8;pQc_(=f2#P4r2zs31UyJD>U+mFw@cj07W9$$-tJwh%8tjf z9lCq(QaS&zE8EKXkJETvZ}H7#6+_^y5<8vKL_B=9moQk&%PV{(ARs5-{xB%%`kG2#v;uB=%^AorH=CHcGo7*z) zn&@dE^&IWW;e>Ds2ih7HeOY-tbf^Mo`_|y7cqtN z@-OL^-m-UcdAW#}S0y_Qg$IPHcG@da?F|ysjfcjT4N&d|7|NkJN*hBw($(-lN5Mb+!9XA1bpe{^F~ zk}4$&qSMyD$`ZM60wzs;W7|lzU4HL|>q$hZf(u@}8XcC{dQ{EaEqhGlBo*w-P3_c* z6r<)wP_KKcJs6q73Z?=M{(5-HeO57JrbJjr3*WWpDZ~Tj4h3hnytf&B$9W7py*4rg zogP7n0?euKlF>jg(W94$#7SeGY;)4Q^K*PcEahN#%zS#U#70Fl9f{V$$Q!ITv$dVa z&s#ca;i<-P_=@cVg~YrcUbQdhQJN?%g(&^aCE1%q&w4hAkCCuVjS^~eG2i*#9@Pud zr}g>E3(m=Tr;xVPs0%=;D}`oI@(A4f&UEsBt`Mw!smubWa;n>>mQO3T8eo( znft=#l5iq-T`(~&Z||cj)>)+7pBSZq^0941&+?m}xpB=13QU|Xl9SfeZtXH{wLr%M zk5RV6yU!T1kMS3xflc>du=PYX!S{p3?}xli69$n)dYZ(Pu9^r`{)=uxaZKesj3<}c zV|l{N482%}5%tS8qUh~Vr}oFCJ?V?;O%+9 zsEh{0(o89`{0*e@PK+xF8?SCt(%>!D-AOdUp3mtEsiT%l=<}+xDSlNV*9s-ZAgcW$ z@_8a4%A?5g=K7+3l2)g8>K|DLrArOEa8yB!qlw(ly+mbi5Ho>Lf+-X3TC6N|&2IkP zaV7R909Tzes-ES&2!etM{C97HBmX#Zg771Rfreq;ARP4>%a34ujxX%PG8R6OMl&kW zxv5jK^fgikma21g_aavhP4wE%eIpx!>=cllIH7}2h*YG`_n66$=TI1eSKy4)=yD-* z3z7(3P3u_7UCHLNB<2;>e$B8lWfG#4(_tjc&}URvF<1WzS?4NwlVGV z#hRg7_*_6$Q_xf&Cclz$Q5c%&Lk@?}#NUcnbaab#qb?mz+^MF1g~qPPUz<&GKS+LN z{io!XR9g=(0bQxLwr;o{>b_+$ck-WFogMmC^n@wK5}5RP>!@ zqighDB}}dn|Fxh7REeY_u6mIh*}&o_(QD|l324`cg}gOJ>~40|K(fn7Qb}IIZ#jwE zh*V7|9Ph3GDNbREg8M!QdUl74NaJ|uG-LWqY6z}L1(Vl%#v1q6?lQ*JVC=!4U~K8m zu=x=wFmp+PS!RA1+uE8>`Wmr$v<{hNx8hT9MtE!Jp4uP+T-p7ENCHUZ_yKGSfDJoC zV0%{q+vRCs6Is8&`FG%30DQSehmRbc3O;y07eE)b0~$6-&zXj;yAfOMz$Ugt0na{j zHCg-~H!)a>Z8;p&;eEydduF^PpJUn0v-Hm#{WDMh)aai^{j*8`?2w<_n;D(bU~I|Z z=;9zT17lluhz(BB&}63@^$--Ghi=2*=!y;fl|dR!Tn<)8Nu$L!E#ZyXGln&jH;yF_ zA`&bHtbC9CJ4&>GTtV@BUG48RyuY8PA8L4i->C02yua5i{~mY?v*F$E!u#7F3vYz{ zow>7SDe#CGS5yA25c}FcLFn-zc|L7-RuDY_H9_$|P!qgyHfn<3-OD-BGZ4Gn6K#j- zME9l$Vx~4Tr@4pC>RJw)5!VU9ub2;52}OkW@n;xwG4q^0TBGwU5ZDCfTcKD zAW%zDgK(6km}#B0DEKX{i@-vyMT}FeR*&Myc#<3ztjKV(A7Y0(S&_T1WF6i*OaIK# zKlAiYjs9uWKb!Q=4*AKwHG3WIl65G|dGDdg+)U3FrdhH2--`XGYEX@y(^xfba;TwLvqR%tJT`W+N`8S^@sO=i}6)ow`oO}W8 zeC02oo%_RD!&fvjVnfIM94xnJl2y74shs^XanbIs(TChLD;+9 zNM0|c%_Cv+u)6&-h$a4eiwk?@jLV_TEc-FYtz`a$r%%E9J~t10%E4&!$gUH4KrBA) zKqEK))5<}6|J0vWwVW(y`0E44pY~UrU~Rfa)N;mCHOBlJsM+PI_QlTSA|(VJdqr&E z9r@9&05Q2BDCu!{GU<+19YRRIVw0EUgbn{Tv`>-z)LAIM5N>l5J(*~$(XK)f0NHoX zi$QMygWhX#YeCpm5iZ&zF&g%0RVjgbd9JuLArqdGMObFePTo`SB~{GS@|4=9l}{?C7J{0r0ePqM#0 zrAEJ9*681dea)W&GWwrY4x0Gr?Jx3k9nQ)leoc$BdhD@a)n_dsi% zBnJy;0$qEnvj~FsJ2UW4)!cH<7UQu&T*FsthPcfU4~7$_e=damJXsm3lU#doq1Xf7 zk09Y2jAWjwfN;#~cqD3UBl%}FH-}S&j{a2EL)W{WR5Mb*j0|TzguI_e9ucdkGfJzP z9%4Ogos*f7z#?~5pR6Cj9e)cZhxhVaQ91Ao<_AdJ`Kg?A zhNnZoC~K6p5i=ezgvLLbh%9iDMSF|0A+;|zO&LQunNWaPwPU=$6#Iu#mfJYT)%xxF7o$(AL14KF9 zJYiiRUO@D@$acp^c)Rud8x9t&lUXN-tV9u7w6h!;oJem3GK6dRp8v$a!@62WsjZWpx0OTIOsK+?}gWVOn4)~ zB0)nq;Z&C_{!o(gC3jN*+b!9!hP_%nK*)Rk+hrt?lnJxYN@kYuj@6)i2Zg>UVMs=zaBYdS89< z8Fy`q$q0w#MXc?hSYaY;V?NX9^1_j`{}*(LUSli$u<1vSvrSvIy!j7jqMsAA{O=PD zhsnoVtV5F!-N6CMG=Ir1tfo17zB|R`SyL>T!(>apbvjdgBR7}{+M+Plg`>S4%br3h zr)y`dmFrHr7M zC=s;bbQyYLzq!PXW$E*-jE?ppafxC}FttRu-^it6TQ3@171<4?hT_1_QZl~LOXX#4 z=B1*(<+JFDKw^A}5?ep~NS4@IbQI0>DOn~?h{p0F?e|VoQaT_=c0J`xp`ZFI=ZHj5 zW&5q*V=;u>wAOstr8BJysFEW8$b2q`1E-n~nrU)WXL z>00(v3tKF}Nlo9$ok$+VXo#A!#y6p=YpW{5nwiQFMqutB6@G4Cl&(^n4|hTU;2yuQ+=trYNf6g z!TI2$_a~A2DDXu)V06vR~xq2T+q!uaUS;u?uTQzed9#2U}1j0NjGPyBXn+wwD9z&X91n%Jcjg={R&Jq4s&Hwv zzt3zy{4s__J|=pF3QWilaUsD!hoFDlKL#qUA>chOS|~RWQg96Ei~cBu6k=pSw4>~^ zK_$x=f}2KIy@g7A2YC*=bb;SHK=NcPbR0ZjS%QoOGe4|sNAkv6rj?C2jN{M*}D z*pTWhWR2B%yyIO3Uh2gWt9QyzY1CUj_HDs^|DNaZEdqUVQoXY9hcy%SE;0U4gJ$zM zA{QgyL;m53%w}QNq%Y%hQ--admdhJ^uW1-?UYg>N%RyJf6!&W?##N)QOH}!qhVJ<7uDg>?hLBp_~msRJB=7bhn|_ z#>_R`ryJ@-Lz~=&7N|G3dR!P{TWN2#ZVxy_Tw~0?mEE>E9F@{Qtgf}aLN45va*dgH zsSlhk9Zyv|+?K++DyJpV%`|W60{yzxF#s|2>((s+*#{L0Ah~ua1+c!bxAH*kzs>ZA z*oQq(2;m?mzY#(S3(m9Mu})h=6OoUeQg27x5az z&C4Y5baUgk=Isr?UKu2_6DmA(mYWlbllHDe_AWZBZ~z7TBZ&$*k6TCA;3CvL5IfKm zX&V?2=pL;VtRT9;-09LQr4TRmWFd-eYv+AG`m8$0F>QXNBz3FR=cMeHQYodsyOqF&kk#%A^}rC%5pNDRecsLf})&(3jZ z9Wl(fCeI~&5Y%F7IC?241!;4oxgoac2y{eLQE`ffD{rQwNL&M9vw{Rbpy=jyJ`TU@ z6s(hEudv0`B6g^4#T9`&mLdZ=>16Q=$gOqSu>MUtEBqIeUFC=g+|lWm#ItJJjD0i? zRBieIqEisNwQ}p;Yn2nG29GkIP^K_bCSEh;KdA+*3`4@D{78cH(i+KFZEb2Jgk1`#amD%u$B8I;m z(Gev)eaGv|Qp1$7TBo-@bG2&+s;olO$s1rt{obwRE7dN5ge2(wY|`5dfe}xD3=-81 zfl8H_du34!2-4x8@vh}yKz_?hzjsgMWbvQFL&yB6%-m^7d>tjz5!E-QY*4+koj=J{mzG9$g?7gZ|#3` zDLQ4m)Zy`t)%&3+!?7WuT+bgYcWGOuV6g9_$(HL;{3ou**8M|HAS~$=$@q#4NUe1lhdX0< zb#mY(*0qZdX|bS$+r+l$qF`(*27McaEcI?2-&gY&^Di1}{=}G%O2jO0#cwNqbNOw} zZ(F3_bYuwwQKE>=)$16 zlO}esOM4<`@{(@}y_h;aj zN<&hq!2eU=|EYpsDh@5u@NZV@rpqs{O7^(gm0ueRE&?%HDfn660>5x_GC9x~#e3BZ z825L&2y2Al7v<_f6~M+cy0E_{u)jvIgZo1l(LTjG9i>?4HPwgL=tCWSs5ycS47vSc zoA%?V;fb8fhq=;7NE&hHK>9IerP~*2DD)bASrR!34;xm}v{^(AX8g_LWP6fTy*;x; zGWMxi=c}6#g7lW0ovV%P^YssZ=6pR%HleIzxR_#pX;$p!KZ?%o8$?czUn9W=Tb{2F z(XQU0&W2j@)<^o|juh!1PK-q)^hiO*ct2FUAHI4DrXg+Kx>Z0aL7sIk^;_$HBF=o@ zq~@@QQmuvN7Fs8Lh}*rkA8GPI<|z@V(!fJHVNPeag5WD&D|_fuOKP`tnYL1y(;e_A zwL2OFw$gKy|NRe^c8u?Kd3P8?c32~y)wKCV%3`{nXdLFQw9(ADb1<5bQ)??necCFi z3s3D$oTqd`%=38q_SHO13=pHmOPmy4u85R?gIe5rYKx&X?>*RLtt(O0 zMU3Vzp^pdc{S~#xslE9t`&!y^C;HQEXQMA+qDk%<`Dd6sL*c~WW)scfxO~bOCVK5H z?nL{ZW1>@i(ff+yCxr9U)DlQki_*!F0-uT$IAE$L(c@Go|3K?O<0xi*aL+*ype+`W zt$ilZfiAMIpc0N|ydN;_=ol2!4x&afR)o0Ic=F~{?)EMbH!5W~0WE#76_$3tbn(9*LObD0+<>F#50`gPWuJGa+VbnIqCYtD_zI>UK{?_L!I*=B8x~A} zwf`Bxm~DjGQFw&^8fuUg)@B|b-Su|cFT@zOr#*%WeF$xZH8kR9$)F_%^^c3H;Q-N< zwV3^jfYzbk#r}V{b*6j-X?A=%A8(#QxYiMudy`f)$8sVa((=vpdKiw)j?SxF zjufzYKD9GN2B;!g6e~J*5IVQhCBIAGTo}3Aq61UVYa)76p0}<5Pdq}TICcy zE_H@4ArC6_gUIo$q0SiTil8k!sb_V6^`po)^kCrW)@7<7-&eZdJN&SD$RfNVlW;Yr zmMhrG0!WvitSM|nc%a8{X^Zi5>@5NuDx%I%8VmSJyePV~P)OiVC6R#qbA6};-GHB3 zHCQUD!Hf_S+E|3+7`oa-02|4g9#??S9)F^S$OUY%(VIi&&X8wkq#~HSrYW!pyp#W? z2F}3O?_leSJ7ipIZ3+9uVWo}iu!r$CD}A|B+K5Rx{l(vfgg~r$N-%i?9NbPUh@?Uz zCX}Wa5b2*Le#E-j{2&bSG!%qT~-DO5W-PkhYfp__{`~9&-#lH%v?C@A)_jkK| zM!|ux#tonG;OntIW4FcY58c;CcByJ^5W7QsC=W#+qbTIkxZ3}WHBz->1ICo4A@4^< z)s?``_>NQLU536h<{uX@Uj9Jb1_FpJcG#!1?Bi^DLLZIZT`R|_E}lB^V%0^uSDHif zy%zH4-i3L_@GZvhuZ)p<>DeB)gY;>s^r;S@*9p+O>C+zR(+&XT=>wnhV4K@xdHXHZ z?cwEWw@bh01`4P}mm(3mGcN-_)D-ZiZgr^t;*S-5j{38^F@K^bWW0>u@XLp|Zsq*8 zmS50KIF!TD55fD$8O3YAH$DRkR5`K*;0&@ukkes{uH&8K|H5W0E^y)*m+BuDhveA&EK;7i$;7nUW$>%<9; zP}-;);U>QbCa?Ag+gm-Gi3zdqRwQxmoOmu%YJ=Hz- zFSJi!C6Ap2RfRRc95mnCsWkdB%g`8qn=@kX-R_LopBQlAqvm)UuW*$MCvPW5^(V&6^)lWv&!{q(XM#lPc`lUcEBD(Ac&{cr&F{GLjoyP2 zJ?*D-iRSMU{pRTTpTOIr&i`T=4k9DsxBopPxI%zxfdm1pV=(eB5=01#q;!Id1cEYI zNMJouNAKw`-A+$^4pZ;YtC{(~Z=N8)KNJGoF9Z1g7-s-Q9Olmce3|_$e$|x(DczmI zfyxXH7>_>6r)UqIl?DtBK1|8Rho7~;hv5={E4+@Bx6o$B7Cn{ zBkT)EA}%B}!e1%T%EVXr0y{~kuITHM=Ot~j(sk#@08S{(|C)bG)CgI08G@ng6e5#u z!t(Y~*<`ZurRDhM!G4ZC-D&T9|Pv*I!x_eBDei%VDZL5YO( zq97%)92rN;D%spQQ(^I6Yu}WWZ#G3L^uuI)sSmB)IwBsdLTNG?}_s3`VnE zRoxz|Pou=%swmO>G%g`*@Vl&uH;QrpQV;FN}@|Cq|Sc9)ZQEFO1w- zyjP+~xJn%?vrj|%(z`5C4t-fy7`YxxW-ihyi=YRAMh&)KqYLOO!t>pe{q`zaDBe3a zUCTAeE*D_>-`i;<`uh-3@Z2h+uY?j;lw?(4%uJ|>LXI+)piurs*%BQ}!(Z>Mt-u^+~l$m5n(|Ln}USfZZo)_&e-Vu)?c7)Cu zA^e%Z3#5cVX-Gt8!@wC;k8{{5aN`NNGUlIT$GMQLGCCX4w@^s(b;Tu0FR?3Rt`@z- zBpb*fXR2)U&_PT)*sNGLlqIV@=K}OVbhbdPbr!N;Yn{c*T!qnDREt?4tTG@PRoi$N zfF&^3hh!@aH;9`(XQZ&V$A5ivxZRM9L9*`byB1A;Cv|M`j@C ziZd8fyV&DlQM3?@9_m2(5!M#3#|8pjlH~1N~8r zm4ZdhUd)den8t0+z`VyxDyv~ynVJRz zJ5+hF&)WExLn?eMiXb6XWW%u~>KsGJ2$J_ivGi++SP??AM96$v_(hJy$?u2UnQaJe z6Vg@`q_X)1jYh zBI8DcRpcP=Tl@Zu@}`0tJ*H5v_8>s;?w3Pcnm1z40kFa_$eSFijt|r(Y{U+X zb{mY9*}s?r`)SIMYV2}aO||wXE|*Zrcl?r5fULaiG^&p)DDFsdz7m&5LMUt!v_5a9 z2y^bMWM9CLQj~o}&G65)etoLP9d3U3AoeS%F+~sus;JJRYKOB>Z*O2 z2F8uzX3CXNG9RX++fAPZC9}PUB#D%zC3_7#$BFdL6)FDm1IP^1U&-8K zcwKGJ0;9^z=xip*s;h23Icr%qxcbVWxNmEobIfCRHfK2@wJj$5)Eso@pwPg9uPSlNT_=4n|T~IzoTN$yN08Hz_wEH+Az7eliwGbxHp%=3uo{B`R zY;I*AwXUIR3BOFgdBIevy=bm=i8RSZ*7_Bxk+^IqL83K$KUZSS;gTCls5uLo@7Z(c zSF^Q~3;Cu*VQd=m(Fi$R%zAefjoISvw=5x$p+>DT?AB$avC2x__fz%$*U)l}3A#$H zvJ}nrg1GsQW+QIoR2_&=T6cy@a4vcmhO;H9sEe`AJ|L^0%={eDs6W2fXKp0&8LX*E zbhh`cFaLOm$-oJ92X;ujgWm7VP8l+nS}S?QO!JLIb*Z-&abH|xKde>(!tJ!ww4X=C zI@F^;D?#H`Y#sMmA6z3uY7@7IiApZREI7;JF);*R*=d#Q$ZPy^k=@?PY{WQesgWD%xc{{tFs!*$y!`bJ=sp5L6cozi*#`(8PfFJ5P3J$ zyhnCl#wkm`md!sMFQoJNSxi*)O!%e`cb%7$aYB5-RD4ryvF4j3OE+gtj*`zc=a*t% z-!17XbW|^2BGfC}l8Ba&C(est%!$eSopTc7dArADLqzc@?rmlf`=Xp3Rl?W=%>AME z`>~xUQ4?5qZUG-AOx$-_Mb%MBhMdyJ|`N~&p zYjlv(P_+qKT7W}UDvhzJU2M?+q(v7UXCfTbzM=Itp2&{*3-3%bo(>$omqh++QkfBR-gf@%cdYr52l#g&$6K!Wla%{0wc3mSO zj;TuJ#a$Q}AUkJt9^4-?t+3}?dufLsJ6U&K;!M`J3PQi0thIdqBPMHzGg(zkJ@b_q z_!l)|60G>PQOr}ipkw1bf zSZB7`GP2optv||ioqo4FU1LEKXSz28I%#&F2;xhiKa8@Qd#(8 z=;IuTSuE>I%zPscNSsdzqo+KP+-!!z7n_Jx>WkwD%DnL-EhMM zkOZ^}uBcT3w|gCA5rwcN|L=3oy|aX1+xPwaf3#-qa_(84^PJ~A`*9H9d&VqI3=q|L zF1GVLGnWJ>AZW4uFJ5J?eJSH4F?O2^-zkSQI<<#-DybbCwvuuOe<=GW!J~*Ai>XTJ z5Z^5^qM|Di;$=j?)K>&;RP+G$3}){bQs%YUTUiEex)FTDSr8Y>TCNm{tm6Zcu+;bx zmH12@%%DGa4|Ybhv%4Nq3{zv(MmVlFyymsbjm48eGxii$niy55q={YMuBI|oW*|(uQ*cdeT@u3l&&{+shW3rv~MC$wSaeOb;c1V4@Reu}$3T)$b#oiR9 z|Ke(wbWG?fRqX;bRtC!(jObV3WH9$@^2~9VI(oLu;NSPxGKP%cU(d>g0Le@CUBZ7! z8`Z_PXpIj4#gg|SD5N9dY(E3Sb!7+>>3cOD|BD5c_}>a}$M44f@@U2hduxlrSe=#q zFmZk{ZmAOgTj4V|rQ&~KxYt+@&v8hd4SM07#FT3b0FD7f2OOIv42?ni zK(%ANpo#V*)O(W0pat&Yxzim4@~V!LNz@V=1doBdxY1Z#!>3I55|AGrW25FVmb*L# za{9H)NO?BT&j^-~9X-PyWj#EEY2H6 z{E@oQF?0G4rGtsyz4QjwD_g&AjdbewC(aXogZ=9*;=W6yJ3Xb1QPPI&Une?k=z<~H zzmQpX`C4yIA>kEQxk$L31t~-&d<_^^Kpu@$0P)qUvr#T9-h2S@=C7sV&28b)qNKM0 z06|!k{Ux)0POFOE1k3><*RHS^g5F4b+IIAlSq=i-&PPtt{MKs!K&{dxGu^#B)Q7V5 zb0qc$#|Rebc4i_5OQ7)%Yc8~u0~GO|F=8iDsf#(2SA<)uh~Hq2LZ3-Ib|its|cAZobxsyKDUv1%6rUee_yS*>5=JO|5tK zpRD!%R?z&X^;FoIu4f?o=wy&E^?K(BH<1`J7d%>&6ZC@LYwaG5q-&xsku@J)iUF|% zm9OwE=0EksePykIru*YL#l` z_1l;6oV`-5)fz<`Dt<5$e-^AO-ywW_AThLPLU&lD>o?-BV>~}naePI%Qxu$;Ea8x8 zYjaTnqidum(dDc~@!$0|y%~Pj9-_sVth(m~b-hnf?^8itZw5WUS5g?t%`J#hsbzMMSg^9c@ohOuI0KP;aYZWbC#f=vT3fxvBw(GPg%)Fa4r31tI*Qa zH+=SET+1?#!?iGhEA5-x%d!@Bv%B!%B9UK0dJbQuCb$-1 zEhQttMKE<8MWnt&MtQaJG zMLC0SJs<}W(V5o@n$SArQq(7kb21QirPh7H@_oVFuh@5=8Q(nzZt9_e6gSmVxS^)E zI4PQ<>?)&WWBSx#rao8jXw4fV`j!i**!x^jGDQP@@lId7B-@Yc44^h2vks+M?bpKZ zj5w0t>C9rVFXfM9Ox0ax4`*LZ{7aMvqyg1E-IJf%r+eWvNrZ{;Dvl=G$e=%Y@qr*+W!T%6X;s z)3V-Rh-A;v`;9Mu>PAkwmSwBv--ymYC~!8N<9q~CXYMCRfx)v2% zRW^LjioWy% zRy>36S=2&TW#3saM5wF7Z|<_!vyeoCH&wp5Qaff4%MWxjzM21qeB*GY-RYaA2ho>H z(p`I9K5?X&SJmgASxe5MXaA6yqH#sgH`5tamn)~&@!;Pq^)K+@bi zj}$9TLiKxp}`EV-1qK65W;nP-ibu*!zYd#e$DWvP*1ESq-v;zXJ$Xi z4cqpwD26&*>A8hI_!DhKxbbt~31T(&Inc&md|I)Yvr-f(B zABJ^-@XdptP-abd%y2bKRLKHImKai>^fP0`KU=?mw(^OSWvCxbxx7XC^KcI}d2J9c zNc8`~NI5$yh+Pn1(ulvQ7Rd=RfaQiQ7U;_Q-*4P5{)YBIMIgTwZcxeE>p=^9hoadj zk=_0liYqh3zIzSx=v@95^ve+J?Y&YetwGqPw!-yNvm(U>ycV^It6FhU8TAS%Cd{eA zvgxwm(>o@uY9@+MuweO@qWLi`U1tzj?iQ9xc%(J5bVPpE0ZMQ3aNZWqlqtuK#%Ud2 zD0$FZF(O2sf;YrDlDtsiop!abRv6!~=fb3nx(zPeSH3P#{*_glaHcn=FqJh}#TslV zF&6(svDR8$x#47YLB&kQ=gy7pvV3C1Dy6uyxWuDN7VBV+RF}5`QW>CqJTGKaL9r=Z zzY*JPqTT#S2srV{%X}5%NwxJ$01p>L?~L0+Tw~jk4qHEmR@l9H@V@}st1i$ay9&C* zOrUWl$`_<3Ndb&3r(452ngeWH8epH@<^XJxEL9iGEU%&&z)oxiu#NyMcwrh~q0t&xbI;X)8fTsD_U{?t?L@x=L9Il2;UXgZ8C#YT zjFO$=c}fA8rxk#udRq#bRi(0u)Jl1nYV5Tv7ey1bqykf%)-ns7T*Nu91rJhfd~#m zN*Xxm?Li-VhxaZGad_P8q6)A05S(5tpO|7a-OYhb)Vf;)97K!M;MWHF-zg1$;~sBXg5*8Y=Z2InE&8Y0Z)Gs$`un|;o^ z@qDVLm6HzTR7Pv+Fs0C81yi4D36()_-r!#)Xd??;R(9c^CJLgWL9XzyvTtI(;ADex zl+7)(HbyBq>{=_J#0wlO2N2a0STmer|f zD!N#VFhZ)h8Y~V5$l=mY_K`$kPDUR?KZh6~6F-i8V(nucB~NW$eA9X9A%!Y*aS>;% z`iMgo&Jy~s)v61|W~@1-$u+MnwI8NuEo=_TDaWr?p0h{wp(cAgGn29MJSVyNzuF_0SlX_(}#xmY@9;zivBvc^7+BC{xg!TB?@zT1wdB^QXZx5ATlamnP9_pk*Uf zXpHSLtk^0wo9|CZ58a4%pmXSN*}GZJq4RyY2W0}omu0&NZ+Pmca~DYT9?_h0HDWI_ z|Mmevf|n%%Fp%HpHmb12#m2YNRfqv?#s7z2DkhU9S3q^qyG-3ar z0mWR{3+B79?<&`jz7d1rDoeN#MUO~&n#G*&p$U@kt)h|)13%&cKF)~~06_TaNSAkrS{H@~{dxj&nwAoHQ)~1Ya)XOtCa-m_-QJElXouTZ0p$L7K@o5AOT`Z<2vPP5>jEX}2 z2ID!-U`%0a$0v@8tu0e6F|gWk+HN)mAhV&xFet2X<9e6Eh9 zHDcQLNeSroCDffMWXaG{O7`!p5#<2g#6Zy~8~uVlF0Un&3tme=kfQe@fZO}255nNc zUAw!B+_g{1U7?;XNvmOg)Iwv+7dH$0@zjK=dd-i+kLdT|2doLF$+5#9C-2PeWy%zw zu;YMrXFm}JG2==%ySVs_$pJ+TCzO6-e|dlv?N|sdqg#%JAR3{=4zjdU$Pz>!wUme1 zh;qC#m-=Ty;4}vUZuLg&RkGtrm+zvSLr7xJ^UVGi-RFT@QZ3s*$O{s)IS_E) z;UveA<-)29=-U{vv2so0qor~4Lwgwa+CJOdf2?1oa~f;_N7bj|d%}`yW8@qC!EQG{ ze(S5<{P-u8NUn`7xDWQrm_p9ECfM72y~WcgIfiojs32)9{hXoeuXuOv>3eY^xya8U z)I>5(%fLorGS$J6WEn(6z)J~dq>Gckd_i+3?VA4FH|JGo6dfQZq%4|(MKtQRkvRC!aDi)hxC_!=CQa@s%=9#=ECX+S7tjy{CvdPVcKdujyH(H-#3RNkO@ep4L6_SKr z=^ov))alW&|4EN-``GDGlZ-FjqXobD4|+t;bdSz=O82w6{Ln^?P?1JC)=4dYBX+A) zFC?G=z=ZTQHIM(h^u&{GzpvhwR>>75>ZGUG}VS$>EtKAgvx>9H*q;_{?4@z zUCMWY&;3+O8zEiEyHnAoqj+hr7r4COic+FR4w$PogIKWvR(G|Mr2?@wKJ$RcQolx) zdP`)f4Y0Z+7}^E7jx41NH@N$rb+KY$Na^4Nmx7!d!(J6&dcIRgGdsuXlKMnYkA9rnNY?r1TsM8!JPm|aWGzxt%c?5%NLz9 zXO)%Lg@OUj;ub#d@@%POz#osmJlAe@q#cM#``P!(WWAy#(^J1))>pOF&t4!in)2BR zTT|~Rt zAcBI6|IPvH#9p$;N}+8afdfDW|Ck1!Neg2Ug>8Ity>%Qz(FH$(zifFw9{%t4<0sZ;?#FX3clYDF^4APj)o*Hx)nD)tiLxmPOI=5jY#0(Fa4VuiI_L4_rQ4wtA5o@N8cS~@2^_P zeti>&ydqG(*Bb1U?q@&Rnzkcky3naQ(%s&&#Ob!M?=5!wQ5mo5_6>Bx6W6^?v`qjM z$f48q3#5aIn-9@*B4l=lzw*~M=Bcg^ce?&4si2O=YNWaj>!Q0p+bP}8PND(S+q846 z^oWsjGjX4c875%LqROWan)IqY~1m^j8ruiA%u84SvH*UQQ0n zYRC(ngS*NLBMYkbm4ei;g@}qpCJ4>;3yS1#{n=^QgU&@|E#Pw;XaulRcOU z8BBcA{SD*d-un-^LuodWmIgvlcWNNBFJcgf7{l}7o{ZtSaq+ehMsUlaa94K(+wC2C z1ff%!_x_l%aqsgqeMIMgesL)v7WUSwaHT9!vH zsc<1}C%gPVf$JKfdx`%BuEP~v<9zpD!8JKWfXW>3`Rs`TQ0-VDi`$4LsjeA7*WH^5 zP~m{y*P_D^M2C!npzI3)B?x~nP~M|k3RYRa<3zc4c#v<{9cGaR&*d+f5a zyGUeJNQZ+~h(hmT5@!xiUhC%oNEHqmObj4H_mSbCt3hljYRev=qCwB2N^0Q9Mp$I^ z>Rm1nG3_gOlNk)gl97{9TL{%CY22%^`@7!Mp<;c+{YZuTNO~S)@hdoC61`C`c9%rY z{$==Jn;7Cvj!^s7sJ@X{F^SwcFEQ$d+ zN+vn{wKqF{svqKHxk6dKaChgh&L!4MeD5PiUobJhQO*G*p=sD7ClZ>k<1>fb-Tbbw zk@L|{Qq3k9(EEGoSdZlTK*jZfXYs0K=wUxU9h;Fl8S~=4(nHvRPpwb2ITh0u2@b|E zF3e@hbSF_V?X~@-M}sg&$um$g%O~+XM`15djaU&eURi2uM{!@!35S`)uX;D>P?_aG zDpxud`vC1T0F@@~Ie54JXR{JM>&S>&y>F-|6`=@g*QQ^hpKR51r}3#F8;R92%Kpb?19$emDVJ&(D~w`RU?`&p)K9 zd0XUzp3d}a$eJGSY3}rVtnf}v&)J+)2l>#`Qzov!|8{z|=VVRKBLrf#G(FcId&Kno zR5})WGh=!##Ahd9eyC(3t&#kQG?Bf>ga>&qmxb7-JqUX51EU&0wE!&OY@&zr?` zcI+zYvamE~UWJ3pZ`bE}L&O5DWN$HcFV9pD0tJU81 z1$Z7SZ}QVA4AwLYB!7LsGmO5xc4GyDLOG!CgnG5^rYaJtbs3x63gh-B!iM~b1spRu z4r@eA5>ogRm2lNn^=W7MK!P32B+-ERideAN-!i1Wx?EvT8%(0r7D%B!}@3pi#q>8(P(68==%`xSpWw4KTZuv9!&H5zm(Q;U(467dQH zKZN^^Ppvi*A$AbE6P0Ol`4Ns!f&;M*Y#i)=A3x*j$MQ&ZWWBse^kd{on!Hh2sPAPZ z*uR(62ZJE2hm41& zjELl^Xk0FCQY>8Z80+v`nmh0(CJW;>9_|{(O}Mt+Qpstm5{aJuqLZ#fSP5M?^iHz7 zY^Ny>?u5QBi|~XBte;%3(B@O<6`sYXDe8v~C4=}4?JQ%p5IWN(c;$}R*f68F9N8@Nj*QW>K2DQJhwy#r5kK^S00IxH&lpsfi#dwhn9m zK0#t!>WtVT8p&XH{H7tkSWVW3Q_w+;=WD?IX)5Oad`g&$qrU6UutyFTqQP1;ra!6dI|FMRmihh zeV$P+w7D7H*eAJobC(Xw@2gOSojDU#lF_503YOu{j%C;}aFJbLg8dR}MUaI3P0PzU zBb>SZqpTv=$i)fW7`d8->bf>MHO=Sbi;2#eV@WdOP^wXzp^S=BHCi3nE1XI0Pwg#D z@}0#p$+FztS(cbxku}UM_&y6YS#INXg2+L)iQD*M_Ha^CAesEE1BghGGc$` zCOI$N@Mzuej$_DlpT&<=#^*k&g$1|y7hl)SU!88Af@}$W0S8RzgS;qZaz=YEY4j15)<*##Z!xDs(()>I&G`Yb2)~+f36xi4TKAUa-}E zmU_^{VS*K_=e|#^ksQyhc%*T31o?+urDRq&ak+Bv1jn)lw=>Bq!50xzzt}_nby&y6 zko(leruxj+;qHpnDG47do?#cY0(DfPON>^8@6a`IA(A*O)kB@?qsF+Sz3|g@>-gJb zSF!#T42|cH0>oFpb%6K}x{w9LZhU(r5Z^>6kO9Oo01*sUKy>p*O#^^8DgX*&bOZpm z*uSNYEC3$3&;ej8I`N+a@R9FQ0PM_+{~G{yD*O)t*dYUe!vv#`5TJg$-2vK{XuXc$ z3NMjwvbaLdY--LGB1UC#g&AhHG+WqR%wE4%b}?n#YLPJ5WwFoF_v6|q)>P#70&Rr8$fjq)>$sX*k9rLsp%_B#;$rPjik0!JlB{_d8 z>ru%H)0+MpvH4NH`wztC1u}jSn`d$XE4+lMSPG+9;ZO9)hfE?cC^r|8;lf~2hT-h2 zPv`zuLUZ^^dlOm_@(5~1VBa8e2#Zi4+vfAUNy)Yge>B!seDAkegAaCw;ZIAYz-S>D zfgpo;+d-6)BHpt1RI{ruNnXgt<~P5$zJu5bQ|RRMIEiL8uBPjfFGQrhc1gIWBk6Xs zF3WKxU3o1Mb*8jCUMYKtht-mdFbdv|@zQ&5v{C1P-@BPKXUh6mxPqIcgDW!|55w z@+;a%AXR4XcCFdT9oB0}p=vs9 zPcDo_8dKbgaC_#QV3C1?Ian6q^9D8UhwQ-mVL?-^O(w*JKC#a=FFYRA5VbZEOr8n=tww62ZPvJY!6xf%l0wkLM$~xp4D}RbbjrEAt z0+kQ>fbKX`)VDeh7%{{Wm|&km87w36-P#GxHu;z4-;Fr(yPGKksg<^6n>Av+5%6q- zKUq)5$kYD%sbB|*hgi9`1nWUeIAjU-`G~ALzxf=30^_Y{>Dz=ND2kGzCJAtYHdh1^ z^K%KGR>VtlYuxcaEbkzvAHuu{a2>@Y+M8QDiij{{T zKO$4k-%(iFA47Aby8uYU%EXsomJ%zYCVEMYRz~azML{KONhd{Pz{#mV0(3$F8zX^! zaG4Q(2i8I9tUk4_)nq9Y2ACqz&c8;%O)LdpS^a3lVPm3yWPR&a!hW?I5neb(h~6Xn z_BSPm9nl8H1-Fgdv1-ytpP}1W@F2dmwro*qoj75MqVs3b6cG&fvVhu%l`v!#bB^%t zK2^He1Hf3laDcJ!ixe;(1Kut$8WfSzz}PO=%>EC1_cz&}apQbimHzaej88}H6#Aw= z9Vpj)`l5V#5;rb}X%4VhaYOcBMIkIS{|2dCF20Z^Q&GnRXN)GG(_u)`K>@f7H4h5d z)I2CaG=~FDb}(Pgu+Wsth>7ch@OBbdDk#UGG~?UY*D3ulrCkk}5$h{=5){DknDiD+ z3fWy1O5}qQ>=B{!#1as`tQpE)eDhIJw&hUc1ohir^2d$C?nDjtEFNS*q~s`0RLvoB zM3@8)Qji|2iwsjX9buJO)Y0iOF7rSt^7c!B!tfP=mh;?F`vmYi z7-OBtcDRLQWY_Tr{kz?W_@9bT2;Rgv#OYR!D^E@C|HU7SOhz)4K%Ztq`3B1F&a;41 z1WlRer2@n>xw^Z(OYs}&uS2dlB84(j(KL!dgpDLo_$yUTNY?YvGD&bEn~aJ;Jt%f?IdT z{xsE{(MRddG`f?u2^8y1AXF^QQpW)~tCAveBXJDPm#^|!w|}aDm=PB%E8dNZy&(zP zh6{oKP6fq^%nsaKp8oqEgdI@GZ9YUr%D+gGVfLr@5MHJ04~^EalwvBn-iJY_wY7Yg z@M`d9ZeXwxyO=5zK&$X!8PAP!=5=PGTA{eXaV0nKr9Bf(kbWbxYs5~I9Z}5{DO|Z0 zvR@?yJ8`268nL@G3UOGEDpV$g2wHRsHIM(7Ub5yGPgAzgw(yt#CBn<`z$$1U6K91m zInWk9`LNwtSU!<^7Z7!)xigV_m5d6deV$5$Z{mov_uP#I@;m4i#;Xm@u>atUjm*m|-Al+?RHe+Y27CSCtuf5?bApPS-`l^$- zj)GL(7^90+gLK_lNcAvEe~nbLy~4RDuEk5o?Qwb(f?yjy&OorL^tdw+Y}}3`5UeW| zI0z;+8?i6ds@-Y7%dd+hH;Zyx*cWmQT+6l9_$?T6Iak>eml?Egc`X^#SHcA@7|PM) z?%a(xhrqPg1k6gsKd(U_?~HA{fYupb_~*$RoGBG0*tZ{LD#4;_Qk`qIgs!Dy@+gZ4 zoT-U`)XXY7$0-640FH9@$p_Yi5eLC(i*V`L8A00)pGc|jN69Tzxx((Gw76W{q%P7} z0Wo!qxW#mPqy2Z;p|ViIA#TVIsz7&Q;#|CIFk;{6b*Mo6Dc9Bm+XeR;RNz1MRyRIf zo#8H_rct5?OrCJwju z7{`q5r}PSqR*x|p7=y-Vh!9I8zU`JMm98lDNMAEfJwC&a`c8*LP^tL#`-YvP=3rIIMLLB4dsN7Z4>IyD}!fvW7_&tNm zN!DlBGZefoy3iw;Qw~NveWXS722uekH)nRHkwQo>I^sM`qYIXgzp^kZE=8*~kGU z^UIQjFUcs(&4T;tlv>Zau|sn`?CWHnBVM%>x~5;MO!!~wW9J-J zbHB$NOMvNwuJ(AkI&Db`o|A#-MDbsaE&(el*$xY4TYbRak zGv8tV00&8&(>X1KaPX$WND?T`fHV|^PfT`5+Y419uiX+TeKWo?Up33K^twV+!P1#U z$b{jJ$-exAPEZ)ze{2~PXBDQDml>7zPLtU=~4-U=bb+*E7labW!3)n(zIiY&l) zWs&^_p&6X%jRyh+gB6F2TVLV=m&kE&V_l6~lm>>*9z(z3Qewb+w30w;r^#@FmS#?-mD^~gqjAgcM0JzV z%6+Ppxjdzn2Hi@&Zl&0W+$q(+ZMT=##KJ&-VQEg;3J=bRNPrBwLoJep4jFNlANcE! zY=KsfVrX^bR-CqEkH?r_&}Eu&WsO_~x)gJ{ewuOf7A|hyTD-?t;JtVwe*+h9kpkW> zrRlO=TPVAWvTZLW`)HXTEq{0!DC3KKy-T7sL#OD*(hYH}yJ|?as2VFcU)nmKQ?*Iv zJOsS*=Mpr~c8=Hl%3IEwIN;m&b|80~FY;AUsEg5S3`(n2XHPR>{A=^XP(YscZ<&W8 zlO`<)u@FQa4u=q~{Kmf(JT=Kcdv&Q{Ja?m{g5u^kUJIda?Q}4 z8svFgX)xz=r9oT3RjDdh$W=#m)ru?PHJG|0u6i_w`ycI6+R5xs7X9``ws&20fD#Ml z_C&XE$-AyA<=34#ee~w#65nJ0fR@gD-J6)P++)7yG54*^Da|V*s&dzi?yJ!3q zP-ui0`s2Pbcq2oZ3w`lRh6m!l(ieEQ&|k6MNUY)tmF%GPqfX_FMo()FHrn7V-&Tdb zHY!RVZ^bu8LS#3O`F>@hV1TlET)k^hlU4V`9_<745yfDfIDXGqyi-@_sUBA*=R~s^ zAi3~N%%bKYtZ*mTtr(By9kC<|UtY{X>-&m0Xno-@hIJ+9G6Ar)j4_jUBF}rC92cL} z``gc9@%p5jGSoV&_ckQxL}9z%x>GQ_Q`a1u3_MN550n|Voi4>ub1lqqV7l9gbmy4| z>!2L);EB{W0*6=;&(`IiYB%vEoHGo0(O+m{A!nxP1Ypr2(!Cn{cz*P_*vP(1o@P8( znakKukaM%c?W9Wm_Qd3|ypjRr>jx)M>O@cZdsVS-=Xa|z$(!}{s(~~i8}hp!cgBV3 zyI}5iR5kUnw~fX33ocx}dJu<}x@{d>r+iPu#SHJ&$v93sL-=8zS5C zF=Jdgqkt{^I$vb#p+S3%(t^Q8X<#tee@wv;{se}U8l~RBW%6(!_ue68>ghmvI!2yO zR8L{hDLZkGaie$emHZ71z6t8Oz&qqh`3VfU$rstN5ZZVs{2*CLXlx723(<9nQA40m zrM}!xp<<;lz=deq_MAgCt#-*z+gAKt;4PAy1#OEUEoEda34h|xeS_q-M)XfIErpvMG_9$sF6b>Td_*)seRO8x5lzJ(GbdhXb0-o)4~-s*y5J!XTa)+!c98zVM`7y3b| zdJvTpw>{=AN|bsQ*6@M%*u2`ET~#%z^fcqOgL(YBl2xs7zy-eU`DcNXiCl{}S_ z`BE}pmpm_{WUExku}(?$uGhXR&?PU(C|R5;>32#NO36Z9a&kt=HmQ=*CuzNvlx(F- zUXoF=ZK|a7NlF$;$s%3y@{E%0-ICE5bitM!ika|>id&!t7lMKYS8gUeV=E}&!cUd1 z-O+W-!gX85RELfg;AFxw_KYg5K^T2SZgv#Ag=N&4;Eeq}v+#@Ag=IJgGawp!GPCgW z*@at6;S8Y0p2#e$`jqZQi4@L&YixODVb!N};dW9u1GKR}XBHmJ{+TgA!#L@z**xc`o zn|_!~;qMq#qr(1>DpBf|U|C2lGxoxIz1FC(KGZgQzHjh1)-$pP7=LLWJ`Gi%wUYh^al zvsGjZvN8eT{y1l#)J^3N42|=^{Ua8i%){ZyA;KSvqi{ui=slsaiRllIS=iWRR&wF$ zE!7=MlAmYG$%LJYB4$l!8Z<69JTluHd~kB664qQ7S+}rR7BuZOV@KE&>qZBvAL z>$nnSmkFHt#fsXk8A=6lGu zv%{b3knPIkD0Df^1Io3By!MDY;ayP?qC<_h(#!$21&jx+#A9)v_4^M+nU7E$S=%*3 zD`zd@IWm(4JDHY8v-!zI+b!vlD7EmLkb_B1&Bz}W_7OMyn_mluL&VTTWW}NWV+bYZ zpd0I&7uw_`kAS3&N%Ty0ze3lV5vsmR;DNIdJ{ia8a$pR{fM zSq@^ZiSm$1aqML}9l%E)V&W5_rf>@-+7yDv;sQb-@4Zm0Y6JYXka=!o4pxZgHk~ zoU)vsEtTs72z;h$$*BGi-`jXXK*-kuRbTubsZSIGirZF<`wb8;IGO?uzx_1{$6t{W zo=8IUln z2Jq9=s>B6-l)jMuzu1S`t@Ag@3Nfm`6gOe<=F|X;-!ofvm)u5l_W<3M{9R}sjaVZW z>k4xFNNKx)n`ukD_)C+pC%gAi#jGbrT?A8@7f5(Jb8y0tdtnU=0*Q&a{<<~P+%)Lp zr(Bfh066+EPwT4w z3aE0R9V?{IugV`XF|1@U6mu!>A_w~!vA?UycttQT2jPrB$&9H{YT}y1DcrbI&TnJ7 zRNOVkO(w^r>4QhffnIbli7_~YsU;_2Z}-v?%Sk+`6*!tmmV#3hZz`!xK+#D+Q3fPh z(W7v$E4QJgo|Q6`$iec^T}m0O8uFVp$@}9|?k#XZ@E}{W z-5`LgEAaHmNfy-=EE3#NpMV27yr(Q4+Oj}Isf04GdO~6ssJfg*Hh< z2@@CV$G7s2%Ypnb7#dJO6mDCjQj!!i_0=Q!z+JNUT%w9SD+>}O8LIw7yFScnvfr!l z>^bTA^0wZ|OtJEGjSK_DU94vQH6HV@%!(nia-8wplrx%=D3~~ZaLRO!kwv)~r5+lb z@(*HYRXg597fDXhp`Zd)o;Q*>oJ30NKl(@PnMNP?eP>3nx8k2?R#HZXw zIy_Y}QMoSCu-CX{2tbOgK^?u>C#-WM*fLT!Psy!MO-0VqX!6qpe&%grt z(0b~$eN7yosu17>K#z@pb#AWX(iZm`Fj!6#1c{mW7o9;V=WJ(Ge3{Oq(+#7=v)v-+Z<#HBw(Y6 zl8JMliR>?%b-C|Frl^$va>$FYVaB<>h{Y1p!@1>C@uqbU*};H>P>d`LXrm@+yiC$> z6$aGOK}AWC;ZSZIGS@N!G-F)Jym(D3vZa+)6jGlr5nhf3Hj(%_owv##U{T>9 z6?+NCUAvAkN|VPf6~+rCI?eghm;qZ{Z^V{SXXN0GMl=^lnVb83Cie}O7}4Ea$k#(x zeAi@e=SDvDjVvtm_hp~lL}_25UA;8`?_H|d%YEeF3?ud}7wJ5Eurt5Z%(*E zrX@UBrX+l-XYXsR!Y4-#UJ^R-MNtt));tJU)(Z|?UGRG~i!TcOw?#YXiF}FJfhK(i znnTi_UuHw$iOY2NQZ1Vl>A>s5Z?K(8a)TWDApTV5Ljo`dir)D3f5mZWh1c8}`MT7& zdrjo6GQ}fedX1060w9<(NmjS~fsVC+#d@I_x4y%&vdiHI)WA+x11p!l`VuM&3N|G* zHm_-0LfW>!KPR=noM&xY)ktmi}W?twN%z71yM6=%Qfq==?n4EW2@u(L#@bHj1gw?E(S!_y9L7eNa`tf{D@)B-_$xX5{L$)LS5K*?KA3aSDYw0;(X6I7V<>QJ5 zMC<8~no$(pplWw#eC9gqoWCjY!Mq2|wEsvkwDOI(RSVXeiaS=we;aRJEdx4#&mFY) z>0B4DLWRMKwF}PjUClHJbnag5hnD}Lrg-D1+;Cq_pTftdamTv)GZ7h7(KY)%whtAt zEUT8&QYnCl)I1z%=rF4*#JW|E@yO~K?aAH?u`Hs}fDx>b2^GoLAHP^6-?x{$ei{Le z*CrWKbbY8jrs}#X@g~9;ksOgR{h>C(!?hvfPqK(e)?{9s2d9QwNA~wOVlxHZg71=< zR5l8B#NDKOSteAG@y#p3SiT}?uJy+6nM*gT%nw-VaOt8Aj-Db&mk9Kh$K>{&-^NpM zz+*O58RHH#H}$Vq?hCcGTRSdV@3=3l6yd}0)_W`Vn>gW{_vFyP%wYkP=R{!)+FLyp zGcJ~xH@)UPhh)ukIH8ejcIrB4?)ICTjpwG;c`E9>#@Ghw&pl+4*@9uHtk!sLcOdtx zs)`S0mZ;>Q;bk0&RpDHQ213df`uZbPR;-(Uk~2eIldj{tu*N#LT2NrK*F0Ed?q<3| z!_{CPqPNkHjhM-AmV_y?q_6^0g%!9eKKb41j_3-is*{&1XAfN0>TLt>TYv;ajXNZN znL1koNalsR^0&Z<-3NJsrcpOWa{CO5FqQqeV?OLtxuxD|W=Bu56&Gel?f+6$O@;G| zRDyzQ@ui+uPi3ed-{3no0*zP8BMn%S#E6!*Ccz2R8j(NqOhy#rx5W{4mJxMBUIt=H zm{!9wM3fq+MX7(Zk}Ga9U`*H|9F7=qais~AuQnD-Fo#-L(6RTpj;qrG5w>pPYc&n~3yi2Hb$Bl* zXKI`lNY!_KpaS#R9ejfvPo|Exh@db^soBYIu?RzJf`;NbS z52pwnZ`|@QXznp#qRDi+DH+7CYnpLGRSjy@8Wc(VA-(bLp!t!%_8V-ztEp-UL9L^JjOa4smUuFL$cG`q(Vss~NVHY=!SW6Ah)xx>+^HVMEzf3j zinC5qy>dH*?}~INKdVDsjfm{?(xKDb@7LfiLAVjeFj+-4q9y!JAgLC>=k`=efrw>% zB#8JYTQWESI4r)Rz=N&B;{esbO+_>-T4{r}vkl*QZBP!^N zM(ccBcj_6yG!u1gEhm=lp8mZp?^^2U1G=LR=#D<1JNkg`=mWZ=59p3QpgZ~i9WBf3 zXoK6)Km3Os4Y!gGCOgyBJDskoo^lxN?&&|EuwLfNh2uwir73On_ zk|$&kneKsjLKcsbU|S{1=aCrq}*(Sje<5cWO00e&uV8#g9v$9g=WQ21y8wh6M`G#>wX#CgEqC;4x!9 zWZ)dsd3in#Y^Wed`MBL;w=G{SNsS`gFtDSROblK428PSwe0U2VJ|-Vl@!>6^2lUl$ z$!pTNuQ&%9a z71VL1poY2+2gIUVzWqh@_*F^|sVQMXj73-&id zHbhs;&Kim&DrGC3)jxZw%z&XRT&j!1y5e%|6EnwK4UD22ujU=`>I+_(A7KIc>9RIC zb~$5kdFq~m=MGPO4A;U_AAXfy708Q3;ntt2UL`8GMjEa(o?G+c*$mz|XJbnHR8Pz6 zNO@&`NcH(r{RUVEzT9`E9#1bd9wYj+e!N9L=Bs6N%3jJ-qXZq_C&{L!`w5tn|0Zou zU%SsTf44hjFV86VQ?AGFO8+;J{{LV8OHkLp`+l=irWI)uqn zfAL*Y)7Jnf^S_p!$@?+8v&*^PWS0Mo`otb7_Oz)s{2{zVFK>>z7vJ-P!tpN*Ul-Yu zZ$#s~7B}uGdn@x7hKqc4!al%IoHe@sjGQK1rdb1Hu$HX!?aSlw^=rYZMQ~7Djtb zOT?|iY0%X#XWJVi+lOQPD~(@VhRdpCl$Pxkfw3bl^sAAHYM{&5XbQ;9T+^@io4m+2 z++xw61y`Dr-(`obQ6^aJrG(AY|00+v{}zygZ8d@(o68`ivNjHC4fWy&M!wasG9DZa%tKe+E zy(cfa@;QzAnLIU;lZ0N3 zjgNYaTU;9=O;bW1{@o)Suq)$~S+ zggVG;%#iDNGp>5>;9OE%Q*6eRoN43Cxij)efm&Dav~-`_rwcOsPZD&_P9OosT3{^# zc6j4>$Hezq3Ufz&=f)SKWKZU;wLcNX1E4=b2 z#^&lz9#4%%uEtf58l1dEzuA(iOwP8^Ey4B`{-Q0RwsAy9PTAamH3fgUg3`)r?_hYm z!hn7m*=q2#Sf1wFk^)B$Ka^vO)1_~vj6KAE=b8mi+r>Q6@2BV32U!~DnmwMjzvDtb zy@42NZq73YJgp>s&IIt9?|9kHf3nC)1xQtDNajbJCDk0?%%l+&U}?w*0A-lA2$Q;j z*%0}{-<32U)~b%B(<;qLGYVuhs|t#_@y=)k&!xIQo6n{De0p(9pYr9?#m<*}_;g#Q zw!ki9AfBW2GIWXbuq6x+U#@T|IR*R~HN*ZCwJH}++wXCq9wiIpzNJs?ze^cC&X(RM zi+QJT(X&YLf3te&>0gpUjJst1)_Di#&bALznUsT3oV7rgi=@iE>y``q5WKxsBf@OwLPY?Islf)(*w2N6i2p!B>Eu8 zbjCZ9O?+ST$VaB_*8Slsr)b7lTcbTIu@+CTTSMS;!F?d+tHW@>1ZFga8 z%%gWk-s~JZz&vpMbb(-@Jx5P5ufl@K^~Kqk+}228avJdNqgLsbS9Kh&@ZH5)h3{>W z7paEAG(_FMYN>98>RDCGleSqk%ahWK<XDit_ffHWq~^ta)J8p0)8Rg9s~)LYa38hL>}Z8*u~b06svuW^po1;yeFcTd z3JUF}6=k6o6{SI-5XyO?8*_W9K#ztcAx!Ue^)tmXV$}s?kRpA{yjdftC$5scwalr^}+b8GIh)V z?rXmpp6oQJhC7#KMaMw-x_&y=l(^9urPhi6YzMnez6)K0lV4WL3tycN>@wwrltHtU zgrteHF8lzex{pU;ig_7ZOY+xRo{%t9mc(EFg}E|uR^G?_7~TfU-=hS7vYOB&@h7Pp zBbK0?cs>z{d1k)Pyc7?n4X8DC@yS~+Wr-ULeLaQWy9wr@?PsO1UNk$_6;y09vV}83pe0pgx zcL&Z!U6bwPZ_woCaKUtfQ@3N8t0Hez;rUw!z_{ae2gA5SVaUYma<0p_j=6wwMb?&y zp_y}~#rV4jnnX%aBig_igYh#tGcMGc^sz?tw>%(Zwit0C#9%y*|43>0Y*Zl6Z<0MuW(qSRS8 z|Bdn^tCqt4$V0NAg&%_NO z2Yl^%HDDt)g$je__xAHtf=g|(Q28^ZW3eR=d*3v_G5=cdbBda!s zuhFNN`!a|alk)v!_tUp`^67ii)u+idnSn;=%g;a=*$>LN9FG!`d)HaRmP_7|f4Lnq zqE`d37Why2K-@>7cMA;6fBGVGO7U^Hl{*%wAR?(s zJ~_cTBJ>S~Vr$P$jKV&%!>Stjz4n#c$1$Kor7ilV((NFn|h?&zLKVH%rhB-)BD=rAC zb|Q|8=AyVroOSn(&NvjmfY${TH4b{)dUZ;P%ET?&Rrx$V0j?#rnmKGCQTRsCh5N1B zyRbSs^;eakQ2WR2DAYa>Xe7dD?BB9ZnD4CU8tIKVm(^Jh|3$56vS5i?o&M#AFQ%DH zq7j}#GuNh?>7|?b=eLlU`(Dxq+V=dz$$fK@H>482gs*a8c8S2udIJ2KAnqOt%GhkI zp(G&z%E=LK=c4me=QuY?CZo=3<#a6cI<4P#p*zSh&04c>aviUQPN%@Q#>E#9wjCYv zRjgbHK?~(gU9<44i`U_@9sXfm;RG&n*A-UE&(t;9@!}BaexR73PyEykeK~-#;#pNi zZ|m*`JRpQ5bDTNAyHzw-q&hH;sVp^)$+v&TQ=_zSeh@dCa(wm@XXSq*kRLjQp8#}! z(AzKq=WQ(E+t|v%yppAdTa&+i8iUkcq4t=v#D9 zR2fF}KBg&AiR=EBRyURr!muVs6pS92ESNM zPEn}B3FLoJ0{N5o>is!ggAlaFH%d_CH5!Y>55u$Yys~`zmn=Qe^d9^8exl?h6MzxD zm}kis0EcAea6lrl4c1TgX{g0Sv1?uVn>IOhBCHA(zwZ;!)kKlT2G3=(r{&3fy~R$w z{!U+()>U@pQ$E_vF4-?*-hp=4Zv^>=_TtBSVOu*@#>|zo{Qxr62X;(aeqd(FFadZF;7YC#6PkOnL;}^<_pERicNC{2anPn0o^8 zVS#v`n|gy;@t1q+soHBT|7U8d>H-zJWU5+mXhz{{%-MdwR$kE@X>8nIUjFrfUjGz>@gLe0>mhG%Q zJb+MDrA@_R92%rtZL6YtafMFlW>LfX|IBjF(~%L`3zU-v1M&X8$Ztw>!(DKl-P(iT z{ct;!To<5I73ZGhr7YfwC&_NJQY{nnQ_BPiWgC>-fi3TDw>_4^#n@gZokP5mi!u~t za?onOD6aR9@zQv%#+N7{Vfy|NqNp~iWy`H17jx~-URA}YSCNk&=26RC{NhnI;Am5*7h1ZF%H0VN3IN+X zup3uqmHvrsK$67Z(m@I(Q4Yg=xAW*O7E2c~%sX8S7sCez%>E(rCG4@6D78mHZ$@rM zxrWkOH`AoNlLKn3FJ`eDTqkcbgKpCnC@+OmJx2z?rCn&+0$c_Ug*1zHJj zci_^&Z_)pQGQ-%h{)VK?hbaa+Wgn3D%45g+ZB`MH50w1?3@uxcV%KN00}ZCWsab_H z+B-=3T~B3~*Y%&0^+~FJ>zV&yt7FNZDf_RvP6#qVvsU*j^~N(yVqgkGl^Iev?(S>lYGFof_*xCSTK=40)kzApX4IkK$9$g7%5Lr)kkOJ z2CFs27k*a!4^-A65|S+U#Ul-Hx&UbY zP*Sjzy7W`UpViJg!56oD)4I?$6MKsKF8M(q{7p zNHI!^7fr=)efS8dRu_@d@-Gk{dPOhUYX6`**~1@Sr8h{jep`QI?fdI)l?U<T~K_bP%m#&P=b8S)i*P^0NwE?F!mRSbLAif#UGhh!x>q zU=|*poRz}uc#rC=I%d7h9-OA3%X)%i3EapyUkMuOvM0IqKE;@5HpOS0v)WlI(nN37 z#2K050S-rm@z?g7W_EK5w)8gjGObULQ&ych9Z$6Y`@GV5eTgVH`l)X7BvEjIL-6K`ShaO#?Dej;Oile|dyMPGa-jm%qN1s*HT ziOgG(6Y6M`R;@5fgRqF_Di-lW7JrZwPr^Ly^|uFNvnN{L{xS~^fA&;)xRr-G`{pIq zdlikSvDf(JYt8DR|*6{;n`};yj zK7&;J&NH{QLx+;6ITII53chjH)r5CYD63X=}Qykj#Z*1U$wf-S&}kTc-I_w5=!;}#pN4+Ct9R!cT(Ha1Lc zifa`crAekboTd2fs+rPE#a@a{{E1Yq8Qq`hOP5VduGjghoc(X;#uo?VSWo-{i8V2F z(poq!Ht`4b?U%5vX}WY94>R;@o{QiuK|u|i4c{=Px`@n!{Hu!yoaLV{{*r?AUvvSv zmVb2-0k!<&t6lD8rTkE{Bzi4t#4x+o{WxXs(tpT{SsW5x&I0MP4TOe z9|liAHTbcmYnCO8p=gIAw+gZacW8biE`v(V2n^o^p)Nj5KFalfT z+koNSf>RNkbI>@CJtSODGyrQ z_y2dp-IJ$!&2QwACn5G#kf*<-`l_2xWGz~VMyua_PUb7|qX?FNg?0`0flf8z8au`&b(z!{I#FuuNinU*(iKj3D=ZG={-$h@n~bX27MwL76A=%X49?Y<#hL45NhvpO zAHgn=o1AU5I;%nQQujI0o z5iN2q@jotfE-^=opNbS{OJt36*<;>(l`X0mo)p`nX5pfZy^mGJMO%A^zG!d%f9$<^ zd{ou_|DOqoY{464RZ*gX5=A8%Bm+@0kid-22r9UOT19MaRSa_l6#|$<8HWLCKQ3); zOFz_>YO821;GO^y77GDXHf3{Ru2*H#BrGQ1=lh&HTL={U`Fy{>e||i4GIQ^_=bZaK z=e*DR{W|aE3;iYA`b2*@)!LxHbh1|IFI}u^{iU0=SbsU)dPRTfZpj8og=bj;+VUmG z66BIE=UB4P`O?#ROn*7gp3KkQ_CtJLV2|gskHi|Py4W7eXJ7j^J}mi;X4PQ3H=o7!IeZSayYuO_yYP9H4d<-#+c<(( zT?4}?uR@)x_U3N(uEPL9pM@kawv_cQ=OMCh(rMX0<&_Dn_0o&#-vxxYnA|S`oI@jLqbq}f`WBZZS>_|9B8^alK+qZV6xl2%Wp(d<~Sxk;De$y%{rg&*w)X- z$)ie68Bla=Qju$XX9h9#@VYn>aMv4=Pg&{#G9tRjT2_2_+PLzDsSj;47Oj|mun9Yt ziRX%w$w|{zR?TSNb5Pc_8Io{oX}VpVyuXB&Oy8B(kd`+6P}(L`rcosb$PcN?WoW3^ ze|P%yol;_fYx+S|=3!|v-Pw<^0SdSqgQLk&?=MNyCH;{}PTAlN65rT^L#sHipSEhp zjE>Tuor9*WoHpZXm+liH@X}V67^Nr)#sA(92!gnZ)EhI)xCkF^E7*>Eukn19U<4Ta zggo6n_(YdCWKP83x5GP70Y5hFjTmt6HfDXIboFU6Jeo3sy-b^aa2gZYJXMhpgBXgM zJ5+EI85?zAg^Yx7xB!{*^d<1&NQdI(l8U(m>nX&eNXgt0?8PIa6Q4$h=HyBZ-EJ5s zstJn)tQppwUkvC@iINcM4iqTS7(e@U{Y4 zSqD>LjQqJflmbJCyt%`&1=%6f6P;2%JPpyi+W`LvYOm-gZuyww6zA^rVM*tzt9Au1 zR#PD@F_QA_q-nbbO#`Uh)psLXXw_L(5Pu;w$-k=p2_FJ36vsd&W2V@~>2|V=S8IT3rQ$A=dJ-RQJay%l*Y- zcc%lKIqJPp`HVE+7*9XR_vj6jwWi6{NWY@@uyBubxOb_D>A*_Vpr-=ei(W(=bdevA zMhZIW=8oB&15d@f(<0Kaf%`FxH2EwIOvBHc4q&e2VZ3n%e`oSP`e6LLK3V>4f&cPa z@-Ij8-^0Iv|K5EJ{(JE~2Z#ZZ|4%6&F?mw>FQN#SJz;-k+S&V(*zZo*uO%CYbOSVG;(5nihl&+TWW#Ff z)M+dC>eZSRTidRbRhh0=CD7;63}s};T$~?`yzxVmB36ut7yf%5UId?AnaabD7!e5o z#@rYplsqQ;-f3~9&JsL|ecy^32h~S?oBNT`X6`N$QWh(81DU|wTdNw0xxzy3rZ0r ziG|PRQL9*pDPw{kwAXb*f`wmmGz)+5cr5&ryA%sgY6P)S@%!d{{54h5;p3{jV&?N$ zU2%5V&0*%*!pwI@4(hc4V^tjeBlz3#IQjw}I8lyXLD?8bzyA%z(Vu&#C60dUtYdL> zk8bXm9R2J>cUt7=F7CI)(dQH~LgzAl_7VI48vZ`Q|K~U7=fr;}r~vN6;YU!)YjR9Z z4(=@QxwlQu&08Nk$Fs&vK7a_w{g@>d!BvPGu&g%)r)>9^+Tl!y_4O@ju82gsOdc)qeLXWA^8=Byj|j;B%|Z)m9~g zDzgec4o!#kX zX(Q61aC@IL+mqOTmKV7up~A2b@E(X+ z0i(j8CZSKTqtMM9Lv*W7`8E+4#lHnntW$7#+Gz9vij~f#epA)$t=@ylt<*d|)>xZ( zW8>Kd&@LxJoM!vukZ`Bhsm@D%R9HHn`bJS7E_YOj5p7C^-I6QRFVrb<32aBbV|Ln?tnwa5>Y8&9`Ru5hG$#^iHPevK;d) zfB0TCMK5tq%Hn#W_4>nlqAp8J)ILnq_tivQ7c<97ouWsGe$-3GJG4)Xt&GZ9%!g+5 zWB&RBX`aP0r6kT_yV5H>ixE`RkFlkFxern<6Nz~hWfv_ylP}rl^LsHeJti)jQv4Z` zCjCrqCno(f)@S^l6Tbkg!tau>KjO5m8Xut>=lj^w;?#Egc^0E|N;jnS((`ot{G9tZ z1K*V|MS~6MLLk?@Qu8g|pR!5@XIwl~Ucq||&eVWPgP}nE*rIAipJ5z(WMZmuXsqWA zp@Oe`v;1n8vaF{5$?u9SsWs8IlMW!V>(D97q{o=JiKhl}mLK&;dVTY5*QEGctcQ^% zBgAg?C1(t|m0cA0KaQCmsv>!aUR35LdkT-fCXcFr7svE<7T3sriRY~f{rq`HJ%0ty zm$vYHc;r75kH6?VE*@*i&2L5%QfEl<35jvgG~O+KK70KLLN%}}`9L@XJ0B!!#VsU* zh_=i8o>N$2VF(=B7;WEL{WR3ix~RX6{0!bCm?}?z6Sl{sQe6d$}u6k!{ z?_Db~zios0?VvH%6jB-qf#dX5_>7zf9NvTDMfkiG+uZXcuSXn)&6J(cpnflwtyib6E^X0W-VKdjU z^>T2)YxNnIFi8wv3akan^PHr3y+ZL*>~AvLsz*7=>Q~BR(cfH^ctUbOGCr+Lk32WG zlEZ}lzR)(ipPVrNlAqGs%IlasQqNdL*{F4$c)hOdy2B23y!rKX_x2RLoE)$M~22YDZyR1tj&d~CNshgNkh#nFaDE+kAu`8|TG%Z$9%NI@i~Z12H`)L9ZqJh!e2KsK$rAPno>) zm|co=gx@K3Q$bmuSOu%z>Y7HRsZ(Iy(ZypE^(YF;(Yr?;zpX+j7zp*ZF|d`J`we8*ipCCMS>zQ969pNvBwhPb99%cfbr5Mf26e0Q?MF;yKTPER=FP> z3X4kgA1}7impAe``Eq%nArKkI18aHU6L}unyB~Nyfa#V|vNa%PzFP^;$^i9U#lJ_moy(GMNrbMiw{P|a@&rc7{o@aP%- zzAtyZG2?W_8C1TR#&JX3S=XAqndCRhBv<>B_GDd|+nehp} zUQh6A=}FQA-}3OEE%ES=?{^B{N}k{UhTcyodS7Sm3=6rRzyt;-w0zN7(tNplQ{@k# z{~OSsgc(&w+*fhTyWg~Z)eU5mIEwzy3H`&zAb$`0)?z}p9*I%E8S$@#_}c$<^umUr z;mHf7pyn>A#BY)ID;4cIfMs7RA;r7ee}HoAH-$;Xk1M!XpXle{EeBqy7h} z)bB7X9Q-96Ng@6V)}IyeD}-Kg`AGS@Al+0^6#-4x7&G4iRPmvhNyM$gk_Tn#T{t{( z(O7sX5hz_|KDihTW7bPtVz>5(Rz(AoK%K-%N7o_@uT1W8wiH@nP2lSs!lkvBJamr> zGUOwKUwjA=e_0!0_9tSiRm2J5&OJ%7~0_sKEzQH!1}~wm7j# z^G!dvtZiD_w9J;1W)@EQq< zSS~r4{77plrmI#b)xE2laGngFN>m|fa|g|lu#DcWuyTBu%;6X`BW|Y*UGkeLv#hx*-CLsHb zn^wG$M|2xWCO|XHgrJn^d|E(iQi0``>D2_r#73z^cPbxyA6qs z)NaGM{OHr@#=K1dW5^O;eQm&1&2A%#j-Pj0&tG4NIzDR*L`r|quevsMJ+amHOy}bl z=`LPpcR>7}3%&~&B{lrq<0<$)U=)*E1Z}%~d85eNXz{D%0Hq5Lbx)_zc7-ae@D#Ac z7FY3_lWy=wy0?cK^&lMu`K`F#(?_D#&kdR4B94rfSmo zfL|~g&1XX$B2lybSow!d|61g{Sh6{eJTi~e^+Jea6#&VGp1wmCQ%HsVWCbznR3PHX zk7!ATU=CH(GY(D|W+}nJ{@NE)>A@=Zn(=bxy zc)oGcWxhy&Br#Eq&${2w+^faw?N{4M~1na+R1!pzrwNhG%3SiWN@xH%{ToAQKnQfL!aUQ z7qQi<3C~Y5u7b2`{K`t+mXE*5$Mfo*p=_ApB``g_WE z3>rLRa^_6w5gau*T!@vskNBWPz3a($(I|F2#Kg~ob!h%v92xF{dyG7Zxb?dR4V~fd zJd>YUCwav?Z!a>s2lO&i}PaLfg3|_#sb9khCANYZsr)(A`B6DQ;7P#-F_?^L{ zXt#ly3lF3524)`b~a!G!|_;r1BLQkq+p*iWmEHVNfc-lRt88(_(mJnm;$n zr6O8=mq6A`j28;jEK(h@dw5&D(^saG>oCm_3CJ5OXp~pdq(8Ko8PN*5V6&e&)8|@> z?UQ?Tk?|{qPZT$zb8jtgI)x0#(m@jCG4=yhz~(7ICRcv{Ap`RJiaUW06C5ebLq5j= zFGjzBdsnb9Kom%91QrI*cMTqpe?FE8!QDRB2LC|ye*UoTvZkFe^Ln~ycjdn2lQ+?K zV<#R7Lzp;8!!sps*y~rcU zV`y+)?5pa5Y!#uEh13?G8zZe+7V2^}(KYW0{`o}_E<38v=Pfs={NN3-pj zVf2w1<~o3+$|U&}2~+Eg;o?Qu-iwF=6C<{C9V>fHfIL^O%|6!_A8cII^ZR*@6c{dA zSsiOAworJh$2xFdWm{mBWO@c78N?-IXW9Wj@3T+yb37r9ig#H_))##E5Rf7gi`k0= zBaymU20}?$2A(%%9oQY2K#3`Dl#AVhp6$|g*+Kiw47lw0bjR)2V-z1^zHe6ZT|CS% zm1zY*3j2FdC|%~?nR$8%I5W%dve5EV95w69E*4SpDX{@yOB^0Br*1(VnZ;Ngwj++-~D zw_}5!vf>(04qwwM;Hk1Ruq3VZNkG|3Imyn$hG{EUg(Z$kB9_hQATwC)!@dolVXxxD zS6RRe0pjE`(hWjeXT4vN(~(4t0rx>;=11HEb{Jsd%!`Dxqil#jwAP=?j(xy8y=fgH z%H)pLI}~C<#PPwrtxTZF16)319zL=)6J9~`wO>r!=i$@>v+PfaW9=*7jSP4PGN9`H zr}6o~bV#SdbSix5Kp+zA=|X%({QI8Yhl>iKtLR8d68G3yV|Ovurs-up5rT_q=;?2=?dQ2HbCb>YQ>2NYgl zmiU_9_q%Q8r^Kd-&0os#enCZm0|_E==#GwL_2Bj_zxrq}+W5_ts2yN$YEell8R{^fjQ% zBz#-sQcy$RG1{~P26scN>La^t+7s{>&I2! zij?|Rl+fS&N`G77i`<0%20B@M_-Or2ozmBnA6V&c8zx=riQ#HE(%hJwqTe7suwF-}lkEMawa$9oC+n5p+lvZV5=XCB@kw;nEPFf8#nvp_Z1LVe z?gmmgKtJ(?;5fP)CD7bNC+j8oV;A}}Tuga_IIs1*1HExn9`Y5@?DzKlDcyh+>Sz{3VGapO&Jt_4$6u32BSRP-|5<4COTixm7hxdECR31EvYuw~ z$0l(42I6mUj|JSt{8lmFDidV5O1WApcI~O(>^-f@-?qW}2?ddfXk?%9_(*jO8_pz7nz~b=MINb8xtVnJVIfeApT*X@#3q@TLbpj3$7MO@zbznD#Yx3(Qn5VF_U1cw8Oa0-$OJkJ1B~g|=e({~hf8Y63Q>;Z~CpV5VYL-_&#i>ZC`g`$e5S>U# z1On@Z{wcC#Sx2NV0G)L66qzS=0kTnDtN;8AC`X_c-v0;Z-nwz%w+nj?;Nuqq1Yh~m zPdIN+!3QkZYJPs}DfkylkO%=aVra^CgoJ$9T`i%kCMi>?A zTWL}=&S7p1hniT#v0#}Q^%x+4NGSD8byz8J#w-b^lD8GQ<{{ar2*374iTx4z-QR=t zy%f&0#`6}`k@daJ@7gM;-b?`@SSCHpjiLiYvbt+QC-FRb`PkE%h7K4DV8!}g8gOrG zw!XKS7niH7MQKLmXYg_vY$tz_`~Bbp%KV!|^^Ab(uw8*HUjV5CuFZkaYIHi$H_JK# zDf)6Zg9gfOZOj(yGk@rJQZVHe0+^-Jf9kW;Jzl%2{&#As$a;>lR&u|P$t7zAj&n0T zI$DCndYKm&nnAer$Zm1@%a1l9K`J**{)?i^B}6>;4}4nnaft3CU7(vve(Pk3Qjsjb zA%5xp3cblIFyZAuXtVv-I6vUw)cdpSZ4UW@S)KyJEQO);=dA@y`NlTjXJX>ut~F+M z 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�ZSV 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 SQRbl^ry9(+EiXyiw=wZ=p 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

    #^ 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

    iMcH`o$_zJ{`-SxYoPTgM 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

      chX)R9#1odE(Id;Kf4_F(Z-94_3cQ$ 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 z zwTEYi$qo@jWr6%3+D>$2O7`^1^DK5}J}GDen48N*zp`(v(1 z$Nvew_HI@D2o+J<#T0lcU<)DbUV_3Kj_Lx(Q8+|4(a# zZ=?uYDcD58HVPh~fLdOV>|3@l*BpYsYtT6&lhlU0s5Ugjhv^Yp-PxKBk)($IBMLw- zh*qDc=#EH^s0nVXfMzIlp_2E1$3@wrtOL|ZT=H_RzSf&Qt(d{ zu*SbZcQ+}xMZy0=0TTly4u zwxdZiCKgz6mt;Pwo58c>858|9r{T_QKbrgx8q+T|aLtrDtI4{dPqt*iJ5#EjOPg~S zaFxH+>I_Rh(;&EEb{baSSa0Vxb2m!8@WS*M=jQU}s+Mp?ztS(ev6r)Pi*HmIxYgiS zy7RBP%BNiAS6w&?EI0)w}rd0tdh&WahQ98q@!u zU+I_Jc#uosvgZn|+~Qy9ixAzgcrK+^%entv-!`RhyJ0RjxNmfFwFdXx00+_KZ!{Zm z3;n3P!bwf`Eqx_gi077aDRX_Cl{5Xus4*Z}FZ;iSg^TB`X3m7fZ)y#OtlM+n$kG^H zH#H`%@;6$ep>j@#yE}70JfNqGxuV}_D-1<*I^5lv+aWyVxV)LHMIY$Xso(Sd`9_t- z;Q8W)Rb#06BC20{d#)G8!T7j{E5D^JG?dTjaCc{Jh+|JV&NGve|9mrj>$x+R%^sqE zuG`a}Z-H!=%eXW54DcL~fR;0TtT)m#lM+#W^kw)Q#@~-^jTX(@x}?S&&D%9ejf*uG zlbnrfj2A0Y8aJBX(WW%%%n@dX6fQP4uGC#x!6CeCG&Q+(mt7o%8OEkU-Q@y~!V+WCQr+chj>6?h zP3v`+*KrhXN@_Oh-b>~XqKyB5fAXal?`{rb`anNL!$XPep8mj+M1NpOqCc=C(H~gS zHY>bbCT)8GNQk<0GF?+02tz4)Y|I%Y1?@@+Cc$hkyCZH<*WglZ9^z z_(FV>gKvs_xxPhJ@Z!aMUln(oJ7}ejyL|bC9>tgX3Vj~t6|0Q-gUODsQD(Ox&}dA3WIK3zIwf%%rL|6mS8i1pr}6Xn(MWoW%?NsRBc0 zcwQMI1HDRiOcG9TLh%?{vyi>$#7f9r@HFIw`mGOG2ZE6wzU#r!PjLG?zi55 zE-MiL%;kyfe76@gieDenwL*9Xol$C+xNCk2vOYWrB6P_+*#B$n`@? z3Z|u5N-mKb5tZ{08i?%bAVyW(1@Rl{!M3Zcx{Rz-Lcw5fu(yibCIF*Oi7V~OqQfAT8umljvP1rOuz&DCm_1TH2%DLg zgWd2h&<{^&Jf-UK)JeQgI7|cBB?(GdG)NNRF@)@3MCU~0d%+A>+hM$CIR3H|fhu-v zg)La@KxfBVvT5&SK8Jp19#0HWE&!L@!a;l`Iw8vK4$~-SqDx`^P=~ToHRC3H9s$f? z%$gXuW7P~g3I!UAA?26ORC0$Vh$9P5T1V;#%94!7>aW^8Q+CgP(!+K32|bLEPcIr< z6bWB-7EQqj%;6q0ozP!*xFdlx$z%2t`p@i|RM%WO;NFgIyL~H}ai|hI19@oDxcq{1 z+PGYi@L5sX|4>)7*{r!}uHL*RRM*SQ&AbvY5hcNv(*!{meY{ZI4G#7XYcq;I|9a_}hgd z0CyoFa2H})m{m^W6GL!&JPTrQe@feN+j+scwrbTDJi^DKa2o{ndI`Re@wY`M6>;N{ zcsD!+J@^-<0OK)ff$?ZGy_kF~c~p1YI{MU~Upc?A zX_~UBO3UI`Yivw5j;0wLPr#%Dc&<(HQvwS!jyg>K!p=ZMb5(iT#lx8B-G*%u%zciT z$+xQ71f<<{C=fs{sg=}37h^S2@I1ZnAec8uL2Zn5j08qjz{SGqqwTEHAl~lVm&(tP z=vQkBHEH%$#~qpxcPJc2N$D6zQ(BxLycAO^AE=YvL73|%SD1@+jE3O+kxM?Y;YOxE{Z z+=MAWAK%p<2f5u49B`!39eLc42SNSu_19gQqKgTDc#J$X>KxfI8b1CF$yLRK?&W=m z5_xLeIi4ChFzG6ugv}RhC9)!$BM(JN@VEvpInpLwrIXguyG$aQtzUoSNa_g8n{FZs zR95GZ_B&ypW0UVI;Mr3jwZ(J|QzL7`V|CXsw4KnhI?++N4MRj*MQuDUV~mPvKOue&REK+jk~*Q z7c`Q&4mw%KUD6DZ`wDyS9?}Sw<8{!c8F$6%H>*up6r=#l~yapi4-HGZMVj} z(J60YN*ReuTbzJa^afX2|ZHAPYsvg>}R%`H+pN&f!dmiPj7RkySXZ>*T{rEm;x=GCq z1QE9FqzLj%!vK^_;gOAn$-Z4%eB0Z$MU%rryTEn@IG6~75Cbu`0m%qLT1K|9Ga88u z$%YJe#0S~m{?H(%Cp*@WW=IlFqy#di4KItEpE;Bo1%HKq;ol-4k+0E^H4EobT`zP2 zuIsT8?JX-|Zm)k~eS~4dUbPfWS%BIB;jhM89Pb_>27}cJtdU6Lw6pM7(kJY`0WJ}s z9->WFvgl)45RfsFmxW_%kca7viNSiW8}E4ik#mn+DEtfW8{VlBcq>_V`&PBa=05f4 zqy>mZT0`2$b~i*xhO|4k@-$XRmmvL`b!Nejm5`0jgrBa{nI|&YqZc;Ivg@cMyPh-Q zn=ixbQ1|E4>s^|Q`t*9Q<{g)#zEt;42}hwft--5%XH$AZhW6bIb3=*Y-2x6z-Yw?n zzC@4v7$zFVi?Cn(6utfR_lvtwYDkw(2<>FjM=UnbUh$W5DwI|uQt~4ss6mKb>J^_meTrEJD%c&*8b!ET_&?torN$-O!j2r+1 zG(eui^2h4+Gr`)U7%WQVNVLKLs(jDg%i}Z9Mo*CDN{O%oqfSr@Oj6O%Nq6a)bhM0I z@D5quUw#DlxPDnlHI&3^T%f#_?o@GL;+VKTenSuCRw#YbQ7qjle|-Xys?_sTL3a7? z9|XKq`bPPSI;cRv;X}r&yp!%!E3g0)jx)p(yj1NHC>3@I!QS32eTTIirNnbEbJd6> zSd(+_BhK$69j|eC+ueZ7Nu~(4AGnDNVwuAMIH?{oEOT}Q|0W@r6ZyoBk5N70mA6Hc z4<0@=$UhnOrl}Zz@=1ho{{)6N^D@Y{<9iie`Tj$_QMIB=)Cd{I{zC`)dl~i(`@8?p zE@(t4fRs_$*}WJW;!q%B93hJdQ6flDf}tMlLHvWr5Po;qRw9C)mrxxT!AHjl1^ZlZ zLjotthp^X#i8>-WkS>81q~2qyE1%#d{3jecHO2YXQEwjL2m<1KA$0Rua2{)qSAlnL zw7zIMW*RLTeQMg61wIep#%sQPVAg6M)gRvi6e1dBmg$_@t2yhYa@LI*vF&AM6B_w=DIAg942_hWKU=?W#ZU(di&V+ard;lbcCQD-C3vCkF6(Ibo*3t#@YH; zwx8KPv1K}U1v9#f@$@VuCqS6b*fW^XVR+hJbhKs0>WdS85 zs^_3DgN@Oa3-rko7Ho~S+&kdex^u|}Fc-#tnYnnJjQcyc005GMxTehOu8bG9A+9O& z&Mk+=k%_pbOfn42#N%Y#e;IB;pIuDVH>GMWW>hs5Yu?GxH$l12;cPZ)E~i?X3Urq} z9EHW!rscZJ%Qy;GTAK~J_w*cvMr(71?!9ylVa#4BbJK`2`n~LxkI-Hji(#(t(&W9- zgIL(>wi&RWa*4cV0q>hjM7>MY^;3E!)kM1;EDJ?9_lo74vQvN`qLZw=ume3zF4Won zD6QP`y7m=H48!ibme{;gPIZA2n_&xSfiVVpU${E3pv~ z2!n5C>`?*18T;Nm+-CEFxXo;{YYUT7Wp{CT_o2nlbU(fGv1h+g(fzEKZHrH{Fc!9X z*f}q*h~Z58=coS-m)D(WzXSvOV1S28%%0s*Esqlv>5xGGH)^Q!)or$QOdk{{vHgKi)UbyiJg{Hbdp9FP{+kpGQ$YJK^DhDnD%ukTqlQu3N$z}g5Y-9F zrL;vxxqVUY3I1Cw0>f%%b_5K(jBSl#AncGdqM5>J0cJz^c%mIL);Lf^Yi3Z&e{aux z;m9woX)~GGgkwBewEE4$zbXIA^6AX_ku9^%?5oa#DLNEkTLnHNapV(%GmB|uyl|M( z61;It7Os3#`!~kFG)`yKjkMr=bvl0xYVd%+rIf(YR}h(vChWlGl#i^mJGYN;*X#~} zFU}P*Dc)Rx#^HSN;IV_Ff#XMx=>;cuhmIW@ed_oylenmTn2h(nzVF<=3-wn^S5K9$ zMzP2Z>gZb9RxPHi8GHJ%=Vnn=%S)EmHow00+}0oSKY993o_@1-y83}BU|3~tCL8?x zGXQfYPHARDJGvS+{YXX|agMHz1g97Tv;&BICryx1S{=u>k2HK%rm@&>-^ym2AZJR2 zU*s3+NXI$#%diW*b1At_*HostTxM;80^te{AvpK+&45I=_I?n!@KaOXBwJZ$FGb~w>cL2j(a7TX4?wWC> zk8CB&N2HX~2r4LXL%S!~{IK5dvUUonP0Y!_X4D4 zq~Z2;F-G{Ry=cl_B*ZYiWO~`cz)0aj05*lzX@4=$z3l{-}tRxW!w-M(ovwKDcvcphSDUA z;Y*g(Cu!s+Gu231tk{KP80H4@Ra%$>U=eFKav0S5 zoJK*qH4P7_Aef4Du+dVh{&3`g| z410*P2cO(Q9v_i1B}^5V;)}2vFGQBK33N$nLb~Kfs2u+~1=McB$?4zY4*qNa$Q(S( zP+b&rXg)~qfSw{k?)K3~XIcE<;UOHLyf&~Pac*Po?I-AM2?f+uf)OF*C3x}{Sd$EH zS2$)RgQlVSK-vWwNbtlMreeu-4c!Q|&0KW%I(Y;MNJkdb51gl^&f0p!`*h_kzHI@ZI7bItH*<0bYxe>4MP0G=R|IM628x%lJ#KY0C_1E)@M%||~$1+c5Pg!$6 zvbsS}jSijs=Eqhy)YXn}1RrlQ(;IQWl5-|!+&7)&ope=Pb=6Gtj5HuJMOg)r+1#%3D~wY??}^JiY9B( zi2j&u#^Stc$(^#~Mtp+1%IlyBsYOh-7cIvuqs>>0xy03_`-UsVtn1=^6Jw;hrrjmy zdMC8wy;JVRSB#av-NWI`cC2{r2~JcMEzvkK2pug=L`QRFk2L(!>Lx(6v@gTO=!Kk`dw_TeTfq{_g@V7Q zt-vd71*DVk!kW>}<8VNKSDY^9@=VZkC7dqitW4Mx?uyfu0-Ub2+=&0=V^`BErqU`V zmQSZukC+L&tKnqpRd@N6n>?GlmyDRMRjs}c(5+9b_EXl#6O)T-ryVP%tt&^k>+bBY z38?kW*PgkuqIuHNLaG)ivqsldWAO*Z;_<|ATAOnl(lzfI92BN6Z#2cqd5E(BvPg4N zj}R*-8d$jgO~GklRhHnipm_~h5J4N0w!*PWk1{0hFsh)K4&jMW1@1JWUY8iS)AKS6 zQYuzjqXO=Pbmd0fhEHOgENT343px#-}Qpu ziUw7nn6S=6zGC!Sp-*7}6qA-gF)1rM9SFI0$k|}~48`q`t!pZgw8$?5W6^w-L6~$h zppt=sC>h1dz;G*owaBC5d@4r(pE0PFWFcX#2Ra8KqnM5^1Sm3=lB}<$XdtNIm}KI< z!z1OW{H0ZT0XQb}aDxcP=aH@IXmE`hHc4jB%tu#h zx_X-Qh1bc8v)u|I0hufNy4V8QSAlFlAi+g0j%a>6}?Y;K-8i}L)t=L(|W?} z{@@Ffe}aAtP(%qDi7ok}&#W-9u%y*q_$#dWR3la`Ga4fNthDCaQco3~+I_lztbbgF zL;CeS;gE!bf%+&gr%wY2((={Q>1*CtF;UAj35tI3+#4$h^JvYSUT1oc`>1B+blR#n z(kALo4~z|rFaJe)*&At7X{!L2*!Y=I)5tx@eSJKk8K(AcaIgp&X_;o~{52 z0dY7hZ_G8me4L-)##ceQBl^iopUy0wvX@U9%fGl$qyb>i4FE5%h8|rOIp%qgW9Ul_ z)2WT`*G^j7NmlY8_s@uvx$Y}N3w;y)@ph)ZF&zLySq)|Sw^wNCezm@#M)UUitcFVc z#WVx%FJ>F?{9?Yb(UEkq%+zSHUaZwoxGo9dJ6tlJzhkUHoOd>O5x!eS@!zeaZ{MxS zXf*0B8FhGa$znjvOO7PEPxm%%f-t8I7UMvj=^g9=>I|bgh~S7vttq2twAwP9Y=Izp zhJN-?K;v0~u31fwXfYDTEF1f5e$cQKpwWmT!N@0LWC0SKG5QbCd!mhb2uei!7viSy zCn)$X1&b(ni2}wCW&F>@^z&H?Dk-2fk`40nf-fdE^i`NI{}u0PGY+RCB>WEUGp!kz zFM0DYUrZ9_iy5#k0vHSdzet!b76taD7O*dFJ?FZSuH`asIP~128|iM&abvZKOTSTQ zA_(yzF&(!e=yxQ+NMH-}q)qm5h6l@s0w>;a7s*Bv$8&{uH| z9Q*RPoL}je-gtmB0c0hQ;iq(RcoWiU@(W)XI5RM@cPeisLsBW?Qf}_xin)~AbI(~A z97!5ic1!Cvl+EdIcW16!Ksm|ba&Bp}4LNf<+zDsKw-+UC&ey!XDrs{ShMsBjV%^0G zj>0O_=C!(uYdC~xM)~>&`3^V9;*XmZ=<4r__#i&*Ho^#jkesqS9%FH+O3jX<_izYUoiioDc(WF;aX<2<^V)ZYyK-VbSy@12M$N zJCTEFTPh)oK+lo$nYX2Gb@49bW=o{U=aY9^55?AQOXoA#cUF9t$&fYH;=e9*#^Z2~2`F#FX5AOjcO2O7bzHn<1 zU$nKDFWy?hmmnW&cM8&#TSTJS!0P@4N)n|CGn_AD_$TGvUe&XT?s9zX_N7Te9`qYM zN%v*MJ<0TC#XZUP<-|P!QcK*EJYRm?6OXST?n$AqDDFwIuO#kCsjn>VNx9D(_oTwN zIPOWMZ%N#fDqr=yCrjg=)Wp=Hf?s^k7OUVZ6U15OTOOBk?Yvf9G4ILBdF{N)w>mDJ zRlYTGPuBX@sh(7HDAGN7bal%-5V4Qf`!=Y)p-a4<9w#}Ox^Jh!!IHQuTi2165udc7C&#W)2F9-V5Qr~vI#@EU(^Zk*ponag; z_dSR;xz_g(!WD^EC#>Ne56S09wDd~V++XE;(dT0+tzKZQ?vz>uU#{ua)o8mHuU!i< z4=91|wd{8l`wg1LH|lGH#-qPV>)Sy{O;2$AI+S`nO1%N4-spQ6rQEbYK3z&azDE%6 z0pFtt>wI8n@tb|!2ltCyG7EMs( zCeMncXr;YKxxITU_OR_8<81iH1l{f357ECBv_<3MJL=n!Z$Hb|w?J-BD7pEbMEafG zol40MV3zTIen)*Ln~?)jT)9+!^d-%JeerL4Tf{e^_%{KN0O;F?ecLy1d>8*n;&Nf^ z4aW4xew6J|-%|*8`gnxhzA(aX_=XTZwqP0u)M+FxDe*Ub2a(Dy-ywvLCr-d^NbvvKwy#S^}xtPkOq8o7Q8 zBkp-=mEwcQ!>j&Ixc7ZqDw{{+JL&ra_I;o4-=S1{SlPcLy_fouY^J;S@OypV>E1ig zFQv$G{6pk8(#>^Tk)A4l<#GQc8`oW!-#AaOua4oX7vypd_>Lp*eJtc!(i`uoKpQe?_j#a^2|O3ToDpnTTPMN42*6^!!Tk^z64VRu#ts2qMMO;V914~J z9%e8Ew6ab>t$Bc^HOLQz*P1<^B@E$3a#M^n`N4f2cKV`pLqh^W8IYDpV9GpS&?9&S zXWvT5Ym_EHTmZ%-qeuy#69+?zNfJy#5D;UQv8ZJfuPiiFCdKMGz{5s^Aq~LK24tpt zfNc!~8dza46dRJ!A`Thx0e1$TF@^^DBcAdAgC+2kRh4RhP> z(dTG)x$g8+^%)7wQ41z*52MQ6yjbUu_?PbvDdp%5_EAx!cEryB;QQoxdvfb66%Nf<7~2Q(OU344i1{a_lR;U(a^GGUy0&E^L&Px-(;>Ojni zeg=liw75}mPuXC&j2yZE9zEdM9UMaYdV2N-L=NQcAO@hBW(z}z$NNKYW{ZIb05Udm zBs-xnbiv#EFeVQ0;b0||>xgIH0gMvdh0KE?zyVTj%0y#jAzg8_1lqONv-^kuwj>%J zp+yNBuu`0QW-1`y3^BiXuK-gx5DWkxo&hwWVc7_b0TBeAhd4jYVp5EA$ZGxsu%iH8 z_$jS(ZA@*qXK%3Q$zA(`Lwg5%!`@VARkDExE+U(d%y1TYlf&Ts(PVK{MU%xL5=|ES zSG0W6Qv`a*x-M$;H8yVB;$34~gJNQ(vd6L!0v!zohC2;hw_d7zG)b65 zF=jJ5)PerpB!f{=T>w%1R6OUqn?~?F<734MC#DZQ!5llQW&{xtW z?L$l^ip5>Hu$zDz3m(11DM6K_n2>UCqLc$g8U+7>h%KL1mTh47^K+19K+b4E8tss@ zFit)Iw878Ew`w~=uda>BHK7;l)kpPARw%(tM^oyCu>9^mFcf6K(NLtt$kRrX1Q^UH z7m@(xuz6~t%)dCAjcqK<5fIZ(A+}qXc!02_2ITQ7^8em+x^1ithFg=yqT90;Vx8i7 zPG02T*>%(Qm1owC1}5sx7hfnkzxXuw(z-9M*jIjFTnTQRVbzym;_5x`&d{9BsI%+- zlci3d^jAp;-qxA$`|T7Cp~yUpa%OZkP%pWtfx2^u@hI`jzKi@S?2>09L0}JSZRX(| z01FO=6>v}y@3RjYLcPPu;#7hGAhoz4LZA*3*qMxzNzx%fgPHL(Y2d_YOi&NA@v#>- z7^s|b(4_$y04apQD~}WQ3|vhW{(?Lr5M8{KH2iEVNF&9g*~9+h$%Yuc3rt60+%x`d zR1bK^A?EWNeX7Go8`bv3_Naar9D*~RiXLsLf0t-f6kZ)s})D^YoY)|5J;f$BjYW6cf^(dWrP?W6rfYUakS#`+zN zw8jQ|4oU@Y>g@2h)z@`4MvX%}JY$0PkUC2&obm;q-r83hVn(Tm`%nRMEEM|OLQpRU+dS)2N#&(E0ZwMG7p_p zoir`QuN4TJZ(!2PX$5w~q$O_&a;eE=UQSCc0agm=(8`NL*D@cs2FtzzLkZ<1T9Vl1 z*Y6~03%jJ_k(3gdp(tPm%J(Wr6+>4e)8|F2?SVL7Q5Av$j<|GT>CwU9&M4)A4Gk?# z$D_8b(s2gwA%+(&yf3BqDo5uzG3}68Cs^JTrPBAJOhJMsf%scEf_e1;+TZsDo(y7~ zhszm}w6hZQdv9>V(!o`$R(%7%*k-?L@W~BLAPa)u0LAD#0KDuaY{6LP>49=42=0If z1XrKx%)v-TqDx7EbRROHSfH(m6nvNr*`Z|mWYEk~p-g&$`-vO`2}-z|F<&vtI2_!w zj|lT}*vfmJ5NSsb-@j+?5S=%?GTf$6Adu{Ra4-a4K{yK1C#)J(WQk8yv7qg#F75y+ znI16HJQfi{fVH>oVtmtu=2ksx}heE1QlBiMYo~XSEw0+}Y@**fWtDs35 zHTQ=BVhReq2gZxLj|>IF%+-a031bi(og^`OE~=-_<@eE-`n{;J0H6q?9vT5eqKRT} zB3t;Uq~Pbc3I7)a(0X-iQqxaopU937Ld&k@J;lRnQRKJ#okG(cTmSl>Ydb^VMLZswB= zsk27gNbiTntlPI-8VA{|o17n89b|>>yo1sZn2X+!3SWbc%(FwU48JryQG7MOdMdvf z_Jp75G@hk%$#^fy<_b-ly_$=QESuM8E_%(ISL!aV;3!!-z$YX|D z8%d!$v6RSENk`&ENuG>sflF1UGMGm9{#xepieD=#;Ty3$YNZKI$VOOlP)^}ew1n=X zgbU{Z;!TwYYT617zCE1q9~LSaH0)9qGPOgRz$gmD2lovgR2CU|4Pl%4I!q0Ez3>_$ zx(idSBseq1tt1|nmUupJ18B?kvq2g@Bu7| z#Ec+kXgrUb!5&&3uwJma4JT&@7*7=$M2f;PD%a`b&G@az<0R=SZV9ftpdVhka`s*tWRm`95LVB0LYzq-fbU{3i#EzUcp)LE-@wD`N* z01TC$9kYIXZh@xu>DsZ{k>XMOyNwv6sSWGek6TSIc=(7 zXvLETW_4ZybT@gepe>Va^C+dlfZQ`U2&w@72QitDYp~bchdplyQ?9O$rWZ|ADQ|VU z3oixCBQThBj52}m5MjAN`v{Ia;+BT^RlyvyDqzJ?tqLF~Lc*#il>{^q@w9Q;ruhq} zg=T!s|0{fttgzhShK{fpo2V`Zh#1xHgB?O4cU(&BoGZ-=#JJ1VO`Njb!e5S4kc18 zE;Mn7+z?imWO01)NAXyL2^%Kz14~PuL~y{R9-}wr6Bn~a$Ef?eDYJU>$nq@y^-khzwn8hK)(#WVG zRwpW9k9ykEv@XKGn>#?06=^*8ab)swU0hd@Bn`wOK-3(&l!;x<0Z~QXUlSQJYHfTWWAQ~30?Mxo+w{?*ATHNK+ z`3!3~#nL{2Mb87bw22U0r20waUktDB?asvMN^wIeC`*d;MF8AW7wKpe{`GD{E=oxn@Jrc>utCE>*WR9q(%L#o5|l)I6ms|-Qf*LwyWcMT z5|M8b*G(RMO3F&zT7L~nPzxGRK7wNV07ork@oRS*QBL6eC_315#Pw-ImO2Z}7eRdp z_kFVSLZky~Sh$pJsC~P1T)qE%&>~hTulC9W`KZf_dFLTr{uCU*zgQqIDUJhiUX$WL zCj$RTa|1o?EYMVHq*kTlcAu8&?7@HSI^oFew@UBn(2sWb0Ij6Z^H?^!lKsY7oiMj{ zmPzfQSQ%#0P^O zf$)WN5PMM*3CIFHdsTa$Xtkm}&HWH44)j%ez}lz7 zg!l%MQ%1g&RYCAs={eFL9Dr+%fM@v<<|4riX`F}hB~}GHNDv7Vu9R(U!)78?7$buy z5K(r^Bw>QI4*M-_*>XuimEfMG!e|z7OCT;A?1LvUZ0wY{L~g*_vh)=lTu@~xCsoZv zt}29lfU#GOIh9Oswm>!Ec}ujcMXFS2u?Vc7F-0KnT~ew?M2V+Tjw(j3;4AQUl+ue` zLun#yP$i6~BQ_iJc><0KYcN?T3%_2SgXnUwh(Pw>*u`F#AKKfGPTw8e13rjI{0#2* zQcV$!#Gx1$O6mGTQcs|tWEo%;iTujNh68nr1}5)i;1&(;C+Z5u)Bzq&VlZHO!Cft* z1_3?A(kAYbY+WsMDVen)V-nd0WEz!GaN>X^iDnS51u|8LE~qRJi3>s!!_X7kvt}wD z6X;VnQ;R8S(Kx1Zc`#BL1K#{XG;Icv3i;GvTtpdxL%jxpBZ4jIRbLabn@IX@x^> z0E1H)zwFUEe1iU_BI2OW^Z}3zJMasMF|4pkDh{5L1f7oQ(wOMMb8^Im20RE}9jR%c zms(j}Nq+;qDr9_!Wa05$2RG+xpI)HzX$tKQLQ2<<{E#R_Z&cfI)Et~ZGzQgAJycXR z5uBz61YRdnL8mB#2qJb$o8(1up~U5oMv@${%F{+iEXIZ6*pjz z5FfD1iqkvW*;o!9nb5&tJ(`fD$Rv{!q ziv~D7q$q^JBeRl4el6tYjmql7Emu0|hb*dSa+jDnv#7f>7&f!9 zFUsU4l^)vRDyb>M{ln;QEFMG$F=9m|R2cCfEhlCBk3iWaRK2}_cQvhu17%*)i1T3G z!zx-Xd|N0oEyA8cQY@2RqU7abM&)c{6=GAndcCY=SrcPnqA?l9$_34x4TZ6Z6f$83 z*5SfRu!=(EQq;l()P|Tl`n0TmhYu5%5kX9ak4nX8sc@CRzAR@^ydF=H*tKj`_TW2t z)xid9HZ!FL>a(_{&ht==5JuE4iIVcV1uSGk0JI~-HG*qJL4=dkk8KGec0E;IKwb-j z$`&mm`G;}O_##jTg2qnN=EKUl1uQ7$gEpG6i*l7S+7$@zVs(!qS%%PT!C%Q4y@c;3 zNOvF%lD;D|b__KruX$Zj9Wsa}i|cbVSzO?v7S$|au#`Pd@_$H$8==zbu?UBw$!KnN zV`8OZw`OrY-Gz!9*n&l0LDp{XWaF2?#NaktT@s}^if*|km}|jaLNW7DJ^f-Q#}6Yv}b9=FqdkC zN4ku{E2SGg$k;GbQ2KiAx!gB{G>M=K%O$}E~GEh@de=;O*GzlYMW}?{<*&6xOux?X%w!f^g$ZV6`9#`Jvd?E<$*leCVNT=9 zn5)rP9Jg;3G9J3llm=v$DSP2Zj*N)mRLV80`wl@j!!bg-Cf5rlds^N{nTx;-OUt|S zNk$%oYtC%ov`l4Ge3Y3#ZaAAVlaoK%Fze2`1Dq6RHhq=}shrMP1R&_Vq7zL>%~^Ek zRKt0QW4|JsszJvA-z@MLQ7 z2iD?Ga*DY5V`UTVqRoar?3Dk)rX3C$pAZu~vPO3;cm!lc5U+p-9?wBDOYOV-7>zqE?OXO~u+o3eD5wHERdZcE0K%WeZb$D)xLSNB1@Cd94XKzPG{LVo82KxsHnRv(!2l{`|b0O3J3yc`g5KnwUwLn7jIV zW&ICKG!2+H0z>nC%)PI|(1hu~$TCXI(gcf9W-0l!T@Mggajl_N3s$E=k%NHwD6=zV z1_!x7Pyk_I#;Ry-bnWN@`$J-;rXkI}I*sNa_kC@f!AfieC5vc-beL&dd0ZRfWt2lyzipR7@M8*ONjaf%eiGk3DJsAS)xFZH} zFI06Q9Xo0R)$zR&WEaWRu(zvDClWb}lPjJxITT1pc6^myQ97(LD2G74lFG(l( z5Na=yKwysrL3xJ<8Hp|)x_S@nN53QTK8bcegx;cRJQ;)*KD`im8v}zN)gdkq^8JG( zElWrtC!&9$_5+fbIt7Q1aFtN0uSN)iSY@>AJbD=Eky;;9vSM=p&AdU#&Wks@h$>G+ z8Z)w5AdluJ{QohHJZzL&sk03ZiT?oWCjaj!_zr@oWfyBeM$HO9=cFqTO%fjS$LNPu zjMFoK;Q_@>`U8m9la$CQ3cgPPZBzVf6r4s7P3{k~vjHj1(jhBqU@VBR2`^Gv3oW=xqATO9kD4K^ zWd4Rp=f+9LrV#`1D+SJv5XXg7g!ijZiB|Vujv0A zUXL0)U#G1vx+m zK$an2w8<9XACp@?mim}W*y^E=kH(6>Vz$E_euJX*#I{4I5U6CBvgaZX^sEtA-t;B7 zQ-6{m<6v)z++Y{IC9JdzO_1{^9Y9(4AKvHM{}Q%-Sq-$8wr_I}<)$sD0?cK`w~cVk(PdqZeJ=|B27s_x>IW2nOZ9= zdU(`j^dXI8S=LjEvO>ZkT#12MAHF|eR`kmrm4Bneexn|?C@s?|%YY<8N-7mesE}5H zR4yfE$OcJn3jWy@6&U6tUhV^uBl$E8anIqmK_&&^cnElRiDaRWRVflKBAQC193j0D z$63gU9yWK#@-8U`&@9ATsnkr0osy_ml+@4@j@>TwfFof%S>6mO*JB{i9!E@j!kBXT z5Hl=Fs1$uWjM`3D*FRwl=!LP|p1r_$kw?E2Up;CRtf-C(rQXtAA@b;S`QRf>FT-{3 zbNL-Tn77Dni4;%y>reH&YPE#w@r2Qzf-iyRu}nwP-X*uD)b4C{-Ypd)rLwbHNkMiaYAx(9wy(HapkJwc>@7AaNir<`Wkk2Bt%-jXrQx4P zfTI`N$1r_jt)sB!XqMyO&CLilYNd6!1*HtBEMa__PHm^o&r!GgIUh$yCs7Xra(4?# zvxlQx&ug37&U5^a5DnHX+Nz}jf5-rGu&AXc6K&-CJdK(LysM;XY~tLHv0 zsvFyupoWuqTRwDbjTY63^;_iOyqS!y;U_4)^9W=Lhf&6?LzpiC0oKykzN@35y>0s= zQFHsQw)VEo+uQ56G1eeIN*@z4F?09HEK@{xp8}837^VXgC`y5y$m-~%T>prIF$zW~ z39<qcA4MoQLtiEn`wz@hp~aQPcH<=)JMMbm0XFOeIOx|Am6x z%a&s{pp03Zr@E&t1*9`t^4;xF4xh2PPCYYiE1F4#Q!@H(Pdl44Z7-fQ7EjuXXKGeX z8LLK;Mh}gHT1zpxuDJ@yQ(4y7hS|Kr@l|g&zF#tx_uyFb^}M22o;dTwn`ywp%-b~D zJPQ{v8LyT9_|d7tRc{%l+`v}@Ah9XsMe8x^se$pv$+U_q#>Lm{c>oPQyZeA=D(71CT0Aa!Iilf6-~=!oW$B+xXV9F)1-SoFNLQ3Olnr7cA{i5wR+lG zeckFLj@jADiHr-yZ>3F^H&14@T(NHX1p58n6W&Pk_`?$&6M^xa)2TJ!j#^TWZGuKU zeexTc_1AMf=iG26?tW?OO#^=8p{*ReK7kKMQR=x*ib}_a&Noc#o@h8Xd|}mJ*1p;C zX6+jrt`ybLC-oeCQ_tPLwTolCNdtPxo(6WE!lBfivd&sl@61{7?#`{%8aEu#CE2pz zG0&NGJtOyOM%h$G+0_g${O(DuFmyGuax$~>CK{sRHsfG&&MfpQSenkPFXt@y{GY=| zG2Z^5&J14I+xB%W)tZau%`5QZl4k9eEbXPW#09*x(TV%Z_RSvrc)!}bC0+Oa8rK%5 z?q^m5p8U*dz>}Y)6L0TlS>~;!hMyIeZcWwy+-$^?pQoC)7AF5Zm&5a)FQVjrUck|l zLOnexrLWkrBxW(B^_UjKo1_A#wl+{J2Jhj#+Tp!qhBm;2B9)#Bh#A8;ls7W-a3-Y! zqee0n7g!=piYSRA1yv6E3P;``$<|4bMF(+7xCQhEQrm^BmrO*N&D(ix6uu?lBTG*o z#@M&A2m}1zq0}2`0R?T2&EdbZ_a^XdUFV%Bc3f-(NPznWZX!W((L(KuO;HQAQ8Gc= za;=z#NQ$COk@N*6S+rx*v0nq)PDRCbL?xbxZrw3G(fEPzkr<=_)k3rZt z#Bh5TjSg8eV(YZS#yuiVH%xVq-D=xR|BN_OJlk=_vhl%FC9BkQ_!4|etay5k*>n~{Jj3}^!a#D@m8o{juuJ&kv z%BcY=M`Y(r80pLcv%xE-Dn6K~svHDV)au=_&G&duB%q?@|BnY#c6vSRPtI~P3~pxv z%NsHvA;B#Vi$a(ST3dldNuV*zgg!BjFK5M9G@$3ynO%{dE2bhoS~NQHLFkE%7EFON zaB~`lBJBJhrJ2(V*q6aj|6?I-8E*gbBPo7@Z(a_D;>UEEia{E~9Gn2_=ddxH^bV$EXp6zhTsL$gRp?kV{b?9kb9eVRQs zm@Hls*-jz(z%yp$nMa62mYzSZJ}>jZ0YeuHe;aVI{Zjl>e3Fu!n){E;;gaa3Lg8c( z5jr%^nV8(&pgUmAw43~2c9C&bDi1%~cgng8c8xJkaHCZ=V=+oEve9B>5iL?y;0_q) zOr&h#5Dd_O9QviK0E9-wDylA!X(=;Q(8E??Bm}Mt)xy**4FkhjmlSoFigAMfzrhK@ zpjhqCKC|d6iP(_!WM<{G^%`>2vGe+fbulMDV!UQ`eEq4fJvFm4VJ(hXi$4+I1s4^n zW((s&RZ_@761%Cri=Oh?{ za&@`Y3pMMa?)BtaSDY*?`i;&n7TpDu)wu${BArQhQOxa6mX&|Y_A{f-Q}xAlGj4HL z+7CRo9kqrJYCRoQ<`3EoJGPoX*y_Uhhc;_Rnfb#qGtQThd<=muu%!)gtYJTd8@;-I z?CP533}UdG&_Ko^3vkGV1T~0w%s7HZ)vI1!CQKldHCbg)4P9?gm!*OZHt9%|1hE@+ z1t`XF3=p6$07Pz!1X8}Z;PD;1?qw|7IVT)nGPeC2NQ77$t1NxHl3u@ zC7UR+C9bDC+=1YjbpF`j*>J#<63&FgQG7sH{7X!5DhB~X`cFV(#xJIv_;ipp;JTn1 zO*wavd;bIcX37W)yOgcx?6?$xs6f)xhWnUutWWBE%6@-n{=uPpg0VGY@Y^n_L}QW3^9S1ubbgN>=O5~fIRDV-=_oLN=%wo)=IiOafL$-P zchp-Eb13H^5A${~G(HaSNFi4sJL$&@l>=y$9ZN^?=T+TNov05Y6;Dtv8iNKzVKfDe zD9u3=N=uMpeOpEI2`ecFesjY3UYxwDJK`TvZXH=QB6m`EJSP+Vmyv#5DhW!qV)wl3Q3UvlW z4bCzTTvbLvy{Cq4U^|ZiwX*DWsu%aN@Ms|E{90A4;?*7mnJ!~BPgoX_ce!v72^`nslmix}{o1M7y z^u?#=`{R{sV!pMIsv-!8FX2Y2U6>Wd-7BKPiqCF=Rw<$oAC1@YN@mx-+&tFhM z(8t^8=+)Pwl!4d8$CE$~aRCt_ZuB%CW)s%Jvay5>dzP_OuKop$dctI#hmQ!vLN;ox&?^lM602A)l1e2l}LzsfJju65C z?V&X5Aj`Q_1fU7Gpe)0wT)jfWxf9P|I1#hv;qwpAb;R=RrhX%s~b)}vOK3*bXHG7p(@190lW4i}@|QvJ#LFCD4=_{ui&JRfX%69$w9FlC}aW5bv}bc6;$V`QR1cIn47XiaE@)H2r) zqi`oJ=eWBvV)~J{kY(|{&~mTd36BmmiZ_ zXIo^|XHnYu}%)u;IkRyEYec()mkfgACuv#s#b+m z%di>R00ZApX`=v{_xwm-SehI!^T*{#&`4M4fn+AcU*CHq$*ZP zir94<^^+hVm`K0j$w|Xk0|5UBb(Pjb%1js{j4xr^92`4D=FK)hE8rwoY&;@?6qW_= zZyI&LFa0O#?>6c$kV#3!rNG6&Egd?2wW697iiwJrSVhZ1#i}JUE`p~nwMX38^I%1G zC|cSy-w}1MiVCZiL!h!ou&guIh>RoT^`Ivwjs6L-5D=_g3Gl`kKbvwXqfS5nZ|bfS zP0|{mWaN`kp_sp&-Y6f++skkT)SPDv+74k(kNEjEcZ3DflzM;f+USc81 z32|^htj1)DjVL4{Ph3eCokAgT69E=EAhornocV6U9H1a>tU@3@>$w;ydmLl@i43^kR-@h6~`u77Q zAY{w{33f#fV7&7PtRoXrc?8;sS5QU(7AeY(%xG8S9E-UgS-Z^sn@+2_ z@n)XMyyB))Z?3#)F`HN4%+aHY#b_?RX*ZaCHwClV`?DMrylHB%AODntNJLucOEg3e zTOPJz2`M)rVm|^rgzbTL-BGOYlNNPRfo8H`KL)$|s4!|+1$mviq_S~O>Q3AVf&D3b z*7&X?K^Cq=kqQz?uLOz?sFKBQC<-zUH4(x|Yp)eO0n7cUaMHrg!FZ!r`W_?*ReOaV zf-vSsuklD#j|GcaqV+%lSh&D^83{nRXh}qohF&z%(`D$T3g|_lA%l7~4yuY?vZ+X# zftKXm1`%moV4c!dtve@W>ssRD@s;)<`RRd)so@6Ld_YyOFlm`*#oAV(S z&WG^5L?U+>19RK&QiK}0^j)+Cf_C`CTRdCy@|J|RHs-C3dsjrAE0%Yk=s(u|SETN% zb`rh+A54EYsXsD~9uUAXxB)y6Eqyx%Jmn4}|HRl3wp=*jgvJM<{!0fB@g7uT&>`+3 z5HWDGGl2~b$wFyQ^-JSPHBuF~gA+cU#Wa`_A-4GCp@i(I=7ebDmbiCo)VX!}nA3jF z#+>$Q0-5Y`1&o6d+?OpAu@jvp!v`*)65;ZwOZ%vUcl;>+R5^WAK3+`JB{%-c>?~rh z(X{Y|_m^~5j)s{VMk*iD7&6x3F81=!GAxcD?d?>LdcpS}9i0(t&8c`Ab8#Pvuz*HE z%HxoX^-?+MQz0HkHG#VNG^+j`r~WLF-Lc@QG$ zjWSIEc_YDZOY+MHc7!Gofoh=tP@+nNA;6>z8d5L_7DzKE0K3&K_M@vDH_Z~gxo+}LOV;1IQ%bJfR0f;y3Q%`{N6a!@-aK8QQ_q`{h} z=-gA&PtA73-GQhOkYViz>aoiG@+i_@8dU~sPvPWY!^1``DVR-orXj!#D$$rd8ne8u zpM+Ak*9cDuJtNS-L9t&YwpK=c=_fzk#l)V>oRioDBt&9viicsze*iwZh*?JZK^7qf z_<=>hA~meK4RFCJ=}VbCUwy_-T`z?qMyQhk*efbnj;}gWwNeZeXh08*`X3k`MZhV% zjAaSJ>mY{6cwP>_Oz)R-ZOI!E++OYVCy(_bIE!lZM4gp!o?H>mvJf-t{!MbHNI zmJya3XqiTWZC0=|B*Ty}XXK_N`hhHOQYC%I!z3~8S1HWn$e2Z!_7jY*K_zUn(D(UD zW*g$(nutKLB2K(vOgL&|j@qQR^uj&o@0r^;e}CMI5W};Q7xOiZ(-3Agk!S%o$A;Fw*tcW>Q z+yN3GVtgL25D($asbb(kbzC{9aqt8*6HIcoI}usp!_-wm5-OD?$N(!6_Sr){YeNO1 zuiSYFcf&{ShPbTL4WjWmUK>J=~ojMHP6Lw~k&km)zi7GPjN70)!oM%vZa23zNxlP&@ zWlWbI`x@jj+MxrSrRq*c26(W4p_ipSr^s@GM)f(>!BIx%qh>Yk!ayOj-ZA#$*c^_<~+@Ed{DojQ4uYD#LRM_s54c@gJ;m-{iiNi{!y7 zaNk74vqKHyNjh8TXcY;7YKufRH$!rM4(I_YKs26Kjag(fSHu-$HvG&MWwM%8Vqzgb z;%l=!8IlRgF~kU?5ZgZ`86Rxp7%TPy&bfYw*mdzH732-d6V(slEM+|t8lD&*9!S|A z*tnUp%K#=Dv?MjtYIl+ zt(~opgXQ3HQN*h!2-?4k_DI)MJX`xl{@bQGSHj&AbGI;>Y->DkThzJj$8PUz+noN= z2KZ%1%iH65JEG1VkU+k8JYxK@I}fpPT%}2G!TBwpz@f)?#aH{+^mi_J#TS6-y~p>; z6VPBK3rl9~$vp33SeC~G+owv=Hh==Sag#U@J>{?+nG}eV{qMkLMT`$zTN*6r{ zBJ?f06el|0v7<)!ew7X72Q{u8Ytq%yibQJ#K1aK5jsWf5yBK{4{*yXgv0>vLq<<%oAX5Uo5EW_zk=KZTkK5q&a$OQ{8Mvq z@17>ID7}CL!^@_O+kOA) z^TtUwjE-FiNvJh!YoS=B|8q{OJgdx=#*{Iu%n&WzsG_(6swd4E#!-q8|D8K zT(ogaf;d4VNfY9ivA;B#|QonFYQ?Y)9CeK0B6w(`p!h;V{9t4duEWRExK7%HN#>$% zs3Yl1lugv#*65d|gp?JC*uvw;x%N+H1uD*|Y|Ug@f*j{U#PbZM;!kN#t1%(4*7WFL z8M0>j1e{9T$doeIHgBBIo7)5m*u5qytYMSP0D(Qpmg6tE5+6`jV)~YPx25>c2>7mK zGL|y!rMKN{N5;ixasNk}wT!*CkfuBCZiosE|FCQME9y-D5{vnt=libntt@xiPjA2D zlDF`4sPQ+qS?_Q!o7*|>ov)tTJ0Fg_*G7f4e7zH}uqRX2(@#*)>u{RwwE)zCCUr|M zpq`dtf=ET#50(jpAfUOMSwe;h0<_Ir@P-h)Ow~Z4WHy;m&k!`RC}QYSuc4n@tyBS$ zSr*a^!bBse+ixb{(V&G1eAc4Av0D+z@EwXuIDuJ%R@}pzGY{-)!X`6(PgNn2shcE? z83)3mN@G#`%e}?6>@B{GSKz1iEdhJi~tMk+8||H`GC7FYC`FSLp!s zI(jjsKQrl;>oZ2OPUO<1mE#n560sMRT&i-Y_EV$BP8~;hP3)YI0S|^whQ(jU6!jqF zkeT^u!4iZ5Tw9P)838*}R#c}rhoI>q1XR-~DDE_puZS<=T$WEMmLyz}NAjr@B><4* z5h?RwmTlT}c<~XJnz1!^FHJ%otdP- zG$e*XB)#PcZ%xb# z*;BHy<#JDQ<+^w7dF!5J)4J{!}}KfjC1}mYyaFLUm@O3kagC;>&m>jelh3Z*W6VVLj zRC%#7UfdYjmxOHgz89ZK7M7AV@x+TyB@3&fo~o;bRde^9e*{!XI zyL7-fP`WCO8E`h~+R1E_L4h>kZ1U53%iXo89y*NF0t&9gI*}Ua>#IO_Bq7?Ow`8{M z($7Z6Sz7kersEsgN*pEla^wnUixM>k=^*8hMwxXLR_|8+&`ZE+9?Aar1D@jWeNpSDR zzombV;(r{e1RrwUe$%Lhh$BWaVbppp*-ZGrcH;x-03l@QcJgy=3Ei3gNKLDWhs0O~ zo!CzOdObr&DtUp3$yuliNly`AXe*^Z26HviKBbJfp_=KW48vn77m*2A?!Z&DN$*0n zfHh?}&i8Nen=}hdSNiAFfaNhbNW*3Nd$=5?_3h^ew^k;)NTgx~O&JN5v5P~Sf9$oI zgrg$ns94M?j27MdgSHteJf<>ez9)?IXvIch|=pJEEo?%a?{i3|~jzZa2es(v*_ckPu@wJKa$|JW2Ig z9RYO8JZb`HAqIi69Pj#07`v#!OM<3u5~*h#c(*6x5`JoWs<=;Pt0yBcxu+~FiDF9) zN5PetNR3XEHc0uI2I;jSjOw7apN8yxYDRtaJ*s9GZ$VSou=Uw&p8FA#K{EzlqV1q@ z&@iZk{S25xWP89vATUK11=)nEY#f$**vnXY7t*aES^;h}v%vaFQYGkb$dCdd3Anut zbYbI20tDKc^7cTnh6{W*$0e<~1$06pQ>u}22vG}UdmyGL6pte!Jv}O?Ed$QKUDsMz z?l?4(t=njV%)PZ;Z1OA72UzDq!xSGuX+#`5jmZ52>|5!+^tjecNz>cxjoHZ)f~VH$ z>zi!VaxPLkG+>%$q$E|`Hoa?dgYv|aU&V$ew?u*DkjI-dMxEh^J7!L%(D+xH}M4!C>n^RK`l3vt&tUHg8&VNdpcHrz1k%QqrOf_D?HyEa{O_~^Mja6k!1WsLqObIRL2lia?80xRIf z7DSIks7G_&=ZtXwSGhYpx(__ z#Pip&kR4=$L56mu&Sv^~Zivkn12~(BvHr1<7DjHQ85m;zIc-J425cZG`7x-6QSv4Y zZdumqay&yXm+%YB(Y;-1zF@n^S}xObP$URXdF3zFESV62C!uSAr$y(kM!+Jz{V7`v z?x7CvJ!d8%0pguUiCoTD78=7yy^7wk_0W^-0BM0}QPd4Ar1$Vgq9 z0z?69xYGz-4}6)V>nEUY1+`nO`Hb{i$LV8;C7se;b>zI#@WMTCV4G{0KM?nBiaIwf zy33;i4_?+4$jL@ZV(In`jP>IsU{k^)V-s+jN*P1P`cpX}2`o+yBIm^bA5aJDu5{&3 zXo#JA5Na7llkFqJp)j0FA-@3psF4-2Qlo4*sG#9ueA=(;{@Qf#swZ!1?^UyqFc-$m zg*OZabM=x@XDPZ)XE4IIo5L`sG4G95TDzC470Qi6B$cPfAYj_+TPa}y5dT4@|Xp1Lz(-HjThgLv< zKq3m9$#E7WJZtUi$8--5!kLXHc*-Lx5kRh<`N;dx;`bPGhoj74q26=$-TR!g0KOuY*NW*O7uzEL+pW@uZ5fdP*>7WB2D}+&c%zrO^y9a6k067c)nEjS>^2eBz5Gi ztQ}G2@F;q8J4um3s^U8kI)I+ZI55i@SLmm_;ncDiw_TIPTbHe#h9|4UuLibH=4ZJT z*bWAm&Hf)z-!s{2as$21XLD!vrw9tF&<{X?+k5WpxwFZ_HHpGavBFL7*8Xwe4+HVS zol(!uq_>ex5O6btHwJn1TFU?OWm#_OOji6BqZ?EZnqV+V+_urS{ia~BmEW|;-1g7l zU9^(*gVj!h7Sb^@z~qypM48iP6HRD60O6fU&$6SJoB{ONLcPc~qu8d5A^H%^lAqJ_ zJfqT}f9HV%QY2lr+q2|SAb)wFGld#v^f-%R2IgRFBiU6yMM0-H?qJ+=7u~iZ*xt1Iz&hJ>m=kwFRPk;)FPMYUl*n-M0`qAK8y-;C5I9UPW+kOgJhldz{LWYJ+ z`A#OH%nDTwmIfr;h=IkH5E>Xr$IomAMS>%VaAq~dE4YwOEaxtN^#4GmX9-l+qVXvT zJ7&vE=6VykD?Z8v4vXhD!TZcz1yLr2hj->AoV77$?UL2xv0vAjY}_k7l^cdj&;S#L z9Y0R7pw9MlDBz_6Q1k^_mR_Z0RD))96(e58oAx~tvo(6^tjTuJfL*FSy=yX`5+Z~g|=UZtT|O)I?%-rBkQ5QI{rMGhE- z|2t~#4j6m7P^9!NJzYFNje)6(nC=o2PiiAckNLRxr}X2`sCXVj&eJ7)A7_Z`0-|{Y z`#NRT?E|&NX~TP{Y6VsOeLDM(C{n&-rw}x6cvNWGh1@e~zPC{h-_z{PLSmEWXd z7Znds@jF!fODg`5ig_yDq~d?4B1Xjm6$vWhR4`kx6rFjg_!$*Hr{Xgz4%4hLSH>PX zyFu6Pr?dY?XN>zkLO&m*f{?w&gW@>-B#U+N1Qj9`S?t9$Mk~)!mFG~T1O&dHAf}y3 zYPrnTN3SGyockOx#@^Vzql2>|Y=a`K17Z_`6m>lSFh`FM53yyDvZ>1?V<8D!IdE(j z{|=4de_i-101R-ydi@PUzTUL7N~d@HNN4|%F86PAEB~6}w9I-E?bP5KQm+%Y*K$KysH(lku%M5M5(J&UG71hX=`{!*w+3hr|` z(>XI|7KF+ri_Tn*n2U5Huq5crxk;1b>s`-w!TEfyH||}zU~2kAa9uUqBKJS{Fcg*4 zoR6CGNzIjIHdpc!2v5~Uy5ru41ydj?*x74-EUW;(;V6g}tc}~-qNcX1#pP4RuRES~ zME1sX1)m!9de^5q6p$b2T@V479XBlaoT#HLVJ!d1SpJE-;Kj33oe;a5Yi_`2)&1hS zshyvggs81}wsXN$hto*q?4AWvZTeZo?Cu3qjZ{&-T`pgYRA?TNn^CVR^`f?t*?kM9 zdfv8FkzT!b!L%anqS^_%O)pFqluRA^YlOH-?{KobDrzcGuSd$2uBc~a%dctPsyW4n zP_L3E;p?5xc1C)h?~*=Q?X~>z%IDGJ?6x&0a+XISzBn|8kVUIw6{|lHoRPlS;RT@q zNsp)YtNo;>=v6nGbbt1?Ec)V`9;?3MdY;m=JqxMg%k~%AWY1F-TLD%-T z#$wRX=KLGTXI(UFz2v&+N(#Q2K~}(n-cvr+iIr!|zhyF+8_^8!c+}gtU|M<8RHm=M z%L*!9{V#osqLwIePfWyMDp6;ij|Ly!PgLt9j$iJOM?KVBU1ohvIsH^x}`a_biz1<*(S7 zF#2LfgpaYB8*b*=%xmG?CXH+7ECpu;uHiK|C5-toV?I=K=D ze#w`4>GNZiZlaI+5}$8usfEi|~T z8WEG0{+b{-qQ7RurKP_X(Q;IuO-PHYS(Ht!hR1C|!{c`RbKoC@vn*mQMYzpj5pLZq z!mWozxXon|Zu5eb6yx?$z3638Zhb7uZ9a=~Tfm~+76x9ug-bp+i$}L2*EBKt+gn*r<*8u~_snijfY&`IN|&qs(U-;0I-Bi0e&=VH@yQkDoma_n4Oc<3rW_ec+8p)C94%O>7#}Sy67owv5jdx(qIhOKw64;v!3pS(mxam35p24M9IhD3d-^4fIOV z04Z%sv(K(+L4ZTz$eGYt%CXMGDb--xN2(FKUYa95Xa2(s8tjx=9E*jGOn~WC(}tlT zg-W*l0Z>>Db%xxHK>-AhND2OIe<`+kmD0wqVKobvLlI%V62gkVcllCfS<= zuxD7Na{^mGbi{0Qh{v>Vm6r4Nmhp)bTS#WdCJ1^$JW5MvU;raJMvkwV&+#`9n8S1% zt8{cQV8^-w?4WM?8pA?`bf+02Yz%k$Iz#~=z z^=)rG6&71rHdEF=04+MgW=$TKvwpQstBRD@w5&_VjyxF}q(Fms|EXj0;|%tWkBz}D z0l6w@4B%;Yk|96;#F;S$Irc2r4*uO^V+0fI89Ynp7}54{7;d4;O*~1tBp5&;&;7{A z*clAjX1m?*uc1ovMxG9wxQlxz(JqxEgUByow^Q$=Hz`;`YKl59LF%%ms1b^6#bv=t zClp{Iv9$!s>EMaIf}X)}kBI|=B74=B8|+rz@h@4KzSRyjH-k+m=Go`cERUTWo&XpD zAp1iUu?DC;EnwFcHfeyQ{y|vEvN4mZs^bI+BJjodiO?~`Z0BUmu|ceDWstdX2EA+_hP7@zzF-DBpk$Wu$>;QB5VX980@8@IE-aKiZ0p-+4i3bgMNeYJ`4FH zDnH5o=J10(ork)DJ?-5+y@%0Kkmw>>(0n7KCWfJxfKq_bq;NxM-V1kvVJ6GQm&lZ% z`kC^VaB2{Hz;Oty372B-VEfOh1&|;VJq;6!2p2TVCqoE501U}72oN%-KBbg08DDYc z#4xBN`d+k07#g5^4Cd1z5yXUoi`loUG^704tY2Y#DhL$@*U~GGhlWQaf-p2{->XWG zfx7w!$7vR1Tdpt#FPb1ynB|cHiu)$6NX?q&6{(h2gq_?Kfq5bZmGO+02e% ziy@W6p&(aL2o!6BNHmzrnCVtHWyJm@YrsiSn-Wfj9vh^4%v?5vOJV9hX29+|S3g~U zuIYuQS##80G1WoFBCf?8&$*%Lp>t!?V+g;VQynovQsi{MVz^*EZvY*sC z8He0Am~+sau;Z6(o%CKAho*JX@378Axv>t`S{$MEaikAYks{17 z9H(A_j|jFbQ1eKh#58#X;;M4c!qOIn$-H%B4BHlYXJ~_d=d{Z`kybX$%)mOMmW9{X z=)edR$t#6_64NSb6N8~y`TNMz?_|m)y^-&ZX~@Bb@9krVgDEv1Ma$vqC=iRu<$1+> zq4a!dBDW@%TNBT%``EQ2q9+3(*L8!%mX9ofmkwM!kSJRlD_a{mNb<_!s6QBY1V3>? zb!4>VE*6(wD!f=oE=2RW@07e%5-)Cxw7<0Px`l3*mS5U%al@s1F5WZ0`kk$BZH^i~yS=|D5sVuTDD==--id#Zi}Zy3Tb@cg_S~I+%18 zo;x&sXm-!X&e|Jp=v$zi_4=OgAnn}reNYrZ6^hi>gl*GcLa{Tsg*)0UP=SZLj5*+; zlgJTlB!p|&k!^0WLV-fgCt5I9@aZQas)Z z!Ye|=blqUK*Slg*6w=wT>UGz z9(2lXRKO6h&S5L~+r9SgfLd2R3%ca?CLEYTCxUn$p8|0?guk-e4=!WIv1YS~+N zFKeCPvsrGh*Dl`&{(z|wTA@$?8HfDNQTs!Lui0_LE`KBYy6+$PfOfvn5wxztC+)f! zM>l$#dGspIAIcc4K|5`7y{tHOgM3&0tG0uk)zFQ-I`imtYQFa`fG;sS2jddXG%9b$ z7l3&|4j_g_$#RSxDv3O#mvLy7?siFf_vpJ;@-)35zVFh8nobz+=p-^e2yN|t&!~_c zDtm=)tjo+po+tSm0kQdVouHkssi5P|&$4x?U=U&_@Eu=OzxJWca*OEc%h>%~4{ejL z1U`VQlIlVdE9qK*#tXEkdSWEc8QFpKV zPHPXfz@PzA)n4WI+6mylOkWQAIV>CmbU82!npO(F%=5^}t{-)^yZjingN+P|@awn& zErG(x9~|bk+l}Ioqu*Eiu{ScaBNk=Tpy3cOr;&{?CGO?soo1R8|5iZe$ z;PDuVEFo*<8d5Zc21r214W^kG8blkHMdGrCY-3T(CFwu409_+Wt-@8(6Zq>}>|H&( z;S@B{#{^T{-8hea5{svDbd#k)(mN12ae|9Bl`r1xpDd6Df^KWC+fGd!Z{7%1+0dl3 zgQs<7wziWsq(ANL+1mY_ju(Iwxww|H_3rNL+`Dt53jP$b@xhb>29okXP&!{IGa$AdL?9P%0W5tL zxL-b@1RfLzMjRebnP}2e$QeVwIITuFniKs^bVjQuW!ojoQ$-?rm_2RE#w3e01t||n zbVKkdm#cvdw-PV|0#hc^&N1K4l$l&}ClE^h)CkM4l`@1UQu^a52b3^m)QL}+5ckp> z^`j{hO%FHIT}79SXk8>{4)hn%*Tn&rW0E_gt0i|mvIEeibtLxTk=OArd&^m%hz3g{A2H?X)6Q;4mV}o zo?Xj5LLn2NE1Rb`zqoaFP25q=gao;;--q|fGt|89ZncEXDT{C?EDP-IT4;py;*gHdS4ZSn^*66#zL`!?Dh125ag$wTU z?m6Rvr#9&+W#`t9Jq@6>TX*P@x9&!v&bRsJEjqykTTP5S#B_fmcR#_dLZ6?w?a^0%`0)#)I`H(nS;JpU7DQN!J-UtFUSsa#qPw9ya*# zwWH?a2nRBGxE-WIy@bQbJb;Hy)|wg-nQ(GA%ywhaaq~V8hq(CtbSlX+;7c3qXM z@q?6@G|~PKR~5Ma(hTyAmA+jgc~W*Fw&SL(BM>d18NSmZOU^);HZ}1eods^ zCZT=EuzIK^;%mhF>8?ZiqJD^{QfBU-(u*5mf_c7+s5^*MR~*8{7GwG_8o;|&Zd~DXlf78UEEQ(h-96@v~bQn?VhzR2>zttW#Mst?3}Cam;5zS`J)ZE?0iopNC0o|KGxpZlyZwol z9kf;CT^yX+1&oLK*E|I?r@rMv1}}su*f6*9W1$7;C%58nt!_|6}{ivrLL_QHbF3oY=q1^a|b*OkA zf&oQ~s_N|2yb$u53+({@$X3%RGpb5W&@*aF*|aOFk*B7fQ~3<#M6I{^447Z)tto3C z%**<4yWU!s)lBcLg1?kb=+s_ldJBO|=AqV8dpl$e2q7Oj-f?0ObTn2oj5T1h0J=?G zq@?K&hmMog1w16lGLvj3xt#>1oM5I7(BQzXifTZH3`3TaCuOT7KXD0KlTJ<8ZU5Nfj#a$^R`t_{`_BK!!+o*@iZHT!O| zp3_u<`yTtShP00Hd~pGLk9Z1|gY=2iX>P|cVBejhL~iI4i~Kc+lP-1zJ>*w#(i5<$ zo@Oa062#Jb`e*>vkR?FLI`L5|hN&2#;xQCR=1lX+v5k+JJR&9&8Ie#U)P^{Y`~MaH z!T>PBJ3gJ@;A;EwgtZ)b(XLr@UJ_?ECah&KYuOuxZ|BWFn5fzitJ-i4VU#w%0BY~G zHJ3Jhd((He#3`Fj;o>h?|Ej~iTyzeA;VYb$`m0!@uv$QN8)ii*j^P?F)Q|Hr?=A3S zJXs2}=3oI|D1jmi3<)=Ahj;m#h}U4aWDylXhu|kavf>gF>1P}e^XcR@MOkbWEP!2+ z#eE{I&yH+*YJ@<=J+`uSWcm&jkyIODhZLcXatZn5nOF{@Crv%PDf7sdtzM-gw&~?w z5+wl<2{PICQub7XDvFh9Ecx3I(&NrwVr4xeyrb63f=%Q%hk$qJok2@bxbqW1o92EN zyc5&~?Iv9_-nx#!1qX#$WGy??-UpmrsT^+C)EnH@y`w$2Yddum(aXpRW8yTGXF}m& zB`7YX%z<$ouG^uK=m+;o>@RzPR1i220k(7+#V-RqcbPmrULO_Kv(=R{z;wvke)#at_MY~X{%MF7 zLWpJseGE&2o-)yCm{vF_FaGgP?I(-Bfm>DdmG9z&f92%# zB&m3!6)l%dare5Z&L3OdNq1qy4Xz5<@u_E@iWYXqt=-^kLB^Oj&}IAA&pdmEqRr7T zNe#>n!*M#{Zk_Llm_BhM!r?;2>UhQ4xVtSXv|WRF6k3{jB5tjGqvOr4H@m2carVKt zjql{Vm6I&0e4{2&y(U(@=JJ}$?a}J>v7+^e>Ezi6%FDJ9G@H{m(=l5VcT`7B)f}(k zE0lvM6^7UT09Wq@n!q{=W>Y~@RbMD;7Qi0Vren+kpj+@_vUdVUK%5!)Gc{bZj8hPs z(3p+eQtq2niHlsr!IH`vBUuF`>16tqItPemi>gK_?A6&cR^?UHrV)fZz7D zRw&wYx>7>u*f6)w(@%&b;ufE!B7`EPKRTInls0iioXgznC(X>(c`_&6$a&JCF@a_x zRdFj?2{<`<@gg-lO2rHnVHA)xj-3G#VW@=`U&?}YjOCWHBE-lDnfy&t-4{^6m`#we z2s0!k3N8gr|8O7KRYSsXWO=ECzk;=b01Etyv`Q!=|| zb~IYvJU=}D(7W!ayE7_uE?>vI=DKLrI%G7zJQ{WHiVC}~<`hJJZRW|j4fCsC-#phe zAG&OPSO2^A`KR99_wLsBo{l>1kDBgZPM#2wWXpIJPPEIoAH;zguR>lpk86Mu0HmM% zBd&kvUJH-V48blsJot!)_@)t+jFPigkSvJtF!utQAOq=v&_qa%4Co&k89Nplv4hqg zCgRfn$Ro7H_R${u$RkAElZ~|E5Qb*X4o;Ap3GOKLz2r;-6KIHU?XX|A!?ww$w8QXp zCe=q0X&LIoOBkU81QfI*^N@SFa86$I`Cslro@s|KYVs`~U>aODz(@H2qXB-%LkdG4 zngn+AW1aWv`mv&e`o}e~IDs=1&ahY6oFCVi`!KVaZ)qok`mLHFr!C{Z) zo+fRagL`}KHqQ3!;|vu{i+wl92O2zSw5hd}XIEGI4yX{=_|p}U)*KR1d<%cHl!RBB z0{Q@1t0evwDp72Q@CKY8Hx6j#qR z#EVu&_9EDzGF8fSpdl0fv8j3kCs+&0JvCa3Kg*iH=0;DlL)pk6ty9lx?L2GcT*&=Lsy9}LoQ%ks2o_I%?nbBq z2u1OxAbl(>Vu|f1#^79{2)SsRIwpu%X>np7#%jK(nB90aanO}?swnVnt*17*b;utu?asOy&a zGA~r7o%cbq3ED%MK5V&1)=)2*gcRg6)cOh~gv-*QmGP=8U4CCS^DFrt5=kgrTz3`; z59F+F`7LVA+frU?TUq!Z_8nLtpu8-M^0M67x>=&4p2J9~?Pj55TJ=!$-?2u}%p^Vl zAQ-MFGG+O@&?7~HjfG)_gn1|CLD2M0u^3jL$!08bWFyf~Fg3DBbdwe5fc@w`oaqbyBF-?O&(i+@M2F=$6m37O$g+ebej zOJ>q_JLLYW0yv4tMX`z4yqj;3JPfik4-=MtChs*$KC1}5g_uIS1hQGs8k2Z`VmGw5K#iDd0Pp0bmtHr_;tk?9JE z+2#zk9Zae;hAF2O6GAaRI5?WJ@Vnwg))**UahA@YVxZO##7b(GS`5=dV^l9IIO*%g zCaY~%`~y@vOBl8l1@z51I$y!mfkhse=Bm{lvlcEQqq%S`uOwpmu{(dZ;5!whpcR~? z7?>$oKm_69rg(8nqPQ(q+!ilhAIVXuXygiWo14jUH!YKFQ0ff^q%p(_V+FCKJi2Qdrw7c zdy=(l5yhlv-HZtu>D=;!rzYm9ncMlXCveNAE3Jktx~n+htc*D;=PV1(`lPdn|9Zpl zruB8}o6gsr^Y>rwefLn@kAxQoZ?x*XrPo*KoJCPnA*TTqnhqmL2!z(+(r==;J7J-c z0l;K!z+?uM!009*$~dy^52}&2ycaQ@UI4h5_BeJN@vG#-!Sxbe;ABNPkrinmt|cZW zD>XZRHUt5k72Ep>j8w^y_}lc8ZTd#8&U%L~kajCwfa1ocp9YR3I+-JIB%>(U&cgb@ z(X?P{Ui4PaZT#5V6tNP#Y?$6~Zrk*>*}{aQiqh*i3uexI>}-PS-q(yMF3!TNR@8*f z+2l}XwH#130j-pQ1@*BB>ewcziA0=jav&x&fn=A!K~->!5Kyq=&XbGhAw(}Od=HshBl&nS z)J#bjL?9G$pQMK<+43m79x17Ei{x55&a8=e(1>G?BAlGOYrr)Vrcyxsp$Y$qu`^_W z#qxjQ#o{;dwUc=r6XHnouOTeOsj#2#Jd?TX+D>R#THqMI>(K5%%0xXU%bwwhE)bH0 zC0P);l#7vw@)xG8_n{toniAwo;=iN1e}n>ZN#o$yaV;}p1?xvGi|^q+g=`JC5*m|t*7SF@j)#v!Y{}}i26Dyk zV_@MJcbNQ>K}Io(?E_pB|2-8SQgJU8OpwX2646x5S%_H(*3mDxjX;qzz-TwnW+4$h zOQE}^K z$M=JO{FOiaO1yag^N6!ouvl1|C~W?y5CTM`WZ2xJU(y+hdi8YA2Rg@#oHmg*XcL@X zkY6suyLB{8?fkLB{mP!#cFfrmzLhcGO4))CCUvigltM10Mu5-?5=gi5u z2c!9|3&JX*_8ilWSGq4eaQ=Y{N6#Oft9{$>j_oa5Jb%sQo!_sfAkb0Y&IMtY(yyeD zn-o@~r6sGeDF6A+E7?S5ghUwfycZ{TN1ie(tRk)v1vw(}J1q_fpxDe>`#J|Ht0kMx z6ows{O~-JbA#h0wjDe@?s1(N?3JoiTY*#RU+_&=i&TLqpa4PG#9Z%h@8ETq9@KGC+Jr2Ile(UG(E`n1c86X0jm~#IUVYr13uF> z*mJ1+K`oc2iXO>igFJ9Sy9_YW1|nOspQh&}B+&=?E@Z`LnOQTBtdP;NBpF6SECvM= zW1+PWVpC;r#4f9F<<5!E;bSJ<8E;IpnaJY?)i8WGJuHrm50zeH(qEt-x94_ z9nV`6vHsYRm-LoIx@1~->-5&w4414It%;(>SW)Br+IUfG5^)iXdM9O8F_$i;r4&%5{;rfxm{K=#)3h6PXJ;mm8*tBiO$vya^Wg zB0lo3XoLy8F~Wkba@F%4S4>$3hBjTcwD)0%9=1GeMdU(?MhHLL3Vw!Q0qhFYlI$-$ z<=9^nWsJ=xnhP44q7Sfv`&pJ>P~*jNDEBsXG=eXd>MP5ll<^}IFXiJqG7kB^#M_Ku z@#=$?{f>RkQIlV%nrX`QPFhsA`|d0x4MtAU6hm`xRdi0*wNygD#n{fd@@6&IvXxe*NZZBX9`2m0(Qb;>Z*d7T=LGs*Y?SQ3{ zv^MfukV6$n`ZVr5GC08Ft%I?v3V|p@=9*szKNC%ivU|6L=+6?M^4=EnYoEkBv^3K58 zZ&2RAnBP$#;LQ(BTxcq@#lxr#FK1@OPVVyiS$}T`zl0autZh6Y3VD(I8GBw31 z7*|@`sRnr_6`ZMB;iT0p##e+}(fnr+_!-QInc%5Rc-F)`Yc6lN;@R@qqOb0aXQJK> zOFG0;fPF}A{&g$Pc;c<+a`SbsdK!#x>Klv!U&;c%9q{fcLGEbEp+UR|%Ma!RD*hJb zwokrt3gI)!jRrw9;1RS}jfaF>&~VcMU7gASNsZ`;@JpzS36)X*x+}u^tMbn| zHwg9XCaW3Yo242HLKOlG(9@LeEpBbPtdCn)|E16hHLABNo>$GKX`5cy6wPl)I07+8 z;14R26)UC>U9G4~RJ6n@S|W#7c#fpAG~sNHIh*H)7M$yUE+D1{TDG~FF}UlBu;ThU zov`M!TlG?iVT}h&5i{5}n_Yu2i|B`vX%mPEW0F-G}9fu3=Ye}7KJCat%n@vC??VVu%f-rR4f~G^2AmQatN6*(i#;JduTVP{qjdjt>9-U--SMdUMni)W}Om$T*fAFyk_7 ze0>p}`7UoE8;p$O$U0f*@=H9sOMbS^;8jxlX$)`Sk1ta%d-NepT(4!+8Z<-6sHgyY ztuQsUZZg1o-_~n`=>7?a?(IRL*S-ZkW#V^;-r=EMn$dCm3<~o2o&rpce}B}~>&T{{ zlxeVTKv(7=-y3!Gy6*HWwH>r6w5RKiZ3zbl(Pu}{PW9P0oWyUJ3Y+R29-QPV1enX> zKY2X;p!>FI#G50Euu9X00(qJU1sXW%_Gf;pPS>iWdc_+AD2UO&&;G z0yn(9MY*wBrZj%41F502*z8C*xFTn^2ppIvPl-E25TMwh-33xqBnwhsXh&|Zlav$oHe%oZ(o#GZl@B>p8MpNz%6li#L3kH*!9D+b0 zD>nE7Q!rUFIU}oQ`JA)!Kcvb&6e)8bwFe(z$o;s`&qVIel*AQ5ElFxAc2VV*srWs5 z!aGIoj*+OBG#R+CD16MMl#h}6%JuO6D8mf%TRI zkf|Jy;RC}ko*N`0>Nu>Ihs6o_qVQi1t`}!I6!AfN?@{&+5dGqMIy3ViV`LIbgo%1^ z($Yi|%CbJy(iHwHbPH^=MF-_u<89GibMUa={jvl#}LkaN_ZufNcG zzICoXp4W(QNFKySdVX)x=bt*bm|uJYp~URh;BbcEf)||UowE`E4vL@Tz&3%4d$tbFsa*B|?>lizkgxjkq37v;&?z-z|u+HU0Pic84bZ4Gi*G^~vZ zYhE(GgrRw*58bd8%{t!bfAi7TADuh8Agp1^%h?rihkw!OW1*tjUkhKFyg0ewY`hM! z5GgiqS#`x_m+TkqGfzc2x$WCk=9~QKYP{o$YxU=0+Npj}Z}0RQf3U8-0)PHPp&R87 z{r1ilYZ@n{&_>_J3=@0QG5tyJ;ZR$P+avz?*j1VZrvn4qMaP<@Y%%4Ie zYm}6k@u8F$m*=!aP^~_ecdf4vnci62U!i(NFkIY|7_8X{M06R+*4$>=_h9IL5Kvz3qa_EFRt5g{R@(^<}c~2=2jTHaA|8< z!cn#e(QDTWT?jCH;M)hj)Ag})Z!AB%XL!^emFA)~tO+N6rv)@IuEFR?boVp@_V zD6l;1?z%k1QmRr$1uaRD+#1CSDk@Q66|yF16^bOV%(4p8I>_=tj$svw)zn4}iZmbw zlf#+sw{hog%s0f*dJ_e_Bz~D43af)y4tJ)5ncXP9Xt`CbU#I#FsTNnDtLgjM!CW9* z@-O+Fk83Py)1Fh9n6#_j%;)jm{4CcLhE{$L>dDozMg;CIQEn?I@+LSyUtBI<*0iXw zjhbu9_sUO)z@|P_wfyNJJ^9H_e#mUYCO~IGv(1gfluZZZDNCYFp*rFHOk!p!pN}?A z4p|{-T{D>UnCy$x!0s?NLOu_&JYq(nQX{CSNVV;!M!|V-g`i}`&a_67=@L9GdGIH+ z%52)HFU>*b%T3CpT)sciPR^2Nvgoxuq3LhZHDb7Uj!H(Kzehj+f{Hj5w5=iXqZFc^ zDU#U6!{DC$O2%M&!NQ3$Dn5-tGBK$mIX*sz1rq)yngS8+(dGIs2t#MaAtBmzjx8(dA@7Wm= zRo@Gl3zi#9;?-vn1cidV1kGzThBgQDIh(7gr_n1>CNM~&)HZ}(18c+9YbF zPD7_@o^bRUHBTsSzQYqv)gh6dT&uh#?VGbwvuXrJKRGN|f;o}|5?_fZk_uW<$4S+3 z$=~AF1>JXjikMw?s86XKAspmCguYJD%%e*^R?LD5A2Ta$Uy{CEF+Cf)Pw?7B25XvaR*+D_rN>dO3Y1+-U z?p(CQ?mPo+hGvlG^4sOVUjo*=YF(sy@O6cL4|t5k1a)EmL(R=Z1T>TAJO=Xr6wElJKs;gC0RU(F!{k|nM`4E#HU!pU+}2BZX4wOT%bBEtY|RuGKGIvZ zLXD{Sl!1eR2nMo{0oD{^Xw=t*$q1G@vx{t7i4c>rZ)iGCN=oS`^?vjJ%ieo{$8}YC z;J3W@W;AM}YFU!4aZz)T$1QR9$SUrVqLE^U2qf8-9S27mX6zKD4K2t?AY%wbp-w1? zvq?ad&6*`FN+AndN0Eb+i30*cF>MvwY(iMz|2y}+H#3rD2Ux!UxBu_^KU??RdGD5U z@4Mxkb5Bv}Jsz)TX;R55sR>2;hqlEHD%j&$e(8jk3lsR2F%5cHMX&htazKdAQuMO& zQEdQL3D`|HAwuswn^eiY%1)w3omZ)xrV>L2*g?wIyJw^4T9^;S73WLh{OwbCkhJI% z7IU5iwTb_@uYAfRoM8yg$bC!%s%2AfCCcv4oZ?{zNGGjbCb#Vih(SA$ zw(As`8I>(QtJ5@|kUZDK*&~d(JVo292RUGxBRg*-yX^B@9@+ZP)<xaw{05shn~OY3o5dtnLi1#rrQ% zA09!3&V(~FoZ#Uo%kmN=D8nLb2S1-^(b6`KJ8RSCL@aYOREIMot70zAKd=n#*^aFD~75^ z7jK9y+IZ@!Sk~s#P9Ms;?8}&Y{^of=&t!QJ_%Y5XFdvq7-ve#_A*V>`4k{ zLX5}h1<6&JhuMV$#ykp?UvolwP2AZ5Lqjw})F4wd=5%?jr04UE$c6tb^hX4+dPttn z8#r8_HwoqYJndzc{W8mcnIV!6R!pXwI5UItGuaPj$I`39PCUymiZM5MrI|V5wDAmg zIPIJvc-1+V0Y}fd`8?-bjTq5Plh2N_Rx%-?C6~dWtK3{Oo>*jkn zr7AdAoQ+_9CX&uA=S3HqxC7~PGx?S0Jh^zYi1Q`qoGxB+u2|#Vb6M+o<+$Hr4{!uymB`y8^+kuvA#cE_s^`~nS zsORB5n(%VvPZz#)$&W7i&?W!57+0IqoY|E43jcy&rGH_t3csuIdl7yw z_Lm2j_$z`-{guHQz`G1^d(n>NXwwR`ZKb~|xC-~x_b|&R-cpc*D(^i1dZb+J-+(u=W2u$0 z#!9)YV}2s#e3f#Um2$b2a)p(0WyeC5awAGx=--5JrI~V-E4bCa8D4$2p`F{&pF7aj zooM$ie81i3izc+W8EtRDx4a5%ZpC->qo3N)@9pUGtI=0`(9e6(C)X&hzHjH-t`s=( ztDVO>z$LL=Ngb+9$f#}U@2i7A4k-Skp=Gw7ziBEhL2;Atrs-=FdgTW_eW4mM8C+%h zt;H{8Rk*4exR?LfAvpR1P6k{GF2B}Ut{9No_QJNv^lPR}AuB6B<^~F~lbt2h_AGIh z&k_lKmWa}`w0lm$STGSxQkCR731jhdGUl%o=52=&ghE1jL79F7!1R-jGArQ|4mcrx z10GAHjRfW(r;1kWzYZ^{6^H+nP1esI#VI5uH&K!lzh!96rntl3xqWwYeS_M&L5#5w zQ32RUp^N5@R2<(3vmod31ETC#4Z>~zwHA-)m$fay*m;5877QwOos;f?j% zTh%I=+AezGrx(O!TY;oEaG0VH)?qrbWCVklLYsyB-O;tu>Nr-aEhV+~Z-W7-0>9!^;^XmL}E zorZ{MTe5$_<)J#z*B7j5oOw-FfYdiPw0@~pY|LISRS?Xbbyi+0{@*oftXcRapa8ux+ zAWQ-C#rcsq55@V?INwL!pZNYb55##e&Tooyf1KYO=WqhhHf0>pS5o8PO+=>Kl1XlN zHbV`}Yqahd+7VdLF7a!g^{Zj8M%YWcvdpO@wt#y;;DXAZcBQI2K$;69HyzDrheC=H zkITDMzNFq3ay48sRf3U?RC_I9KW!$5PstN7;9PqDdZ3T6N&&{-R2+-kdXU!!;Epy5 zMqYI*mj-XT+5BH=$}GhB<{<4D@QR_OdWOhWa@mA|b(&IIwr4lx?i5xC&{GT^P$5Mh z*U1aU&2imKDB-v_uF+1MY6ngsK~CBus7xis@OhLF>P0{kE;C$zrfA;hmwm5j1w6Uw zFVCKPd^`CQ$UELY=zlTWL#D0MPoxjlpLWlSy9-`(u;MZho$i7`eoy~|^|J1JZcl3b zwE{MKC4_)7vdDr#WYs-{7pj>JsW!f-sk$RU`2(eF>m-yCm|9!s_NHcauWz_I?!@n= zUE7;>sweH+>(zZL?v%y9{cQ~@Np0Kq-DYfeB34H+lhsC8RIrc&I$TudOoASYEuesq zw_r5_6h(*@)+94VD}%yz8)=>rj-_xDwb83BRBcOYy*IfIinq0l(h>hbW%U!xYOb3= zcQ!Nu6E&Y)-L_XnS{rKXRgHUE$%YuEZrIyUXTICBx801i`&(6Hj~&@-M_Tvn-D;-U z+S+2Ku_Jr!2+}m0X`0)%nQ83EUW%l{35vg=t&OagDUT>k&GqfOTjCjbzJ2%Z_T&qg zC~at}S81ACYOiW>gknPeI}x)0*+eh+K`SiB|uQcHPyEGw>7t^H;vm{ zcdJ1}ZwP{208TkGQF9?)IL+;gRegN+wC5@9n(iqEgB8l!@uF!tfSfnfkv8Z>ZyK8F zTCZs#*ryj|bxPT^qP91+HEhKIxuz4XZm8XTQNE_;*4?$c;`68FYie%82SMg0np*W3 zS@rSKi_&!Z>ss5lsLr{lJDM9C(R&T?S<`aSxNUCQbaBWa2Irg_pM5Sv<0X^1FfB{D^DZ4Y zCs4MP+m#-6oO24W-!2y{q_;WA017hcIjF$prXU%kpLpT4UZ}T!RRE@@uCunmsiKw{PD8#7%Ls0jg*COJrrZJ#>*DalR3y$ zY~?DMOC`)kSUBl~kIYxJS#QAa1@wz}8aS^s!qZH*na>sJ^>f*CbB+2+`CJ7@h-qM7 zKei)ux6!ckB&TTeU!fVycYp(nb9L^QJLL{=VO3m19NbtH*AWL-R>cj(!JSoc$4=)C zaA;NBi8wg5DxQXTdN5tZU5IA{GgLesad2-{JOgoXaS;bMcPH_3=}!Dyx)V<~8{ETO zzZ+qmf3`md+Ox#no$b$6v4SF40Qct=Gk?CV3lS_-&kFFYup_6nCbjWq+%_~9EK(_F zA!SjANIac=D66`-e`)*C!*Jtui#l^vCzcRU2ljUi8sR_yExDdx2;Sh1?yphIKj1&c zF6HYQF*i`MV{p$#+#luH8qYGJ(+C-y8+(+rC?!%ZuT>J$Wi_6`m^V;AJ4?py+O1Ij zY--=VrJ)sXb2?jV_jFEwsN7#$RrMVU?k8>1%meV)1xzz!Kgcm-W-^rnsb(c1AUqOg zhvB~%DgbAxtD2?|2pXQyusTmP%3BG+L28-Ot1D>_3g|WO-(nG1#KVMb&+7=8USz?x z?-uyASVStjIA4b)y<79w1dNapM@b&htrbm__4M$uT4>5K~HZIjwJRE}5z{#jQuN^qG>Z{ieb-?z-7U%-t zR#FQKH9UI@#nZO%31AfsFBi;)G3@mGK{=XU@=^xu#bicuj=S#GK}{7FlRe+rgZYC8 z2TP+jjiz4_)2>jw-zmPos9|a({TvY*NtYLxS&xNV$vh^;Nz!5Q6l?9NqZK97)vnfm zvPDHx`w(1dL*$=E^0bS_)P8W&Q-piSF1ttydiB7Zz(wv_F&Z(}((J;NU3ZzxTj>VpTHz>je;|^ zS=3vY!m8u<_Z>TOz_pK@4ndzE-Cf@YOLYg-{115!^eK?9>&C)>{)LlMNGd5doH-4Z zpeuN)uy>H!)7SJJQ$`$IH}t{K){(>S?7{2a9`kcS>27KcWx(~Ka+Nh_vcLki2&^uU zYfxHYs4Mna9g22BeO`TdIH@F&UezWvqUp_?DIb)+)SLNJ9?_@3cZ9`$iO&&tSYykQ znYBkl+?D*Y@vPdTU<2(tcGUdRFxN!<2QY5X_i@840Jcsso~JEF`N_TA+=eNK;xQ0& zIdm5SoVU$o&W!t4k}Jqj$J{g7@M<`kT^@6mzY3Atk`pC^Z6i7J2SByt9Nz>7LzBXh z2G^0ZAJ}|i^FTeYVK~>k?M$I3S|7b4R=qAZZ~bWDhM0Q;k`C;A<3c)f!lGbks`ctstRa8? z&ZpKa%BQa6n$--ccv_K?2*XS(l3Mj@v4V-2?1v`zSyN4YidAcfk0h;#Vy~3Tuz#)< zJ6t0FnL&;YrR!8_? z>pcp|EHZWqMveNwH=vSK|qxxF-u zN#2ZBPw3o1nVLu_@=)3Dv7f@EtF=a}olEU%WSXeIkdAOjx*&K96_34x_D2t-HE9uV zG8xG85QQrk#T%yc-{5=-79fbbg4m)=J!#NtM1?>s15$2^NnAlG@^&lIZ;EXkwVjxJ z<#MEfMK;B7I#|s_}qo0{(K@G%%767ft|Ej zRgGqQV@|KVS?wLksraimt8$h5=YXlf=s#uonjNoX?ScA@ys+v^shlb$Zi*y3f+Z@Qre z!c&Us+YiXFMnEW?D8OTIl182)_d`r~J!Vsn%e2OfHOE5kFrC!-EK;HNL!cXP>b?cW z4%^6PD5RB;67D~MSA(;1sITvU3v^rWenKko2LA~gyNMcd3!#q4<2eEiT$-p@)By0F z+SaD+OLm;60dVtIxCPWgGpFsBP z4}ysR4*?#}c3^~%{6BI4O++hz6f17T0rjT+TMyh34W#w$X1x2SKPUcg) zlu!_sJ`huvaM%Gt)mb^`Wv$2vD18IlT!~MzY1OMPxT^5jZCS zvVThsJfWe0&jD7I4LV6#p_47N-ZFOUxdDbI55w3X_%0ClF*Vadt{b|6v*WX%8_dNH zy$8mOLcmiJs*j8^k>&{L(^-2Zyd)$mqIW%Hanh`6X#jj1stu|Q_!25*3RM7dh7Q_Y zu3aD;R2ykyv&yw#nF$h;EV5n3Y~8*Kqtxp7L}?LIVZLRx+32_3uX*dK7gMy+-rJ zrl!=EZu*2ZjhSNTC1x8`LK5Fo?WB;~gZw@OYg8v5gx)<-q^d(wzjRegLyKqCnzg2| za647odOI^f=46a8M z6fDRA7O(8I>>>7;jotB0S306ab}D;SH0j|HRONMx%T32uxG(}LQ5~z4K`1jygm8(Lh$#% z4VF!3|Ab3%Wq}maun#s67*wRmR1MZ4`j?G*d%S#(N+RK6FkcI1j}=tn|3EP2tT}lV z0@V&kl&VVWk*cXWJ!xEn&~0E zXmF5(;>a@%F_MnnVz!|G{2iPxAKu@YAQwWNo$wQ_L`&!kn%X9G+q@Ct;>}D3%z*pr^pinW4larzwPU5&CDB@4@;<-cJ1*vEOFSjrKY0^f22i zX7XCyOJz6|T=2lv>-3UIJ?Bg=^H!rCx^Qx{!jhMJZ0{qAw*_9(-mka22omzXmGp42 z_iifLUcXbG_oqIm^B*N`SCdlCDqEtiHNp9z+Rdvq!9}v4pbrxDc%Y1(RJ?ATfrCXG zNB7!PNRzpfP+q=_c4K-Qx~c86Y=~fv&@ffgQ%}Fz^_hHUqvKDaS`GgNw%ljAaWfJ;q+EbatP-DIXM8D5w`krtwq7~pQCs~{WY|5guuiA z3tJ)cDF+cAlg#nJ-xwAgwQf|q;oz2Q@1S48)Z z7A-n6y98RUO{23HKOP)f^yOuv%eK5YdyD<{wM@2P6(p;2W9!WH1o8(23?gucksaHcaG(GNAkR9@{28h#OSwE)u;38 zU+?7TlMDMebI*z#9nGE}bIyMqL_ya47c=LX#^g?JYAlvdduuCjd$xGXQrw;|b~RQx zrtE$iJ|gWR=Qkj@)agc2V%U>%cAs1WfH0EnnPnHvahlbN4FDtrWX=t0ZXf7@fq!s( zYCwdT!_0w4G(Pd027B;&1XG9)ObsgurpBzPgEH~r$CQisj7o_sEpyB{XT&*Y@W5&3 zf-}zS2&jz`6GMR{H&88Suo?GY3k6qE&`N=yf-VYH4{^k{rF2<2__ohW*0NjI^df;g=J=RIEbNU@1al(CB|ABvDKg) z3Nt9dbf{fs97?Np#a)Cg?NZCm*8lIt-}JR z32Id}Xi^6_Cp19fX>HJwQwPqV!VVyN3Z5R%hlx63f_3%~hfr+~a6VR+>>Dg$7bo~H zD#e2U%UE_{WG_9FTM{eXG@83Pma!S?y>1g-pE7x9;?UpuD-gVcy@P+0 zwaq9P)0QB_foMP&2A&Z(c}4&MBKkMg*`ikXK6DrMJ@!;$VA_8sWn6knLqtKfZ*rWwgaCyaz>?;LsH6>N0_GSoOwpFNWm;)l7=?zr$hx z(@Y>AJtIy}6uvL3UdgVDInC;4{+hs5|E#5OuRE2gVp7Z^_ zw0K?$&^D9gO(e3&MYwMobIu!a&Wl!@cH%Ig^n>ZD!)AtfjSVsG)32F`gye#5vqXdf z83t?BN@2}Cy9L!KGj%;yep2H_DJ__i?T?h4kXmKhilUt#N#ORd%i`=W-EF&tv{rRm@@Y}P zQAmvvHfvHSqKPaL>facAJ3?$2X%NIPPaM^EH<4^G9L!Av=X(mZ)RdDmLN()h>n>p6 z!EVGA){7NGZPm2Yo0cf(RmfZ}?14_}d%Q4Zn53-h9A7$g2NHzYc_&MoJwC7ek&=f> z1`P5~aN0Q+BF1E|cfdI9oDJlts2GUkg6c;$KeTyl!IdKmt{h#kb|542HcaaAg^R`( zt{Pdm3cs(#j2SPh`plgV-Z@(4#e=IyoTcOCixBG=an2vFTxk}+@JtEL>0X2>HCmp6 zw;^bPDaK1-1dy^+e3KjC1gh_Vn&R+(o4*=F2@4qlV9jJAiCuK?-P>4p9#( z++jk`c})o2$BCH&e-adhY>R=XQmJ8@@7o`wtqEKtuz8Q-OszW*q_3j{3xhO}Oqrj&V41$sf(&$qHrl!3~Y~w6Q zWI~YaSt#bIB50tmh3z{mPei!197FTtoBMymi70*B%QsXL~i8w5RAf5%(Fz--ywYz_98y(Z!F7zGYp$oemCsS@7S2lV3@5nFZkmScx;X4bo1mC_T$qpU_H zX`FbX$Fu#-?X7hUINfPf&coxg>KnGSZ|&T2O)1NOQUKRUbtEyFp>P#2r-DnFSlPwQqwaN^FaE1 z^BLK#obo)c!9GWv@;JXXfaAT!Ac$@f3P}``-GnD02<%!VPr=VOI^K#)h>CgkV4F@XbK>>0C*jqk#!b zY)>%n)wEATk!oH)%FZJSD*s|}@x-9n6wg34opzy0Mubp7h1QYqc=72uH6!UYrjaAuqDfg~O7IMO4-3(PX)Q9Ff5Nb^RKCJ0UKfH_|CUi;Fn;ALY_a;k{1vwP6}C!+ z-t$;z>S1vQ`EmW&yqTeH{WyOwsz_ZgATL2kjexua-8Jh@wtwh1+5Z7!c9|f_iTSJ} zfu#r2l-34FKflr8vRQM%boCTOpx>GDG=prx!*0whf11)4$xQrqsoz;0*{e9&6@pfY zTa}Q35;8k-66NOli)j78`#e?BY|=;}9Tb%ldMSt(kX{OG4Ha8jDYH6?{CP@+c_(8X zvkCgvRjHj~#%_gdp2j-zE>)AC(`T^j zqf&q_m2|%ipCov!H*gDFrop10sr!L50>yef*4sDgmunq&n)7vsfq1! zwFLWaJWSRJQx9=3SE6YIj}$%ZLd~imD@=+rrr8Vk6L1aAF45}0yRNi?3gXe1K(SSlhoS&)Q?MZk1lHo zy!>$x1{xgq1f7Q*)lM)-+aT*>q7-L|(bHc?4{YHd@>xb5m|${1Y$KJ^tGWZn{m24w zoW#eRnGhk=?4t}69)YT^BqJk9J>huS#t>lLHTAIBJY?76PIQpPm^A?>Tqq$m4TtHF zF^3q18U&Bphwm;_Xwh5oEPHWQLw8fkIedOfcO=f)ODQWYaiG15JojdjXmrtN;Ub(N zr;pDmQ)ljK)lWzeP~!+Ol=wUU0)k7OpZ1de#EcZ#Ox6yP=MXc|S?$xND9R=La@zG) zWhiP4+aqLssms)rG?LY{*fx@7>PkTZ4Ji}~3m14KEd)Mzst|nKxwGdM#auFxUD{x5 zvX|I=bpBu;^A}9*eCzQ%%JDV?=>5D|4{SWKalmOgV{?yX%pJ*?JC;#Cl2LB4hpR>^ z)}PMU00sq!pY(^)@0H}TIkF9GOLgA=2KMpB*Kj@a>;?-H-AhC&1E!+n9M|{A}4Lv(=Pfh%_V4jeyk-&~g?MM~@bonw6$%3|1rnxwD;x<~q6pLGiTQL9GKYK!@TEur zj%;p^S1%o_UO!U3{#5Nq^`?94?%R2M=b-kP%m*`H$f$VLoo8B)_{{DHcgNg|?8&5f zQ9!K}Wuyie4dfpeQK5*L7y;%E$J`oT~>kFd+u(Kh>l@_C<3| zHSkGfyVP8pdDYy-r|PvOwK{tEjNExI?W3;(Ab-Hy;UhRPZcM=e{QX%HwFLlof9WqYg@33a>9p%D`jVS{8KnKUT33B!%E+rO zQ;XJ0yi!(MrVL0myDuJ)<|;+ACgedt19G-<$)(-vLZinDD@O_|r!^a^P~ror%IT1c zwxr;E3KmeXkbO)DO6p=_1fk~U4xx0^4}kSrjv8po zuz9g07+~rDA|>*WsvQ(TjD!?{EpcF&q5yHjEGwZ?p%LE|Twm~W4?xa<(DFk^`u24n z3B@y%c&7DBAxI|5N_9Yd?45^9FW&N}nq8)Mv=H|8uJaTX75z^M$BGT<(EJf{Ha6Yi1$9kJua1kS|EPL$E3 zB06}d$M%!-ypi-0h#5R^=ZQPvR87ks(+Wql!e|xDPk<#1elmsSOULIgn#^SStk;;K zFM$_bJ#8TWv{o{%{I8kI1?`6RMW0v=-%S{>7`{pwuw8G4*NB;rB&erRYIP-tGrWvC zQWV=0-V;b53<`3o^;vmm9GcFQ0q1Pzdl&3&SZz%;#q$GC!4~ql`1c-XE8!&5E_<)N ztk_P4DYkQIznO1Uwk7r>`d43KQuN%EB*08M6^J+ylM0!j38I+k)KO{`QV2PXeN)Uw z4JjJVfm@(kR7a^AC{XxUBgM8-u#JN42;%7=oC6k_6;DS!_5_%wRiw~-w;H-gL>4X7 z2yQ_c*WxeqUIc0cmo6MBS$urwP|-h>eYq^$a3(E3viEe_-00%R?>N=-;GI4Hi^wWV~bqzAG6)WH6^ zX6=JBtjI|mBtaiw&1~mj)Fd2lKvR>=bf}ojdkppT3J;yKi9|U)46Lb?Ns%ZI>uLgb znTZN)C0t_Km6W~1`mOJ~5}$`QHFdQ^j>4W6cI^i$u(!a}_D(S2dkst$qm{UX(=J$x zfHo=ZKrrY*xVO669X2b;zI&)8gk`I%mG=B;*UYX#?EFd_77LB)*Q|E76yw}}M|!ZW zgtkt*_F?8i#v+>-Z3lo);2Ts)K^@DSIEX zdkywFoULB_dGZeD#p(NPxbvsO4emgCDp0UcbvOx1* zU7+T7Df!nK_wIeDZRTCQT__77z;+R`hITtKZqt@v?cmVl($kim|aBH=#ylJl) zo1$x+fcRRE2{}e2O;UAT3pmVcm4+5wgBGPhU)gbqZT()O4IU*gGLfImKnx0Bti*AQ&&=Ev~`jFEP2OUS|4!P^|z-%uNtt{rlq#EouduN z52@t0n7K;QSM{EPPgCwQbK9Acam`z)+4aD}i|X6dT9WuSYD2qF8`_wZm4%$D^o=a##PchbKn(HyuwrMWLB}8VE(rZo{Q0U!Iu#H|CBoYa8e_0kSy~lhTPcugn zPHE#B*=>ra(dSfX|8!#WDSDdgR0zOH1aQ}56G0Y(m z!buz;wGbr8T0(;!5@5sxk2~oF^%LYHXtc%ko?sAmM`+N+c_(zV$zv>zB+)RlUGj#| zA=4m8T)?PnCd~r%{T0PPg({RSMCfUPYM_WodR|WnC^(G2&>$#4P`{4sF-P%;qj+%T zn4=8D!%JCtv3znu9doW5FPJk{P&HCebuw?XVClP?!rKPABRSu9WKU{N@+?~zx%qU4 z=Rz*apG9Uy$aF|_&1l{dNGTH$QTDiF$a!kfSXIMFRl_S85(gD9EuQ}nMx)IhwQZG?Hm9eLFvsU3A|a$M1kM^pWh!lg`oXhpF#vSQnj*1cbzXCN!`bX2}MfZ-CUolb+UGK5-x{>m_mvU#t ziY#Ua**e+EA;28Hb)nq36|jU<4pPdP{OeWO{mF=s7+8eA1iFN_cgCEp1F3Q?uS`WEWFSw(7X3H4le)5_R*}l zQFK%}bnfx^%}_T+=u_zpS?rm4WsQ~WIhMU`4ts8K&UQEZc9yGgq5O7HEpIH7&zI@= z@qA_Rwqp6uyf%MZf&5N^jvwEdV{Ffq-&s(;-6_8dh%@DP-LCD+<#&s7w=a?3U7{nt zAC)97YtLiniA_13PfJ|dpngcJ*5gK}+78Y>jAZ>=%&kF*0;ke8-61tE;RwW10LKv; z&I1)erd+{6p$hy8@+YnA12@5FGp!`k`ANjFn30Qgj9yScV1#r8cd;|tE|YUa&!;ep z9e6+($oc!xN^)$TVl@u<6|f)E?i-HwQ{|46=L|OfO7urS^vdSEB)yT6%IZTq6>#|k z_BIp!VV;A`q*DYZs^nO5v@c(PP0$-s6Xah{41Npixr9PLd)-<_wBS})h!U7p*Lr&l^H^TM=)eKmAlPy;bLQSL! zN*>f1w}JGYw33wUbka znXO7}=fs63Pw#|z62Nir1rHxJ57R(pSptlTO}zs@!Gxi)0*#_0q}r^w`;C;Wj-E<* ziC50Z;u-4WSS-X4O=4?PHyMF>Gpsnu3EmS(8HyqRL#5QA7k)pzV6Z6qw$a(k&Qz{D zwdT32M=N)YWGo!m_K@~!<>u#%(aNpXPuLkWxAMV$=p2pZtsKc)8Q%4MM-HsHJkWQd z&*qCCPd}5MA88xha58@!_FRh2OP;Y9i@d)0jSHD91Eyt#UU;T>&Sz>qS@U-bVp%l< z(sogoM-J(JPbPN@-wY9f{~pg4gMBU+!83-d&LN+1FRc^uS)n7oUqb@>N~~gp!a&5! zT5V|kvMCj{@@S-AN$a1o2PPBrIyluymg3&4_AXp)l@426){1~Ux))Y0K?5b$h-!Z9 zUr<Pv$thko`3fgRo zFH&75VM`U6E0pKruV3TBX%@{OQ$b6uM}|r5HsGl#TST7#N{(uILO%o(t5b-!J98B> zX$l|&Ovyuk7ZK~E@xmhJSvj<3v~0tORvO+ms98r4c_jnR?>pRQvdf~{(6-U+tug0T z(p@CWrorfjQ)@=E>toJ(^XMQkyHPIf!&K4vdOU^jABVqs{4}qbPO?lXm|pQ#snVu$ zP7}g`up(#|KcieuyE>Ir_(Njf4=1P8J`P#9BIDxs`!gr1}&s8CS$rr;H}NhSTC)LbA8E_kyY{0x!M zM-gC?f{JDdyuVv^DX$sHsSNL+{eon6w#S@vCxugAawdCzbnR&NQYeegUt$ULY=6Ny zSM4|;Cp0|^_H#ce2kSoJ98LGcL57r7J-*;eRgYE;Eq`n=kt0_UHL_-WqYpnaYx#r| z8&Mka{T@``lrrB8EdXREU9|>#+Hh@g$fw;awg~x*&=G&eA-A~LGp>RyWmCn2Xeg** z3hhxfOd)^Dc3`l2Qsj(#*8#6KH_ z_pm+MejI=QWo2HQI4ZztUE)9>3G!+y3Q|Ja%+8BzZr8v7$KR#TznYrg>V%B)Tc==} zg{1L#8tL4aCrVoY31oyE;EfQACpduLanTnFzK zzehHryAMFlU^`NqdDCc{x2)zJH2Eup8>mIlM#OARj%kgRHj&_mk>*YOh3-TUWaM_uPfNeA^zPEg;nQiJXzfecMT0r_+%}-SE}3iIgd_dkx4oK~ zeP74j9fQ@UGZ&uZXYz^%mw)Dp2e0_VnrQpU#?ic$1NBIoRSx^p;hh7k!aH%m<(l_m zn&-{eop_8)>dl)zOjwmKw)?8nO08<4ldG_yFkDJowTWhY8ed3aK;$VKpUfiao3Z61XleMN8Io;dcF7|r;##$W+UxHw4C3*H~*G%kwKbZ1%t?HO6ag1e;eT979 zjC1P}ySORm)@j!!3_~P)MV(uxwUUa@w5!!K?E!w`P-%hvbno>zx30oGw>F^Ga{Ep4 zZbJrxC7k{x;lKC^i1o|&NoBHJJC6i>_NT_fY+JxztgMjlj>4L@Bt~((R`7$r4Zh;Q%FF0?XLe5did#LEtEhuY^wm z&+Q9HF_Wxs~3&;qfMQp@=3e{4%foLG=$4!+9$|XVY*jfG>)VrzQ zl`Pw|i$J&Dgso-}U>4NuDa5n-NdkvY6IZ`d11h1p_wDXwA zJ@F;Xeb0dM1I$&K=ohURN#T#6;!y0MXS)%^jUe2>fwyuHKVUX1Eis-b&tv`Md*+eC_!P6|ZzPu5vuTT+s8CoZ_n_;)*6wzOVb| zB@aGR7Cfv@CIt-!2quk2YZho3x~h2_EMGJ=Rtv=EC|N&KdNwa{=vR|azEkSf@vP(< zg(}`lV^Ym7sMwKmUZ**sNOH~e{F$6NYQB*4Qjka@MI6P`8gAa-qc}Kyvik%|ipw+l6y zyee|_1%}(C2R5C@D;7ac|AJn`XHBkR)l0{hc*mEmyr8G^xs#==desHC9=ZBa>ux@9 z%>_7*+RZOy74yZDYgpyt@v5a4WGQdplN;E=Wfz#6FF9A?;_eGYUS2SHkTWe~pnp`( z{-MJ)u=2h&$Je~~_Q<}-s%L&-3E@2somRt^x&G# z<;v0f1%mOJCm&@^j~aBuZ!*sQ8V!d_s5As=@SZ0Cb7Tl6Jx9fpwau{tSq4 z9_b^K^hXZN!)j(O1FBQZ!inaNYs6YnQvTpyn-ak=WvZnO)V!$8R_T%gAvi{irxU*z z-qlHS+5D)gFI6j))(gfmjEPf_=* ztF@_f?tk6gwyJhsa!Lg3Ibrp^eeR&7u~Yh<=16Ma%c*@&*^(1Eshh3(KBdQLcTqjQ z0Fh*mpF@w&+^1A8T~qoqvG~x4hWl;clufWdO5JSE`Go5-2xD0dthuiH2IxI*FnPtB zlmQC`3Dp2ZiNgpzV)pfy)tAtHpITo{&!I!1Kd;g$_5EKPFGUxRml|-E(4Xdn{l7YB z?2n22l>W6pw6%HBeC)vNo3d(&YS}h*)go)xsSA#^hS`%U-|i&SYhEXr!B746)JbZ< z(Gry$`Y$m(-1{OcPy^CTLCX@YS*!3z7v1SME{@(DeE_TBa5B#n9qmroy$&n%{Y5+IXmSu<8OPS61lABD)!d})TJ5h53q1%=5H~W z>~b(M;b1ysb$Ck#6R}JtJy}c(Kz+iE^?o>;$r#eRbC^Dn%QSBuXM3`*(FyrA* zGRZ#0c;Gn*m3$lN|C!0icNzDNBJGQeM_xw%oWb*-FfsH~#(lp)`+m)2^w)^HxSVit z?wP}-+rzoLnv02Q&WCEb9^1mXub%6^ty~OmcN^Z_fwJ%5a`;XzVqvZi zznk;Gdy(dSfZ_dIM(^T$_>)`&K7~9{l<^SWf0oOM&vHKbIM*khK$&0Uf(>yQ9^!iV z%Xt2E{CDkxR@M8{o`ClUgA9RL#{`EggSr1 zrRS%dhku4NKjVCY2|?D5m?pT}A!OJgaNHr}WSZdKbRmY*g$!f}j6cBxIYLb23LYyI zA}~wn?jpg%i-a6rEO=y@5Nx^NU8{tgSS9%6l}NKj@ZmZkeDz3Ek7rwj?Aj*y&@Lf8 zyOF*L`I?1jX@Rw+tB~(1ynBbxBb|b`yi>^7J5gRA@&xcaD5Uo&VC)w%(l7L(TLt&L z7cjgJ@9x992;lvK5Rr%R{3Ozx6e9enkiI8S)>njZe-(8N3pw;OVE(p{?0KXc5o}^a z=v^fS4)9KHh6_e!b9u9UKCjbxs+l1J7_*0o-0!|NrFZa}%4q=;>je0a0eBR@E(#1 zfor72xWX0efv47v4`>dVaeG^ z34L zej~-?Z*c!Fz&?qxfF=!{m%{zuDDU@Dy8j1t|BsZ>|B=FjrQi1lDcB#SZ22SJGfj&z z;AdQe&reN6vNRrZYpf+#??#$~n(jWVaZj(tT6#6j-KU9(ccH9))PJic zqql0jSCQ_knl|)R#Gll(=#v^7eiHA$0a%_w8@`2f!>HqFjd`9y9nWgI?>W@* z9Zf{P1K9op?TTr9=tYf9zKDEd$Ug@7wdgE-m97n6rL&2vbkPD!9?@1^bNlhT9Wd_E zwTV4CYuT%7vAsHTU!!Z2*C5TcD5FEyhC1->?Yd;|032Pq=Iz#H%Ra!cA88LDO%L+- zAbwESx()%}LxAf#wDCIBc^%##*0sR(x{O_qHXYIRXs@n$`gGoP48M=*+zX@ck$(KX z4eh@jW#6H*uCT68z8ih?eqC?5OV`{VK)D~#d3ZpVUB?kWj&v|0-*vYxefI#qdvqTA zAlmamod-^!KThbp<TD>gOV2|{|B$YEKdbYh$Ivg2qr4&H8Pd7$YdVYm zgRc3$uFJ?jqTZ*_kKfe!#B;ic{)?`MV|X^A%kT)&zo3iQ_jIjmOqUa5fO%XOk#U`S zUe>kP%R2L&(M8}Dl=*#>^#i2;0qUC2Mb{4j#}5(zkuHXQjC`-^eE282nD{AR{kg9D z&H}Dq;QmXUPySNZhkuPSUqgAXAzw@wZTb`1{U^Z0z=h_9@Cic;3&f=%!V;LPW@tm2!F-0H4I2h` zI}H|d8rnn}(z*~$~QE3fx*0mh8!+Lxy6R`l%R|flvj#(bMee$Xt4!=VIlID1Eva;U4=TT3_VEg(O9w*3j4%z`F%-)S;|8{H{mY^(d#o5EBhZ*J$W$tHFnx z3~i{{5P=rJ*kb5`t5AQNAtP;un7kV4_n@vlc)u5Ut}(dhS_AV2ec6G!-;O?f2g>d= z^yohH!+wKJ?#KHBNOur09mM-Xh88)5_t&AU!-inj8<;PKKKxEY`T_?AH(mD0geX@Hv9nI4EMxB4jC=M`%;HCG{+%)a~-T}u0y)Z99p!@A=x~K)-ul_*nB*n@6de< z95S-NAw1;{El}>zhbkSIa}E)!b}-K(2X9&8ki$z5U+T~%mpb&xWe(}{I+$;{Lvyb{ zy(>SL+aywa8oN&?0pX z9@v32I~>xp6EN*W8*%sTLYiF;9&SgOdvNbSns+$3x68p|T@K#04{h9s{QD6m1l$K*PTi@A^=8pM$vr4$&2GVD6y2cRA$nyBt~=9NwXzL$DC~D&&wY zNAc_^@*Z{Yi5mg$O}O8Jdq3{CIrQl54$XUqgSFh@(1vlJz`f;82MgTk&?azqhaH@~ z2km+f+W20;@?P}q`y86*{SM*&fJ2LZz#+l|4#|!Kj^hsLxf}J}jq>kt2+s!{GWrn?;V=&NtFAf1BlC1`ac4$XA}&IVK>u!kfDm^FcAjl zBa#bRxDxkDrhBSEcP|Fr4B9=slyOfD?x5d&SAsT%dcqLypxIeq4b#1A8FxdQKd_nU z0UzG^@UE5#?-o4U!eqD(v~@jW6ZK5@H8K(14w`x=Xlc;(pzT=<^n43w`H8C-A8tdP zpxOX%k{`|&L)gR{gmS@$@buv~ zPR7GWQTJ_}4TJA6@otWBk9_av3_J$u`2foK0GI9oE}{dR`|d-V?*sfN0MCax3w)Ss zzK@{IA4R)9#szx-c^>52(1VD79M3+5HiIwW`y60+7g8N17GH%>nq6j6~w>Bh384m-QPeR-{5-7Q(OeT ziS*y%EcPw*!_%C{o&j9n=AhHKha5cV4`BfsIg?=`%C zjWh2#u1%cdy63mZ_gk(9{u|}J&Ux1xXv^=o9{nBq_;*~m-{gAN@6n(CgEs$xi=jUt z4;R`5Ky(YC#RT{fQfR{xJcu-*Pk^V=0-lODQ)mJ3Q--pHU^zk$=L!bCiawkNUPwOp zBn3i?7UEt6KF4hEHA+xcsbFl5(7bcOrLb8P@ccEaD3xx<*;Mo%7sS(=H z3Za7+qs3Ms{c53wuMlkL3Z!2nm}d>1gEtf2fciHHExJkQzRg0!Y6Tx|5X`q7`L}~t zvJ3FGAZ?3aUXwoqeje($2JL#AV1W+AJB8NLiTwKnj~zri4ho$e7JTA*)Cc~}5RULX zH=<8&L>V^;joplT`vr5~CiIp&@a#_fem7u!56XJ45T5s;toI{+7hwK?kl_L3IWFYH zaUpzn3+}l`XwiF6&pkrM?nV9&3T^mjC!)Ws(0=N?D0uQO{?*wonA%~w3n){2W z`^$obzbth26~w;^*uE;nwP63<=+9@e+c1wLFm5Ic>X=1wR{g{ zf=A^W6TofIM=uM(&Is0ZMraebdtX7>ucFPb3Nic>e4n49?6c@ENJ_YWA+)Yv2sZf( zp+|m+_Wly-ekHWXuLO(Y9{ZKhCx0zu;5UHrH-P&$Li+wou;JH)<~b+07st-g3qlM3 z7G?dn&;qZcFWwZw`$yEvr1Ws`Fr?I4u$#GcDI+@gN7!1i?a3CWWZ^Wa`_d)rN|(Aj z18FlPcV{AfCh}%UF`Ol3SGLq**AT90}zuMtO_DlUXeJ#1hF`YLIpX>Rc(c@JcCKR-^9q$U}U& z&3NvU!o3A$)`6e119j|>+_wv5?UuZ&1@FL%g9{JV)rRM9M?LS5jCD%R_DOAMAIiE8 zzpuydUMV~Q$%ccH2X03Fx8NCgXp!5|_B+52x&!@kC!T|s76?loevi~*?*WYOL-}_} z5d%NX^8wUzH}ZW5Y44M~<%HBHPoPgf47l%?()Urx!XE`3p9Y+t#_!Lfk3TD=_w!Oj zK9BZ&0rh=BiiyXh=6xJ>Jt6hT7tzKqp}rw0C%%lbz9wZDd^0zAW-WgY`2Rubfv-y* z{YNQ$-vs>Mlp_2ssmGqdw|GVh_qUM`e6#TLNdM31bMVaE;F-1j8_M{1sRjO1a!(9( z#iWS72)Mt8es~G+y@YngCHOOvd(TKMat5%1pXU9c6kR_;ocL%zMSFgMHiCaP`5MYQ z2iPDN75$^syEu4DLX%+)JfKYQbn?K*$p?R_MAKTp{{jz;dBFqom1&yCqcNWcyq|fR zHZc#+=WBdo0r*bk;5U_PELx#y-b#&4R3dE^(pG^lv>0Wtz#aNs;ngVfO2pS{(zg!z zHz2+d={JJ6y2x1)|7;4|$2jJr_wZot!DgHdPRc1A)^Oolp3RxPom;EWi*T6j4J*^iD(zH6YV#A_#;MiU21-fS^D^FW-N6 zX3pnbjrK<0`@L_z-#hyK?B`~l|1@N6w z7ks+gBJsN|EBQO*cdtbg_rv~v%ODRRy$38je-Zy6ICv0qX^`aimR)(+qQ$3S_YCrW z*0N*I6O{4Q|sS)}luWyKaFeld8#yj}7myFl)Od8S=$QrQ)G?FG4)Z6^1&X(VCW#RTSvFh@rYv1$Bp4gxcXd8Z-dHv}IrA6J=Y zlh}OQj$%G8b1Zy5&bA}Jw2k}%8}}94%4Ka5J<+Dcg|PpXZIDyp1LorLry;LjBM;2S z#m}%Y_W-}o#C+9RnBT&j9OmV${MoiqJO^bz518{H&xgMk!1oJKw%;JH3vKiXZIZp% zrlsrP$Mx|0283_0t@2F>-)vjin~~>;H4D7bvgwn~p94Qv98zKQ(bw5=j!=}jAR?~rfVM!XFBvTax1L3!Rqx_^c5 zVa!*ALp0JFBKg)3En!|OxdO)cD}<;sx0Rd(9p<%)tAVL+*M{LwdX0st9b3D>HA!NiC!uDk7egz*-0S@y{CCoFG&c=MlIq?4+ z$t9J}{VvNqzu7Fb|XeFk}`#3X$?hAtUiI()t8x ze~P~=Av5yN5RHC@GJX~^bDzV9e+a&;)$4Y64A8oM0xy6O3|rf`z#p5^cdeMau*dZ=Hbt$pkAO!5BXR%rX;5 zc^Qo7mqj|uB8}xR#$O(3EI$G3i4&~yiWA&5bK4O!w>|84AVy(FjMXvLFU>$0=azC9=g0OXMm&M>bAlKZNU|TX z3;SdI{WD_cuwGxmdVTz0Vn$~XJA*NQ_7@mC4`Vz(0w0eeX5lDeMCTE+GLO(C#`HOi z>EmY-3uAg(ItNvH4zXhA!ngAYE#?XO+wk>9LgE?(7Sc!)TNj^+y;W>=ipCeY}dF1^UVrAa|<_+ZkHf;VzNd9lcCLbdI3d-?MU?yU$ z7smJxWBKIj7`H_!DPZltv^KS}>tKAj4mIObFxK3NTFDqS%hM^wLX>1NmXE|SzT1(S z*Nn{4n!ykW*xFznI_2E|&t6~$OEw~AqrRSgowm@xMf!x{!sVHlY$(Qn_QA3O-=WMNT*D>{*6Y!Wb)u@m2l;!!BNAnDL7ZlDrt{UIM=^F=+A{gJiBj zTGtsy@p|}vvteX!Ht<})IPVt2DBXgx-)a~Itj(7S@D1at%IyZNJd83H4H{nr{3GDt zQT+Y1LCR0V2IHa%#z19^d-Crar0_m`{KBv^U!iFoG z(Jwg3vhpXP&vXjU*bZ6z+m-r~|{@T|+@xs$i8%$2s0y~;KtSL1ngwQZ4WY)Y=PF&|=Ek?Zk{yaCU( z8*MXxqiqy!Lj280<5rtwZ?$RUcG%$=SiHlg$@^?Oc0cmQnpW%qq*=7Fz1}t}Sl5a_ zW1HD$ZKL={+m63r8>QE6GxHbQ$l-aI!Lu-nb*tPv$md-=FaL`4u})QZ-?p()d@f`s7QuEJ?yu7@mpW|%!8|q1Z-aXv=A^Uj6G)+b0*&=fAj!T7Ga-un$$2WX)Aj~mSBC(wV7@DGqbHjwg<4R)S1(jsj% zqIM&R+l^+~ZltA^8|~~Wjo5qCXy?{wq?vUa?b5o9w7ed|>o=N-4H}L72921t$*+ipV{u$Dr)o7AKkj5d6RspgCnK%^qPRK6!+SN#s zsYWBw-DpN|KwDSFpG(NY{D$PZj$H3;;Myq@*%5xI( zIl0luoPxAZfq$n0muj*~sV0)_ZlZ-_nn>)}CcAiS6Nw(zWEU1R;X#6Mw#m#KkG=mV zL7vn^i>Eh{^65=x^o%BwIHQSX&uk)vGn;7ntR@oAHJQa6^pMH3kK5CN{xdi!M(u95uY%Xu2v8$S_>{U%9e-*-419Nqg6}_g( zEML=Pkn5W4>~&4pJJe+7Z)l>4o0{yzElo!8mL}{W0`}G>D|1_unJAzFH2w#q@nVw|d#Q<#H&K?io2*0`Wh^%t(Rbm;dytEP`+JiS|EP&%K5DX~ zpP+0wbwNIBqWLf3|JO~Fe2090fb77LjE;$RxdRWgEdI_;#Qgb0J8{xP+{-57UWWM7 zCK|=lCX(`L6ESa#$(0Kx(&()dN&Z%Z3lmA?j)`{Uu8B1B;6#%AJ>ou_XvRLDNV7)R zE?8kBVTbKxC`_}fgpJ6mVUk!iO!HI1q&OvP=GPA!*{NZyFNDqbMqxX@NtouQh3)vJ zVIw&`Y{xbWThYzKMrQM{mE0msGFyZ(eh!<3tzf?u(%TyPZNg^qr(vV`Q|Pu0W8Eoi zR<;Y1?)ZB~*ecEpo6$YO z*q;}+vwMbVd~c+)H_EXO^4lkD#!Y*vu?IxfX39QHFcr^L+^47slLA*or;?9v*;i4}`7UgJBwbH*6=~LmEGThaXTMMzcYzW-AkF zwj&dojc7x&oo{L;WMZ=&Z*HcQR=hSDlY03`GmS3WZ0DAPZpCIJxneWTt%e|p zOysQBOiEJ_w_&px-Kd!qHfpxwIAv7Wq?wdAX{Pz<%~oZ4vl-bO>22Li6FW4M{EkR- z-)53HpqXY4Zzh?xW*X~n#$J_XGjU|Il^ATszRPAiJA`!3Li%SRpIoz@I2U#o!tTOm zD{>L?x(I$>+-#OFM%tG&)AD8T@$zOPe?>Ei=9|q-zS+v>n@J^)bgphTD%YS~*EZYa z`ew`tH!(t53#L|$(;V}C)p z|I%y~|I%z0-#{7PXtttnA?~eayYyBwCGR2a_h7#my2bG6ug!MxefabNa37$&AA0yKHj_9tRjxGKxzCzO{PSiz`Y&Mcil*Yffcv7^tb74~zDM}` zW+V0^Fh4e%xgSv%c)eMcw$QBEVic?vT5fDHicKx(PqdKO#1@l;A;T>+)6!xUTUtoD zrNxZ3w$Q|~EoO09#IM$3msV>rN~^cn`88k{ZLyNk7MfqXg%sCrvGVI6ZgLAPuG?Z} z*K4ukQ(8!JN{f+MA8BmRVwE;%A!SH1wS`2d!iT9XHrc3!CO2=f6I--k&7;MNY>7O! zZo&Q&__IBH+`fe*c4(pTomxnIXXtimF(SLQ*wNivjQETeTA9&eRc0d3y;{ut-Ys@= zpB9qcr^U?e+hW8LEp}#q`0%q9GkHJ@EgS?N4r;Mu2e%l-gImn_Ea+yn80AA-tmNVF zr>%uX(=B%Hh!(4G1pMzs{{6^jpv8=4TI^z`g(fa*u`-t--D{EOO)VH#w~*3pEwpq; z3(4FG++EP$)ndl(22XdRocFX)azDy;Kg#)F3&}s&LbHonjN~K8>+u$nd%T5a{s!Ck zQI-!|Fy{|Hzic6quUhQL55SOC>@{k&GG?n8wOUEeYBh^?tCb72;uv5n=IdK&w6WEW zHML?)(rQJTTS>IJl@^*?twc*JuJcxme_JiG4D6PHZdpv)FV{*FDhctZbf2eS0YwnB|@W^6UePjtn3=ZOsl z0Xu;`0~u%j0Q&{7XMkjPB367CV0Xdze|KU244Ix1jtR z$O{S0UPR2&MZjJH+e-+I=8+!eCh~bg6Auw9`w-$55i7F@{yavE!ec1!69j7?z&}Z> z$WtiCQ^@}*VvuKG_YBf~mKcfWQ69`uB>xB>{)qfvgnW@$IHy1>F9H8D{CNfCcm?Ub zO3dVI1nbrW_jLGzIgR2Q2){|p;+urT-XfH|3;TD0f0vkv#Yq3Jz+kQ;|2{Fv2gFKZ zA4BXzLK2w!$W*{N=01}DCT8W|#K?R>til(t`I6YVuLw{qAlp*8Osa2Sc`IpTQw;3hT&9O$0m&ru7zp*Ho4x%J; z5Vdl%s2#%|i+B=cPGX*>6KQr)^y8=zKLvT8g7i`270@)3i?mNl#*=BCJUh80^LnB^f?G|b#ehJpDhlEWNT z5i+u}VUblZ4}-a?EF|Wv%-pJ&Z(0rWG^-m%9&=Tgr?TT~A^)|I9`-Th*T!7XI))XQ zY>>pdhLKzk*!3{~GZk|=8^Wgz4N`)PZ-n$VGVIvKh8fw!!2JsO#h{NFBncUx206_z z%-&Y!D_A0|DUyZ-7hdt)mVs{xNdzV2AC2;=&@_ZTTzh+>* z-Jm6W-MsQSu+Dn@j|TQHV$F5})>|7)lQd$9tPyLvSc^|$O`f!vG#`On270W)V;$Zs zI}+>gC9KECmdEm;Q-lUZk@$_2BG-8uX8ehdEiB(KmUe&a7tDD%Tf;^(8LDt0j z^P2d3Ez{1gWm;v(_+*nLCz~eD)!<%WTJd#Fnp+QR#p@y8Dez~CNn;yhjd)|zDq;OT z8V4R542nCNgzSXyuBMUS4QcI$v~i9myE}Y?jLraVhKcrgtIn%@-x#aerD3d7f9zz(;#1&R`hF=7QcaCKfoU6Vxp#HMl8(dT9#e0ElOG~GZw+x z@JbfRuY|eXNtRihg!SZApvO6x0`><)SF`LS_6OwFut*6qKG`y`_HPxZSY~!AhKN%w zJ0AmXnq^j|A+70{C!TIurRkQL+zhzQEUc$kG`W>!MYcg4_6B6Pv1oBe%P#I@VXT1s zW?D3V2-3kv!%H|@Q=V;MUerQcfFE;!ITk+P>`Zb2(#BeTaRF?zusP8p#S<+fyAX5H zCqajK>ddb!LQX*%n6HkUYS~%LRp)*U?CBPXpNaUh;7<;7*ymWJaE@g}&a=$?c@`<2 zXBou{u$KQD*jbZ}m$a;aq&F2h>=W$^EEz4?=4#R!LrDYDC3Vvmteh_ z*k+Pq-rlfD+_WjSZjgj!)5-+f&g0xqWTI{6Ct|+78T07PHX$vxUBr+v+KP362r$dq zG_wlk(Xnr!xH|A_+E#K+n-}NaYe~j3HwnYv?S_j$K z7h;?7pJTos`v^)ux6R5SnAgWypXg!09tOV;#~Q%lC@*B99r?7|R;5yg^6s^1vL86?FGvm`y(5v{kv1*O2kvOw-A52R791RB8_@-}jXeaIYqag$LdcV_ zzHzc`=1v9=INuXF4dum|9_%5&IL5Yerz7n%;P+X!nLi8IoNeWEHo<-ZJAN+wKM(o~ zZ991p(!Lma>>D7L*=7uDDcLJ*!#VduuCk5HRkp>~Qq26-wo$nn{#^tAud$8fwebB~ z+st5(K?Lh5F|4O#Zn3e3WLxoD@%L>ujoxkBk>3G(k4*c4}gY@7iid7S^rVm&3Z7V8`AH$H z*M`i@Dk0}=4au(>GLzVYP{bLV*lN(P4*Z%Sv$ST2WYG<0)9Mqv*0Sd%FX zB8+_mq@&g*^m0>?OcH0+TGjIt}&>R89!d+({vlJ2_AoBb@^1>OC$iv{^VdMc>EJ7{<504|YMqu|J1s!8uogeGP@zQKr9yD0vI=ZTRsvB=$07KMs+?$00NR3H-%A zg)H_aU|#}_VqZf1-$?i0A;Toj`u}P)i(8rVi(%YfhQ#p8%3}PFQ6}bHG2XL?S+SI|OEXY9_ZwdOHBS6SXrt zQ<~kCnx$PS&P^b_-QeeLz~FrXWCq5XGf;*Z$ZICWx*XEngIeW15Wgq2vKWsR_kzEB z!)|YC@^b=a4Ce!|$H0gtsF_PpD~fXhrTxIe{uJ*}phoNfiai-9|Dn_<;fz4!FywbQ z(mkBgND};D(`2HZn(+=wa-G1XkZ+2TN($+AqfE1r7xpJ)`zgr|pj<~%ni+wABk<=a zO3Fu3t1uUT&!c8^KK`B$ACIOadJJq%fbEIUEks^tBi*wp&7VWf{J9kU5NhSmqv(gg z$MfOi`IO)sfnB%|d0a$oatZvr1a_BGJ8}iZS_SZVO3PPKtf5mYel4XqM}YHbC@*CB z21?0I)Wlf=lD(PI!mUUTX9=>mL3bO{DZs8kY3_H_%-;jP??w6UrAG2T;4%It_frzR zANG)?`>7qnyAp~Rdlw#~cH#->o}_l>X-aUez^FWpbTJOcSllAdgVX2X&mR%~Bhqxv z7yO0d{SwrU<6J@cO==e2LVj;k5`UZ0;BN@F-@5c`T!@(p;P2F{UT4A_7%Uz1^$ zFeZ2QhU75*#u(hr;H&_~-!!>`VMJCmtfF&XU?s!E9uX_IvSB1K=Ej);npwlJBN$g_ z*1_0t9V0|08xt_bZiuXFG)8e=puE08CgP0wB%CyjMj8wp8L}|7=>F)@`x81ZLL=b` z4LM54PY~<;OU|p{%VazDtNlL{g8e)y>?qi(85H^Sme zdvE8)m+>+Z=U3XA$)~<&vbY|TnN67_uQ3^$%ItFMGZ~998C`|R;%N+*|2vb3&$-=~ zJbWs{mA+!(6eWxa{TfNG^}!@)$0&T%OG3>0F-8OpF z&E*SRzRKm>T)xj`h0AZaobU)McQcohxLk|Njkw&3%bmE~lgk6SOmf-BYc8!vncopEm*a8`E;rkwjc5vCt3)ud@9ec;anE}as#F>-^{|d{e*?* z{fdRpn!>_`E*9Qn9Ttw=#KOz){9etn@SQxro`YGq$jcx3ISYT!!>@DL1h2 zfiaeT@jw>7h~vqHES#Ro^izJz!aY3y+|?|6CFf_WYgzbZ9xh+U!V`G5Ki-lL%l?AUa7#s=W>5$b+ho6lUe#Vq*-_&50f4i?%?6dku1FHx(t8e5DOo{!?}4Z z{5=oHM_BlD9{%7c7Ji(Ew>p}IC-eF(AH%|X^YAIhvG5QNPdbx@J9zu*Ih%#oSoOJ;U&*b3-=d&#Mt;5?}=_D53lefny3t8Ca;p_=4{07fIdMXPSxjugp3tz+2 zPt0NAn>k-!^|J6&Je==m;m>(^Muvq~=X?~;V&PMH`6`#P@Rb`ezGqy*!fS5G`M;cn z;~TT^np-eAmCMb!jB`1Y%Y(Q~ak-Go&;HGxqwjNh9*@6_OK~3)a!v!w@96!R-03N1 ze*zDm#^pI&3OgY`JBZnR|3&rZ_pOIB{asu>#HFym^Lu6|(~IZ%Ep03vVYg`y3-8M1 zpPer_tqCA(Sm(Fjz`fELQB0X=sNN>|4m(C}szcioYvmQH< z-b{WS%^qGlU9Vn*MSaVjchM`@ctnhw#Q3z>#M-SGpB7eTVedG#WHI~r8caXlacgl! zHqMH!z+`qgCcWd?$l83|v<8!zHJKFS+{%vJuXR~`VI3wb>oMsa2Ukw#@%u2l_}45f z#>Fu)9_HiYgk)UYusyTSPUe!2lk=@Se?DH09>>B(K5mYF%fhPT=fsxGjtn#D9WR&X zvG_!S`7`Tq#%IA`@zDiLddJm0c-g7*%fHX;g2vg|w;A3$zK(v+;>9>SF@c4n@3M5s z-@U->?>wGuC0UG=<5`224gaWHPoMlVTiS-jaor z>$CJCJF@%=J24sAmFIU53y+TXf5F0JD$_^bVc|r;cwfv5L?2*yF~1Yri-jXUWiqxk zla+0m%xuo2xL(ICPoB!4T528~26Q|4-`NgWsYm~B82xMMKV||09RT z<}o%4S-gzR|Eb4?ek`zBi;u0mF@NiR5hp{^aQ~n8i^kN2^Jl~UTe>k{?Z;$s@zPhe z(0j~uP&4p9!a(LDwofF-Ws%D=m%^#|GOQyWU6#qj@?0*rbO*h{?cyJ^bW2=TxD@GS zKjC^VlmB4hESIkivi&w>C6<1P%fiY$-$_h13^82nCoG)dGO-#9N4VT-oH(%_A^be? z(xp50_T?;Gl&qJ0&>VM7ZwNDaugN5dFxfMK$&AgUn4kal&n#WBEc|MQ-kcU6v@-r^K;PM+Tf8dgS%>1&sY~r$o%VoJ-$kRWT%N2QimWNm6 z;WfAn+Fv5tmynxy*44!NP`&$Qy!%(Y`)9=Zk<8B`<=2tHq<6oF*f%2Lg%t4(YcXCs zzGrd{mttSeQ9LZ#kr%(1ulwG@_XliuEKBEQZugcaJ&}%(pH9W$Z~QLUh)EF^vc&ZV zaJ|UK+K}NZJl}2}7VUe_)tMh6oh`Xuq;o1y&)fe0tL#7Iem~0d_4*<571!ah+#exD zyzo=-CH(W+3;hUBXGJbWI$r(b+&`i3;CNyGkjL-oT<`Tq6~BC-&_fAR8<@N#~`!y?^ldA#s%zK0K)Uikk!-@g;#`HAw0>qEphalHr&De5Jt zy^DH&Y$ev-MSTc+o2M^uzwr1Y;#cPJ-s?t`NAM!}5an6O^A-8GbDo6$FdjaSOK(`L z#|wW2PG&D~UMcXRyle9Ew0itGi-$!y#q}xdMY>Zs?nEv{`Go#C9xuX+dHb2pnO?--#_dH|@F@%5!=Fd(eE;X-i&#D)f6*Sq^?W-||86dW+SlICvgfo!Q;Jr1f?hZ6mlD$uHZvlPa=L_kDl;+h5kJr{)9_WK9QdASHufDp%?xh$@3B6 zpy#XT|L(@~73qn5M7%dF`cZ53F&;&~M%XupS^TnGPU2GNg^c3e^Ug2&Jr0cFmp_k( zxpX7(pU7YAr@C`4OTTwMlj8m>@S@)%`Zb+9vg=9g-zjjr-*fo{m%?6@&zoP6UhL}< zI3dOTQP!Uq`>?iOz{;~t6O+PT^iSvU{cbyP+>g!yx+=dLxxT=q7b40h+i#m#$m*eT zJd^oTn8f!5+@vBroH?0=i>ESK#6Xvpc4sn~N_=+dqe2>-pSDyGuJf3g@1piZcyyc1CoX0l^!gzW! zcs$;?xzule9*^_e?oXuO&EqHWc;WvLkB{;6PK z=kWNgc)alECLS-Aokcr;h{q>9>3q)fo#lytn&Xq6_#ZgF#}of7kI#7GZGOGa^TfZx z@mWv&Ydqgmc)TcAg~#VS`0sf9g`W5ciy5DJPyF&czTioJJsy9TCw@~Nf3GK=)rS24 zt1B%3Te$okmqjigzL4pk=HWkZ`OeiW{&f-NvclyTTsHiZ;g;p{7niW`syw_7m%_tG zd03n)3hJKohv$zD^s0$OUCzRwJl6hP{^)>sWhwmRsa#`T=10h#qDZk2Pnac>za0a7Y zWKU-CaDvMizYYbUf&VdT&%+mTndeeGU!pvm;8NK0AlZulF@ww9xGZs*;c_0ASuRiE zau+T|KPkz>JzPG;rSP|bhsAwr5)aSf@&+!WTnfFgpCXBmdF*63k*-Kjq%ZIyUf|-M zbcJ5vD_s8+m;blIeJKI{^QPlz243}O_`iCcFK9h*a5QK3M^OHK9(+*x1B!SLoJ2ll zJ%|LC4!>hD-tbtR^Y^`cJyA%nUWfm8G2pb9@m`DdFeC0qTYbsayS;gdu#olSp>5<0 zMCB^2(F|w?Gy|Fe&46Y=GoTsJ3}^;41DXNNfM!55pc&8%Xa+O`ngPv#W?JtnU|EJI;E6;z5fBy}B{Et%bKbrY}1Gzd2&46Y=GoTsJ3}^;41DXNN zfM!55P%i^wJT1PzAkHO<*BQ(7>~s$yGQBtqB-4v?$}+te$9eT4UX<6XZ{P}nlj&vo z3wxRWLN6=7(98G}dhuFlnSbn*n4e!^FQm-Ak@Fzai+Yyn#raX0UYr+|>BZL>WqNk% zO{Bzlj&Cp(61Vx z=g0JX*S~0&{J5S}FOKiY{97X+|7d`I%>eyc0s6HA^y>uZCkN=)4bZc<0LklrN`SpM zEh^)eo$8dQKQ$oz4FmKW1?V>p&~Fl;j|J$b1?V>o&`%H0i*uVYem4)W-y%TI-i|A; zpREGyw+_&66QE~b<(22ZZGioD0s8F&^z0OuJpXur{f+_podWbb2k6E5U0MC_8elKZ z3(M?x53rvRpr09_-y=Z3XMldM0R7$p`h5cQ`v&L}0s8#{^!o?se-@xWAV7a$fc~HW z{lNkHSpoW=2j~w8&>tG0|3!fQumJtx0s6K8eKJ7b9-!|C(02yty8`s70DX6Wes+Mq zCqSPL&>sazP=e}KI>zb>=S1lS)Lpcm)wW$6zE*bfKjM*{Rm1?cAn z=;sCK=LhJI4$vPHpg%T1e_Vk6mjU_(0s3r!{`dg>2?6>O1M~|6^d|-APY%%kDnNfq zfd13~{b>REUkB(<573_xpg%J}e^!7#7oa~oKz~kv{@eilc>((K1N0XJ=zkNSzc4_5 zQGov90R1Ha`bz`!mj&oA571u`pw9>BuME&%6`;R5Kz~hu{@MWjbpiV81N1ip=x+?r z-xQ#~IY56)fd1A1{cQpI-v;Ol0s7km^mhd4?+no26`;R6K>xb{{XGHtdjs_M1?cY& z&_58Me=tD*`vCnz0s4mn^u+-Eq5%CP0s2P+^p6GT9}mz!5ukrEK>t*L{^tF3{>1?Op91tR1?XQ6(Em9=|4M-V)d2l#0s7Yi^nVG^ zzY(B+GeG}Vfd1_OeK|n?PJsU10R4Lb`o#hIzXs_47NCDWK>tC2{=)$M-vjg?1?WEx z(0>x3|3`rS(*S)XK>yDG{bvFC&ja-T3ef*MK>tO6{>uRUR{{F31N7en=)Vone;1(t zK0yCNfd0n-J)sOB=5G>_ZMnsgc%gG*#NPtP&E0sR8=HWLli`KEunEE&0?1_$-c-a} zig;TQA5z3mP{cPV;u{t5O^W!5iukZ1zF869qKI!*#77kI%P8WPRm3l+h+ke2zk(uu zMMeBdiug&2_>~p$t0>}ERmA^95x<%uesx9s8jAR+B7RLp{920mwH5K}DB>q8;@4Hg zucwHgqKIE#5x;>VeySpVLq+^XiujEc@tY{(V~Y4`iug?x@zWLYnYeoDviuj)@;+O7y2luzPQ%rw*Mf?tm__!i|M@9Tjiuj!s@w+JEcU8pirikBN z5kEr_KT{FEha!GYMf_fh_`MbJ`zYe~Rm3M0@%t&__gBRKOc8&8BK|-{{6UKNgB9_! z6!AY-#2=!FKU5L_3q|~4iul77@okFuq$0ju5#OPR?^MKhDdJO#_-;k~Y(;#JB0jB% zKSB{dM-ktvi0@Ox_bcKD6!95F{E>?IK}GzKB7RsAKca{~N)bO-5kF56KVK1lv?Bf( zMf|af_~R7uzf{C8P{d~y@y9FTPf*04sEA*vh(AdYf3hO}SBm&k6!E7j;!jh=|5_1$ zx+4AzMf{nH__Gx8IYs>0iuiLB@#iYy&r`&ouZX`u5&s)S{Dq46ixlw}E8;Iv#9yk2 zzf2K-xg!1wMSNZnf2AV+DnZnfPZ58=BK`qI{DX@4-z(xD zQp7*3h%YMQ7b)T&QN%y0h<{8G|F|Ol2}S&qiuk7#@lPw_pHaj=tB8M25&yg*{tt@y zKPuu&iue~4@h>Xk|D=e2NfH0DBL2^c_*WG1uPWkSQ^dcni2sWs{tZR^n~M0i6!C8> z;>(KocNFpOD&pT$#4lFF|5XwHH%0vWiuex{@gFMU|E`GtND=?BBK{La{67@&pDN-j ziuivj;y+Wwf3ArCmm>b(iuf-S@n0(9zf#11t%(0d5&x|s{yRnd_lo!*6!AYw@VU}< zuBM6WoqhPuPuxGZ?MinJcMkMrwr2oG=lmt?8fA8~Q~jxVnL%zgdfq_THOTCG+xt4Y z+J%|VPU>fGdZ?D4(){`cx<-0a()>a)KleFsuf1S3Za#)mW8L%FN&Ood9!&Somii~< zf24m-|G?aSVd(YKkd*7V4Y7 zskTh}V0)ii72bSpNxmb)-5YIHrF^n_+j+-*cHVWby>{JYOnT0rqP}I<$!;_EnfbFB zqh`Kx$^6?5ZKPVgwT{W(DXXaOJ$|Fz@RUm2@<=+uKVmVbD!PEkDuSR ze=6foU)Bx}NX;9bx$nV)?U{_*puF{CN&GrsaKtIT<{^0h(e%z1tP7MvUqxtyk zmXX-C9gM~|Fn4I@f&QU^-qg%}$KaelMg7WnZ)=;m?@qYH+B$m&hEiR=eC2lS9i45% zneN{9*+Xq@K08@`wY9Z(RKqVf#_zH1!o?2{ws#KqrG|S3x*S{Q=dFht`E_+w@lW== zLw>3L;nX0{#+Q%m`f}{%rH6%?id}k4c0Rir^77PZ7ybPM z!|lUqG{`Fc$?h}YZ_sT>W7>i9r)a-5{G8if7w^u4MYJY=dy@OvF)-i|FY!~}t~y4# zyXEal&S%F+y0;6LXZuh!K4s69wl>FZIPF#feDz*0ay~oe57)&DdIdFjk^9-%-tS!B zDaPse{S=I_ityS=@0Xm(*{NY%cYUK3>9vIf+%58}Ilcp8xRE=?M+B zbq@~owV^BJc8TQa$nSGqscQE{IX}R+4-bnQzLy{Q^$fezFmJUg^#QvvEzg^uoY&E& z<1*;All3dw+8n!q?rw~e95%gnHF!)roOtmy_(&gxF`uY0uU(CN20E+cBfmc_^?3IA zCmUC`wWW@%R(?6(OFhng`N-|M)4iju!q2z-KHr@l92)LT_ow;?l=$fG9cY(7r{&i- z>;?wA(nqlx^VXNVp1TJI`<7&=U^kR$AMRnf`FWAo+iaIjZ$9$&ggbi`{^Zv`@HMXg zi1dEN?b011OYQ>xa>?u4c>?vPhk3WhTfUn9*0_Jj?*quMKQ&kMvb_1ppFd;lMxP@7 za?0Bo?1#Xx9zRbX&a8u#FnO@=~IQ9A| ze;&A#FXFc1v#U`)TzsQuK0EpK;9RtALn9sa_CL|38gB3JOm+68I_Hc!;4QEG{+8}{ z-1g#Y)JOkODS3U=$Y-G1^S=h4nSr^Z#qs%9qg@ZyYS+t;xxSn-FX=C)hcJ^cW@dop z?d7G0zogeFUOwdY-J9yK z(yrvsFW_h6dEQgKJ<995w|C5N&&Qv<9iy9rIbBg>-g4Ej8{52m`PJahy*qgGk=Iin z21~*_|NTq;T*mFWvuAYn!<(PHTua^7edUt#-a3HuUia)9x&U*RF9Y@G`miI%r9q-e5{j0&-*l9sux#Z7j%nH_+SCaG1?tWhXm##r~Eo_?3j&ni}c#b+t*MgcKu5##9LnZ_+iY3nkx6twWak4J7-vw9%>uuclvaAk~v8o)jl{p zf(10*G`xPu*Ryzf8Qv`djYBo&o8&E#VPNXm*`YF+nvE?_ zgJOx#%ZI#QGB?#e$Js5lWG%{Z*=sLvM~?kqO58}icJk|m-NwCmX}fc_wO|UfcMPA- zpJKj6dY==MQTz_#%}?qdcDAIC^6wXu<9pMy`~BldDR1qg+cDe{dHt$kH_$)7Z(wAI z707ER=V5TRbJ=h+U;RqQL+wLs7o0O9s9SPp9&8Wj-#Aci}%v(6mF_y5`UfMnf`g`Z&!PJMfwRSw5ymnGv zoUTlj`-}AXH<%i7E^_XkFCXdsVW?+du5(Z78*=ZxUjL-|4fTu+V*{(WA$jej_ubLq zL3JMG`3({%rM=tf2Vp+Cvj^Kh{eH@xFQazOTx|cak3Xs1Y^P`MY}0VpwS9K7 z`yieu?M~f#d68YWPUmGVT2mKqNM1W>ec|Hiufl`0z6Mzr(3`%ry$#OB`HvxAIjk}D z=A^Zlhn?}0^QSj`*>wQ?NFORhb{*8n=csD=$odKBMq@!XH5-j*(Ak8|-Szn?t}Ix;+f zhjm|?_q4orvi^&6sbe}wT<$&|W%bODIr;E19y?Olho^A=>PT0=9%TLR4s^dU$agmT zxeR;DFKa*U_zM=}#yhjtRq)bsySwQ9>C5hGd=+H$F6{M7T7I@$e{@LbwUb@vEI)a_ zS9bqlcK-WM4ZQ1{*DqIR!X?buO0NX^_VY({yBy9)IDS|3^+4zL@i*UxO zZ75Z(UoC47o$lrBZx6D1?QBcU>rA;_5|@hc^4Hmhq56nBSQr3^)_U_Dkt>=f7pLS&3?&n92cZa3E_944(ITw~wbT5x`K5%eivn+_@MZUYZZ~0J558IeB@Lwm)~5;*hgf22bvkGo|AGy!NvDKqnTXQN2Dt z<#@MS?!!y#haFq=;ibGe_-_9>$69#IEBexx-d_fstz4aWstHn1L| z*G}r+0P9S9@zU$Z!D9!itRE_E2iTM)Zk)sI9nKV4)pk&$d`|Oo7WAsx$;LsQnAu%& zFv8!Cr0pGc&e2rvrb_*F52l<|pX&8cgP%EbojIDNYTxg#Z2ko0bk2T^QtPeH8ujmT z>c!XK#a&dD@gnOF!#`)P45zx8r8hs>yb0{E@yJh%*SYhX?qCGq0r z^_g*>$zHs?9GUr;Kv774&>fq5)3;f3aMN*gi+NZ)QM`EheSQf?P7+=_*?7KlE_=dz z@iLxR@6w;X?Ed56#aLIxuda61Me_P3t8exS5Wiot`V+4V@un}wyRT32@hWS#{N*Cf zYOmXO_2wflhjYr*Uk+J2>B88ir%HXxp08c0p)__Hw#nvCW%q|Jc!i_P()B<&517~N z!xZ%pW=X2}Dd*v+bY~SFr0o)?UaPe)X}jdFV{&YqpSONw&;72nbE+SUT`8;{I-@*h z?z5McD?J+vF8=&v&%-Vk-=;h-!R&B1SN3nP4c%p5d8F4xdZ@E~(Eogrw!gG3Bp>pyg1Gf@{#XghUN%|97$DQs2891D(}y6*YvRd(H`(9GSPDsAa5rwi!iTh{-; zX5^av57~9$E+1F9-euRXXSvzupNw}l+wCupti1w{0o0Pdo0kV!eK~gQaCi0ks%2NJ zpD5?A3;k|?x#am^PgiCDYX{Z+lk?{;Px$zj`sKXcsfu5+>lK^ItM>C`{T>(J*FMDV z3jXp-+s{0_%?Rt>tn_|6X@0Q74j%Thrz+Qlly7%1J$n1{@mC|iF|(I`KV{=Eyv+bl zTZnI^*XLkm|YbR|VV<(-e zxiIM`zkk&54;^WLKC*rp@&Vqzz9en$&i1=1<&fRa+--Mk>p<1=%laeT>3Pm}TkL9b ztJTN1)IUDC=dB+(eq^YpN_nL1dBE9q;pbP@&*>g;H#Q8-$L_rTIewm{_2|A$#h;Iq zXXo`u?$JS)W*=YD>!8kkgU)_KXSWl2jD6MC<)rNmb|b@`KL4bA<2Xw-zNL5^4ycBg z^6YL89zW0S>qp(U*j49QR&M@!USGLo_ho+D^xaR~(z3^?sL#ZRH`z3q+;_W(U2c4r= zgqH_ddv)K+GrH>I_fuLfEH$b;-+ElUzkX!>r=E26^2_cwqNnaHw;Vr$r?bDjvgcE} ztNJ)cHXe8J==Zws->8z0j8_~Usk(1SR*rOEyL+qgmRnZe>{;HM?qKx#t`}+f``J{6 zHy_!3DUI#rm_`)0L0>+y_U~Sj?nTBN^yVkKU!?oHT>~#(cE1H4^DJx*zS_K{+|Hdk z;u|CU?MK#+;!{qeE3;ldW%o6{S=h&)wB51I#cl3>oht1v$PPQbtG-7$$WGkkz2yqB z6Mbv1T`fLfIhH${Q%6ML$k9f~l^?aoF&!GYKf<;NWr0oN5|8^hFZN2E``P;9&T<-F# zuU$x=2Y6|&Q@X*&nrX+U0ljr6NNH>K?W&0zGVS0x{5{Wx}G4knD(zaub3TCM!D z@*FYZ4x4=Cmz8HuD&=f+=U1zrH`()PPOAF)sO&xmyfdZZ^Gj9^;H%yTqyLew#b3`dUhx|6s^er? zdvfs3&Mn5SKOfnB$hGSqJ*MF+zpVe_+PN=yV~1Y6Jk-o@%mlpGPF7EDe&QjILVE4w zykj;TO~{Lv`j=|&9`l&@*~!`|TW$2`BlXLDtDYY(ZEx<~UICwGM;g54mbN#3&+xD_^X&CYc3(~7njUO)?pZBFZ2eI=U+ZWw#kuM+Vb%^z$G_$MP|C0Kb?#Fw{{r<_G zQ(|Y3xBRmEiR!*k;H$n@LG~PB__o=6+SSLGwB5M*_{Yc6`w#Z(IJXjSxura@ZJXoA zv*YkSywo4mnlokW^+$@I-&u8CMuzWqjwe(}Uv{6tw4C$e4{`hR`6b&I*N<~tM~=Ar z;+9IlTdoLvaehv`^IOb<#5sHJOdEFv zj&9UX*kK1-XUaLZhOf9`leLTV+RL72PQI=^XV_~eFCRPL?8VEji+=v}^WtUqkAAH9 z;d5ZV`j*YNId83X*XTL%-h8CI!*1*Y!fPijPin5SoyzB*v>h|Nv>i)%b~dNuH*UZ9 zAqg*DTK^bgVL^{=+O3k0?0Mo0&Bh)e@a8A$&x#i@c=6J9;JyvSUw&!&E?a)Ql;4r+ z=LeTNjeuukmW+s@J0|ec&+}>GxlXcfYLT$II%Qzx@o`H(j@U?JB@-Xt1-o zovi;b(C=<*Lr0z+-SgJF+^!Sbn%S$~oE*J&vg_G>O^ui=s$wU5E)C%3S?#$bs8)*3Jent5&TX^7NhWk1CWKN0&zzN2`=uc3*M^bA2`5J0`pTiMOhF%P-}ZpW*i6 zrR8_uhV3uE6hDG9Mpd2{(sGXs&&E`$Q|0c@>zDL8!28R3-8bn}x09A%vhF0qXRuG& zd02S;l9ivoZpDX}l|O^e`OU?_dR7X5KC*T!_LzD7lC=}yG1J}e^Glk3DmBOP$(z3H zxsPT)gq@|%5i@s3h1X8DUNOebeNmg&PRcX#b5@GHcv*YNq(_gwxm0`YWY3L^WPga% zuYullXO;CKY5LCQ>?%A<>t$fbo$&VhUjy$>czf~E_C7F_t~Tyi&h?VdJyk?-4;+YR7FMb4X^*w0%&*?1x|$n2K9aiC87rC)>P zE3cH_!GU3CD$(n2jdD6Kpy}ns^w~+<6>BC6`0DE-vT|Td=f14KTMk)&;K&ht_5o*m zM1^_nWaSuaXA44JysW*;`Zuz2IC$rR@}@7V4+mdsol$oGb?wl_Rmlfe7N2$Y`zPbs z$;YvCZxV{-atBhpp{e-k^z~%zvqn9+ZQ7fU?7C%NK^SZsz;k~Po1SF($?I)NAJ(z; z<}0ta-m34PtATgEy5LJ+_PoGX8mhjZRL&cFCGq(E$MHC9Jo4h@JYk>6QO<~;{k(Sa z>xeB7c=5IJ8D>Yw+>E?-a=zHxcf5FceYjtvP$<8PmzG~vFGKCURp$p}^O{5M>wxg| zi;l(RP<*>fHE5$Cx)=6&{6>q*Lor2i;u4@1D$y01$4 zz`;W2jRvykirl~6Zl^$AKIHi7`xs=;E%x>*fBN$BvsqG?61P$>53=hC-%5918$EvfF!rite16I6b2u|*Tc*!W-oA%X7C+xL@)=4y zuX^N!d&?smN8m08yCnw;y>{~YWnVv))vxTnI@Htd9!4B@K6w3ZTW24bU_Y;&ls{|; zt~Spry&m{ng*Sa^`GI#n5h(L(*)je)X)fmBp*iUc8(!c83OFR>4#uJL<}2l|7aOUn z;HBll>!6*iz3I#G>;SbFFXh>N<+ne5S-*#!ooE}glg9DRZ!h&P(_VF-p7g%OCl!0*GcRo4noIH1P@$)9FC)kbPq2kR)j>jSB@!{q5hvNe^&JRoP18B*3)17p@P{Xc! z$=kO5e#&_pbl(8ttrzKY5nu1Y`%J{LwvUfm`8czf-h8CbQGC6}*{kWruR5lkI=aO? zj01&zDaSWlZPng1;!Q`EuQLR9ZrxtI?0zuJj(zy>G9H}om^&xsq_pi#@`7l4?@6Auvj)pt1x{I||POHz)8g|YW!?es!cK<c0pDSX>z$!ltScJh4Ki-5iP$nn+JO{ILfFPB`hAmGhMc0c8>llGNE z$}i5cIycmDr|+D7t-`Og9KgHZi{cH&n~(H*bH66xuSeN9((M?Gd9}4SAE|$Xm=&n; zK6>eOFxZZ{-qGQfkG~rE^$(3{a9%&9?FS#rR%+MI*TQPFYiawL>%LaXR~~6Sv1aYV zOUuFEDdH`+>^bCq?!i6Z?X)_7dyuWW4rQ#iC6PiR!?&~*q&f-KCCT=i<(6G%b9>lQfj50Azvyz^Vkf}{UCaZW(&CzRpG#*YU-_P#zI{Mhy| z9{gC|#)BWr+j#I}?>pnckG)>TgCE;2$Acf+9~lpR?09!P__6n)@!-eqvl_G{~QyD5k%fB7W@mZ^z@$8j9&h z74d5-;@48dudRq*M-e|+5x=e?emzC}6h-{{iuer_@lzG?8!F;AQp9hph~GpJA5+B3 z_MwdJ7diJP(ZAYMG5zU^_{|jYn=9hCP{ePkh~G*PzqKNM8%6w274h3D;nDB@=-;`dO*@2QC2OA)`fB7Pr5{Jx6# zgd%=FMg0DX_@61_4^YG(sE9vE5r42EewHHs=Zg446!C{D;(wutKTHvSxFWty5ua4V zw=3d16!D#k_%20!N)g|!h@Y*9cjf|}-+0HfY?gog_#;^I<4%8$BHmr3Rq(%0G5vl; zJexHhKR+48^p8};V+)P@8*lxJ1%mP7u{A*{{Siex`wGJN`DCXX#*cT-<~YCcmY40O z7(bpbAC5cyW0*VR#viMQKTZ+Y*|2nrnrB3@dx&5hi+LyWgX?5Da z$L)Vzr~Ti!{poeuf5`36sMG#qZhvN-_MdY5v+A_}jN9kxwEs7^Kf6x*uekj=b=rT+ z?a!^#{s(S$JDH{RMT}PvG{ysnfoR+h16xeKWVes80I`x4*bf`{lU( zC3V`b$n7t!(|%=ce_5UOKjHS5*J-~7x4)uJ`?a`zzE1ne-2Tcs?Wb`2tLn6$%I&YN z(|%)aFZxA6{ZWAv{ikW%{@Ob8-;CQ|SEv1!-2VDH?YH6fH`Hmr9k;)+PWw2wzo}09 zow@zZb=vR7?Qf~mekQlSwNCrJxczN)+V9Kle_N;h{@lJ$r~QH4{`NZUXL0*G>a;(U z+uvEI{o&mHt~%}8x&7UB+IMmL-_>b9o7>-0r~MJ!{@yz6`?&pmb=qgR{rz>?4{`ek z>a;(K+do*R{d{i!`#SB9<@OKNX}^HmKU}B%3EaL|r~OIXeo>wFr*Qj6>a_ngw|}%w z`!l)yV|Ch}&Fvqr)BZee|3sbkzv1>z)@gq+w|}Zm`^&if({pRLpW zI&S}5o%T0!`{(PlzlGcXp-%hXa{E8lX@3W|FV$&(H@APGPWyYg{fl+lKfvw(RHywz z-2SCH?H6(Tm+Q2DjNAXYPWvah{VR3aKf~=`t<(N_ZvR@H_9brrdY$%v;`V>3)Bexg z{*5~AU*q;~)@lC+w|}cn`?tCM+jZK%%k9f`+W(c?zf-6E2i*SMI_*E=_V3kc{||1z zxK8_ja{Is5Y5y;7|F=5rzvTAs*J=L^xBs9{`|r8^hjrQ$%H~i1UZ=gu?LVs1KE&-m zuG7Ae+kaB0eVE(-qfYx)ZvSbW_RDhnN}cvAaQlDOX+MeEe^#gcs@(qbI_+2I_W!EW zeob!w?>g<*;r3tDX}=z~|FTZ|4Y>VRb=q&l?Z2+mKF008sndQsxBs?I`z^TrcXirt z&F#Oh(|%iS|3jVjJ8=6SxxH72`RwR9+j&)0!vde#VEd|i5h-x9R$UtRfhiER<%X1y zuG$c-)eL9`Gy|Fe&46Y=GoTsJ3}^;41DXNNfM!55pc&8%Xa+O`ngPv#WzON2~+wjO{lJFsvb>b@e=rdY_vERrRrcUE>+Xgc+G%j zKr^5j&Gy|Fe&46a$KZ^m;-xu;f%RB9jW zGy|Fe&46Y=GoTsJ3}^;41OJ%}?C83s*BAaXYe##f8PE)91~dbj0nLDBKr^5j& zGy|Fe&46Y=GoTsJ3}^;41DXNNfM!55pc&8%Xa+O`ngPv#WGy|Fe&46Y=GoTsJ3}^;41DXNNfM!55pc&8%Xa+O`ngPv#WGy|Fe&46Y=GoTsJ3}^;41DXNNfM!55pc&8%Xa+O`ngPv# zWGy|Fe&46Y=GoTsJ3}^;41DXNNfM!55pc&8% zXa+O`ngPv#WGy|Fe&46Y=GoTsJ3}^;41DXNN zfM!55pc&8%Xa+O`ngPv#WGy|Fe&46Y=GoTsJ z3}^;41DXNNfM!55pc&8%Xa+O`ngPv#WGy|Fe z&46Y=GoTsJ3}^;41DXNNfM!55pc&8%Xa+O`ngPv#WGy|Fe&46Y=GoTsJ3}^;41DXNNfM!55pc&8%Xa@e%7%={u9lEe_CpSkS|C_Vd z*=Yte1DXNNfM!55FfIoEyL$-Za!P|V1DXNNfM!55pc&8%Xa+O`ngPv#WGy|Fe&46Y=GoTsJ3}^;41DXNNfM!55pc&8%Xa+O`ngPv# zWGy|Fe&46Y=GoTsJ3}^;41DXNNfM!55pc(i- z>|F=ETx0q^BDkWBeziDy5XmT!=tl(62aD)Ok3Lq5x<~l0u*x8a7Ncj?(IbLE5dBy! zthKY+X6<5DjsDM__jxYgd*_=o_uje5wfVBY_00P{Z~NZ&JKrf&uB(8nfUAJ3fUAJ3 zfUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3 zfUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3 zfUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3 zfUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3 zfUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3 zfUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3 zfUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3 zfUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3 zfUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3 zfUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3 zfUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3 zfUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3 zfUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3fUAJ3 zfUAJ3fUAJ3fUAJ3fUAJ3fUAJ3K%Ets&7$}7^nWc>dX>^L{0_ z^rG-9nZ0b$ZTZ*I>&I4;e7*#pdu$&e@!v}}68>`FRX{2&{=}+$SwSuTZ3XeS*f8<4 z43I|KuPx)$<2aG?q)g;GrEEj`Jz!Hak6wFJ&*#9MYv*H&)82gO=h%dJjhg=<$I1M4 z{ZC4W&pb7@cfPv*I*&6F^5|$CBJ`Q@^*r?YAb&wZKGf5gR2RlO8+rW+XgfYGO~|98 zbz$DDkIsj@Eno82C*(&xjY)N)KI3!!a{SL-6qoTB=bkQ#L;u&K|2G3~1>O(T$4QKQ zXh%Oum{f22WgbcX$S3*L^?Y5`Q?Fkw*Bgg=jK|}tbzH^ecoNn-KkhF&?)zO7mwC^< zr<|`A0CJqD`Gu8Uug6!ZsA^mqdaDB02L5dqiMJu-ErB}%8F$X#b+=QqQ(t`p=;C^6K7l-0FR7Ko_kS`km4B+^UP}Y3tuRU(0$V&weLi(z>C) zT``|k_A&dXuOBiA^X}~Vcb zWgzoAF+tvDf3seDDVe+;r+?0$*T=T&kO}|jn)S!~2j*jwAHcjOsQDdvfXx3m;G|XM zKD9rNmyc65GvefB;{)=#*^3KiFDKxUlvl)O3QEcAC){JxMQ@JB+B$@Y{tDb7sf&K>L{1tyA z`@vhldijY<%D(-dGc5l9AlErOzq~q1^mM$xVf;hjCqU*w)cXnNN2DH6k9Srctmc!H z@4Xk9b?I#UcgIM*U%b@x%lUSeZ*P9*pD6v^U_kYJzP?<>ceAW7+d4Sx3b8v0$oV~7 zlKB@uTd^|q;FY3RhP>E&vX1?-@WVe6{S4%NAV-j|hFpOB!iS#vpIPIUxBmP>Z z-&P*S`v+G@oj6WR@=yNrT{~vKNyf};rTL@|yv{znN&Fsoljt1|JORi&iTkWAdMn-{ z*az4szW+G!%Q(DGp#LPEc1ih-|F(KR>$SJ}zvfW0Pg-7B)%D(j%y*#b6X$#Mqry|Z z`3aHd!ocm2n;_o_MVjaECRU+@}iLEhrAf%MIbK@c}d94kbTHYKwcU0l92mCUJCMBke7x$ z2=X$JH-_9B^5&42g}g0fAM(zSmxH_~2E>i=S2Pv znV(Jg5b_+b{}1FjA%6iGqW3-Io*0;OlFVcc$h{!TrzSja5y<_)`;gO+SA)DJ5n9pSnTD(+`OL^ZjHz*j;AalLz9OGM+g? z#_z`g@&?9Jqhx%(BgD^oIN$kS%J?EfWPHfW;zy5v3qQdisqF3dh`!$>`sI&he1{Wd zoSz#B_FuO$a6C4IZQ;LoqKpS<{GJ&1ZkF*iuwb4*p6OduOZuH2&kaFy{E{g>(IpQ1l}`dEwpyH&hCC~zm>UciHaS>VaQvw#->#{jPf-VS^KSOh)?d=2<6a4PU~ z;19q#ACUQ^fJ*{b1oi_C0uBal3)~eL0uKWo2Rt1(3V1Q_YT(Vl0&oIw67VJ96ySTn z{{X)RdJoDxdI1*!_6GI=t_9o>xCJl++yi(Z@F?I2;7H(kz{`Mn;H|*>fR6$v1OEbi z2lx@N4Ezq*bG*!Feqb|jd0=1Qy1)RqHSl-9eSpJ(zXzTQ{39?2yb^dL@J`@(;1j?X zfNuaxz>k4n0)GNFJtXs42)HzGWndb(K5z(dd*CqO{=g%ECjcYhxxmrDvA}V_dw>&x zPXlA%+rSTip8}@=drXjd%nMu$=mS>+t^?c{I25=Oa4+D&z%1}&;90;6fMbBy18)aD z04xHZ1HJ})7dRF8Iq(PIoDa)cs1~5 zU;#J*I0^U?a0>7};D3N$1HFkdk6yqJz^8#R@NM7+z)ykGfIS|QdCUu34Cn(_1Fi$y7&sKT6L2r!!N4r= zWZ+rA3xH#Q*8^_{J^(BNp98)Id>1$s_&M+g;G9L7PYSpsa7AE0;2_{&;I_bBfg$iP z;Bmmyfun#I1Fr_&3@iXA04D)o0!{(G2mBB4YoLekS?Ej6Vc*I3T!#Zk0H*+lelPrF z;IJPc1E&J%H+Wv^H5j-ha62INi28Fg`5?$T{#&r05B%RD4}tt4$C+27vGf$*!8ARmpO*0m7z0hM?kBOn<;ylQl3Vk? zvhMkQI^TEAO{zYB!+5%ohu*LsrEi+=sGRzXynoeEdu>--(44pCZE{>^9c=ct@r-4C z+4@xYLi(iN&MbXeU!T&SiC%Fw`5lN-55e^8f;!Lge?>n#wwFN-rGC$#GM+6}?^E!( znOEjZQx56J@ZJvLEAdy}Q$D$p-&-*1#ZR`h!&d`T%RiX&YkIdtQitLvf+6HG zkdq32GV7K4S>yodd$JSJUp%|W={W_9^FW?gkbeL6l^iDl#>qzS$vXWf_>AIX@SlS( zf{)-h^*+}5*YH1|c&7gl{5;@8@H~$d!7l{fpWn1ky)FKi0iOlW_`wIluL!=FGVNpV ztAQ^oKJ}s4^YeB7f@0t5AN&B?gCB|cXFd}9cR!c;=N2~Y!>Ph=2>Wmm;c1`$m+)JH zPc;kA`eZ&9etYogrA`0dzlGl!ytj<-Ja47{BmAD=^WYiZ`$YJC!54Zf|DOqe5cp_W zlh2feKLUK&7heABdH(Cd9|zuF&g65i34bd1jN%KhKa24d@4q4T=YcOMJ`a90_>$s1 z#J?JRYI!ri;+x|CM(}~+)8KChp9RnUrT#1ScY`miD*m~?%HSUapI_aKUzj5HkAN?O zr+xIf@RPuM_`pvd>(l>2_?Ku8p82J}6n+Zh_gDFSCHyIHejf0tO-(-igV-+w zzNGl*N8y{n$D4^g=b!pX_!YqCwh*4jSNUh*R|8+%-i%+GO+JCRCgbm5+DAQv9|%6b zo5}ke(ebY^nAC|Kf{`?*Kf4b>EhCR=3S(dFiKJ``RrSHx2yrMfT>g&^1he7MB%8N|G^;zo1UKPD8^nza1uZvBu-CttA{EOxO zrw39VvuRLy6>KJmVK2YVz{*Qr2XNem*?DW%Nyq1X`}mQ8;j)OhynZmqDnhxPaXD}Q zWQjYhzaU-5h|lW>j@xkfeC?aJjz20iQQ3$EP+perka9o%=K6*l_s#?VCUQ z9u5l(mubZ1zHg9KgsB~jo88ci8z3(C^D3c?p>Tor&6m60pwlI;?RX232k-BVpjCt^ zDi0oC`nk@%KgxMxIrw1xtGKK>)dZIF zOsxF*PfL9I&(RMDI*3L1EdgiN^Md$8bABD1&TrrBBdJ6FWx*8W>_2PQr)cA0Us8Pf ziXkOjVm%&HqSO)gIA5VWGk;#|9^E_MzKN9xk zc_lvY$D_|o`||w4^L!eVg{Qrr5}xC;hDeJTX^2@mJ}Z> zD?IOa^YfVYIbV3*@8;$+k2@ufb(^L{s2S?r}tZSQv@#q0asB6!X}x2pK({cbS8 z^sn!CBk=5hX*IFOac{-f2!p7*<<;)~#Uzgq;)_+{|cz#webR}bO(%2y78 zS6E?1G)UCfSFLV?)>oAmg@inKzZ*j@y+rNnThn{@mDsO(?{_0yfAc(>G_!E2+I7yYIQ|rooHurraNEKm92jlAdT_17lz2D9BZr^Wq4m{0by$6Rdg4jv%XkgxPX_+8z(PCYMa$PdUUXhsE*{>o z`Ds5%a^E@SILRF$@nT?-osGBkdmqH%?=aB5n3cGa1xMRr=9t>`NdI2=^bk`oi}CO_ zd7j_ud8oW9_LF}5$0|F>eyf4`BDwW zUc5TZ^p`p$c^!>D^7lIMa}$-{Bxtd{2K;MEkHy<6M_56lBa+c$~e1pWxSqho& zEBjlthG40G_5IFb-e$OXbM5)HG3elctv_4ich3Ulw={ajD<$ad0ljj9UfqRJiaZbSIqgE={dI!MtMov@=5+<90mor{ z+yEKR0&}n{5}{v$ehGTRzz?Dw^s>+!#(2=HBs2X#IXt)G{>5<{Hm%8>pt^>hKiBoJ z!vn)0J#b(}=DuiuB%Ud4$f zTC4hfY2M%YiB~JW?V17#Vx)t9BUlR2H0T~#-SKY3? z^Y3!~_uH3eb4u1}`6IF8^+<7TStrYbkN#=$>2-wX=R3TqCLe+C2YVlU6AF+ApHz>H zVb8o$FyQgL8Tf;go<0vB20kgCjpuRB{gn5g!SO-Gq?{3?eSm$1`vAvnIBebO$2p%b z`3uMu2J2w+qsK=sB>m;}iLM{@FI0NEe$;C(^7%lB{B8DQ5I;)Ly9s)^6lY}fSl>AN zs`u{;7L>XTQf`8O%Q{c1aV?gir^mJ2=J~4nK47cm%+a>*Lu@u8-)y z-D`cYkFER0M%C9xjJ)H|JC;A=G#a@+$_-i{ygo=R*tOROf9>S?C;p(pP3ajb0D!^=CT|48?UKuVd-A)U&>I5zHZag)O8G@s@)AP{9y9{bnKC z`V$1u93b~ik+RP#xuE0#aT%|(SXBNy>(6G-`&44(VhIT)V=Of4#L$Ul$q9?jxEqxdF_^Y=w^ir*akK|udH@z3+yi5Nc<7%Tf6 z#`S!){0Q_?i;4dxC}ao8d214QU-3oo&w~#XpIT4sUj-k6=X1Oeyv|3(f z@|>KxA{r!G&kI8&K!EF}(p-{9*i>IW!B%n}C;9;VC$b8>|zk}tk zv~+`JUY{HGi_f3AKK*?I!$FAW&bipsEU1gCBxSl&di zLQelr7Wr^paomQP?aX|5{h0Bk4~(DPK=zZQ{m>SN;#?G}^PM+)=GCFH^NQGi~&gL&MwJ24n=eFV#P z(fWX2TYl^p_enk#$?XCt@zeXfr-pLZT2cUaFMufhi6KiIIoIH@OP-UXmH$*cqO(8%kv%tmIMLObWD{njgI z(Jxz{!eu+xr+V|KTMySehas=__Q@89b+GX>yHCx(ll5fl(-qycPd7BUPpm_C?Nf1= z+I=c^(>}dAi}h*vZngXLBkGY+3oYKs+@}@Ybt3k?d3@QA(>qHZF|gjiWp!Sv_jvMu zH*@Bl+P!w4c0@fodL2=3-RjmupY}ywvt{2sOYbUNyxkEha1T2~(WbPnT05HW{-rJwFt-@N_II5{O-C)P>AcHOtf3f=Si{0QVV%j|#q);^BTK|O}6 zb&xv5Tu+Mbuox!!#c^~g`vm>m@cQy8;P@%4(~Rm<;>6IW zEsB`u!}{CvSM|KAqJ~`*hhX)~9iY*6!17 z-Ly{+H@Ht+ueSYaX778M!)y0xayRYM-)FHtO*^7?pT6j(ed@KcT;DY6I-Br&SHHkol?6`$9B^`MYC9+Mx9o>PZyycL)C+?dOyFc%sMaPeT^%TSEJr{ zulN0@nf3YQ^dD;X>E3SIr{XNurzuhGKE2aT`}FSy_lb3|9q@c!KC_OeXk_g^&Cy4$ zf4kehw+!-X)V|l<`_$*G+I`xloAznnS*%a-|JCl(g{VhHZ3w{$UGw=3eh*58`$fcc z#1+V^h&;j*>&qwg_+}Mf!Lu@NIph+pL|)-Zl81kCefi{h96i^u<0)5X z9NYXlIzIW_+I`vs^%$iB1gqCq7iE?#o|fPj$J4>cD~CMdz6o|Ja=wFoO80AD92K_1 zV)ne+ecFFDIi6-%pOR*RJ{^m^I@%{4hIP>6l)3NCtUfhgP`gj(bkjav+~7X34(yA@ zncb)2g|+*%+|u3icp8YjW|iZ~_I;XfuwI9%g*CIE>&?EpteZyN-`0CQKC_-fG+mN# z9HAcFtxtU$+$YvSEyq@o``ygyQ(<)NK5aFF`xHhA*HO5B*r}WJskM<^{9@Q;wfl7F z4DM6nbkV2d8r-MuzVF%2OE-4Y{@mT*{&@I4vTc3L?ENl(MeXBgxxR9q&Z-IIllCR0 zU$0nB@{8kW9pvSYl>M;`tT#^T1(`SXSqI7**{9r@=6*b*e%EN|Rkizc-5N8vPiL8R z(DmZ)5!{EoW^|v*|7Yemqxw|7x^|y}elxaD*->U4Y<=1ldCllPWzI44n^AolGq!f0 zw(l=}8mbC5v+tYsMqabZeN&LH-KV3wX`lWui}h*hb+!9+T{rF1eGTpt>!7xcR*}~c zGwc2~cSG$yz1~gx^!_Z?r$IN>?$cc9?skx%7kDl)0eQ{r zeiha4FLzZLY|r<$@21Do9<$i-6x~t#I2ztf`;?u<`qbyH+I_mDoA&A22KR||u8TaZl|&ExK0syx!}Nyc%`=(A|$G|GwINI=!3r>AYF2Pm}Mj z-KPoNv`^2@VtvX!Si4WNt=&EMy#$&SHHU|5)uleb`O=^wliZr|@y<6Q7sx z?_&l#$meQ$k^u7WV@BYc6#qT`USKXG_T*C=%HLn@)m!$_a9fklf>-X^h-<)pelS5B zjrI);hQItNb5{(rxAm&(U>oQaF|QI(D`%jW*-_>ftthDV_JLj&dO6@>7^nWJkbV4} ztpNB(rAPfFTnB&Ohgl6(2J3@Y!&dR|Ch4cm-(BtWm-P2}=fvN+$s8yVxxSd-n%}Ha zd0DXVH^RPrP<4Cyv0>Bl)#uBJr%ErRBj7afYB*73p3H-BXvlgMf8Vis-GRSf z!8+*U3V$v-ox)ZGj7NU0egX0!-?XGuqz!ao>Rv$LZWF^1=gQl zbbZKIHLfzK^;gFCk4vXW1ijwb-~6f7`6?ldA;x3=x^HVE{$L>W^gOr1`?iMjIt0e2 ze{GU zrMDFLw9<=|-VpF=I8lso{$PCF=OOq!I{QsMUGLqX_Z0q4^uma&>pdKLBY@NkRi>wc z&tRP~uCC*`&{O7Ck;hNzI`OEFFRLL4zJFi7Y$HSUuLJs2BYod$g!1Ny= zkI<42|K53?{EOywvgyr9x&q<3i|Ce3P2Rt>9w|KM{P{!t?k` z-BkVfdkOYM3$M~?BMyK)XP1HouS01NC_NsxT5l`p@%}4q@khT&xGVhSZ)S#KvBN;A zJM9mGUPp#UIuxkN|Ij))Os^ZF5S|;dWDlj z|FHF?Pg%(9Q?QXd4>}rr1U|w9^WcvMUl=F;czqIWEcV{la-W)h%H)gSlb$Ce)$_uI zB>()g;=c$SwSkP&ehl=|&xu|JI9BOB3b_cL_RlN5X^>OTi$CgVoP9&dBb}f(FZA*W zdP_jBn4qWgu*tULH^Tnj-s3lTU5<~`owe&?%ctJsH*N9H| zTOKod+;;rh`jhJ5{+fSV<{dvcbNi#~TSQ*bUy&bB>&-0L)}Pc1)$5qFzj~Y0-d{uT zw*55-X3YM25%wF-lGj)Iy0hNC*!JtI5Qlzj`}N&Q?-j_A>ciVg?|aCx(qla0oEyo0 zT~5$j0D9qztPDMvxH$9*33{fLUE=vVhQB7Ns`XR`AA#5FDgTn>&GU8ZdZIrI+V-O* zu^;iigy!WA?lZJc!ld&>U*r{zuiYn}FCyrr{?@(D4@q^VF}y#I>uJkAT?cLQGn&-D{-I%D>uM-ZR)w}UZp=BewDB-{3*$%sRH+kW(c((ARc z>>o+{(ZbNn{-yT1TpD_%1iclZmwvUjKh7r!xqg!LxF2N@m+ML2KcrrlydpT%_YdJ4 z!gD>f-ajNHVB3$5!*MU&_{B+XLhbsD_($iC`=tGdnPeZXod@e*gkHXrc`3g4*X zdz|I?_8zU>xA4Omb9@&P@@TF5W2jpv^Ro4?QR6=H)c$P8_c4L&y!v`j+uP*e!`gkc z+1ZZo$YxOIc0@ZI zpBH@A!Y>TI2%gtzjGr{=zOXM$HP^%17^gko7cMHj?UmjEkYlAcTvR=3wD_Z1_=(EnGbK~8PAq>_J^wn* zt!mNNrr&tBxhlHZ*#%Q`2o~lPjGF|#c?7d5L4QH;z-S@pStC~`^2&~Wt7~_Bw17DN zqV3DGIVHz;W^u9O`8khu^3G<$d(9?a2LBQGl;VTUWSy14rxhQ8{}y}(e1sAd!OuQK z;^&t!<7bD6|DEyvLgWk2<1OA?_&vcFRx$0PEreeL{)?-de0odam-QrmuCK{Qp8{gr`-1CIgb zfR_VR`ZG<;Y-aYUs}d>Apg21JV5{o$%VXT%TKLlDrrvQ|Nk9EgYyN!j zIoLNT`!k!xe-S+QJF2aQ{UWuU#Mk^;i;H~;@ijjQd}y)nf%y6DtNULP_Qj0w5fcNB z#{9w^tMf{|jcB`G`3sH@?q4+Y*OWMvZJ32#SeEO8=)Zz7&}xVG>qGUq{va?d{Iw*H z02l$O6|QaOSx$&cyCmfGdIA2s`g0X4a{cWj^WpkRZ-es%_`Kq?FIoUKcbKCHlN2C zB>rQd_M_$Um$JWPz7os>wO)6VZT&f52RV-Tc?;$p9WQl>IAFo>#QOS^9x{i;gBl*% zqcRX(;`t&cZ-PaklK1W#A zXKG~a{8-O?oqEMO_4s!;f{d)s7m#_db{vh}a4$8Gz=miWB~T)qF2#v`@+Lq-2lQ!m#` zj?WTtboK8|+4|!T2`Uc=VywIPG4Y=+3g&@~pL)`a@6FS>{haDJ_7#^_;L^7X`dP<_WOb_&aUji_Xi)$q3m}T`ya{ADLm^Ng8wu6kOw~!^UHzn z?DyMvy^^2HjGx|9^5gj`R(uvbuUAUo#f#_V!6RKO*!H7UcIi{G@s(xyDe0pcZkTA> zkM#58@aful@O%+bZ@$j$M-7``I~{R-gmc$kA34SA^^phPsP!?xwmw+zcFwb2^?KJw z`kDIHM+SQS0>91mq3g!unfJ}|lz;lqehdpLs^d-+q+J2`#oXsOZo|xiW}O&M-w!{u zhwLAGuE2dYbum|Wr^dIptC?c!dtuhI`OxTJPo(V}J^;o_!D zKlNgMw8U%l=R>oXn)6txo&UVqdd%K)jydOQnj40_=9zcC`4>nnxX{9jEV|g@%}Xq~ z)Y8lJUe;f3`4vPViEn58Myr=Dl6n+?@tvs8U4j{485ls%yFvKyOu^LCf@xqbhw*0w zi@;zqWFY-;T?EexPq|ST!Efq0i+{{V$K&S%{g1?s$LT-z?o&}+a38_E;{AQ)I9eKf z`Cq1e9{kGSqfdnA^-~y%eSh$UvhWup!NLK;^Yekl&rSd3gN5hk7j^#Y!!JL-sQLYv zH$I=J`9Ff^=NI!|Nc@Ne94_(s`N7QBW`23_{Cr>uyl8n|5j=lCA^VMK?;k4uTR*=z z&E!MyOvi@&d?DvYJ=^CCW5l7J{(ND-efv}>?QamqX?Hl}vhsJL(xZM7?i@qY4vm zS3Pcod~(1jZ|d>$wc+(LJ`{e-hs(O;^CsGp&m18<&qrn0bAQc&=jT_mH;DfT{!8Fn zKfijT$!Crf|9sw4Qhe$t;g>%|j_b@#V$b+x@cevkFwW%jM~gi_f9w6(v`QT<`vqkiM$n7<%5_tDjry*i>b-vRvt}NFl1s-Z zzMmOCuVmXiX7;$PKhHI~KXullQT>U2ulm#fx7nZ8^>L>;pVsjPy~rLW{>zAyzQ1eZ zH7IQ_JhEeXMi#ppaX%hCAby*WXb$(Qyr0gF7oN`(N_F1P-jDC|`VX0T--WpCtxHGe zpE}Bn&$#u@KaKo3|I~4EzfV6l>}b9=f9yx7@(Jq9$F~2y-k|-DdFR#s!*Pur-T$>Jytl0QG2r<;H}$so=kwev!1H-+89eKg2hZoV(O=E{V({G0{J)vJ zH$w8i=umm?8G~p2(%_TU-HiGk)IGx`&#X!){jkhS4Yv_96QQ@3dEMr(ZOUy7Z39Du z$YLG)kBI*~F!QL$!(pF$%*-=Tas2_3hreX)d_wpOisFx-KgMvE1E0T#?@4^F$GFb* z!o5|$U-}&S8>kt?Pnva8bf?97&yUfh+IjH#dkK1}fwlYC>BPIp0r!jGeY3yyhO_ne zE%diuKiy3)GuiBac~JHK=2opf-d*Oy{(2uYw!a_z#`~Lk*6eS*e)T@4SFb+a-TIqu zaDU6c@%{#?zl9B}_c5KWKHgpWtMlM~%g>SV^VGTBf{JRNa|LM^;`39yF6X!n^BdQ$ zhb=xo&)u}489zdNUboxga@^mfvGMbW&-((#v0=WQ@p(@f?GYF*i-^nn4TG#A_(A99 zt>edt&+GjvA&sFimiX+qzJA;Cu0j^UpBj z{)zsEnEoQAcM0^0O0TT+#&W)!oBq-x&A7MGpVG@Jz46R%3)5dg>9K!FXxnF3!9L5+ zT{gi{T<5-3_|e=4GehJ$AP+1lo_Xqhc0Ba`02(-c(?5&<4AAqW9;2XEnBA;T3_pyM z+M@P#3H5B4p2PHS(`)oN`^D>I9{1yq2#io=TqkiKG{`E#+9pwj+cEousQr68IQNC-H(|)O8z8|4JQId;Ku!Qk{C#Z$;R(`F(A? zKU(JX_0f_?7D#)na*C~({+;YsSzr;^s$hAM!gwlc&O3FC$c_HKp-$tab!A35#N+<8 z;%T;-njZLmI)6`+^Wk-ishuqGcaG!V%lu2nnsrI`P+NoRk=NC{zUA*;mNy9u2U%Qa zalIO36~W)dJa6&*kUmA`!TNe<$$jD7bEE#?`FV;bW>WoGAALP|KJsZ+b1olOUw?w* z>(f*2Jzj6vj@SH|Qpd~)@t*}2fZ8AB9QssN{UUEeuJ80o5|5u}$eb*4S0AtJPoLdo zowcl|mS3oES;t&E9XRcj(VN@XI9_$qC$Ojh@sas%-jb!_i~+n zs838|zo1Mk-zeWtr`+XucYSr}@;vGckpCZDznnhLFEQrXdVZlo0@{v)RV~LsP-p*h z(3`wR_2VEREh`;bjsvR!i1MC|&7)9f9g^}&;@O|{UXp)lPww(!S=vp;2mQD~WuO_D zyFkX{y*oGWQ3r}WQRizr*Vx8+y`}w_v-*X#t!LX`W#M(`FCOHT?bqvUyP55;%<}I* zY5%+~(Bq5f0m%9~ifT*qg+gD+6sw=DJTFZJh5CMrbifx1GfJiy@`b{zk|{=fp)jvx zibcLqSWre$g^sxxi|*{^do~&IKK{ccK3hs`9F7e>onf?I&3L zU~5BzyfNqmSAiK^fnXn;cm62%XP!gpfUAS6LrVo_wRIp}Z~bpm>nrnxZQOQ!WxI~@ zO}DL*yIw*mEY~@|`Rk=d-5A&wqPt;`1r)R%QsxVH!+?5NZVbBohQS>G(g5FFm#tFQ zo&lOHH;O6Ccxzgg7k|3>h_fuz3>*ISslvS5Y@5Qbb=$I@_ujd-`nP<;-Sa-J!M7Yy z-zxss@mg-JXZw@s|JO%h%d@2U!7m5=wSCKxGXUe8D?igIujSd&E*L+o3g7aK=_EDY z^8BvlUyFUqDdj@Nw~X^&%O@Sj)!(k)^)A>!nZ=>|4Q(nt8+-_CITey~g3r_$4!HPey!pMIXnhwV+{@2%q z3s2`yt--fEi#uEKEj{7CMW??Qt$1=RxY+dnk88vKlELEB`SFVXb$wc{Ri9S;uj{+S zbpB279|P%~SSjLkJ?`?dx_Ub0q~f;MzFz(C6sdO(_%7z3hs@{Q8QdT8`wy8@#g2T5_mA}k z?xbGs%o)2*I+bvra;Hl?4(I-0 z%6Y^MMqt0BVh1rg!}Q-lH*L&f<+t_kYmJt8+^=G+Kd$er;#22Jo%r|Ha+iud*LMKE zO#*7bwm$k|eaNc)#i-GLFX$J~^2)Y8v|f_T?-Qm+N?oFp8?!Ew;x?M+`tUBRy*_-! z>-CYjys_(J1IzjdQSV0Af&Lo3K1#?pf9h|0eS{C1>%;$(d49|(J_OIY+R(N?9C)Sd z4Ep?$8zXtx{B?HR+W$a#zM^&>+#h`C6;JU9)L@Sl4~;sg`wiM zpC0qdK|g#1c8|8to_>hoZ5^{OTh`B$Sof(9#V^mdIUG;?J-6Tv;dwsy&XePje;*|a z`=LlQ0MFlh%l*}~&w+mi@pCGE4E|*vm;V&|2>x^DOZ>ON2mdm8?*iff13voLtB}e$gAIeGGnG@ZP&7pSf7%|{Gub#b0pW+)T<`vw zpCu?**yNaF0I##*k6hr z++PZ3cW!@Sey#h>PQ6wG z_o8M6xIe_bJ*Qxi5XL)5kKA~8|zOC(&Xcv9&(oopA?tRulYTIr03VvOL~4y zJs$})`uX(>*q5X_zsxc>XMNxA3g@b=7g>1gdJT{R`jT!k{pXbYOUCjlkMEy&7dB?y zmgY9&>v)ZlxgVvMlX!YR;`ep^6@=%<`B%I~cdovSczo#ZBWF$yDh|eNBuH9_0>I_HuZ{^NZizD!Eh~;=X`AI&mR&<=`WMx zKDD-KpH*^U9g|NZF5`3-GXunbqwkkW@XP#4>r0$6u(ToK2Il;zPYf+Q{S_>H>)%`7 zO#E}br!JSe^Zmp;_y_^h;Q4-JJVfldZi?VLd;QJ#3*s$Qeq+q@g}0^2XTbCQq!2vw zi@>vfHnbftmt8BzpRWx4^&}59+%VC0ym)~bBA1W{pBERP7dQBLF|+A9$=09ko|pYB zj}2P7<$1vw(w|(y2|PX%dSlG}Q_m#)KeON2lSKB69Wpzo1q8{~)icND{OZQs1?sK>6c+vQ2D%-!Xi zrQCnZSIaut9ek+x^fkf{2cHGc-xoa&Q1bkm__@9e1Id)I6Y|^_XY9$lvKI93{uEe^B*rAoF*+%DanRcyM*S)zR%m&MR4S@iFRKmTa>%U1Wx-xCUssm?QQ>+hUFul)P!`ux4I)N$2$ z`s42orJ+|izPkR)8R>K31mUwMR@bB7B>emR*t`w zSCxG77npn+{Gu-ipT16bUf+kb2Oogvu9?q^|9&a4&wyus>FdnnzX+cB6~S}=C@bE( z9`*?ZS`O5X-TP-dA_`HCI*;~x>CdV~KNqVpJHcb3Ki(g*P zwfTJ`6f%SB1;e;SxT$ttg=@^~gLtedxACV20_4Z%xiRFf{=5{^NZ%s;w)N|uH%PyH z8W7*9T^Fh~3X6HvH84HqW^f*i&VEtm^&RC#<3+DZA9#M`@x$}pwcz>tkksQoM7;^n z`%wAwkudeX1YhqwZ0qM6tRKCL1ntE&hjyX6h>07h{{AcBtg+^|g=l z^as`Br#_T%uAltgA~$;dEl%4M17%1itC-_0)J*n(;|Fm8Bqu8Zxm-#b3`?mweCxgiUB>HJj&QH54yQ%X9 z70v&%*yUk&p0XP^uh>nr*rjHZcuy+3@w1EF7Z$q+cHb#GFC})X-68YV^DDz{P4JaT zP5;kuth3N!7xs`m4^ehm9DkQ%dkS^XH+gQc`#+2i0ue%=^En?p? z@u7IGR)l`EfY|M#><0ZL`^%#k&%iE7iN3d>;48{5k9}~9yCsi2@=Prx`dlv=@XRy! zqr|%kgUVDVV0<#-g-e+6o=|oX_Uq3rc8vGEvKz6u#Or&n%sWQB!cu0ub-=R^ zV-^s*11)xpccijQFD7O`sfd?fUgCu-364{CQx}qWpIGc-*nO?+V$^fP`(=J* z#0yr&{BT_{1U%=L#y$~Zd>ZU>%5J!_8;?BC;yAv5T~c=Ekw?G)$HVOyZ-QNV738_9 z;Qh+Z!~XIC##8*l_iE<+K2vsuUQ*BbACS5|Gu!~^F>+8pqU5x9q z|6)93p33e!WjA>qiP!fbsmpNK1p_5d#v1^hbs2{1kV7z@g{5V!j5@;1YQWIr<;}Or>#O%YW;5okl zeb^79vJ_S-7EBJQiswb*%Eh}~t%F6a?dLUVr87_ZLx@p``XNA)Y-JdgW} z?RuWq$xXP=fti;>o=MlqHapvOGW(E1ywsLbj{-2M4?gVjL&YxIs=hvGyKw8;ec<;T z(ukMcM)bYy1)ovWut>d8LL_L#ZOc>d#gEKqjr!@A0j=P~xHqsaF!i+_@N z<zg;<4=qjeNf}qxrDT_er%~X+rJy0knRSobICe>A38V|FGmg2nyvt z%lje$sj$v-LjYeOzf5_vG>;!`3I zg`Alz`D_K*f3|x4hhUv$px2CqIHLtdBoogd57R3w!+SsUo%FUkZ|!4bAGwI&G}`YH|JM?|E`)};l+;4Z@6WC`A5z9 zmG6=Haebs;5I#U%{1-*$dMQD+t!Muwv){SDw6EW}S4E%wPQ4~F`(1$C+DN?k1Ln)) zkn1&iO!DXFllZ=F3U;$;M|H|uy&?N>{HEmB1iSnMsplTx%itsMF?gOIa#O^f=ZDn8 zVt*{`3yM#JKWklyUk1Qf zTzKvmS?u2%!#=vh?7x4f$UNQx$o1|g{#|0v^_7FH=b6KLVl}v)V&tp!XO#R~`MfCW z;lFLJFOGBlXTWp)XRyAhXTwGx&%5Gy%3AVe9{gNgEbxc z>k|FFnH$yqNPnff>x)~yNA!wM$nn~0|D-8%JP~oghquUnm%3N{N5Dk;N!V9_Ibfol zQsDJfaG%8I^_5a$1 z&;&Ynmw7%5!AIbW;CVbplf|CLvxn3Kup zSziatgYzTxc)rql%P2iwr)#~$2`Gg${D#jm1Em0QedrYv^mxAa67;G^Ngn0C!|w<3 zI*Wg=G_yufaniJ*;JEb#qxA&)>?G*nUuxHZl~;YxFOJ(VR`)SnPdQwlw|6}a!1;jl z;BnL0zA}GZFZ!K&L_n1aW>AN7(Px9KCgA==Q>=%F>+|;3L;I^Y{}B1VS!e!5OaAp9 z-#l*Ew`L^H`f?t6A4psD^gghrMNjVoYgzOdKMA=Xd#}s!&wiC3GWX*Q_y`Vt++T3N zEraKN9IE?|^c&)zd<35BB?F%Elkz6NP47OHms!|zeEYX#obu6-%S!JArN{j%i~A|s zk5+mdZ!hZg%=OdJ{VR)gKcUY2axc}sj?(${zyz5e_f^ijfcV4fyq`3FBSs!i)tN`Zk_W$^Tf+6t!U#})M2?4*U%f7cn8_0`wSUw*Sn zC6YO->Aw*_jb{YTv^x6VieCJx)VKVaVDP$NJo|!%VY;Wt{Jw=jwg^3gio^8dGH=bN zHa7DL;E#GC;!^G`mf^qA-?zv%nRQ`*biPk~B7F}u@f(%X@7F#Ke{0i<&ouk^Tg$&u z`Ib?K?3Oq_&yu=CXVOO!qMW#HcjA0dAJWwGb)L1adYJ^3IOenZ%2E)|~jOT8le_T;ZJ?Tg@F0v}#2 zJm+8hi`et`Dze~PrLK&OZe5mr*1I$7<@DM2t4Z(y)E_w!RNrU{{B0{4+bCJX!HA!7XNfnSTiX zKKc`n6Q1#-_k=IAe}6Xl@O|M=r9F7&7k(i8dEm>6_dgW=M(~B(%=vjA34b;C>>Vaw z0zaDZ?=t!LpJHFc@f+Q3@`b6wp9TB;Jtm*~m+;TQzId<6haU@n9PCT?nSA=+!XE+N zd%)yV{}KK*_%AR!?!t;7L^_lRW zaDL!vAA{%jnNtrd|7EeC#QKBJSE6}d89aaQAb8x&Kl6py^Y?U0iiev-;PsfkUcT^a znKz$r(vg2EugE#lShQX*w=)cXZze>({wsW<*G@+>S>4v3>(HOH$}c?ax7D9K@(q5Y z{o(IL1(DR9`*#7yC!eQh6<-F=--{}N=lS&cE`rSj>94e#ydT5+N{-twN_dW;UWsL<^5{wxb4LUwd<+la^C*QLB->!P>}9@#OM7m$89*G!SMsc=l!-VF2|>} zGd}A+eq=xw6$}xV_rV5PMHum6`|8fP;jqB)mPK6N{~2Tzq1?{6ybdoNDsgS=JwhIQ z{#zxqF*F>H!59j#*6FhzfO|-n!X=92mX9zP`uELtLRoSlM}tHI#1=M%JE(p zZSixdWjqkqS0Jy9(#tEkH4*iqfcW0OYVSMBtX1UaemKz8pZnqaSN?VK&LZEJKCxN$ z1Lk4FH@_7=h1}KaC4H~N4ek@n+%FhDAeennFd8rDO%Tij zgNH>f0W%XtE(5(sMNT~?=obakj|&D*2(tPm$kCHBo|`0?e@d|Mv|#ZW!QffJ%yWX_ z^MctI1fv%Pb1w%swUlx4yrm5G@ljAQn zMaFr)WnBKf+}OfX&xW?+aXuXPfif&%9jf6rV(MDS*Z)M;fAFbb4yX+x>gUBSeVthc zFEB0i@t9Zoh3gUj2El?QuIaV=Nw)qhJA?XDLjAhBKi#kL^<~8VBx$enqa4TCi`Fny zi=X58_@ch^#K!QGntjoVpONrZg5S-+r{^^J{Ah{0BlxJ7@Z3*wmzsGQN&ZUUb$<-| z&fX8OetaIlv-9x%f=blPT7tnJ1P7fiIQ%q05C2NIZ(@BoZo^zcy>(tqaHR7pY#CIT zVS5V>IzX^+yx?%i%)6pI{XePQ<@o~p#c><<`Lg=@V4gNRj=wkes(e`$gRiRl*UIdF z<|J7^?d|`qYe*ivj^yXT^N7C=0;X17tnzAo$b3$_Ib{AG?3R!t=&ubqhCGz^U(5Ug z$VJHfe6{zD@Ed|pttRpH=ifI4&)56HL$bF%Ww;?j(UncX) zEMGeh_AgJpZ|mC++r(7^ynidNAn|ScgfgpJj8`=0#s2yY?r&u2Z+;~+e%*=JshHH? z82wGHTssf;H-uj4yT#u6gi~TKI`pfrc(*wkg`)t0G$M;$2zkdHdvznP- zoo%gKEvf&x%jNhkCgj2Xr&gDIi$65B|HU=LZ=;WIT`2CqdR)uRcy1h{?=5yM|AL>} zH}5Nckk6aZ|1u}aJ|ALzjRX;0C4E=}e0n3P2YK&m;Rk__HWr@iGrCsz4Z-IWAA=9T z=QlC!!@Sr(TA_;(>K}Xv`)EtyBNl#~*birZ;CUUH1Aheg^iXAgo7f*q|KJ%v1poFkl3!^X zGr!X9V$aW)l{3o!UBZum|Ll$?pDhS~@=nqpZzthfuRrbU zGWb3D`835B?iKqx`^x$)D?WXn@aMySW@j`168KBN=k_%D-~q883%;!Q?1RETiujqm zO#9q;;r|T#5_rxp_mJ>+(ZAx$;O_;W+S{yeFhT66Z7%iq!MFDRVd0vTKLcC z|7hWPd}p2!p4&ma*s|xh=<@!8&sX^UscG8<6<3*k1jlbJnA=ORLQelr5%(S3-#Ko> za!=kFRoBpY%>^|+C*gCIrUQZsGiobAKM>5|`>Nx8kt<5m|5HYu+-Es%!%=gzFV7xu zr0Yii>HX#YjQcFdZJ3_3eerp}tK*l~4vY{P!El~I3DYm z@ruZY`xeJ-m}zQXK3uO6K6f(y;J|QQMttsj23bWYwKG2VuMvMR3xCmr8X74Q!kOYS*14`<4vQ5Uj!H_y;U&2E#eY$N{@Bf5PHPmX|pcW>v@^P z?FC#K*ax@;aA)9tz$`EVUI4rrcq{N8;KRV@fo}mn27U?r5jfZ7l2;1Y4D1Ws2)GmQ z0N~NU(}1IZmjQ1A{uy{5a3b(I;A_ASfu93=jzM0)Wq>OI*8*+|+y=Ne@DSiBz&`?W zz$<|_1MdYs2Al+Z9rzLO8{p5tUROw-ivd>zt_mCk90J@CxHs@{;EBMIzzcxa0B;4} z3w#{-BJeHX-+`Y1o351n76mQ`Tmv`|I2gDca5v!Lz*B%10&f964tx>#Ch(uY{{p`S z&T*CGvpBF1a3kRMz`cM60*?Wn06ZOdDKHPb4fr7N3E-Q+Pk`S6=eSz(=>=Q_xFV3p z@2rAp%zGek8{po+V}a)ZZvajNz6$&Z_ycg^YoyMr0yhQj2^;~u74(_4hfg&zA!;oWF+Tkp-53KGec~W}Y$PnqE3CWtIPqd#Y_|>(688PoT`> zI`hi(H|wL^c!hLzzTW;6VV_#Fx}P@jmXP(4S+e?lh1O4!bBH^mp8xCP=S|D;Q?9cf z{#v!`*4g7HTwDAXfl2kutG<+!oMf;0%sLXktNWwl)+?6>RIh(#T^SF7+TW6k%l%{- zd<2E?3wd7H1E2FQ4irCpK9T-X__JUiD?SE434BTM{#RnZ8lJb86(4~w-!1!kagf9x zsV9&ibAJB%V$b;%;s2N`W&S1bP4E|dBl-PwA?l;}>@?v!`}z36ljZ#qem=glpYQ2x zK5yS6_0DV{^|F=sUFc;K^lbKe+;-mh82b|ILc1)EN6I#g>eSQr*7Jr|oW*4R{oZR1 zmE(fbXa6V@d)_DOiSkUxA(FxJ-7T*!E==<>a-Cx9)0W+>9_Z7N4bF>o=;CsB*nP3L zc|FWG^M&X8aEp@%_6M#9+zPlG@NnR<G?_zcK8@${=p>!FHlTSvTJ z7^ket6RP`BYF4p~dD|4M`*mPi1P@CdA<$%}f3EsQxzEd6c&*=EWm|uEz2^Eeb3142 z53iS9e`aofIvPE&?3W?Nvx?{aM-k(EzmxG>?_XY%eM|GteJl45Met2D1ad!)!Snu& zYTOTk*Tui)xgHA^o_=h|b*`T`XZw?VYS!paE-U8)9!E**>FT%S zyp;Z4?zgD#_Y*()v>?YdUhuZqhifcTp?E%x;O{!{nSLf;27ep)Nb%7RlFxYX1;uB7 z6#gmjss7@h&r8eTUjZMlDSU(p-entCrOg;qP^RF`hXn@HV zz^A}_>zaHS{8HdciVtU#_$z_W3>16Tw+McH@WJ|~f4_&=?+reucyD&$|Bvv_%ol%aX`7nPs_jTTGiuHPvaZ#llsfKEedb;C=ALA5H&$U&(Jx+W%zoA^5@I zqo0N6`ptvi5q!q$U5QM-2wvAy%On4bKFuTcJl@i4NPeThXXZ2g=fPhLJ_nxmG5D*& zrxq~%r}~NiTfqA%(|-p1J>UbyN8t5*wA`}hTE_JK*HQGV4d#|S^l+o(q~~-c^sR_I zN_FNFuf1_4#q4YHjru&Wqj~$iy0#9syx1@9w|rl4)ZszJWEc^@7cq2@j1L+t=n*~n z7acD9a_c(BxDCQ}rH(dU=g0Gbzeix06cLxlhe1{o26im&)Pv2qG2-&Ls}}0lV&@- z+Uu>=|M%i2b6W4p5cl`o+OmJo0lsv);s*%d3w$mz`RqX9Q{W3{n7p^1@U3}RUi83t zc&6BQ)%9MmYG7t?r0gpm@;Ax0QYoR{>?`*@?khTO8gW_owvo({VH<304k)SKxEaJ{ zKb4y{V%(s(S;XZ!X%k2d4BfE$e8*#)sLZ@6;E9@_2A-(-=8YsSQS*bq6E!~!JW=x_ zz!Nn;20T&ok_JO=TD~?lY-Ud#o`3N|r=A+=0nlA#U)O;~GrRHPcl$y63fcisf-iqUtnzw;d zYCZx^sre{4rRIykDK%dVPO14AIHl$-2crIvnz!OOrRHtml$wu#Q))g6PO14Ka7xV= zgHvig22QDY%R#6=q~@(SPN{htIHl$z;FOw=f>Ua~2%J*$#o&~hkAYKa-ZBmKht#|k z$0;>$1E1HYCZ-|sd>u`)E`pwRvf3)ybYXE^AT`L%}2p0HD3fysrh1XO3lZ>DK&37 z81;wLycNeOHE#o_)O-Y-Qu9%8O3fF6Q)<2#oKo{Ka7xWv4nh4PHE+dnO3mBADK#Gf zr__8DoKo{e;FOv#2B*|~44hK)mP1j0NX=VuoKo{Pa7xWbz$rB!1*g<}5jdshi@_;1 z9|NbZ;#Z^dy+&D+2!H6H<|)O-}2Qu9UN zl$tLFr__85oKo|a4C)W5c`J@nYTgD;srd*vrRJmHl$tLBr__8gIHl%e;FOxT9Etiv zYTkjY^OmDfe@M++ahy`~HgHPKN5CmH9|fn>d=WUM=8M58H6H_~ z)V$?r)E`pwRvf3)ybYXE^AT`L%}2p0HD3fysrh1XO3lZ>DK&372K9&3ycNeOHE#o_ z)O-Y-Qu9%8O3fF6Q)<2#oKo{Ka7xWvjz#?;HE+dnO3mBADK#Gfr__8DoKo{e;FOv# z2B*|~44hK)mg7)=NX=VuoKo{Pa7xWbz$rB!1*g<}5jdshi@_;19|Nb$1EY)O-w_QuCG*P=83xTXCFH^EPlw%}2l~H6I11)O-;*rRIylDK#Ghr_{XV zMARQr^HvXDK%dNPO14~a7xX`z$rCvISKWL)VvkPDK&2cr__7| zoKo{qa7xV=fm4!KAKfVYdC!03ITz1Q<%1*3ZxZ~U;P;3p6TZe@C@qH?-_kDctiF$lbOzZtj<(D?ft>Ae_+P4{chy6m{r=#9^9#-+GATt zwp)}xPvX6j+yU}jS6~qeIXSd;`3;^PfEU@1utAAJRfTL-`@rw zUV!J~E*4Jv)KOyp1=v>$!udRP0sMOK#1~y&1OFa)N^$RK$^U-vwBj}J-+_DJe4f2@ zjM%>bp82v{e(G4^e+ADgo;XhU7hu|FTY3eNZz!3*HY zD_r~h$zp#Ucp99~8x~Fxek*tlobjuIe;+(^m0Q1jR_q@FuUsvh{#84K{~A2|RhQRh z3V#~B2+sOvI)%RqURL%6@OPR2HIhH=(_Lbp++6xc5uE-N!8Zo4DPEW(_FIEzzUKPx z%@yu}=fUgccMCrRysYfY;3tD;i*EkqQ^kHZ?G?|>6MhDG4V>j?dxW0{p1xM{&nM(x z4ZHwex;7O8+Shu;{yOFl&i-BM6aE10uXF9I{lZ_SJvjScHYfZY@XQUaeHlEtg|uG< zob8uAP3*S@&)n$RSHKSf&nuoE5c>}B0yy)pf#<-B%04qB_7{Lxz!{$k_%-0=n_T}g z!(x96c;aT47s2lV_Y_Z@F7}C-|AI9vFwxKLjve7SIe9+a$u80a?Zr-qE+t5 z=AM&V2Ibc0Rfjev7OHY*;QKiGdso`h@~60$=cs1k59dJ#Hc7P1UAj2va!V+eJog!1lAd z2+y4<{ksIt?`G1zbJ}1VDd$+oEMyV#8<4+-`~&1$kncjmt-81z_5Uj5cOVx*J`DLN+ z|ETw?ePulT6>uk?$O-gzhCl~p$l`F-0mVfrN4m-mu% z3)00;NIJVM^!JhU?MN4fBz@cF(z6S9NqXCTB%P~B`m`OzKE3u9VR3JcRW3jO8xLcEl`pU%INUYIR^-<*H9I)lGM&A+P|8vFn8 zx)9TA-z)P)@lk2NUEYy+R{p+DsPgPvlFqiQNfSqo?>i1q36@hh$KCfQ2c@6phTZ0Wn#Z2cmnGkdFsoP>tFPDvi)hY@#Q+4 zQ-0(|B)*w5L>6C>dOJZKm*D)Ge$|cdBGjAnYvnaJzN^oWxbFj*_^Zng#_`WWrob7G zFXQ-b2TMLR#Sg*pj~@d5x|{z|IL`i&e8cts4sf=A^&i5QL)|YqRPy~NWNOUKf2G5O z_dw>rX+MnPcS5G$cI|(K;~za-@=5&Do zo{@U)14;e*eH>;4`IORQ9G}N=rJk7Vc;`O5fbl*T8D&2unMeNF7o zq5XO;&s{700`T(sE>GPg{9^JATwb|Z_?O8)s`xF!uLAcrae4Av!mk4_ZR+w8_}9S; zo4dSlyV!pRJh!FG(*W@&T*6jzZX0+)#VlN2f?$7r@t-vS6DvyxoH0a_+#MZ zZC(Go?~46X;EA1FUj4rC=fJBwyS)4Z;eQ4%?k1f5Cx55#*TB;sckOH7{{;71UGCi_ z_A4JP{Wrh6%ZuP^foJz}xp$A)Zw&73a(tce3%?%gkZ2iT{k zyFC3f;k$z84t9C|LE(GT{&3-pU-B2i_Xp2{*ZU9n4Djj^ZvNgc#r{eBy`1zXU0!@x zcn0?Qqg|f(mGEQ1(5Y9XMZpJX7HNgW$=5z%cr{Kr~V-J4}mA= z31|Ce!JhyxDPDL|?4JSmdR+U=Q^H>Y&nupIT6hgS-Rt_7ct-dbcmj(R0{Hge$WhTSK2F{ z2j3e!qj(woK=7R6h36&zL&1xRSHO<}PY#HG^gsE6*q;DiRy+gV0iGQc`+EC;&jl|j zUIovACx+be(|?lk7l0SQnSTL14_;Ng0=^JDJ?!S6dQtNKB6t~``RBo}0?*EO?W^E7 zfoDd9pNsjU@{;8LE$|XJ$A9|I!oLq*RlERxH+X)5n}6zMvA-AGJHzE=@SlOF&J@n} z&AlS_kANr7a(VhM!XF2(f-^pe*MvXC@;@#1tX~%VdGH)K%P)ez3SI$c{x$G_fTzxO z{mcGU%D?N6avd`delFt=KD@`&@JRAJu_w>|P3#lLV*WVa&A$k~8h9C;_Q}7C{RZIq z&xk$!uYzw3UInLp`gO72oc0&E<>$e-CSU0C;u~V01}}cj<)wcJ-xWOdd6y^O622#R zN%7K{@O{Ax7rFN3w}r2bzu#WH#O3*a3!e`AO2Oq7@FT#pUvzo#9kD-_{$1+w(!0V> zVg8p1KNsy^T5gB%*BtQll`hXNFMM_QU%pB>+b^+#@Lt+qEu8(k3_bu}184c^6~%r5 zc&6xj6npXt_!q(R;OD~L zTUGMElK$W9+Iy=BzZSf7i|bzj{6XAL$$j1B74UDsz6#FrQ>#n<-v&>9Q|!sh;6DIQ z-71{zlUPISe+ZrdXZw2K4}cfInSTlVQE=}zxBUDECI6?vlizZA75ruJisG3MiTxYk z`P*Il3V7l;nV-Cp%Tr0QUj;nzZI>6o*8(qtv;K)S#eM_Yf5)}Yfo}$0y+b(d^J|Iy zHnjhq%d6l!gXh87|Gc%uesA#1_ucX<;0J+wi-fa%YwL*pp|l4-7yY-quJCs7!rgBE znGXx^1JC}*&A$Y`0K5v$`j^%d`*Xlc_lP~~mue9{9nVkHe(dI-USIf^V4p4vXZ}U- z>%j})%s;V#*xv!3y4SVOftSJa;IvO}DE1G7Cw?OK=OTU;@W+_{{Vq>#B=%2&mlRKJ zEc|uw$^&B0_DgRf{9We%GnePV;f^Vmr@wEDJ+JrjILouHKkAHmeT?^0m|won3sq~M z5ZQ9D$nc>5Um5o~c)g3qEt$MTuAf<4`@!eC=*N^!FEph;W1gh7U*5fP--p-Ptnzq# zG^SsSEB#_V6_m^Cb3AUzbRk|mbh|8^;e}Z@)c+@VP7~L0tnzvMmY9C9f3g0$U9>-C z_`~atEZ36hFUE@t`~AX$yf91p!~DJbBp$r3$>WwRFJ<{U9?U4nBTUWH%0o?dsr_>ukc`xB4y1JVw>PHz-fKRgz*T-^^iKAB{py;b-ym7eBOs*IhL%%ET8+MsQHfN zr5}=b@V*z1TQYNHym-X*C;1EUr+%N!asNeY}X`6S=G2pLk3^&kKvv z{U!TLi3jf+M)^~V=}%NVyoaTH-dBt&KYw++ctn+7LixOJ8C8DbtMSU`{-8cyKjVc( zl;?_Md+7aZ>JfvL{vFU&f*zetvo z`jyn5_hWh7l7*%8W8t<^?%b&&i;yg*2tRmVm&YyH^0j#JU^}$rq@NxYtHMv-r{i%;PPrjoysZ9_`n8M`-v6`8+woIM)vl?BDh~*c_sM6`;t6v$x=*zIDauN*^@jc z>-2A=U3lNoflU(LP4VJk^@k$L<^9GcMLCDc?^C%Yl*{{=P9aSatv4@Sef7SqjBmw~%iNv-@Z-eqbj`X%j zABHsBvkhs+a~{(3puYg=RghkY^r}dI1?kn0z6t5ok^TYFTvvaJH1{9BLV6A8KZo>o zNWY2n2a#TRuGCcCCQc+ig!Dn+n;|_7>5n7biu8U+^Zl43k^T_)$w<#Yx*ut|+n-3B zjWqk$g-El1U4?WC_9dj*zwSeNd+^^NeF)NjM4J1e8q&Liuh=d1-vj9uq>jx_h-4{8PZe1cSAah^u9=c66q6=J__kUq>n-ROGqD!^i4<~ zkMvKGJ`U+WAl-)a-;q86>DA_m|0g27InpO1-HP-nNFR>0yk(Y1v?09=^~0^-Te|w{^S>O* z<@0&<0*oIeRqif*GVUsP4lnfs@r&d1Nbu68va;vFS4IB);NIrKYm3C5{3EAJ{@E>r zm+lnK@p1|H2=Y4zvI@PQfKSKqJY@MU$>$c9KUMNi-sAc|b41F|d`x&wab%ZxWkB?p z{<})QtiGRC{fJ6Gq0-N&^h+vTQ|U34UJm`1{!CHnwN#pVlv{)E z1bH%Kr(wr^PI`6Ofo70V9%&gBiA3^-RYS55`5L0{A?;yYAz2rTbFx#+CPkm?JQbb= z&x3Q{K+fy;Rl}ZomSp|BHKqLhpqO0C^*?#H)Rgl@`iHE!oAWb>V;c77VnQlnp86B{ z+LAwca!Z*@vh zk@iYmD?2RiW9H+y8;!;kzsJY@6eZg=jq;z`Ov)i=In+B1dW|Ja?ug!JF<*UOJo|*K zziij2+!q=Bf_9TFH-~cBUubX1^pBeNN9s?u+&s!8Q znXP49rJ&&bSlS_bugKJvGR|_4RY>Od;u+#kW-HOl10>Uu@4vuH;8Vbh;LDvU_BCan z*ir0P1NS~A`P1Ip3HjrDcqMR_UjSbh_PMQH`{XWSzbSZ0@hteZ;F)b)`~0qAzZ-ZN z{9M$pvYYS&zzf^C@u_@V_>nAsd*PhVimk$r15fYZ+E>A6fmanz?=JR3Z_}Sp8 z9fdQ#={>~$0`MX@{Y&jB9Mv@i_p_PZB>xql$>YqA^OuE=ac)ijECgjZhNKnl6ap9o>sg7z7Ra4coqCI z@GLmnySBIFfB*VZLzi;kc{;d{@Mo?Np2YVg*?vXvZ_q!*Q=Zu0L;n=7fjpOjBtm?rkeBLDOO!tI-PiA=fH0Q_YQY?3H-a@r6XKk1HT` zCGa=FGsn0*aj4|Ka$eduah%ID;Ol{x+gx4(-vT^+g3D{*yMbp;bb0zPDSsMx?j)Dz zz>fh>o#OHm_-yb>yUP=YOaAl0^BpeFfG-61I$d4@zXm)r%jGrj?}BG%yWBfM%6|kr zH^=39@Rz{z-7c?yzXe`6)#b?y+V32+UysW(;A?{?dtIIfPl4zATwVs>0leDp^2Cu+ z{wKh*rwQl$k^w&yya>+mod-V!+#7WBFN61jC-D7a=ASr9%ICaj$rS+Jul)@3D|LHe z&ZGN^^!67S9`ye!VSmHTyjhDJJl7m zi>wNXL=E|+e<}Hv(2nWh&BCmbr;B91UqgGRa6Au?J9={M&2}!FA^9>+JRY?^-;VMZ zqukVi@+0}M_`lD2GTvIj6X4!&g#S+SeMK?#TjBpSc=9pf8=WutrFIYB@tg+x>{(*Z`>y#}OS^dEdQw zf#lEUB5FwUK6CnW!g=2{f1#u$`iVsD^OD{M<(H90vMydlf2k<`I_Isr=Hz~?hW%3Z z5-FeaUFH~xK-V^M( zB+Vt~*AnW#0@Qe%^Mf_N^S!A;MdEiZ>}Yr(FB|*}|c2 z3i_FUTI^SVCXYw?KiPQy0N-gWw~JqSl#^$i7fZa0zZ5@e4~xtqF1i9Nm+Kto>FLwF zP?hh&q_&r|K95{DM~;_w7WvXVkqP`uE|#4>+lR+3xd{GST>H!Zpr6aiqFlDCl^>7K z{hixSIe(>IkofU@B%7DGbG}IYNjT?=4ARW4fHa>6NWUoh9ty7gUNpJ>=AM!?&sSas|bIe124ZM_2K<{ z?=zDBOW>tH3uph&T_BwAEmgs3UjqM+C-YhUWo5rm?D@PyS@9b9Ur@gHiffLgD`b&nlh=pYjEXckPdE{*2eU;5lVazBzd2)#mm)gQx$}oUerMZ6;q6&iK{f zAHT<$1!w&8pO^aad6Syr^pDS*6#gptbDWW1jr*k)@H{{b`R@n+i?544dGaDD|4{J4 zo5DHoB+x%ujwSW}pX;6WbFCYtAFYjy_#B1Sv&ylK@3)cUTRd|WOC>zME!rvfmeg}X zFsKKwqeXYg?@HvP%@JO}&zpq2W!l*joo1AprC`@6#H^E=WW>~mFj{w_T0&fnSR zB+c`w0_^vNePQLz@yiu!UL^BN{k#M7c@gt9<6VJ0$A9rsi6`S-og(=&-o-Du@vec> zK7W~T#yh{N*prvR+3%{W3D3j*%9q8S^M7G=xBT+u!r9-vHQfADqry4AXFlZe zzh~BT^DlvOe)raLc@3QNdtUMMm6AW_*RtX{aL%ta#mnF&v|nazDZf6yAx_-y=bu&M z0sQZ{zC*63eYeJIY4+Tc^r<9khfeqZb9`8EXwJx=v}E3;%Gq4jkBQEASj zl@CiislPMkSEgUUKE9^(7NVZi>*V^mo}1rXl^^vdD~p& z!|}Yd`BdJgb%N#Vef)|5`nKm;Wqj?(e;qCC&9AwZ7PMeW-09X=X<`dWnp0j|Z?m zlu%FBueO8Ovp(6hq&Xf-Nb@|kuw(P`Za{gQNAhs6@F($~^KEuRv0o8>1eSKF3cDobz!Gocr12Mp8a` z1^h+CFR`)kJmOQjM)I$Z^OS3!`w-cMV_Nk(9?zc0WDt@hS&PS;&T%NuT<-@1C=kEg2ydIO-Lpc3Q*QC7ZaIo@sNprp~zAkCb*XcdQUe{;sOQqdL2{1orW7a2C znp}P8fAUS&|KwY)|5c>vzt`W~|1Ayw)2~W?Y>)hi*fak5Z@c~`76@njb4b(Q#M`dF z`G30pCjKR9`kOeTxxc%^UyfTo?@&|z)*||kcZchL-2Rh+zwAHhcU67<#Pwgc3oUcnai~pSObBbqg5zh4}y|Zgy{f2O^M>TNHx8-jNpN;YhyNEq` z6`bp3dRI69C_-+K1=A6~)uw+)sH&xb_)vp8uA>**|jN zY|l(a?DMF95&U15Vck2yVGj>L;%sv`&|=A7$!+2GudWH4bJ&6b53)6?xzyxHRsBmhNNC!xen`g(CcdoIcdFy0wNA@ef5ml4SbwLj;0{omSub3REJ=La0`*803` zeUu@$Y<=823`EqvxQO-fhDolEC0ys>#K!AmiM!@Dc&qV<#aE|B1{bE0b4*W#yIbW3?5}v0$IM3%(zjnC? z&iOX^8`r-aIM<`hqb@Ii^L!)mn9EDxJfF!cUIFKNlz7~=uYq$t$}66{PwHRaKRn^u zr@?tXkq2jdGT^*kQGVLBuih{DbG<0NB%Jnz2ZaB(uSZng+A3^OUXNfu)BBb$T`m2H zda2N=@%e*O(ck#oLz|(uKxe)|2}Dr+DsesUPRR+)b{1`iH_fzou_?c@>;)S(4*3jrE6mxgSaXOtas3 zO0T5!*l#jQFOBt#`NfrGtmBMVl)ZI*t%7_Q*QL#;ihLOVrOk)$O=rJ}_CrRwvcx}& z{^i{&d`0jgcsF?YHsM@f%i!-`A~SB`TdsW-Jj!pjd*XJnkJ69Jt?M1rkM_c>UYahF z`PLA3#*N1EKKXmO-~KM*4>Mb=D)WJ*p#8u$F=4&8 zkvduY%3dUr`KI9)_hme8$%Qff;`*H5PRfnzU*ZoEw@0vUSbp(%YBe`*Tp!YJNq^*e zP{w|S>p>Nq>p^Zz^qHIYwxp#Ni9~*NAzTl<4@#Q*`!dp84-)?p`+ebP?mv>I-;^Ky zs;sxS@Br3_66(eMX>qwNLX8!nSNxfb|N8Sg%ey@Lpm5HIHSj#_OW>U6@+*oxdG6<8 z&;4U%B{%;nIQNgKm0kPPLt@YUX>y9o6TcA7`LVo;aL!NZUkc~`Iw@CR zhsB=z>x$x8a6X@uT+PkD1kUG^%HZ^`0*-K+LhlPlp{e(odS7VWM>7jD0QY^FwWNNA zT7vUso}KRZi4#J(AL0lX4VGu=^Z02y zO8(hLq+fA=pGiu71<1_W66egii1$a_xW5BGlQ^D70hLE3UzTS{#-s32$(QR9k8^&| z{fqe}zb5tIyvXzU!rD@go582j;6VA2T37fR;3>s39~ORG(a3*2;okw*_UVrZe-vDo zUszvw^4jM4CpHv*EO=V^SNy2(bHR1~#f^mD46gkvZY=!g;L}z9`IPY2v^^JqO@*&| zU332{;O~NK|0-wd)68?_Cvr~nycY~C#{qsI1 zd{^*#`KZ6QweSnTYwV!lC=JHHphW}xKtlH``6&+%AoFg(!`2Xb*ug4}CuL|Z%+EX%KrESE2D_-d*RJ^vGI9>&C z4+YgQA2VL%?Istm6*2$jwio>tnz|H=>gV^i-{a(M{QIB6*^0(qwfWI97 z-j1Sg^|vB8q4_wIaBhQ1Z= zl;_6V+rS+U1@OtnyRiR%H{K&>OPq^&k&IUr@veV2jKGiu)RUO;P989EeA9n$<6DHj z72m{xZhVW_zp_7PrU{>Hd^0ne$G5)UI9Rwf-;@q^?Nb8xP>_f71GZ28FtML(`;-oMR(ayPaP@xR{itf_4?!dr(XY0iv48kpF2wQt@W@1zO?mEA3bsX^G~_$UxL0> z|Ku@}U%mb~zhnI~$HuFF`ncxxH=4D6nC)ADz16;{r``JH+N3d7sd@d_zY`}5kK4ZWK;Vb9-f}-P+U7YXDaRU1?yJ> zpKSedUCryq{*;?7JZ^tt{VTB7?aBIQ|LE2~H%H2|>R$yHEC0L0>U*>0Q^h{2{`9Xp zPxLMSYRbQSPlSKq?0?BE-0@z_P0l}_|K)~7-p^MyCG556DjEpYAsr}i5j<^vDc zxvX)*<3+@YX|_)e{#)%+eAewhi8G|WR{zO@vwcdqUdQp1{gl{8^&hs6ceWc}z2C^> zgrLV_;*S-dEV#!~aebEY zNq$!BqvFH*CoWjJ`m=sn*jx2Wyy&)n75Y~FyoKTq>sQtF`&`WWUD&*STyL`A4daFJ zH6-g_hCSDpf~v3gc`2XwqYFq|^{;}n{xw`*pAJ8AxSr1TPF*y)c<}qYY207pc&NZ% z_J<1cBjV@0X@fpXDIq3dTQqiTGpozn9$pmxVstBT*204-RB-KZ5bC zf=_ll)h?C%bo`>~$NH4MG;w{hsy>;^MBnO9WpLIny`8&1NMA1YldWI&istoW|M0F9 z9=m_|Cje0~3i!+0yYuZ-8f`E2O6(xA0zWcWi9hM9MN)l(r?v`zdN_VAfcLWWm$h${ za*{={%YzreHw3R;E4<#`uZaCr@Wge(8ILmfZr~ZkYv2cgmlaRFD)}D`p1R)6KLZYT zO|d*k>Nc_G{Ush}eI`3T_4ym07b^96VMz;Th-_&UnLS+ORLJs?l1|`X4*NN_6OUUm zgLWs+-X!gp^$!Gf;rEZSY4rcE3vcsT&^F|SR^cyxL-?4_f`8<>y@j9jP2oZROOE6D zPYCCD_P!|3ibbG?hx*UDZi{8CI9J2mv)jgpI6H7 zENSj1Qr{JO&UXc*VO|&0ej(!_^*zz&^QtxY^EbwGk;`*`k^cBE@Y3BbuYfOqv&5@> zkIRd%iT%pp$+F8ce-*wOc=ld!#-k>DM?AM&{F%!O;A_La@Q9m#4SYjz@7FFb|4s7e z`dNNdILAlg@4~;zzkdPF@ty*IulL8cSmR@1jXAD(AD-j$^S4NR=L`isa>?`a>{ryg zA9}Mef2rVgBX|2!KFy(`H1sd@?0;>ZF)}R zE&GWK5BmR=Fz;|Y@VF(b7;hF|T0biAgX7N1pU3C!BIBNEEtl4h8vNk+*7@pmZ7Ka2 zIo%7hV*8BjA!+8Hd`f0a&Lcc-$&p=`E*?>Sq~QnWE35qa@!gir55~djry2Ocd9hxe z@nd03Ke!K|9}BadlXDK`bKZ4elSK04|D8A#;0NdTCPh1k3jZZPO7Mg0h*M~jL<{yA zM7!We0rMgE3ss~!k7ux+c+gMpE^+04ps6MUQ_N(rE zjKhf`%*#b^t`jBr!@nO}yhiNvF!WxR^>Ji7S(m)8xx5H|2J){eo_Is-xn7luVt+33 z&w-x}`^vR0PrWJjpJV>lySxToU*B&K&hu~}8 zU$K*`CsAFp-rohi&9R^1`mXm2zk}XXrN@58_T38mV7N7D(G9!OjS^294yydVfpkUb zeOKu{i*)iPH$Ue4UZq|iS^p_}c}~_9jC1x!2R2D0_lh^~S>;wyF8g_tqMSnum$KaQ z`JR(c4drtDIIvj)=SLcGeoNgf?dL(E0)5V3X`DZCzDnF8`kb#aNbCH$Un_v~{H22N zS>L~WL-Hf9f$RKqTJOJubH3mo+e=cD|DW;5d{g{keUrDk^(`W;b7p_l$8~y#9b~>p zz9sV*d3qn|mpMotw`3pAcQdz%f1DpZm9J&b{Wtd&w723n+4}8)`jz1a=dYxP`t2vO z`YrK0d%MVTNhJNf5cR9zIQ`0uN!+e7c>15hZv;==A^Ebt1@ODUi{BN_`j`JL_P=5N zif7&tUNv|H{LkQ-@45M>-WB^5Hj{p!c^3Rl*ymu+`X~M)_AA~h_7#ry zcgxQ#FMLDrwBpGXgl`6(1!wt%6@_ol{C^<%bNww%5xxg_VUb&YdKKYEfR`07f*%iF zz0=JOsPv1!w+wI9i)7e3kErJ;xvI^D~6^ zgXh+h67mPjan_sjVg5mh&wi*_1!?YQ6Y!VwrT25u_n@BvNA(j~aNxSw0`bThyskLO zAGhNEcNzKVcH9Q#Wgl|;53}DDJn@U>oO+gI{Hm~L{4&3k{MatuY7&1B8D$QXc3?aU z(C2zwK>IVEC2;M>H-9hJr}7U=dFtP(RHJ;EP~ig+2R4`a@!WV@`Um<~i`o zk$>tDH-4F<*q?3i0yzJ^lJ>6(&cCn3^4Y%0H6{P+k$+m1uj6E;^>sFmGnQl7S;yHQ z%D<9$us@_LlJ;PjohI!svwY+8Ejj43KNKp1&E>bDXP&IkWM9N4~T%-1>}?N1U4@713i{NerE3es495|zhX ze_ODQu>X}F7tZs8^b?Za7yi|dX8n>_ccSW-dXM${IQ&dKE&fbV1+MoanJ-h2J3#IZ zIRo-I$P19)#gHny#ANr&zruBfGWsd|m3N5D1F6GB*5G&Q8Sy_0$#R)b5yv@xGaJbG z`!f8jDqaKsDtNN$#>d-G?7s+t6~Nh#Ey;a({tYRg`xzc*eVMP$r}_hl|KA|<7+0%6 z@zOhmUkUjg$U7k)hkP3HpODMnC3fpUZUnh2BjkadV6U%=2JQX^9&@9TXHw}Q5ci<;CRWYd@XynTM71Y+jFw@osaqs zsJIm~QeW>#k(Qr4{zceV-*)R;Kz*+TPyJJP9)>mW?}L}X8L#XP(hffXFaOK6uYl7J zOV;E0Z?XSx#dG6rr5_g4;&+nuL>!YxNjx*}pdOHA$h!YOlzbBJiXO*rmHC3Fz!|UF zj#BRW;Q5ud3bQ27?j(F`@btmp>r(c{rZmMR*20w~EV?y9)0F z&#d9{B6vLx#t*h<^21^uw>>ZT5!z{8v1fc(+*{z{t$)-LQb7B0Kbqc6H1>sIavjN! z`_~Non+9G)n)|=xdZG_p7n2>oo!d!0vhX8?9I{7CKPywBoOFwnSA%4ME8m0u_7UM+ zCkn`S4e-(i!q0_arnMd+X4O=(z49B1ecblanKC~7-ay^oS)QYsdRp$o(|-pxNhFVP z=euFlyPoS|FgjNBK3JBxjWVx&rKZ(3;n#wv!1-KO=0xEu+$;9%PrOc5ILY;c{VB1L z#BV?3mqmIfq?4Nn=lMzQnpH!>^ONj1CC&1xXuoN+-&E|`KMP2E;5F2HI?}o0#7|!D zDxluGfoC?8{5U>}NFNLy_5F(K7Glr&4`%hh*OuN=xE{an_5S81+sgUQ$|x`i$$oY} z`o$smJI&N?1ZO6hICdkgoUF z?Zuw`HIKCRcN>iBQd;!cKht}Pf4hMvc650ToX@Z46=ylTzh4B`?ZxN!$_8gXmel=c zAry5vx<3{SJ*yn+`1{>|4n@2NJ|^Sn1f;WU2jvL+TVZ!;ANIG@9+KAc=QP+C!R!5P zPto5WJcl&=f|{~*Xh=N`1_Q49wC3ys0X>0H?Ac!LUu3lPxH8G`bRs)FK^_} z^_lvXybt@A62`?8D5g%v`ge-R)ZS8$3}gY4`EH1Hw1VS#fC}>65z6!0{2K$$ zfir&({2lPJ;yLi;?w9_bJlbu)BKS(+S;Z^htAdvlPaG)zeF!{pjGKQNd>!zN;#u$w z!HbF)z_$diDP95J0o*&*EkALP__qsqLGd*BUf@;5v)~7Sr;l^7*O|guP6hr=hkg?N zu=p&}JU{YaulLLK>l59QKdV8>^PggmaPG&7hu0%Q)uvLP*QTJQ&tIAvH#x}ta)G~1_wvEA7wrDIsmOPckR@TkVrLt$BUf zKG^}`@3nn64wklk7|-$%Zhub>ihqn}7U^k-S7t~!<5@)~Yk+ZMPVSuYqr(!J8pa*&$q^qD(Le@lE`{LMq56tlkRi{795uJwrcQ@c{~ z)8lr1@Zwd?`DWm$tDEy}zzYW76+HXZ=JtDnR}H=|c>bE^_S3;rUu(`Y;1z@K_XUYh z?z-mo$HP8%V{@+CU#CCuj;uh*o15E{=L}x@qufVIJ}a{DoXFDiB1dL*%^aSSTTn}^ z!J!elFq)B>K8pb~0{P(E@?-9X;%OGL1o;x>M};qjtU@MH!RZ^}2Sgjv8OXHiXqpB$M_HujLOuvdf2SZ_M7>&& zZiBo9G6hLa`>Dq9w6e4Gm@o5V{?zAj>Uk<(a_ZN>AB23bBA91`e>xx44K%K&bFZux z{w_e4A*+y7^wwNG{Fz!yWM&=6wM9-=Z-9!BQRVk4{U|^BW9lpQMDni^j|`-atxjwE zMT4?#QEI*{{eLS0L4TR-SX`ROa6W2%OZuHIi)qTGDPx(99f6dMmXT! zECS0Suq*=0BCsq1%ObF}5#afBdCk4UELKHE{5w+?=X;zM=gUAA=X-S)=XspwJkI)R zJ_Ue!7Prc$z2!f-Rey3Te&qb#k>%e9P!EeUAB(RNVb6B9?B(r`ME!f!>>n(bZ@XCb zYeba)!3h4L2+sG3tn$~4uwN^JuN}eHiQwx-@DE4u^&&Xmcd+XJkqGbjo_O_@XaIm77={Q2rh4H+T(9(g#E`NxV&|0=f6#a z{k9Q&y9mC01n1wmu=+_mALwf7gm1zdLJjzAtR?X%Xd5 zkKp`{hn4@q5%z~f@IxawKNoD3e|Uub5fMBS!Hq5X9S-W!Mh^(>@GnL1%Od!fBluS$_~j9NG=g6d!LN+qS4HrvBluS%_%#vyYZ1H{ z!LNzD{{#pe8YXq-F@V`ayzen)bBlsH;{LKjdj|l!&1RsmwZ%6Qd zM(}?{@P9|}cOv+^5&S<9Jh7Z8@cKYKm zgpAT(A*TL{G4)r9slRee{SU;{pAu7lm6-ag#?)UervBaQJBf1Q~6>&Ddoa7_L6V(PcV)c;6K{qZfAr zZxT~~)0q03#nj(Crv4T&^|y?vzg0~AsWJ6G7E^!gnEKnq)ZaFy{&q3-w~wj6Lrnd2 zO#K~W>hBa&f9II`yTsJrHKzVQ9fUKO?68!7=p@iK%~RO#Q=R>K`6c z|A?6SnV9-V#?=30O#P!`>K`3b|CpHi$Hvq@E~b84O#S0y>Yor(|HPR3C&ko1Ii~(8 zG4Str>cf{168B@PArv9v$`du;gXUEi^6H|X~O#SYd`lrU!pBGcVC#HUHO#Qx? z`u#EWb20T#i>W^lQ-3g~{!mQ);h6fT$JC!6Q-36;{(_kLXT;P$Gp7EhV(On2Q~%R3 z_0Nu}pO2}3PE7rCW9pw5Q~&&!`k#rZ|Jj)O7sS+G7*qdqG4(HussH(y`d^5te^E^R zi(~3v5>vkrQ~!%G^)HR7|D~Avm&Mfoa!mcN#MHk$rv7M5{VQVXUl~*Xs+js$$JGC7 zO#N$O>VGY!ele#0wK4Uti>ZHoO#K^T>fabs|E8GwH^fahu z|F)R=--@Y!drbXOO#N@i)c;OQ{X1gne>bN7_hRaQKc@Z#)ci;38{*y8FpNgsfbWHtcV(M38>i;pO{C8qwXG4=lvQ~$M?`hSh7UyG^#x0w2WkE#E9O#L@v>c1IN{~s~+--@X}7E}N2 znEL;WssFE-`u~op|4vN(cVp`R$IvfS_72Ia;K6hF!9UKQd(GhBxSZi;2s)6qL~RtL=*>`Xs0F_1Jz^*X)kro}s~U{suqUk4(G0dipy%dIqifBfGF2g1WN5k3T-XoHYOf-QXYf zw-5UHKzC>R%#Oh>UngMW?N&GJP95y;^Xt~xKdWmXP|Sg(Nkl#m|wcCfrl^@iV?S1f3M;v}Y z*lY(54D=5)l=A_@E_2}F2h2Ep+T`^Yw12WI*OT-c#>`>bgA zb@ae+Q2hqKK4|D4*D=uN&qs%K4Gwnr-KW8BO~bDJIKT7t&mY{szi+U=r)$O$y;*v}tg?VUaSgI%*4%C+q}W_Gp@`jgR$@X(*e}52o!%w?k%^aRR+wNC(JZBDf_ssH#XUAZ(cv|a9 zdwXCv)Ezd0@2eg!c06Y;7+R{h_`8A$;$r*R+0hq_?=Fey`}CK~1&Y1ntt_ zH`HPFAA5Xs_U9JV!`k3yi!@hwJn)6p%J-gB?*|+N&La&X}9=_eUo~O&R<67@JVFb0EwXbMz5A6D9&-Txgf@o^H z3F6ot#6;^)5RdND{c}FHn6{gsoc_)x<=FF+vphHWXPsBJw|AY^tp0Yqo#nit9NTVo zcTc@nG{)PW=Vx~h3=Z{l_jUF4$BM`7p8gJdowmofZ`VICtNV0mG2LEvJJ0SP=v`7^ z47f6|<~S}@ zW3b-48vV2Fx;w%XgmLX0{N%oKBD-)yZP?lShi+%!>2|Q&y}M^{Zue}C^cZ&jXzd;5 z)=b+?P``1rd1E~7`JuZv*FQivW6Yb~OPus$s{ORrgYe=DrO z_0O+Yr@_Ao`t`s>{d%2o<1481lKo=$pnoM{+?4?-TgPPrfBiPJ{hh#W{ONi_J?(k0 zd&s{eWUjXpls6JK#JD&FKRG|y^QY`WbUf_#?&<1l(y#3G%h#Xdujg}{_eZdcd&~_8} z7p`$y-)^tIj@}9O>2|;9i@6`|>k4A6{j%%fZ_=9R+i~{w`)8hN#o6A6zz%yl?cW4( z8-H1_pZ<+nHfA)ClALyP_zg*VfpB=}*ZpjGN<=NvY*U>r8zhsXF z&~~<;;RO!=3c^5m5mMXP@gIK{)i}@C{VLbr?E2wE`px>`1aTPX@~dRU!Cn_n8}8^? zG8QKvhk>QsxBK_!>Q^Zm<7d||I9Fb>CDwl0{c50V)^I1o($F96@d-O)e6BTaKM?q` zWM4GkUzZAQ=uCXQ+3sI{GuBtx#`xInIMC(qGyPjgG7xlpCaC99o(~Ny<@r!>^L*`K?CkO9-vw>54%qYSK>zT#jvd3lrQEjTxiwtxBUzB?fK81k9@lcu3JrLH^KFz3H_YlI*#4mgWYFz z_0NvKKN;-l9}40k_vmyy?Qsy;iA^v?YCF4s4d%Ln3(@$e?baQ4JYY-a+aM_Zb1Few zgx3O_`#V8@3GY4V@+Qy^Pg}LVeZ7L0Dki?(U|;8?{oMZkC6_B2;%fIdXZSVP+3o1t z^(|=-U0?hBVcY{XP3F(d%y#tcg43ez!S><4U{B|-WI-`!~?gHMAf0{Ve2{ z!?wr|o9y@_p9uSnqUyDzQekbZ>%jJN82+W>;0cw1t~vfAPXoNgr{iJoOXhcV z%nP2DT5>Nca9P{i{V1>>=;B18?d5TXIwmkpS<2;&U3sNg&9Pb zXZq(q+0uP_10>+f68+dn)g71DNg90ukD!v&G~<3&%9uz zvh2+I`j3P7_c#3K!^Bd@$*iwT#{*qMr+4%;sjsHf1hRz1!2e|C45{}@Wxw1KTI*Nkgu$KKFrXZF9@-F+QB-Dj{Vb$Mo7eY;uh z!6{yFy|A&o3G7DNhjZ=zCf|Q-xzWxXkMaOqLp;p&$-f=eKG;7z(AgE-C~mMb+i$L4 zCw~Zk=Le$mg zKZDEGYmBGaUvOC&?li>5yiU~9-8<8FRr_hKXTdz-uk@i{qx*$w`<38Ga6I@|kBfiz zJQ(u9u|S1!G1tGot}g%KMgL)(cK^CXu#QQ_+TQG+{e3+P{DrC4zqi)mFHYLdj7zYU zX)?c<>)$}vU@*wxUPC$N{4hATe||70^$vz}ulCO@Z*cDLkpBQHCnRlW&b#%~gXVFx z%NrWV4R!Z&qSxh_?dQ+&p3o8=^v6d>@N}i0QD?t@eZhZV!HSz1?~#5#Z2q&L zeEs2Gzd@{VFhMz|H!H{5C-~cF|AuVW9KZ7n1P@`u-3C9+ z_8bhu+@Np98Cww@2eTcA<_`4Fj}bRsRzXE{IctwQ92JUN zllbTJw+CHO@a1=!d>(zs!D#w*fF*8rsLKkN-A+|Cp$}OxL8H%zhBOMbJdwIzN$p zk^hcW`(RhIeYMpeI>X`J*dMHR?QHKF>Ff%(Bw;8f8^6wW|5SZAJmqd`_u=rU_z~pE zd8o6)KhgKM0@yT~=a<$#0`}pR_ledIGd>-D(H)KPvGv2#(uV$F&0E313aYN-Xvf2U zaiZP??Q&K-&}eV<$M7wa!T$OM3|+3(|LYULxONJDavy5P!+%sS#`#ufM{s|>u|Bq6 z{$kxfumEl~#L*i6oioF0F%9}=IsP+%(y~&Lj+@#4!lx7mgJ)&@mAfmrq!Rwq_SQVm z>EDd@o43JFTR+^EH|U$~Bd;ws=$mm1^k+A|=QxqRe_gR5e{+864<6;}^j9_6IOsS{ zU>CeosxV>-DP9`*8CIb^ISKMU$Z)7i=_Rs+FL#W(&(4fe*9#J z&fnG#KcCVNSF7LR<08S`-f-`#%dzVbyk**0538Td^3QGNHfe8beVx@c*zG@Q*lt}v zwdRLezE}RM%;x<-I}ZMJ&0hZ!^`L*1q=}z)98T}hkX%24{I<-e7Omt9y=r!=bJ+fE+KaQY#!Ucfp&kp z+)y8LTyzh1b__JGPiFt?4qglOUx2{QN5|cc!(gtbV?ppxQdlExXO53~{wB0Z`&#qi ztp1>vHrC%97ykO>UxA(Lf4it@|1--muA^G}hgtr^M6>)iw1c*3=ARX}F8@(={~C+` z+G*%sL%Ukzw#)D4;gc%u-Lrx%ppLh-|L`A1o^bzRjf?R1ag*_GjbC-Uxxqgx?sB!e zu|8IR_4WM|s3m(h9S5tu0y}xRyLo#}WH-@1(T?9Nf8X6$FS{K7nXX*FfA65Ve|G%B z+Y=4(HvI~|?$pFDYrOgol{ekzS^J()zqeyhW`)N3oBe0R|C*71-&<G5IBoBlb#K!< zzE`>)wtk;~f4x!P`ktUQ?_1+^_N<+nwx6|sn(cq4q*;5L`u=lGvGjw7pZtG1K34w- zyRGb=!z&Ql&g>uKFFG|T&uovt&ObwoQ;uBu4QkbBXN_mSUj9Wtd;XZfKYt_LSdO(X z^ULw|8}Bcf{XKa6u1P(t`7C_wP97a-T7PRlGP`>uc-+>1swr&NhIpI);o_cdA6tKT zaBh?OnEkmwcAb#qjd3>HG5nfJV>xD=gU=&{uMUP`ZitsT z4wmw{!Qgqr;Atm+$JpEKzMR?Le7oVH&IbR?c>AxjG>f;X@4p<-Oy7)i_;~Q-;~ai| zH2jKP^Eg}e#^-q(>TS)-m^K^qt@$E&d~{aV%;7oWR)d|jZw>6iy^;T1Z1CWs9yeCM z3GDEwV_2fLv-)XZCy%+tjbHdyQyl-od!q7DctDnvZ?3(P4Eq%Fx+Sr~}yWlb6!LHMq`(>@a{?~QSy9u{thpV{x^;o|o2d7UQxF3Qe-(!1$*l%wo8$?JMW*>P{J?Iwzc zZ_^MDyFdB$S#mkH!OrgQx!`oKLEqY6`d^I-zT$-2d5!a&?O$k@>z3_xLwVMGAAF^1 zU^u*6(e!-FoL_>EC-*hh%PuE4EeS3y$|F6xo$T@N+XW4Uf7;HB$6&kvUTN?mqZn#C zvtEP#3%*Ux=k0R%ov-HQnDgggzkFcPsF&G4{I7q9i*tLAzs+mxzjnRC+pi7%!dwsh zkLCuh>A0Ew+}95}kk+3d|EBAv*$@0~P@nXglw-C}U^ni?gvt7Ms(*>JS^cg0oH`ty zHZ|1Ws?WTxuHZp;jMm1uS?klhuIBegt$EJZ4=$-R_+{0@*KaxxnEL)g+bmAjer%rq zOn5VWv%d3pjH%!J`j^!|)SrWBh?CXddpc%@7tVBlvc{kMS(e6jw&Lo42E6Hcvelmg z{ou(hiEd*#);tv2_0?a~XsExne+liv54_1sFFFnrmN)JKytcF2DJ+kRykALeXUE;Y z8t!)?t#A6*)iHbAGT&fl^;5aq*jSF~SNK)EMt!rtg|mGO{cd@sLD$>tZ+PWP>znQG z>*Lcy;To&$%zFEFajv)W&k|Yv+Ae2kD7f;h{j%nz9{(C}@K5WT`3KL)HOYTMeSc=v z`J4T)e~!FRCvG*^ne8aAt2XFc`!fF_Gyl6>{zLD^bvbKY>Gj`o3>se7$Lhb~*AJV- z*BbA=9V7k@C;0ND1VEQ##m%?#AA#sLpL?CaF1&2U1zDG8wX0uVIP_!a_XayFt#8fi ze*XRg5PUl+mfg77GKO7O@1dA#!oW}3&o2Lhc>OJ^#`4U5gg=C%%Q4%@e{^=-?T5+7 z(YNC>Y(d3zd1m{De~qS5-#S0u=2`ai0tI^_zZI!CFT|zkLoayEeqj>^EUKjpxVa{Nq2b6HFz#-e#QS zvCYZr%j@tB`ldgAs|A;gwLhl*g3hM*Wi0)^;Pr$i`CIdhe_1a0@CT>A2EVN5;`;pe zxK0}mpNn%c(Dh3Cz6Ae*Yu#i9OM~f$@hG$`6JK|KdyoD zwcXm|jt8vnr*HTF*n1PeCabJ({H6s(9Tj(U)M4gT2c4}h?+mU(SqdoIv;|RTOiP37MD2k536*r8EilXrS&bjwV(zFlLFxT3$IO1&^mgNi2Pb~`Ij~mkZMWY>Z>{AsdINlRIkvciFLQ#(=CiGjYb;%-YNem8 z9cy}9JGRA{E~n$acI#yxlE|jFZGSAWaG<9z?Y2>l-F!kzv&;twvdgpcXRQ}8WYgQ) z0ly8Tb^UGSGg__bZSk#d`}sjzed_B*v~@0IH(uk_$ZhsVJNcl;W@KyqZRz=!bz0Ng zwYPcu8Ln@#TCMErU+@L|Rc-Ux`43(XUu%OSuOHpZZg+dWDqL&UuX>{rv-#}$Gry+B z+AL~=&u(7wV(@HhUb4mAr{5uwt(Tphd9kb3Rz2+H)9;VwP;WfCoH`tBquzGo5-sNH z_VL~^yYbI@t4enLZSghFaA(uo)}P;o-Map^^!0egsEzr;w%+x@k=RP5Cg=aM^|I{; zcz;t$yrpvO+Prbu}K6mQTH-Ho6pXSbg4`88kqjRSe|w|os&tNPmF>-Pp}D=}N&ebkd)KvQd~*^1BBuC$rtK;QPc zh+RFfrsJ0tWY@#aAGop}Kl^}Zd#nb_=CiAZzfvCvWz*Z)yPbbyR}Z464wWt6u04o; zU+0W=<1h2U#m%K0^enUM+*&_7oT(h*<3S?FdhtTa7+NlRlCNiHpZjPhw(0D0?E0<# z6$HQ2i+SIVOHX#?*|%HThb7+Za_!r#w$1m??Sr0vb)l7fyZHjY($MDnN$qjduOx22 z{&+kN7mu>(?Qz0AkukL5*Z*bn+4m!TK#)zpuX2L=5i%|)o6jCE{q~(~di(a^U!%yO z{!DLMf4g=GRMxh+KVY}78Q|9eVfHk$Uv_=$`Zx1o2UYJbwYFnB+^j9<>~iepbzKm;`t@!NiJBYfp#(N*-1l;thM+10veeBi|80Em1ey}i`&%S;2ub7W{lV;2WXrd$Kj`Tv0`2rVJVRfS`M!w< zM!S7_d4V5Lz(Yd37)M@qxwiP#;v!WW^tScF>!7LVZ29)|`T^=}dRv_NmEW!9+xb2E z*$HRHO&Zd!HNUNXzREW5>Di83W@9nCKDPbAU$xKY&u#hWr9AqIVw?4`ZBO&WdbWPH z{hWSsn4Uc6Qd;9?+fLxC$E1>7jy*jdQ^2I0O>bWhxan=Q<38lK`CO=Ny9e3qbI`{{ zkDIijw{Jf@KCqAHhi%6JSTf#pXS-h52VYJ4ZQHH&w8zcQZve?|7u$IezutrQnOMi# zt?<}aIkbzJU5@QMieK-cyPDbbKhLmJ%6s3$@jzjni*!S8YwJxT*>dd4r6o8G-P!bZ z<3UhA_R)&o4hQ-jb9#a=TfUv2sp;w0cJLMp_T<{WziMaaLGy@zc6oMo6dZxmU7WQV zSX=424?enL=(gjt8-Gw<=Ib6>m1o;dBb=VL-iKw216~?Py0sez7k=9&{hFFqeD>w& z7XfFNV^81qxv4E){Bp_kfk1XScH^meoph^u*y4+4S!qCRw|si`wGDi2>j8THy(nWa z+2z>wH~uw=*6nDwj%3FmrE}UTH&{k@;reIgUi;_ z)_(9~**V!Y{aV;Q?Aq3T#`0^WTGhw4owQlEqPMMwd8bHrz3t{9{<#N!zMHJBwLRFK zy9cjg@>Y7;j@S5Qof_;iX6t27uP=6F)7#-xpX2!neu)Lo&9~Oa&i?B?Fi89Ye634A znb~f={O&e!wOeP`;}=cwK#sL7(h4s-yRt4>X6t2#FVmyRv+3=|G1{%7N2aprZRLAw z@%sa<<=gdl`q>YsdAD<0c4#-R^UsFh(m@UGb(nkLZQ^ZTF8|7$Hhyqs*UzrsP`TEb zcw73~wbR%U`c80mId=Vdtj+$GT{{syy}K}5zO6o^+*PC6sJC4|8#_uL6=ch|#n&Ai zwXgfGwtUzW+}A#xZGFH8vujms3s+}cB*iCcThD3Gy6w-=riZZ_Rwd}ckQ9i+^1>}edfL3 z_RweU1Ga}gbN*=${gFh3|JvJsGk@=w`2JOY&-}fE_Rt?gMEI}0`egq8CGq_$eU2p} z{MTOj$7%9*(`W8i5bM9v=lC4upO7Pc=I`ION1tEhD8Flt^uNrJ{#QBD|3{AWC*??g za*p(;Iea{@}d*w*qJ4gCHIntNpNZ&U{`hGdm_s^03!W`)@%8`CRj`Ra_q#u+c{ooww zhvZ2AmmKL!bEGfJk-j`f`k^_}56hAM;vDIR=SY7^j`Wx2NPk(5^ncBf{%<+bU!Ehq zGe`Q09O)}_q#uzZeN~S1)j86;a-^@xk$z;3^t2a9|Fw5Lt9SX^Pk)6L-){M%bEM}( z+8p$+%Tc~3M|!<$+M|xbL;s4s(zSaRjd+BjCAt(9uInwK2L1;go`ss%D z)6=s#^j~}Ht8Y`ZpWYlFwp;$+wL0ylzdA?yYjUK&Hb?q@w3Gf;Luc*JZ`iAM7D9RQ zKV|r@%agy^@K4B-f0N;#m?!@WhJR9?{4W{)$$9d>YWSz*$^W|HpPDECn})w3PyV+J z|MhwDCk+3zJo(=<{L}N~|IqNy$dmtL!#^`m{?82mtUUR@F#NOghx6qB#_->e zC;u+PKPONA-G+Z|p8R_Z|GYf;9ZK)C&d-y-gW+G0C;$G2|HeG|4>bIZdGa4@_!s8M z-`Vgl%9H;H!@oFB{-X{5l05m3HT*Z_$$z}zzd29-Ul{(SdGi0t@JI6GKiTjv%agyG z;a{F7|8ETcEqU_)-tb#~(ZBLXEjr78I^FQ!mS_2A8U7V{^8d;3-<~J`IflO}PyX`_ z{~dYq_b~i-=E>j7@UP61zr^sb%9Fpp;lC?S{sD%6b)Ni#4gZ=v`AZFdG*AAahX3w7 z`G*_+d-CMJ%<$ivC;#P!e{G)pm4^SmJo&2)|NVLLk2L%bY`Kg;kxnJ51ZhX1KN`R5t_r}N~$(eOW$C;uYD-<&7^O@{y3JozJre`B8f zw;29SdGfC?{Lkgde~00JK2QEthW~{;`PUf!7xU!5$MDDVY~Rp8O9P z{#Wwkf7I~5nkWC`hJSOO{7)MG*Yf0l#_+$MC;vvnza>xp=MDcGdGf~%|C@R8zhd~e z=E?t>;eRVn{x=N&+j;W8W%&P@C;vN!|D8Pf-!=S+Jo!H`{M+*6-){Kd&6EFA!~b5M z{5uT)`+4$zY4|_LlYgh-|1eMf?+pJ(dGh~Y__ycD|C8bWI8T1%(EF#Kj1@PCyj|IZEo*Lm`v zX!v*L$^T2k|4p9!CmH^4^W^`v;r}jA{?iQqt~~jFXZXL*lfTID|BxsDnTCINp8S6_ z{6FT&f41TODNp|M4F8@y`TuPA_Zt4}4{JZW>zwnmv)YVX^uE(BXfxkRwCINayd~ZC zLW^SGpTBh|RlRQ#$rS_y0YN|z5CjAPK|l}?1Ox#=KoAfF1OY)n5D)|e0YN|z5CjAP zK|l}?1O$QqB?!>@BmI|MU7gxGJ)7>oB90?W+yCPGx1Duh+sVo<-G=<%HraYEDpv*f zg=Ma?gkBI31Ox#=KoAfF1OY)n5D*0Zy%4bcee3hzOFPj<5D)|e0YN|z5CjAPK|l}? z1Ox#=KoAfF1OY)n5D)|e0YN|z5Cr}`5h!N0BvM{>%<6y2Q%!T4Z&yp>IKyW5gFZS5lm5|XS*v(O7tZi?DhEl$JV(!A_$(_1Vev2! zTa1}PDy}T4xXw`&KBlbL*U+)NnEq89Sxh8tng1li|a78z!0%cKL>)NxN|CN@M7H#j~i(VRlP|33Ke$q z72zL!_jRW)I?CVZJN;2Qee15ty5ZwsE44c@_CN{=H1yp<`%{EjQ*uKG5eq~ZBE&)+ zn2bO4cU=x?r4v~wi|fuZb1-<`ekeehI;jU_ z6oonxvOax*TqmlvEZM+ApP#r6w0*wVEzc zCt0G5gwXy}39Sl!Gc`+<$7EXLR1GMNpeFd4pK#?gz@}B!Bv#EjQB8FXQXkZ08MIUd z0-f84WO1G*Fa?uvOFdAK4)jN%fgI#URZ7)gDVxa9teVc^DMFE%Bt57w2+EK^j4f0! zT3K4?DzVyHGu9|H!O_jv)z?}6{?}sA6_(T07oP0!g|F*SS``0yztUcqd>RUo+NrE$ zSiewVr%NzTmG{OMUl*Es^xRZ>AtsLtF@ar(dGEsV;?n+@_YhJl&xIFKjPjAvUw@+% zqNX|MQhcXBN@H#ZBAvYUn_eNL*BM`j3d{k7h*r zWH}W__C%%3)ZKG9PwJtLnAH*JY20KFEv`5`J<0O~Z%y;Vc;Y94TxpImSLjcG3yKt% z_U4ejwe_#<+};(3{Yq7=FX(wmad{t9+1CX+A=r82U2m z-Vejb5Y9y$b3W>f9QYKz?&X7gp@MQG42L$B-v9ldP>V~0xsfWvN$s+tW~fXEk+I<$ ze_HYEPb=U0M637aN_B^Uq$}8?j4Rm7*BObO$tM3hD)--59U6^?locfa4Yej(vP*d% z4EGgf{Y(m(6}4%XvYyDVz&C)2Zd=5if_MNYQ*?zV2?|(3w^UviNaeq>zP?c`G2$q_ z2t-sIe;uxkTO$`b1nQLbO8vXY*Qw(0%qAnd>W*@Z)Y86X7nSuKS`=}hOoP4AuLrc^ zMk_5riWW-U*l3KjZm3b%syNvMst?f(4is-u7HPWDqE@LOHK}Q8EhJMetfdzqgT0}f zR6vz}sk&K30ALh?URGArSO8>vtqsXC02)ZBy?Pq`hJ&d$V#VlZDU-%<)tl;$v8NkS z$^6k?W&O%%lxo>6taKD_Isl;q{UNmvc&RNr`^KT|NWu2Rh^s5A&=#M`D?@L=c+s^C zgAvOe*Q$(kZl)yto%703!xs9qrqf#gJEym-LGH1Ci4xSC?x5$C^3X<62PaSTIO+N4`+{9jyJn;oJ3-KlL#?JrOV@9OJ^&We9n z;+LSTZuEyvPF@4zJWTT^jXJ&}%wn0bzRW?=EZUyLllhM(1S<~7ebMbY`$7&{tv40; z-~`a5r~lC~3w>y`vxZL|glK%j;8a#pHjufypfnm}Fr*?hgErNLwkeofYoNzRP2FWE zQIiAG8TzF8JHr*pkl^c=B?H<}ev5&yXq_Xyvq2iS;OS?LwT7n)CPPek7@Mu~$(z7@ ziE3qt&L*S9&k(3vgumgMlBwaC&{)fV-MKn6Yob#8hq;ZoE-gXMkkUSBzH}v9NGU4o zS#dNW!?Olj*J_LOr*5&X<-im;bn^8myNJY6y{TQvcC7X->!%gMEZD2GciP1RZMU*M zdUB`v$C#WpJcNLZ=GPSa5GL+iJ|HXI64RMxE9_nMHVtarv#6s5q8X`>V}tfOhf%o` z=JGD&Xu{`&;m|jfz%A4gyL2q8p)<;3jIFto8^0OlXm3K7*RsuE?hOUl&;kl*%YBtf zWv1Gn?4YO&GZ{OVm|?9?P#|?UEsZ++x(>~(St#As`>Y(bFt>AyY8bdoRojfA02sT; zvX5Z)#+DqG3Qa(Uw9JSPFC%}fNF%{Drrij}1ucm#X}T8q6f|T|x9;R?Cf^4ZxNrC@ zBZH9c+}wbwbYMzkx)I6lO)VN7JZ`lai&_nvc7b$5lX97B1U>dZeyQawb6KSXRcBuj ztqRhng>U3CXE!!A_`d$kfB-|_ol#vs3<=}1bg|QwbWAwlR^t;*LY)R7dzNsuvwcsj zx-}U*S?%wYVrT$EzcO0OroBk??ldI^k`nan3f~q}3QQi23+En|utg({ve6}IhjUbE z@zB1d*bRd{hB{VEa1=Fk4t40F$Ei?9d_n6Y3?0w~93-U^45^>5qMXL4QNB2Vi?I<5 z3@IGo!jwAHF_2B|)Q?ouEntjmI7YgnRzpfEEk(uM8*Mlo<#vNlV+^%LTefW3jF@G} z&=qQ?h99`x)CICEBE{DRR}VPnw1m_R(p+FBT3(N7AW5N&x^vB`eY>FU6$B6LL^m2C zLaon3BFn_ugJ$G%TBZ_^{Ew`YzO_Pvx#2CqFVJRD)(jpbQ;~_Q*e?ENUl?pj3oXWK)*TmPE#&qIgwMaGkgYvEa zKxdQF7Ik*o{~dR>wEvI9VG?8({FjZXN%!?&*Q`6tsi?dJVb_#}4$<}*`WZE3=g>hd zK6E1OtZAbuBi`nizI>AON zxaF`#Lxv6uz&CbPS`-Y!AmgA}h8Z))Q8X1Xr~5-!TDhZSGEnM0U48HY@ISV*T6Ck7 zVpa|R>ppd#;epJ|U2P9))(}QOnF$aBF)BnTQiV}9ng%kbvy7@+>DDJh!F`D8OD)86 zHYDL2T874KNbU;M*|&x4AvzD~C1o@}Tm)yR;)oJzHdvMAg7z$f3!3sR$lXVrrc2JgPKgUsL2HoS+E-9|7*oTjG#!F8_~TaU=%gA3?wHin=`F4zU$_9R z0-o)(Ai`%qU!#LGyR;_|?9ANFhKPs-^?0IEQ$O{BL_N;FIJGY zZp*$~5Tcb^#HlId-~VO=;MJ7&X7`G1h}@vzzNmxt1Jb+PX@mUl_(tPZ3#+8Lqh(6x zR0{gO{#S8$&r5q&oPygMWw_jd`GGw|o{?L07#`i=)#2*MpD0y0lr(1FBGrL?%zV&J8V|`)^J7e6&i5X&6 zSr(1;Y00p3%ucuXEM2Vp|BBDhwY0?oH%K=_yF{kCGkFDAhxgyU zsoRSZ^;FfD&g$89&a{0L3*QP?lUj}%7HXX??Rjat`d&ttr`1Q>6Lde6Pu}i0{h6u9 z|Lu3)k}&XbOJcx*wUD<62h^IWLtPjG?3}i1@Bla!rd9NcDa}T>;dTv9-5FBcyWs=) zP82Wk`OuPmtWu!Da43VNFgwZ?w4Fl-fEfRPJbku8z?xf0Rr<~A&dYb7RKQxamE>mZ}sjO$ioMfqRmMrX5UJp)!L$u(5ErK6!pD?U!!* zOnuw<-a;QsbgG%zWd0?dBm)~a)^Z!0_F2tK&Ms-qe=Xb4R2URi;Q+)M-K-Imongxa z+o(iJh%vWbDPcuzbu6oc*?+SBgdzDXtW6iPf^M0SRD+>AaZh3`h(WifNz6zfb0QaS1&8j}nR%=ct8BDvLq07W()A?wMc1OG9IZ2}h^}mgkW7+(ST|$n z%4`)qyy|Tf)R;|^yHrcEGz*$d9|+>!6D^~x_HXYe1D;_w%-1=iRnkS7n&{%_!ii;= zFh8_Qi%kuVchQp)wGjZ|@egx`o*CNf=h3(h{?y3M_p=b~$Jq3xJ5ecXN~u}`xa~4n z4P1E8{S#t_w`<-@$)?({P8CNRKN(Ss`)Q9^$Fo~jv(bSR?UDcoO#ouF8pB03;RXlE z!B&Kz(})wkL(25{z}7&t+NbY}`JXJAwq{EE;WH)PQrk`^EC0X#6D1bu3i0+LjD?0d zx}rx7Ms-Pl^<~1>S`|_rOyp5?^YzdeWrZaaFE47A8|xTgaP?YltYg^j#x^K7)&T{b z_?p}Ad{ex|b#Y{eth?d{H0r!^V_j~?)8_QQ(;x1vK%-VS))R$)QR?s>PG@gdO=W#; zu(aOe8sM#}taYisTp211BgYvCR#uI6R*f3%99duKuU4TZhe@w?`Tag+MckhBcW-?V zkz%K_a!jSWwsM5K)*T%09OLo_++Gi4xvEApU$AzJbA;C$3uie?Zm-MKstgZD{sZir$&{mJHt%kn! zBb+1L9%!dRi8QV9Q%!sIDy{TXd+YkTJT8A_(A9H%&=pW&pz!jIC5th74s z7?+jU-AW9&f>v4&P7Am_Ro(!q{C;CTfn&CQ{YPA})0P$9s zbbp3Aqc|<-t@VxtS|IY7gnFM(CyYD%U$mm~haAM@8s}ye8z@#e!t3W)m}6B{t^kAF z$kEzLe;pMT;aITJa|Xqlbj*?yrRa#DcWf19uA><2lG+;47)M>YV$B>GRqf^)#C5Eu zwsIsFxkbn8yw${*&@t~=Zr<%W=7$ARW|E_|u1Y^zl@fO81TR@D>RCWKKm+sy7g~hH zH?&9$y6d>8K~j797(t zuWx*f8zU6-Y37t_s_#j?i%T!=Kgiiu|UvRua zW!7;V)-b9HWXK?_mWRITm!)a?3?@3?pL|##{w;n>eN3lZj$fr%@;J zu*h|sFxKzZJTZ!*O}Kz&D>9ZV6*p1WNH@o~SaA;+J0&Zm5%1)bFkL)w%<0 z+Ph4mn-t>i7TQlMQ0uL%t{gLx>d}x&8tLXf7d8n#Bf2par@0b?o)y=MG+9xfjz_Jy z-|a=cb>o{ff33St_sN)*QXi-sse6J+31~5K6E)S{!qGaah#p@OoZzqY1btlB?Gzt1 z-e(3vin%@R;7GzlcL7fFR_UG?+Mfsll|ijw14T!>bz6t6h>rnkq-br`sMLTQF$t!B zG?}Ow5uzNec4>QD$1%5u%`s+0v^_R+l${my32x~ z{zuA4aK>meN^VcZG|ovKuW{=d?dk-NpbjHnjn|9|2M{o$J$iy|IDoSe)45@tYeCh> z(Yi|A6*%Ip=9X#Vh|lj0x~f>+C@0i=4DmXOdMZ8MK&{KAYtJd}DsBH9sdd&?de9NI zs&PuQM&2z}MC+BXqE@Y~xEXMh6we%Qcj<(B-HxFHDLXaqHgMGKV^zW&@dn)ExNzOU z8qyWp94*{EXs zB&0!tOsF}F3g+c^W=M&*m2WX`X)6;(n;J3_HUvH%pQ!xpHWUH($ZEZ`A*!T36*=xi zvMY;(EiH5qwYGOG5j603Yc35R1atRMj0d1bok`v~(MC8L97XxgY)G0~WmY^84CE%w6Ry0l7>7FlLyYsyTl!wfJk6ZUB9TnqPgt+UAQA+Tbtvx5Hd zR&I0aT#&Pc;Af7i z)K1aC)FSoTQ*Pi$%3}*3Ox=T{x_?mil>xIjj8M#9X{N>|ju{^{YDLWOyv~Z(TFyXb zf*#VFtt9OWn3y%yZn5GtsJC*y6FQe_NhoelN44yvP8f@A1hX^E-VtKmBR9t(yyR3MID;qkLprF;W zDY_w*U{niR2`Oi{(WDsHHe#ZNzR5(#jHu@h5aqagq@G4e&vjNxtsX=vEoRcNaIAKF z*d1&(N!DN$=eS4jwGhu1PDsZS91m1g>IK<$jv8+$A93Nk2btcba8T zIF)EQbB(DKJwma29O1+&^eVUljAfHffr(iuQBE@kjItV)|XAviug+QliQ z-Wn;laLgJd5;|tBNVn@~3WjvlpkNX(@@tZP>N-=O;+Sg;*MIevnaOCis>a{%!(Swn>k*Eaf*laxE0kly2Xlm^(rr6 z#kGxXH_;l)(NCHLW23uF)Uwgg5u|igz=O?5(yhV7Et?FRc+ktUWMe9-w-Zv)x)I!v zO(tPnjow*|a=b3RZc4>NTHa{JeKmwUk=*I2d8 zQ9d54kJ}xpus;@d&R)F5-q}CWsiryt*ptD2w^OZlfa%e1sY=O)Lm^?;k6)0462G@@ zfEUByds@uLjt(mE&A}iG?K&9wy}X{Fdt|-0K2R3)yW!TWNd^6Bku|NLgNnUJBv3Pc_*L^0U3QX2}Xc=c*wsf)evFAACen?eSD zccCg^;5l|*p;Jxh&{0M2WtBo(4~H7jHxDPnVXhZDK&|CRAT_z*2ukhks#PB#F}{UJ zLz5^>EI!;ZOock4PT#YDJ%=GRJRvP+K}S_+0GZO!R5098S5Pe>#so1Y-#8pKi$|zt z`=@HQxr3?MryY8`s=U>%KA6g2LqBxjimvKd>hk&3vmLd<9l2tgJ7!k1xr0-^g_L5y zzjC~~ze7OXw4dsL_R^|2ndL2q*IVmUNk@H64GdF#T!0f7wPruG(d?s0xy7dL9B zKHLxXq;A-sI>oK~vj%IxlK>Ceqmc-?!@R8XwjeLsbRxlX{Z1=yhtAuHywKLuz`!l5 zcJEKeKc;I<>jcJUxB^d8809eb)KR1ex{GUEP~G0CH?5=VtAf}UzN^z9axU-fWEuN| zkPv!~B|HhPf;u0$#UFPH46DSDpuV7NWFXwg1w2b(qL~>`aJraT2V@j8?*J}l(E(O5 zkps{*9;K%5NXR_aslWQB6QR>^KpEmI4q%Mp2LOGHt(|; zFiJd5aypQlDF>2_83&S#IR~|*`a5?Ase z;=*q87!0av)j=?4bq{C~_p{7{~Y8c22>#31Y;VOwh;EdBt6 zkywqxub%oDD#r29!xZ04@lBK;dXTBs)j)mS4gKoVpY_49ADv%*`7>28(&P2J`p`K= zKz;Bt50%a{iKr9{Fc5ul@WnJc`qekck8PwJS7n{reXzSKXmpu<2sl@9k#Xc7)Dx3b zptdqF3gbpb0gwGmS4(X&wNhJu)?dv$_#zK>e7T%PIVu2jom#Gz(npH z>A2V(9CcwmJb}%Jq6!O+L2_(1hv8#T(O$j0b(qY@sjm+0?X5?b52#%rjLv708;*gA zB;V%_RUAmses(C2ntKlIUspM@IG`ET{La9$HWgjmnQdfQXPPfv&cQxv{?SsJ) zv(wf?QLa-pb%tJ%dgv8iNn!Mkdg#?3+s^P5sxiFOxJRmKhYcAY9OdJ8xJC8uVHabj*DM3*L}WW= zAMOom(qa8++i$^PWGrgkVKfHpI1C-6)H-_A`~9$X6*>ZSd4^KM&9$fzy9*1Bpfl$s z$cjEr1%z&=0xp61BRB3hr)W^>x?Pt2*1~yelEj`ETSt-Ltry>_H3IK!!8M`9j5Qte-2CO)USfB%6lv~9Ihy|aI% z`t|?}Y)-ZGK=iJF&QNb3=v6l#i9YJaa=Z+-Llfp_C@VIh3!(HA8EbMch0#3}hIWu` z*Ns4*e&HyRtzJC}bl2fmbI`15!5fak7)R~VeAGafdh@7@aWjMN0(^25SzvFR{;7wL zB3zS4VM2WklV(R1ewshxkMT!x1I?u5ht_GVqesKLHLxFz*{$BCBaa>pg#!Bf9Y}!*rJ)kr&C(4gf6hJ8@gb^#MGcZ zJI1SS>;h?z5nuG_lPtcqNDQqxi4xaSR_wu(9T=n3i%3u0P3e(4Pl7jDqn_$gq-my@3DrYV|3HpsyE02ZSaW|5qZ*uY* zDQz|&F+PX%NG#NPypEK}Bb1U{mm>T4Sel0TE|7ZrSZYG`1(gC$%m6{P=UAHSZa5CT zc`ZX3pHCo$zN7LzV`+|7E06Qhibmai9E$vy^oY$nMX5tDp;|yEj_IXt?*gZnOIY6p zCdc1C>Ovm@)o?7@Fra1~JJ5w|Eo#xRgIwx?V~2Qss`=P5b>net3%4FOR6TGUw{Sph zJdS0n_;G4K$WWh>%^BO;ee@8&ciedN(_>0qW031t_iD>91aBPURIeR}3X*4{8jr># zrylz`>~A5~O0b$GFhkTL;z1a{(}Sv7>om3C`2I8&VH2I*&n3qLnFnVOd1N*b(mJe+ zH`xQ~(c{@-p28|Ie%G}i39Y&oK5Uf>J_LI2yGRdDr7~i(IDC@JTS;MJm8Src9`;Jf z2USx}7^Y^NKrI5iLnr7p(VP@c6jccMyi{9%LcdB+b*-y9U102lQrdjY zNO>9}B9lpPwDof*U{BwZA|J>OSU~+mH1|^hv3oo`m-fb`oMk7%=$3KeRBXXOSDn{C zUOjLkmTR@JnUomy$cd0XHXXnHM6Y@R+{sDA9bQPlBtN}|ocrBK4!z4lw|N|9fivS5 z`aQA~7@(z!qtbRll4X*7#8>EMc_T{vYLhSf_UU2QXiH6mrA2QJ9>A6<47(L8~bznQ3^&NxF_S zZezgFTS9YALVd3z&p5HWlG^zRP8dOQLL(^Q)sx_6(i-L2lS*L2m}iM%KCy(CQW&|J zzjK(FTT|Gx-d!7{$>+zD`qp|!RMuh|I+=_YUm8w^l`JFrc!V5vT41SrPUdysx|3A_ z7clE&I2YlXC`(kjPTk~g1%k!t3z!FdY`KcKkk%6d1t`Og2~;kfanK4Y*_`rss5 zw|#svxvf^2Gf&~Ug?xQ+T#8-8$2Frd{PiEKWkyc*lMg%uR~2-^?Wgj-jE<~6m2SgYBj$Z5srfZ7qVa8A z(kuKCOYq0`_wWJN8CN2zHUHAn;Lhu>D^62|#dHhQ%Ddq-ozZw2AinD~%#7~ZYP2m~ z4b?f*PV;&^#*=;Kw2rEAJJ&0I9e-?@0AHLCU5TC90xXn!xWwk zCz_4^TCToq@}h^MoAf8S9x-JuCz=Z~gmnV!7_1H$jU)!2J#ssDRm zY@EX!4PSx-Q|K(j;DBYRGXD?#Y0*w5VAXBOAJ8@HjGfQ=1Fp8+@&{Tyu$V2+vzRhd z_8)LJ9XC41>gao*i+#$aZuyS&nDF}!(aM5v%RA>qan+{|Msn5|+MwM~3v}XIRqjI0Mc7DpQ1L0K*(ax8$EZgVyVt&ft~QI2Anu z8#r}+)XPW+!nL1x#(1?2oQdVk*|dlCNvtLTg_R?8Rrj0$eermKj!ixjrylz2j5E<@ z^O-aJ2!CvUkUwJg;{!#~UW+Du`b<{md2ph*3t)x)RuQXibwhM7(IO&|5#Z%WiHzctS-c>Nfzg6f6e_E!^r5645T|9z%;ZT|g0 z^~vuCsf~XatUmd}5cOP9srvBrGWFFNTk=P<-M##enBJR_UWnCEKrQ%VFV*x%p0h__ zhfA$Tc8CSVSwu7~;vGxG2cSu&MZ5tKpJs^o>5qzzi&X57v_UcPPpW`-E}ZP@g#YMN zOOWJLU!7%ERCoSKb*!y*`vPvW&}%r}Q*SmUW*_gzTJOgH7^Bv78&{Y?cVum(#88a0HvAko7(e&c?#7qCvpbHq=&-6d zfBF-4P0E6p^YmfY#O{M}`+&W`+1*heE7lJiq3Y)Dy#K1A-C@;VeMbh2UHK=wqeJTb zl38b?Dc&I!;;&Pf*g}e!ZO6OLHj3N}s_@H{pL~hJ5Wb_?;C7#l4XQWJ#+D8p<2`@& zK=lqt6G;}elfu|8kQSbycAb5e+H-byHR&7-Oq($j0gs=UY!8LW(D6*R^qjNQZRd1X zE6<_BGo#1tXY;1$gJ)BteR}o~GJ|R7@Z!Dk9DS^*?uOj>hb%V{I)Npgz^h7aoZp>; z8eT`~;mIeE?hrBiT+17te=bnq+{hH7iB2LK{b&ycoO{nTzVd^hOM)NO`s8?o@d=2qd@i@xUFY^ykDWU}eRM9i z5!JNw04=K#+j%_ZsOSzFvOAWbfO4<#(tkRKKv;O5j+T2VQ>{IZcGA|L$B@L%<5dV; zdc9r2iOF-E>KTZSZ9W5n<8!bfp*O_lp3nIU&j%(L!GAcaT-oOt zl#eJ3eZb*c1Q4#3!befBo=>CIn;;Lr&4kEAN!ut)5aE8s9**;&!@(? z{sKb(g$rmfx$e)p4gRb;;HjedXOm~=RF9qGS8L8sZOcCMXDGgeZviZ(FvMX3A?-TX z)_Ft#Ir z9V@lHrx{Xr^rV&b5M0@#4VHk~39iU?lIyCX8X4I?^u!gKl<1p#!33U%w~YazAxKJo zPO_srh|hHOc(3xxk?OTxP$I^e8v>5rwD0$MFLbDpxKR2QaJygIp$;}gubeyzOuXtN4e_dlA!vq zq<-W`oU^ljJ4?o^>-%EPd>j0LY3JV{EcQK%P9{-j)j@CYZ0JktVA{-nwl8ffnCD1e z>^t5^8ofp`z9#wuD%BT#s=Vs@k{TKZaG4>XZZ2`FdrHuVbQAKC65OeWn@kRF3G({l zc1qu|uFBDV^n)q=P?u+>QkBBr%;K88z_G~f{1II-j}qha8~Ec9DzTGO&FqK1&JJEb z7w_+F?#Fxbqj(F~uiol6vP!+z4_jn-bc8heq@Rx-I8a~qV}E{EzYZ$&8E;>GN(c9$ zP1McP`&Uo(r*U9Ye;x;3>JK}7^J;3+1vD7NR`8J2#NnE23bEFM%nsgz=Zl?4I zhlw|s3*YJRq3J^G#I6QOoD%leXN6z&$1Xozs@~O~jB?tA{piea$%O-Pl%kejILM{e zUZ}@6&UoxXI$s-SE?K?rW+8}Q8$fOS)&LxR;Q4EpdUrsXx?v!<{H+7|n9jJAJ1;V) zBih5VRgk*2N)W4BQl+Du{Mg|2jgX|P#9s}+Ngc6--?%(TcL zzFoEoS&>JHDY}XU+|d;{p<2$M+BS%8RpHA=APT)q+3|Q+$3S{4BQzLEtGTc{yJDjj z{d3A-&Y4R&&qB)n#^anf2%8RSkuEPbXb@JfW6U$&TL+b?&j$_l&^1>VmTi!-aPTm% zyLt$&6x;nDcKtX0g)Jfe7hL_Ia}nxW zy8UMk!Zjcy)7k%L14-d;{{n0H7K;(c-A4T^{2qmo_bE(1bFk$puP)WrZx$gbKYlm`z6 ztojtuu&&~ZYxk5v%`XqZsH%s9<)zd)o+#~C8K7nJ-cr&jpca+UaiNNo4RCoz;`#m+ zWo2qznK@g0u?(w9hG}sr%??hrnWWw@o|KqEVR-U*6c3MHHy&Y3heB#)IdDtG?k)#R z)0pdeqGyt=Q;cqF7%}fbv8ft{C z9;%HD>kQIk`A{vd+^g0OMW2T!p>8YZ>l=H^^-A+;aQM{Ra(`eH?Pn*3Lh$4w5ZW}gG$5#%cOE8!%)!oA&0^$JGSoOd# zllm4?LwiYl^!q;`ub60gKK*J~y|1@xMEyuw6XO=nFtwj4W2!D=<}kEontrZTfK@F*Y6qDQEmSYvmc~C{SSokjsHLyU>l4z`D+)0hQ7RYvEp+RWBV^&>{Rbw43<}a zO)Q%z3~#}WRUE|7HAZ#)aC5*pd${SZ^M`|c>#xz<8pCwUP+u2aJRBv_eL#JER;?S( zcJ%0Qg)5?qFQ(fV-(HOU)M0MdSf_ewIJ|`W51(?xLPFQwLS(QUl72OSL_wavCpX zJ#U7v;))Olr0P9^T)&vq`_YyAQ+X$CVbouYrOMCh0 z5w$ba2bcE2n-Z}2RG(f--4Nd}y_Mn7voq9}m(qX|yNnv+!^>z1<*hQE@SDrHvb!&% zM!}m)KDh+fg8z!*pBRhc6HkprJ?X@^tO_2adgrfj`1IEg{tDNd)*dha6+IQtfn&_+ zqdq0pPr2Wt_w!!CXtn5XL-`qc75N*k-l|CHOmvp2`A(eA2kBaGs<3MP66hjL zM3-R1BX`jE_&nkX;P??wbMLL77qm>SM2+WCW_Su^rXX2@YnKGcau7t31$hrs7@fm9 z^`txWPgJI>_bliV6OeaEvHI|DdS;w@IqF{LtyVJ$KehDo{vOp>F+e?3F;Kl;F~~KN zeJS;I1t9#sVu)8wuPjwfl_~rlsVrA7RuXIk(N|ow>xO!;>&ER^P z{&0kzxpnOG5m-=F!F6fiMOJhwK2$+3I)7BJRpB8Ex?uP=2;$Qk9C-HQeSA$!)C;mX z{L!qB?vl@79f?`8KFE8t;cE0C;>i_zE{UVjznYt&7EZeTzq8nq6a34=8Oz zY0N%%ax?dep7KL<@><|z;t+gu8o zft4P-?W3C4Z2@(I8>N0sP{PYn8%FW6_v=x7*X%|&F2nMr&3izVyq~~{ zK7E?ysc%7I_$AUJ`CQ6<|J)593|A4qmS~QqcFM&yQ6S*HO|%Q=_}|+Xfzf!&w(=hC{sQL8tUjOc18by zdRddGPp%m1VPcg8Y4S5tKKU?(k?-g}A}hIgG~=;sGzwhK`;xCQ9YRC#h^BaAH1C6| z+egFqAEh1`je$fx3${4#9E7imul1{E5KpWo;fW|Vz*IhM=ZvSBXSDQf8;J*A+`U!f6(uTqMPIe14tB3rc>1d!J!X|V-)oj=%e`n{)#T-~NwwOG)sweO zz2)N>_H*AbwfIU^$o(u@RpwM5xp>@js)w$GwqKr3I)6oB^y|}UKHE+{G(SdW)&Y0< z;UpXTz86nw=sRK$`dR*CelY$(^I8ZYwhmf8=kS%k#d8k3{J2}NfG-ue^rH_>Uc~J2 z(>5&LGRQI`0SxU`qibEdP;Bwxjc&IGpxd|54fFe#dijH%tr@l&*Wuj&THy<}1cba$ zsip^cf2~@}yDdnSqOH>C{ntA5?XqW(7Fu^LRrJ1V z>GI?AL7lM`8411-oOsY8-buvki8%Hk6aQd{8|oo*GG{zy5idhpatftIb@*-3e`W#=wVa|TU%APXDY+3BCHw&B@ zV^HiYqDrKMtOAvruHvXgW3-QO4<1S>_KfF^h;2dsm{pJEA~wzO*aDo}E%jw8HbxcF z{*(F`uIj2_Jx-)vhV=NY^dMPuGJBEa|4kdq?He8oRUhG@B}QQ^K|?Ke4b-Z!`j-AZ zpons+N39!+doHSZtiFz|R*dzk7f8U1Jg&SztlV`!8mo6}KSyR_3&{;VO(c;`DUxa9 zG)Z_Is{SOAgqtZ7rbwmVJ`T?yVbQ4WLVkodsFI083iQI^-f^^Wcm_G4$A~lXI&ta^ zr)_lmOnrpB*aj|m6BV3%E>-Zv@w(va#{(7A9E=zW$J0;}K~f}+qyu`XH*pkOtG*t~ z$IFw((b{yuIJj}oj~k#qx0L&7T$x%iUT0P@Osq9vSufmoFKMb+pDj@JKWk+72FtMFOKCMn(Pp8%U(^`7kRlU@bt8g+} zg?nLY%~jNt_gzI7`X9QA_vs$Lire*>tBf`rn|KwT4@An9DmfloIak3F=r{?g{B$P5 z@LmqTKa(u>_P?X>ooB*YB1=&$8h`hhG_h7+Q6IooXEk==18Ujd0f-g3>+ht+y1#Q# zkN(}CZ#7yxx;*V4UN5AzwfRg zG^bu`Ezjm%JJdt_FV!Xd(vn5jqJQJ^*EQDt7d=eAe+@kzi>FzP=`Fh!OUI|te)zcO zI{HXHsXv~+&fyq}wGmxenDGx}Z$vs8roP&(mt&LvLD!hH*QDnDW4QTtE73+-Mtn77 zXseI^gEuNx{)5=n>!67(m_Wsa=HLT;3)98Uf8d^(+Ks&EP0Sy8o{F>%y2BxdDI=h6 z3^`EBvrH9wLKik!%bPxdulhep6rl)bB_>cAbW3WC+7z<(w6=sCyy|*~D3i;WG6HU+ z&4lY5q|Wt7-ye(ie_*MG2jOv_NKFVisGHv$a$tf_V-QgHhp=-Oa0N5d9tkAPOqG5)87Howe^@_b+hfc7E5h~+Q1Ok z@g(;og^5S6Nj$_Twe z#bKwIE;ZtIwAwh)F&6Kji%$fY`t)qo1cy1OTsOhdhm@juosM&!oxt!;nCKYbqI>5i zdF4dMARPWqbd;&rCZfe6KX7{|ztPS9HGjmv+Af(o z#o^)oAg8-p&7XqTPM{p8R^hA34tV%@7?|d!?@_dV|Cw4sQWF1U(Q#cuD9N#esScH{ z3eu92Q!*rd$4VraA*?G%@A%?p@=e7SO?7y%k8WbiaKes8cd9*8P<=nXG)*P!zSkm5 z3z-j{7}50)>$VKBKKtv{#M@IHc=VdC;JiQ8QLWFkKb`8}H&uT%)iDyC>iek0~M$H+7~s+!&25nyphDgpU<{cZ$QW{cg?mF|bveraFQF z^yFDk5^F%z&Z$11h&`~E8qj&d?~`j6-$P++*R_sPoZ8HsMxAaiB}Mk?qzEVNWH<0D zopkRs%)oflgsTegrn7DXPMzk!F`_r<#VD@kPIC;wmFr%(LW{npR!rmPDb$10&_eNv z=$B}y75vfo*7vZALR^HvHYm90`lOmNUC&H2r-MGUnF%9r;6oKq2OX`}OvgwObA9oL2DVp0#OPMHb1$P+{ndW$INg?aph+47kVzOrP_ zCR7tsf(Fg^)_?NapLT)+>N#BQDHy0$&veikhI*Okk`EAFtJv#i zGsd)6!k*<+Tu?F_CZSmlJS;RD>P1mc)b=h4!(UODK;1C!-o*wHUPVbsYJh_>ZV~=4 z!=Y!388dl%QGGBIbAx($wxfT5_QB~DJnzmXB^eF1eKz`bW%YQqW45Dg=#U|UOUuhr zyEJO2R#g2k8>TvzADz7}teaU)4WkF>(fZr#9T+XJf}Q4oIlI&=(;fV-p$}&`P#(6n z!>CUz$+xn%Q5gG}?qfCRpbbTkin+m{P+p;})t)OzlC{ z3ZKsu=L0sglAk_5xm^1rxGHMP#9iy z9>T;e=Q;Sr37@mb>nSI`;{wW=O=0*o3gh!Hpo=}+uVyZ=q|aS|mOuTErmX80ILd~d zdSd~G$Z8i!R+DZ-Yw3$$U(CZqIqybN>;uLtN$nE(qz4bEnQGnC2%_XHYSM71nCu)Y zo`)OZe9)7d8z?vN$+?ufst3BC-g>;H(cw|e`045KR4{f#a7jzO+327hiv+QRCsM;E z*(So=;sZx;*8R={2`X$~j{rN%|gPOd^ z@h5fDBG|%xL?0qsD1Z?>v#5m;sCOtg`t5o9F{*0jLaUk8+=Y&kGRz(HBPD9-LdO90 z{K8g^skSXdGk!oq!nhX?Q46Tsq!~9X#-%Q7p1M@?Vi3i@=9c`rM+(i4aQ{+2DWqOl z?6?xsTDf;$`!EX2r%L+7Pxa0ewvcAl%$ex@6k!Qj&+4!vYl-z{-mge?s8V?IxqaFb)O zns<}c+1A{Y?gcTrty`vUS>kZ3*Oxf-G0z7}9Jm6Zo~DA5H?YYqAY7sdu}Q4kh|8w= z=Z>4PY~m|bYi@S%xN+ajV2m#74VDmx@d(`puEYBR=&eTEZ+3X}cG(Wx1m;)MneO}U z%~%2MB<{!}>RseGdero#jzE7}lhBmw$L0_6V~-K|;TOm(lknKbPVWb(&(|hfH$mJ|SV@AE~p#Z4cro9@FE?OW`%)_iWUbr4AR) z791Jp2s0yKNW9KX-(2jVQ&YV5ff8ePkjl*WWW-TFBA^H6S12#^AgkNZ0}e=d89nS% zh~I3%>K-q5_#%Q?Uq6DTzKPI`uXYnpq!DNzTCAovI_M$pY76jzSk~Uyh@o74*l6rh z{j|u@N9|b*4{GMkJTE^)NUm7wxDe|D+_7Lc@9CwqG%@$(!TA7a~<%=GajOIsyF7r-MwQOrr^ZmSfjxj zR@2+JqSGmi&pVn2)*;@&U{CFMJ~jPzIcgkULoe~dB#vvY{z{cx&T9X-oMuyENvp){AzsHr$G#?A2Sr7s9P;GI#8CILTA_;8s1#QiLu`8_#zq z(T1bHg7gqV5`%f9D##ZeROB{zq9#SHxDBMqL@7uUPm>DlyIRM_gS>Q=j-JfJGVnG> z-(F6vR`~Rf;N_9wrQ3jKay{?_QtKF2?0ve`j1>-Au&TK$DE}L*{?U@(;zMhLBYdvg zsuk2Uz#os_1=Dv8?p=Y(qeXbmajHct$Ublq_@X$4_%H~ZobQjrH1qjgc($IHp6 zpST64+;}UgJM90^^&Ws$RM-ChlymOARL7PWTSn7go_QxGCZ?E-H4@v2CF+aHAVv8p zFaoxim<cR|E|5(0KWJB=fK?aIct}- z*Y11v>_fM|xN+-Yy)_srp*@h5q&+YzcH*?PhQ25RIP7J8(abolwTO@g&ZpzC-Rrvk zm4B0p9tKfExRgtY!6Fb2FzGi0+VZO7^Uu?21dd<9n0pAcO#2^6x$xByWZ<`tv@pDZ zMXi@!-oNp~8v3$*;prFu=@M(y%am=4DKGRQx|c7l^0JpPQ0!!VV8jq0q<2Vco&d8x zXX#fjLkB7o>ku5Kl)Yb}*q^=`u9GKkhU?RLq%!yw7{ToMe)SdPj8?cog#i20ko%wq zduF_1Q(jy1Ucs=9pHslh_!S#tA8u*sxUaU@Cy15@0e83FrO=W+X0#lS>5eed_#X(f zLx(!{o1>LC>3;H6n{(>9S1GOiY1fK+8uc6Z>*kt=_RXIE*{@=XV~%8@8&sHqBW=`x zaRGk&Rona^*D@2v$U6~NHi@o!1YP5acjECNzO!}rYjRudzSqh@`oph5(R(Q}Bzqri z=hLs7Vo5fh_8Ml#<*%E)^BSVX#!{oh#MkWh)0d-8r0C`98)<8(K< zO0d#`7>bp&-9WvFgEU-nAVZ61huZw)yOhP3hT15Y7o#~rMYyG-vDMI_l!Nb(|MbCs zn2LULj|0axY#a*hx>}=#+EnsCCdWm;e^6u((YB$4o^3)`L4Pp)H?3|D>)BywTduQS z8b;QiYgAiu2i+N&G7O>J*zpqV&*?~87ikP-x(jRAFs$Oy={(lVVMy0dww&r`c5G1Y z>>7sk67&&!5kv(O>Kjd5*2BY)#2yFV!g~UdTkj6T$N-NrS$7R5jUTxgN`CQzxy_JF zJ(^cO=8!1E*>~8h{J8!U%G2J z8usp;ue%=W;UnNI`H=1&>y2h#stGVQ-=zFKu4q}YP+`{BXN}<1hxsF5mX4k9(9F~k zwmC}3T1&_5jkyJ0>0YjRtB*pBpm4q7&% zr)qDO^z-4|C7b>A8;4V~^}q;ZM922%WhlOMgk87#q^SAwQ2+VncYR(-ZE20H5h)b_ z+T?Nijh%7Ve$j9&T#TVF&%X5R3;$|OAC93%zmdqZ$N4$81Y2Lw_i^zp_nVCxi6Jum z*qxj(U`p`#kqCu)!~b0#sQA1#(!SoBOd+RS8Zy))By^T3P!s4H&$)wcUOzO-tby=7 zc|@bVOSflfw^N_(nx_l~m515~VMM%nap4dy2G!fl#*5eP zK#t)-SUlGX|E7$Ra_V);?4d>p<1odwYE5HJ)wch@o~wSZo6e~`v*qd6v2_Jq?hCJ@ zo5A|{E3eypilT{g#Or7R`G8IS(LXvr!btj#!nAA#6t>1vr149g5K;bw8Lq^Wk>A)k zW<5UIzMAlrjJ=*SO^&JD>30ol@Pmven$bx3@^wt>LYzQ$hbqus9 z#*rN&}*YTAWI#!_%=OugGc z*K|E94{r2bZw()d#()m!GE04<#~xI5-Xve~rgn&_Ze?TtXFXUy7SZ)*TfD`}Wq2B& z+H2Z-kE6SKcIe#A4P&N`R-bXm$;ZYa z%Jg39lVT3}@z3E1Vd58dOi&+;!Ia;#ZX+B_EX z-|6EpiR?Arz5*tp8u<8l`}&Tzb?AIuXISQ$@wW9XY>|fI6C2L7b{%n+^~EtbTjJN} zSbP8YCu_hNv^S21oV0fpeTDVx8Evdp=bdlecku<*_^bKh*|ye}b{AQLy4S54JubF( z-ExWbSue~I?tT#KQdqS{D^_k&YHN*u*}mM`@{0Z6og=<=_{ggm{J#h_oGaU2+UA0@ zFS_i~wild!h1KkKYxNtjarWAERDPePQmmh(Yx)#jSFjjczg@;oy(gf4VaH+r z39_hf-9N#Mj~)0jCr*!EFHs%;+PKRmdQu32LM(&FI znrK7;VEO{El17Ys;5n)=4Ki?b|mQ1wo?49uiiu-`N*X5xcSrRflJQw!IQ{BX2WQ_rxmSLU>(ln z-I7TNYB_J2P6i!Dx%4Dmi^u7z%s2TQ`kW0uoUV@@MqRDBKk@k_OmH#c##X2gE$cG%BaN)eM}hX;aaPLQCtNsTe7>xAau5+e@d~=A`D8Q+egiT050TZ<{EN1fg3FwXEBw zV&aST8h4{#ew!rkkc39%*6_D&ZcNYYbe%QzZDbf`ejU4D9*5-z`%LT8DP~RN(Wz*4 zty$zbA4O9uJ(jNd5KORKoM=MNBJF$I^yubu-)W|xnaMUi`9w!D-!qM(oDHsspkbZjOl#5<+w>qf?)PnUR&P&3*GY}= z>GZQ6G~=Y@6l;U=WsVX~%vGCfM#l=f=Ez~(|H4l}OsC?Gif;{>j?*VG;=)=V=B2}? zqfnjP_JG4Dr=uLcKAjTWy9<)4%r&`-K4*Qpm^R3)*nLHA^lm!CSPvwr?$xE7a{YS- z`QJmb^giQrV3&g{_}CeUm5=H+XZ2wBxot|c^_KCu56a6HjAA9*rT?y)$5 zl?PLqt)VFQ))v^^8Z#3K%6k9HBvT$0w0g~AmF}JeVLaQMtvi#BylvCTdS;g0)*NO| zU8gmeTx3JYMLvwK>1evf_-xT(zXzPQ#eDIGbLj`2X3Ubs*8`ic=YAv5MHFa0#zcEJ zo!F}f)8}lZxxPWybo%%010fEZO?r+a4G*aH`fU4BZ0tGNnn6K&+(;7DDh?+LmVy}Cl_>oMuv zKOOGzb8F{2RA{>~dewfexjWQOZPwj-{I=q+0$~M@k}&$;9+(29_R?fHm}0`e8?;8oHSs(cF%0 znQLau44=$JKdE@NlG=Ax#@aO(Z9A13%CjM47 z&n^>U4wN*hv1X9BbUW#iY^H1W5qUPF1`H#tujirCne)!9KJ(!;+XAt>zkOmu?wV)X z?g8`d^KQk+Mb1)u-njpSg5w(qFVDxqQkRZqH4;MsDj|!=O)`iUX4RzbxW=E-#5(_o z<_KKJdoQ3I!)d1rP>%k`tm~`!Hm#N4zkov7MlrRso?8IZ(8H7F#9QkvlEtH`J4;`n zc#`Kk(L)Vpa=41Z#8Rc4G`f5NR_@zl#7!%^>&auW2Z1)D!RJ8>UaRKX+$UaypU7Q5 z7p3GG7{Ho452OC&^Qp4P@v7G6^X&_)sS8jGb}o={7V1%Vb2!k08gZK(s^hn(VGpyk zx_mC$=EpRmR%=M-1Xr{+*iqBdx_2Qd-nrB5)KH^2_d1TEdG9!QHD@24eH-TH z<@jprLX%}}=^P`hiW+sT&lX}DXbzsIJ%fMcQfTd_Fx9f75t_o8+9=^m(9gN&&{5Tw z;Fv#?aJrF#f{pq3ltolM{tv;-MfUBTta*zNTJ~NKR2a4TYg$X}&wpb2gKiH$-Hux+ zxasleyQsxzU9PpBde^3I)_UPx(qwW^=#Wn8S=RA6^ldr?n|k@z46ulgU)!RY-vjSb zQ$p)kuf9vU$1CpU@tcJRy!^siLm?y&nvv0T>}|(xAi5??Z$TEBvB8MNhz)mCtuc$? zR4;*`974RZ*z_dy6tOj7v3;32D&0I&OaqMhR)_w+1e;+ngosPQ1jv{Q8dA&utA_LMeXD1p2B84jY3pIKpC-_1+RJ z&(Md}OHh>1deP^15lmNW19{Vk6Ga3Xna2BeYv593IvuEO=Kt|h@@0Lo#KuH$&{BBF zMj8(z{#gzXCeXK9o7Kx9BrAp+7r3H8pM@^b`d}$;;h9hC$gvt_W_>2*nXyIj{DG8P zdzb!?RNu9X>chncsWot!eK5w$(5Ib)TWW1O9sKp)#b)656jEyqUuwo0mql&PvZgFG zqm6}2B?*^y!fSaKYnmeJ(sJv8oEFIt8_mW-Us zr$KvIQhZV^!b4~x?Rzf6gyyoWa192+z9J=2q#ImsnGF|o4d znV`}WD5&v1u3Fzo$-&%%fAZ;}6=v5SPHlO71=PSk|9e+p`tr;QsE|D7lLcPFK6sRh zm~K^J1%fO6J1cB@()dE^(ia-XGpP+yADBp9q6p(r^f`T$0#Wy1dm=(yh}bI!V(;@l zPV6$P8Ux<9|AdkM1MipW40@mJiQf?adWDUO_7sp#>^<;gDJHGu{rgYggtk&!yH;TM zH{*ROt_7)}Hq$lFj5?2yI>|^nyalFzXr+B~mosQV^%y@+`&4a=bn}JL1C#6$i~ay4iD5F z9LbKAD9KnW?e~Fgjtx1;&&w!{El#(_t-xFhKVdO#1?*=nTY>Is2@H7VS=di#%fs^h zR@(a?&%bvi7Nwq9X8q$&#*bH9b5_AizLE|`h}Y9KT}{U$&<)wM@hb#)`eT*d z5hp8mWx8uMoa@EptZFc**qnj5j>MXT)tK`tks z#dPB{H`mQ{Rg2&UzlCP4T1}05_nz!^&uaV9>v5-oN#!sH{WvURzudl(o_b)qHz$?W znjklRGg0s6SX(@h#`lcNkKv~24BRtse?15A#VU*~hOIs@0xi$_H-^bpn<+9oow3@c zsXxQq)pi|&gd7Wmt8*xSQ0L1IzRszdVEDgql?;~9u(v&@GZszytbx+$PP&Ko@+dqC zgaPY#{Gq!Nyry&iTKnK9Lix)_*TPpe6ptdg7~$cE&hhX7HC6rBVtVz|T2vaGc!IGA z4Xh@uMMJ6QU?(hYT<{8zdKeQfw@nY~TVP$x7Oc%{(eCoB0SDz!pZdvK`!c?*fw9}Q zSpB)d`hud(zoZ)#I-#4g@oRKVQuF!cBb_!KtSRft<*}LTkm|DSmBq6O>oA8gN2JVK zM+xuSg$f^L&Fj`-^|bvBXLkSJvq`JhdN?iKp$A4)OzY-!R1NPhCROn}Wb2XQ$QniN z@+WA0J)TCZl6p#H9*|u@f_OG9>XDW5^)z$G%*onH0yWXx6k9+cqXN-DgeHh)gwbyU z^+DhG>fR0Tqu(Sy>Ta5e$1~}3ZXRnb=KKn!nB2n@Z*H*v&-7#)%n^um9@dNvr9I{% zCS&(S8(=nm@c5w(=y{eC_9l@xKZ4nt@>UTp1MYs=%SYd6{$AkiXw zTMFPJfLTIW@*&*kOX!A1F^jIryL3(U-|1HitOqxtJ2|kSq3J3P#_H39^s}ACCNstP(2P#;nYt0wkSQNQH&a(;8do2YEsSKs zM`#}A?H8{hvD#n)F;}&boVMvfjyrZZ<92DsrFyE($Pt9!Z*v*`y_;$L!=v-dFW^&X zKKzJw)0o@e^36k=X@ev7HCt0QBf@kB*;h|DSMxc8-O;Py{GZLZ$A%7~&lVUR9eB^~ z-EOx&+05%PyEbDpfi++Yg2*?M&Uy)F+;w_2mO*!z#Uc#|9|I6;i&8XHdq zuBaTC)Y@isj2ay4gDu$9)WLjQx5Xrq!~1B9q?BB zpivF^H9TSe%l=0imui6fo=9T zp5Q|}W*!H8VH={&-@pOfmVT<284QocAFO%PWApR3nZ1BmZ(6bqvX0hWTg{Xk>*5r{ zE8DQe9d$*P|7LBo@wge%Wv!%8v)MG6C}z?GLQ13c%yvG#b?|m_U>-@!hS5AD8UIi0 zDWD%>pH8BD6MdP&0aha-p2x1(j!K2}%Mg1n&{>ekM}#yrq^5MQ8DWAHb* zurKIrEiCw<8vGCjB6**JQ|6JLbTxf0R@_-m(&z_0*yrL;;PZfjGMQZQ37XXQ^em6H zkpffZ0iYBEa_GH;u6hO1=|aCDpPHNe*04{FPOpCo=Y^u>RE4XB!@(^afN$o%pChjF zfgtMH%!Y~QKHWd zd%K4<>@)k;ZnRsmhebc(=irHVBJ1VPaG!GAXVgNi!NWrM(+_`WI~rv_6|qa{84Gh> z{kqR=`b+i1+WZ+(k!+#PEW;HWIqA+}+itumchC-O3`4Wjwmq#|T2Eohc9- zJl5Mg%;P0EO zpFK+3o%1K@st3_EdE!j?MQf0MeqclFMruP3-c&#TbKXI{`15aW=3ntSrXe50HTI%% z<;B_Paue|J&$;$K^ZEXpfa&La>kmIw2bJ)>Ce`dVgWl^r` zb_XQ?D6lW>c5tfRF~R}{aLvOC*ko?K^@Z7SZs{-VgV)|ZB&WF|n`@jwk0#+8`=uY> zUGA5DW;ZEhgl(+ByHQxohUy9C>qjmoJ-+%2`TzPa&=UiwF70kK6KHGsZks03)+*!l z3v!g~BS)A@T#L5x2J7qHHl3N)o(>Z0vxgG4mt1LcO?T7h0zTkx2mCdieq(ffJ8RKy z4C&VI#tzp3du-f|G>6u_um^e48K(!(4Y*hKpoQv*bJHo@5qr=9qS-evW)GIHI^)-f zXbxdb*n=v?`@N^^#tOp}QX$L8w(;YqQ?y?ib&$Sqrfk%goU-v>!b8%FjG+5pNLQ1} zOkIqg|14|Lm#8RZ`j&mUU)c}7JV?KFUmm32M-*V11cB^GUt_Mv)3t?PBN2MT zC1?m!Q~Ziw7=yYW0^FSSkPTx$&{3L^JmvKMHQYgp?{nZ5 zjp@*yQaCxN<9>J6^U6WACYi|t6k__ixh^C{%2_jo#*>6?3JXpLr(uV3aL+uVgA?!D z$Il~{QN6hjrDmYQ&!xYt9Ndol-=(9^^d=AH@UC3Z{;B*mvy+Sp z)AHWV{*AL|-)61q?U=%ck=UZ%PJ3%ZZwIAppy{Hq%KnZ z;%VvztZa-4SAOtC@^VBUex3&-Xgv3WIL4BX@q1{Xhg%=C(j1%3%;t^=rN!FR2Px>( zo}NrT@a48XPz@Ur(Mez_)>_lYp@&s=^dZxkUtLZ%{?qOu!{p(2;p=ST@1T@^7EiID z5c39s(RcALG4TQpe)0A$hXx%HHq2q2ZvWZObMAtU`F&XRL~GX5T67nlx<6eh)*zeaV3U<&Hg0~_m+q)zN5$Venx+2T#??NGDEr75`k+FIewSQQ_xVIW2aCL& zJDhWt^=v8ZU^T_L>)U| z%gAH>A$pt&6tZ9kEQ3)cFIa1=YU4+z&pEa2**Ikc8Hk%wZ}k6WUS|EBuK&jtMj8&A zy%#h4L&NMo+PIji5tOjvzHigDKV8)Tx@Py#HNj_eMz>lc1~}cjVO3=SeCEbM4#!qQ zyK8$`PY-bLY;q^-g#lQ~!P8j-aOU%b0nSY~>yQz*AN2J9ln- z>w%HtpaJMNW)8&h$yhRi)vedq(DLBUG}suUG-`0IyYDll$9nWW82sz|oSVDi4qIDO z2yyi2p!=O$={IPt7m&6iPPbm0ggvu;X~Wp+nHbi-_YS(+X$x`hWZyz8xnTPA?jnrQ z()TdheSH;f_itT;yC&1t;@QggKg8m}W3?pDG24x3$)$56!(ieet z>#>tow3FI#rEn6wQ#W@rH?=cISCymO*sb}s+)f?s*1XKtc7p#k`cPDAnm*GdOzm2b zJLxfrU5mn+a+Qm(!UT^)*JC?&^A@U7D_SLP0sm<$L}vof-%Bg1g{~&H!aF@e*-7)F zMOMuZDcrb~YK+~qsh-+!WEbS1LMe)?g_|{{mCVVYU(y7pPTZ&(Le-caR#a6(;uLOP ziJK)z6dYGnL*ZntV#F-}8&eyJtt1XqcU80Ou*`!WN5MX+n;Bgob0gg%b@6VV9s*+} z6+{NRB}Ns}H+Sfoxf$FlH){^dz;N_k>=XzIeq0znZWbS2G{HEP6kZT)?%-eQs@4U9 zN+}Sim%4F^WILQ$)vJ$!=tfZnVc{Oe< zYzXY!O&XKt36fH{2|`geg&jqCMKvM?PF_hG3gmryn8H=r+2POw{-9a4K<;MCFLk`wiBvViS6L+p@|KAcJAUYEH;myvHgBK)aDw;?^4;M3h3%KG#8FTuMoReY zXHFQSd@H+_LW9^zVU5_;b`IqzRGiO zQ%P7)stkQfa+*W{J8E~o)2P*=2* zIK{Wg;@Z4X3aTk;Wrmgj-#GPpc62>;QSj{IfL^sQG$GpRFyu*!GLPhDKaE}3q6LhC zh7O;cxawuClWN`=quhEyNQKjno8@TYawmxVC~?&{g7tEz?&}I#z956aV;BD$@gD^+ z+n;fT8^A!Bn}16qhv`j9tHY!8&;*{MAW+A_m~jPK7L>Orj=pj=GP{OAfnW0j z6mQ)SLm?+eEe+|F*z`uS_kX~b$dUjy%#mt@L%p6OrG={vf9k_8&iBs43i=71DM%u~j zFmDLzWJb7jlmnxqRZ!LVTPPb*hJLV)V4bjVpaWbZJ8ZHLf(>d&EBsXuE{uT8)yNg? zP%D)q?ICVG*kdn;SxKv>61m9JnP*cx=T%`g6 z)wzX=ZL~QBx{_K*DrTroXozU&fXJYcg5g`?8q{kczBm*iD}<9bD7zkc9t9G+5&qYd zqv55VyMBsXtmRG62)0Vdu)c?SjZbJ-!=#FTWHT}-iY_da*pZ(iTqu*cxWxDzh4nDA z6Y~y{r$Gorqm690LyQknWN$5lno)cr!iM2fH;f8=L7x#Y8k5*5nrn20%FRvZ8u&S- zy!d|VdNDTzP^zY?Sxe-p7eK2jtmG;uROnaXAD6@~Y{W;QCQjid&?JXx$(6KH!1PX3qqy=M%C`^A+w62G7i<(A;W{o7zQKm995X#Apg?*aURYQyhHg1ZW zWf-?bwOR;^EVO$}ONw?4}q1YkZA2%9UR@vFo8oAp!)3ZX<&dDSEmb z=8qi>KVAXH8S+3O>yRFbhu*cw4-!O%_MkxD5aX-DMM}X5Y(ZX;E~E__*NqM-Ow|C7 z#&_0$vV=-YkpvmyL*Opjm>ljCgriYum77yU845JoHr1${+(uDTEz+uLN?j`EIpz}% z{-%uz2~O-3A?Zru7B0qLk!na96-_pvfNBvVtG&2dFRB_Hua}@{fR;zVjsfyVq2sKZ zMxXS0OI_`h??#W zH3C%xLqk7|E9fVq0K+{+B{qS7?dGnk6x7YoTj4*f08J4J@|t?RfCMOUsqMoPy7~l! z97~-jBtR!Eu(MBx_6h{8!4AyZ&=mftCF(LfeL0y0@H7{>a zFi@b~tOeRVw1%FBJybPm=EErH9nsUJ)dIDvfR$oQ#5|4qn4&Aw4H&-G>#8Zi#5IFG zTX;TfoHk(G3ELr_ATd3jnczXG%*ip^iBT7jstlzxta)kk7&RVhVEBOPY8a$8Mw@B# zI{4MfX#voy-$i*bEjUT@KV%JQ|1%2yB^+XNrKFVBly?N3bdIS z**JI5%QZ`#x@z?N1Z{3aT~#%sDqB$buV&Q*_EJvLDnavxF}iBuA%hN~EJDwa+rDx! zB!M9)n``JaP#Q=?*T7duZPGfg`Wj)xn0NcNTD|7e{|MugT3U^fYlONXaWPVK{2T>M z!OF;KWLaUWDh!8V1f{!0ad_$=6DwJ(0&N*ovk|wGQ4XL9Ugjh) zuYxg9B+y#JiAJNEIKIL^DJX7+FH<|W3;a**!a?y(%^T@AWv@Wp(&%w3d9xG~)!Y<- z+{ut={CBg))J;%46AaKZr$Cwu*jQne0-2IIFgL6m)ar;cvte3zLONP%8z~AkJV4c2 zj2UHGO)5zRMXw6OH5AREVc}{_#WBwy&D`8c&`snp0em8Hc5Fk}3UUYz;5Nh1EvZuV zid{?<0;C*Hd|#o$Cg{~N=oTh+l+sl>5M?L`iBnG;PtoYoi*P}-KEBXLq0L20<<-$Y z!D=V~X!L^6M_#CE=w%h%ycToEfDTAuOn4GvLZ{#rj+eN8jG@aPJF?|YCR47DTN8N*wPzq2x@ycn)89QWx2o5OV99^7?)Zpvf zyfuuVv5-LTtV)#{Q$~fxUB1&5q+i$e=&gsBBos)GNk$A=W(uItNEIMGh#sAl>I{VVh+>5(Co?ZyR4rq4MreBzlz13Cb|Unj$iM`pk{rTm=4RA^xCsg%y$cNQ zp-X__0nBL^$chA`ow%x8=+F}SHO1A;_2SkF8HQm%h6-or_cR2`2?{K)VB$i?u=N(V zaDxyv2r~m*sp8}=y>%6!n|raHH{nx;;u0vB35{25`x;GN6wwF->f#@X{g}G2)Xq@L zp%F%85SDM{Ch&|Tl8^FDUzDGfTYft5m!%ORi0uq-q!jCB8kVAWdPD-{!xT2lY?SA$ zrA8Q$YM$FkgQf*wbp=`P|L+~3)#OmI9E9*lcY4QoBToFsC5%w{Xbh)}3yL?xV4mDS zJA@4>0bG_k()aMKOdu3FEjhrUgvPG@xOsYXsE<$EDJQe>Fa$ck9F-CEFa4o%^@+8t zDQQfqDO$V~^MM2d`{a-)t_DG}z|Ijk6gV=ri^EaI(8486@gZ@GxMlvI$W#nKwVT=) zlVMtg71Gvhg5=nwF~+iP{N21oh8{ad<%&>D?ZnaefJ`e;!jN^}%{@iU5*n|xAv;<- zsC*e*B?vS@(L_G{2%k_3ib~!J?P>v|WHh?Y5qVTkkq@bZzty;sHu)L@PJM`Wycjv} z`A`fxHb-&G8)Ec(vF+oZA7&oqgNOdphYl!XFih5f&IJ)5aYz&m2-7CrOrg6#Bb|?P z$(YFr+D)C*rI5nJ&YhUFg?^1;hS37rb5vYvpb#znLzbcxA|IhmNNbJ(vWT)07eA|_ z>gE_MXSPq3fg(`ohY+!=9I_*MfD<=wu3-DPF~IB}-Fb_wF-0XPn)0R$fs+=Pt18nT zqcKL3VhksgQ_F1F86oBl(paFcOtBJ?p{{FWN8C9%C$Uvi(trYk7!QjZk-u(&aT7Ga zDxE@;kYeS}g?_qKjy4CD#!7y(*vXs4Zh|aJkedplb=@+?h#m6Nax6n4Ce$3&m>!Do z8}+wSbVad~VfvgLA0tIAisqS}VqlUR{m2wBqiJgpFLW)iHlb`UR7e}mF2Y&{J#1tb z(iwU&vJ7_6kY;e@*T^dL!bBZP#7<$OzTvaBGZ*e0Lz}f zq}M|qHn6o5V?2Z~G8AIWix34hk65gLFhvo{-5e5yfdE{!^iqr}Z9i}BA>A=thv>6x zNZKS$PWj@f6N17e<0PmF2{mr23av5>e1b^1g`=Ga!J}V37Pk!?<#zXRj!2O$SOAY(6i`_?82KSJ`7bpF zce+70gT=$p^kfhm22&lh}v|LB$BtN19P)m7`lFPJBcSbq#SKcYRFX z%t{he!c-9ER1L5@{;4Ai1c2TL^^}H+9$HDvaXgGHVk`p2PAx}nCpN5raa0g!>eS*& zSRm3`odzhBnj8ZblmR!?Zr+eOkw%yvR=F_J%8;r8W9i(6>j;ZcbsxQdgzg$@+7a&3 z_&GAs#V6a3og79&Nr-I?lg3S|p}^Wxm|<*|BY_GrMFj@Qs9u!t809&&VK9whqw$|e zzYleg-6-&}20l=PNI7D(tKglS*1!hei}h zSkJ3vYUQQ$E{Kac5ndVF?hn2_#ndII_`RaGd* z$e-9vQOZ)df`)h_$ihvl8ht>3VR&&wiXE>2Ix>38MF;WW1D~)9^3Qy2kAPNlQ$RTFi zd6S3fEE;+$3CAWFFk-z8<&fHwI*NOs8c?rOx0W?SQ;Z>PRIll#0*#}eJM{!2A@YM3mT2{1ImqHAu4sC<6v(r8a(*#l<72Q)Znb!Y}wRMF_ftus`4DtHQY zFohh&15IEEH>r(9h61$%#Xhn9Aa?6s?qa@%Y8s<(q{!I{G(;brBUc0Duv@Pe_&!6G zuEMG`Xry~a8gVEyt)Y*q>ZMiWOPDtn73E~e^umcm? zkwtd0J|sdxLoDcZo2MvJQQkmxIl&w*!(x99Een)UjRpS%%Ox6PI@qo;ga?!NByW~c zU!a}L)$m$RQGm2lpzcH|IClNqPFrS}z~tYq!ys7XKqssbuEyXLPL-(-aT6No5Gzat zlnrZsX6G2$P_8EEIzp_%;@bcg&rqQqC}EQ|3aktw-=HH6olwo)5UYUDAwZW`ucOn7 zG26+}|5FCjAOux1fy3PP17tjU36!;*vI%OZ$f3jYCO?J>Ic_^v^J=Y@+d=FUxM7RF z%0}az!jp3F5$VDkpXj?7Elh?$5V)#Bjzl6DAND{etI*)ZFjY`AV0wnOKE+@mvsLpL zxu}0dq2PZN%S(#Z>(f(X1QNUW7F95AKm*r0X@)$(dIQR5f|faNEbNecE4yewLKCbG zgpi?-QYushO$$;C~n@T291T{12Ct|bwtKpTr z(>usr1OQzM^sKah10ORdK=y?S^(nR!2Ls*K3ROO7NMXecbtl7+C`P-l91N5-0!UHq zQnctXKBdrs+ikt$&S~;4%0;zV2fY4w<7xvM3$1OwjQ|JrGjL5(Qt+gN9shd*PK)K9K@xOq{ zpfbM2_y2>SRfYc-(62zMl^Y~(X0$=VyrL;}D6RyxPB%mv;AJ!@&`yEsgoJr8EqXub zfz&5h3(TNvjAWn&WGIaq#T5a!EHG0=t5={y%;C2N2k0a1#5J2KTr94G&_vIl{$)_A4yz~>Ed-KK=K@>i_!~nN-NG{BhqNpHbH0fx| zQ7%%_4y|c{#)|GmCTLgD*`w4cGO8P)T+)BPfWZ}#snLyRHb!R3Nnm?4XUG|t9LYe9 zrV&ntSk2oQ8tdn%KRIUn+R2cHf|lkmwxS_YdU%Ez54lZEn)0fjV-$%tBex5b;pT~} zXd0Wl5~2w=hB;$oYvu$n#M~#hm8)rpS;HKtnl%fe zqGj5mfc-NR0tL(Q8zbh!$%Yy_YGk0ia>{JvQWz>U^{L5Aji$V4q9sR+L0s)%u`G3w zBSDbbF&gxwihC6(y=kMDqn!y0%=Z*BD1%$vUsZ6eFn4oOY9_T4<8z~Gj8WQre4oQ5 zB7+cjrQi*NYUEE0Gm})?DY5~XfegYQQY*}y+<2o>>5#e^g^3^>2w_TvEDIA%0ZdOB zW{tX8;--}vIiiI&C&s7{9a3u7P~k%41^Gr)_=^u%+JUO|g4(Mbg(X7_xZ|6mq|i>C z9EG7Vcd7`OkS?fxm?+j1 zz6g9INTG3ncPu<VhXN#L*d4#9;#9_q5*QCEoEs859Ha;Tc-$5qXg%T zS*s{Ply#)jk1`u0CDJoYkz*8TJ;P#mC2l~+lpw9Ov;v!;RZAT|ZA{VMAe&HEeGWOt zB1nN21mRF9u!)ULYV@M<2E9x(i;k1&;A@B%v#KIF30APsu3(ik#~Lx2mbgHCxee>0 zFhnqm6IWG5yOILGOYlWPTPj`ZbE&P& zU@YIVdOT%W$74&k@+|Y}BOD7460U!X<#@G#-paV(!#x)|qq3fFy>KPOxW&lawo!1A@i*7ulqm;Qyn^(^ZX;|f<-X`+s_sosYvHL{$Sm8|gm%@ec#lreD z_TN?5`XlpQr95DMs+6D3JVw|Pepgrve=MAw!S1Wivwi`d-lUf=?48B@+fpukk+5|( z%i9ZU;X6zB=d%1U;Yj$^Qr?E;lZCxMGp{J+!aGa(c`R@F0_&R#|5!LUpXGlRE`+ZW z_Ag-h--ScrhlR5XSw2)ax{7&*uy-}{O5s3wuW%}S++fzvyN2EWRyYv8MmTHB@?NF9 z9rIIQQ$B^qi@bg<%jXNH!s~@~dzSAL4mvO&|03&?3jbEv>d5k|g=676g?$`3ORuMd zEj-XiuhAuUV_qR#6aKvPe+$bGe~IJIZe>12IK?Ry^txOa4+xmojlz~&^U;u)2$RH<;{MAH>{z2(x;e`FLUL8Rnl0>xB6a!qIcg=Lr|WSCn#;Q+i!5 zoD5~YMc5z4+*ddl#r%kHZ9Maf!o{1+V}`9uZhA@b7o!oZ^gW}WRLkvVRa~Tt5-R_(c#QL5!OdC|3)}G zn)y6o>lo(0346ye-zJ=Vm-&%Wej@WrCI5hVtg!ka^GxC3BiI@5>D~cSoHc{%KGL*nNJsvhcRC)TnuOKAe^PlJ%no`neQt7k79mU z*m|9Luy8n3eBru z%%2NqpE5VT>=YFdrqXcQXG-IQX3TRN-V7^PhyhFPN_oj&?J57WThn?p?CunDjj< z9J}k6KZMyD&FQlaWo{wt9nO5Ruzv*e8N%vF=8J`E z-)3$noCtRpw!XviUc!-ZEbJZ4@}a`@W0)rh=fVqw<6~LALAW@Md1omB-D5l>7_kQ6>M9 zd75zjROZFP$#0q03J1Sq{zNzzcE@sh)6-afSjm52KB444GM^&spU!-?us(zNGGTQV za|dDTZ04JV!*iJX347-IDyE5M@oOWZrUpT&r zd9ZNpX6Et2^}jRE6^`y;ULjlvZx_!0$?~Q*I6dlL%-KgzE|OZNlEG%mYgQuQ5L^>U%{9nRKc#yEQf#u^%x$yg?|BWpFS~wH__9O}aBbJ{c9B*d+6PW5p zvWxjD;p~U5sZZAls~<7nS@KVq2MTN9MA$ot<)eh7|6-mdoYa^XfGPdq$;=ysqhBz8 zA)Nn`xpA_j=M?5|3H!po5e|hf64t_a2CtY6M6j{=61rl@D0M&pICmYuqWIXY~mAs zO5}y`D3Pmk+5cRT2W^;hk*9xVZkWR1h37H*!b`EP}j`OFsyTbj8onCyuS zH>SLGE#1G%{4e2LI2QI6v;2ACy7245#S)g!6xK_bKLAsF)-vW#MeZ+WZkWOHy6|Db z!Ah3@R5%qrTR8cE<<|(;)-vB*x?j&cKsft|`4QoK8}pFT|90ka!o?@dGlYXrnLiM& z?_l04Z0%&WXL5S-FPV=Lu7AZ`6OM$>5-x-RCny_zGO#Uwu*1}taEr;a|vp7B4Wj;o@*1-Hr;j9I7n^NAA`C8#XxQB3ExNqrS z_}``bR_uSMa40-U*l*49#ln&BM&Zn3`7Yr?xN$b8$3K+iM+q0g{~;V7&hkG9het49 zD(oG_+)220Eb}eG)^W@OgcIS%h126%{)({rF7pK8!e^c@?4Q8AMz}7#qx3J__ztHp z6+T)x7d}bYJCVZ+gahGAgd^eh!s$=geNW-!r_6nY3*pCvt&>0fw@ zuom81`k%r6o6nc>C;V;UT=+!cWC6Rc2?q(l?S#X{?7oX|eK~VK;Y>IY zPTyns8^XaVW?j0^nb!;J4b0nxt&PlI3wy#X7I1o_4_W?g;Y|2P!nyFN!nMupzAhXJ zUn{JHdkCk(1B46VCxvTUIlPxkx$szFwVmZNgoA>4rLg{td6RIwgL#**zmwU~oL>KP z=0k*Y;S+_eT`WJPbT53aa3K6Q;ZV4%uoCVioCrT6oCyyR&V|Pd>)jmxY+-K?^D<#2 zyh%9vlI6RFYhN=rE#&mZO;s}0J@Z!KKzN^UDBOB6>zj0D_s0r*|Bv}c!gb+a2}iq@!sE@7`H%bP9X^w)%s zEcq6epClX$pCPPnW%=c$TsRUAZe#fX;ZXQR;aqrf>Hl_i|8B{DXWl4W2!Af@-NEwK zOQrw*2lJ1FQ{mr$sXS+Qvb-+x;9tyFi(K_(?kw{BUgkc+(f!QN3n#);gyRQTz8*~R zc@HsvC7eIP+H zKEwQyaQqzeNZ~^Gt&(40`F!E*CFbQ|(kB|uyiqt7-XZQ2;fCcLf10v;UswzON;nwF z@-u~%@a4j}a5v%lD0cr(VLgHQv6A0n9wMA%%oBw(;RU68;Wfg!@Mpq>u>GFca|(y& z39Gl6etW2~Hd!dAh&Ragt}7FM6Iyy1OLuNFS6 zbbtUVY zf6elr3wut38E>5-tcB~smdo;MgahFlg;U`>OZOFa|FCc_{7UJ+%JR2_L*WI&k?IXUL+g}ZxGIfcL>*x;_#a1QvQT};X?RK;pjW;{x8DT z(UKnFQ22&Yek{vx7S_V|2nWZr{AuA>I2BHXCztNO%kJk1YvHxRb)V(ig=68p!s!Vt zZ@GrkYn{k^oNypq6V8Os6jtA7_g8{xyiork^DV-;@crUG_$kX@5RQf45Z3?6^0~sb zpE0ijQ~2ss=6%Acu(y`=PkzJl6NRncG5=aP6~0I~_&v)z2-i%?BdhX@zKKLFEsE%#vj>|f6E3x&fgn7axm zS26b$&aYv9PFS^NenVIbFBOhMmKVZSJLYB^S-)8L1mSuImj7Nj75=Mm(UIjnguUyS z`wNG{PY9>NBZTAY+5J@EdS~Xv!ody9n}p*VnRg54!VMp?{;CVhj}i{MGXF@}@5X#e z={{mULpbZse6euegZVmPuP5_Agk#}>!oe*pe_A*b9w{8&%JQkgsqmuG{cSAYT)MxV z+1bXZ}jKCfs}r+ba=1O4u63?tdyAz0Q1wupY;Jfp8(*UN{`j z^1ll!;Rl8NH(36ha3DMeOzE@UWcfmo$HJS1qX{gpe9Zc1!p94TZ?XJT;aK=`;o3x& z-wLMq>cS6;+?vGlVZy2KtWrLi=^e_Bk>0Wr8us4U@&n*25FA+|JKP>$V z?2d6{Ao{jYxDWLo0i35mkHgU?>Mvt2lNVs;Q~6VzNwpOU0itUwhcO0yeugB49Il|fJ@;KwQa)Q0@<#!8LzVGE9dX!%;4Hj(eZ@p1APGmod@tf~4NI5=Kj zgd@BHyUoTR%xFTxQXgoBove;6lta^cGNGdw~4ZF+p7 zyaZ>h2?w~^A39&@JkEzxUv7?rZt{89?k-<-fW zy26$3Uxa_c!ENf>Ovk%z*L-rjx{b?s$_{q!l8?pFy>csD{MYEK{yaY&yZ9V4k9*)U zz8ZV?X}>SF@0ahuC44_l@k2PnE_jW4sZU z@pkNu*ZiJ4b-xlm3{^pU3`Gc^;0Q zmp{T8UX7iX)PKa*JMuQu=gZdLx?i?H-Uk=|IpnIJPY0K93v9oq-WDhL9GtzcemO2L zlKbJ{1NnX&;YZ9oejdAvH9rsgco|OdH#qxH^E&3}jU(X&#~tMQg)4uaSZB-4u#dYi?{!n}K@aiu^yFgo`>@?peh`P3 z$zyPErTio=^^>1BJ(OR={vdgw=|kj?u{%^=jl|HKL2rTFhARepcT zaZPMLs`>gj#LaODx53_Hnm^C<$K{L7{uA=`g)7fL94p_Ab3BH5cbxk3*cmU+H+_Qq zIrg8Gzc=%f<)5)NMc$4hyz8#Ie>h#eCbnkE^>OyH+{pA-lbSGyNm=M{$HFVta}D%Vs~5=i+>Yya;D&ufwEm)=MC!1$Knj1QMmGcrGwRbVW)w73r-J} zBOEu9pDtW^p7~MobnF}>FJwMwEU(51{*n3e@#;HFKUJ>2yUthcAn%WZv*Z&BSKdE5 zS3U##=gGaX*Hyli{R|JqNjLQ|*t<}E28TW5nK;4=aQR~OC8l2@uf!$%H4b~KmkU?U z?_MES+k?-mmwZ6ss_$1IAA@szDt50_?}n4!^7W=)Ek`)*BR^TV>gVBlc^VFHkmoZW z^p!ux5&jz6H>+IY~%6$u0&Tri!52MF; zEIl8jJ{x+$Qh3r(UmgyL<$W?~qT!_MLK2xa#v6EZ<8H?~^BE?|%7RTpB8` zW#1YuZ#Mf6%GHYhu3^>vM#}ZDjZed+ht<0kuAIjmBVUEnSiTKMkIJKP^0@pI4xW+| zvp-&5jGc+{YU8KnE!cfV{tH{r%DdI%`+)bwF+R-nlIELXXOi3&2a{zVm+_T2oT7fC znV%}(jdMH<`_HLAj=dM;XR-C7JRPTaE{ybL`_CK5mY!m(@L7#$B=dy87if#r<&fhWZ0IoGXvR&YSW}*v0d4fR|(YEzSR8=HHh8 z!TvmX&syB?9l1U(;l|jXuigg73*^q&OXUlU-<3mLUMLU2*?aPnIC@`x3Fmk|_CHi# zhV75!ud#=>U~7r`PMqRe#SdrY=d+BD!R|86x5rT?Ux4jT zOZWwxuT)R5w_5%byKCehaPqml4QF`weYg)k0NY<^zNzW>6dbKpKLa~o$~|y~`wd&oCnYft$W?AMg<#pS)_(KxRyKW*mskzc~0Ex%>v@yEvd zsjtIPJ$VDR4wV1I0p6>Qo`+puy*>_bW1JkM-U_>p+ySSD$=z|>NWKP_@SSG=DD@ae zcp?rPt3QvuCh{xTI$nMc+jup0UG*PLZz2DMb6m6d?;saH;#S^9{c!BJl~2L;X>w=N z@r5|RH)Hp7&EIA0$-{BdP9BS`_VP>E!wYbPSKt)?X!bj3f4kYod)4Lp-ch|FPVtF2 z>ZIPqbll7ApP@bgC!OU-aD0~hCU(2XtFV8z{0k1xksIu3eK40@6W9tI>E9~LF3RnJo4Dh}O=su+j zHQ%UkrF$329zD21z8HJGZkeZaENa;`=R=9 z{tf%L%ex<_`-Qk3PVn*Ay+iY-VgF9~T+{E8d*K)lC|r47&fV&xarChKg6R|G`KCWD zFUKkV6MIwC52&x#cc;oH6s~-JQ6jg;89o=6@x|DBRr9^EhwsEO9)lA+rEukbWjq(# zv-EmPv4g+CDc**I*_z+yAiZ9Q9h~CRafUB3o}>MKg)8@u=gN2D5*~vy{5<<*JO}%4 zYX5&Ycw7Dk$M`p#;hG2Q{N6mxABGd$9G7t$Gyjg}&o%S-a_r1kzYdr1-DVy?ilYUZ zpKA8sm1mlHJm1W}r@jgYi{x#_i{-r!(f#}n_pl%he}TIkEyg$L!+|3s-(VycL>XN00EY zILCitf2HR4E-qj7^NtU|@hbJB3Rhm=S}nJrJGea#@rAgwM)Q5K{kc5Y%;V9ff1&;& z&hfiAS*yOzc%A&a@t5*Ghw47zSMt%=`C4v^?OZ+|yWhxtu=lNeH@4QxV{nS67p^>? z41Y||f7JZ<*xexS>gaqPJ_N`3WSrvjvAa?GH{bx@W9IRbxQwTp`Jc4^9xmZE*x97M z0mt}1Y;9Jrdzj9j;lpw1XZ7Q-_lw*fr@zVb#-G`|9u@z>bes=gW9zsuXPhj%}m?;AcGC%83sw`so%_VBf4A3umAJgIQy z`;~9k{_Dm&GyK0@~?<0A@JUf-{)-j*I7Aosv= zJ-H9|4wCP}?!j`5BmBJC$MZ~Yp!sz;Zzyla;SqAJBXwTqDEV0I;;uM4TK#&{8_Oec zj$gv%ChDJHubI3aCwLonT=kkq={zw$9Ot+#cAIPdYU2~-!PsvtPr#*<vb?%* za5ocIp?H`Hu2c*u%GA9}mMRo`}Ov+Mk7; zGvozk9{Yhg`j}&L3SYAAy}qZ2RoK2v?vF$K050KY zae|Y=mDkU&)cyjqe~tVZw))85VjFKY^Vh2%d@SF8+ys|!Tb$r7ILAG4aHC$YA5QT- zg)8T^Zc>lw37%-?@ypETeKkLyZV!|{!vX#V$9OwV@jgv-zcM}^JGbcdJnZB1afGie zT=l&1t#oUU_V2?f9?g7stNH|ba+~}zw(pSN#V%fkeY_6mcq8`i)czkh!_|({eXYCH z55hKXg&lkz_V6`0!Gle|Tdx=62)}6hJ?e7`SDsfXl0Twn_sL&idx*RdhePGvn(F*1 z-XE87Bb*G=d`s*Pmpfu>q}&}lxHonmQojXz56cf=dz3r{CwP|Wqt%z;2yehK{uf(g zG+*a<-Ot7c;|Mp#CG27EG3{S!=5gP`wJU$#Jg$Bpz4W9!5&L81nao?`~QQ-@+bV$$avb z`bK&wm96G_KmR?s9?llYO$!(Q#IxcLD?eEkl-~i9S;ScKX zVgE<@Gt=?6xV%Aq8@4yfd$iR3JbVZaa8qn=(tLaD;NFER&%?t5%|3n%hxj=h<2g9R zOK^_Az-7D%dz*Ehzj20ZpTOsZ8{p_?%{Rvx?u3J1)O(tFd=s{RRlgVe_z@i9nZ{c* z{{fDFlfN?lTi$BsciFq@-(xjT2=hnVShh)j&WUi3AXCV z-xRLApM(FTXSjB2o!385^Nk8u=2P63p43;r5W9!S*W(Zm#&!esG1$jbaS6{WTzNmg zq2@oJ$A`-6=s`32R~)|ZNy!p`;bPVC(v?{|vsliesc#7-!;z~KP-JZ#-5Ux__D2nTo=j_?zv z-=+O&IL7bb68;$bcWeG@9O7TFGg$pE9OKU*n3Yd;TXSy%Zt=M!Pye|I~*;Q|G@UA za*fmVJjyHN{c*HPZic-z@&&l`x!ey2U&y0zyjC8E{dMw-*!oIdg41v0H8@-^Z@~8V z@)px^HIL5|+t~e4^G9KCqudrpKgk#3aFcusPBzO!vGc3^IJU}i$@n)p!7hH=>~B+F zjDtVr?{I0m{5y_z$kp2EekHsQPVr$l!!9o4(+W2%em>m4^m;w$3BH-0>{K5?k9V(C z_50~K9PA-a#Swl5yEW7on0@>i&i7RR5@&nKzu+?d2d6dFYqr<;w@=ahT6&H* z;4JQ@F6(C$6>#N=G)^E?uxUH>X%`!lYEouXUKP9>r8nR4)CPH zmFJVVOu)>w+5nd{vii6AKZaC{D--M$; zez0)mKFO8xRO6fFSC~%*$nVipyprw@QvcD+;~hA|b-aW+K#RUAAZ&%@4e`G019r2GZ89+rPF9wl$V0p5xIsp@-l z=KF#VEL^#78J|G6p3{71Fd_dK}?fvGbz({n*1}aE2$~c!uVu;nH&X&BB%Q zd8_0VIK)3OpW%P#{u<5KJ4^Sq*2%}?7@vWIFV(x7{4`tZ{rv*#ibwA*I;L(ywU9cBG>K0{eG1l9N^YC{!P6LcDBhEulY>gzI5@ z7xhLs!p(3QpNfNBHGd|~@P*i|u6`|!@BnP@uKoaa_K=^zW&8pz)li>n_V<+kXFC2I zdo|U+!vWrc%edM(dLDi)&DX*yc5t+hdQi)rzvV${x0``tlKLf}3Vw~d} zuzR%TZ^uz%c_g-umB(Wrzl2N2slSEG$IFYc*IZtKae&Xp zDej4FPxAwD*j|1dXLu^kJE+ex^Bv_yW*)D@Q782>w$70M#WCL3*ZJ);)epr9Zi-8t z)lbLKS+b9VF7lN)JX;=!t@GreIL6On$5(&d%y*L)W52t+#`KHi4aS$qzu^Gy(M|UY z@%}i%O>v4lVXLQJ?|ie5uQv1eKAc>o`NyzxjXW6#edO1Tuay_!2(QGYzUu37hJVL7 zuHIeubNXriU~Gl*iP-BedpN`A;qn0W%dmZmJP5n^A)E|SpJaTiJO_uj$xCtRc6kF1 z?vnq+(O|ju`FtPmmk-0)ne3{0J^Rr~VRlo|hNm z1b>R%Y3iG>{et{Awx-MbT*&8x55+D%9*4LMj%I4VD|TL%dt(pZZu%?gV{nY86t4U} zZ6)fj;|za%o0y%k^-CkHOw+>a7b`-oNyQd^V2e$i2<{T={nF zzbQY$y!Dp+B2Mu_)90yw$$pA|#W~)I-FGx!<09QBUMSbc<@e+!IC)<_1*ePT&e;Ay zz5)mMZXA86{xB}#NjS%EVCy5zFUA30g;TrXzO_+ajgvp*EvEk|?{=BaYi*b77OuQsxa&Su|2{mHUfNAQ-MEH)0rOsM`6jwu zM;=6vPn5@FyOsPN^U2BbxAe@D|Dt=H<=rpWdCTX>2V<|R+_G@x{P|7tx!CI~U&nlM zvwSZuhw|gt8zw)4({XZ&{io!Og)8ruOq8uFWN(sOr*Q3}r&Hvk>G|{WnK+#$U&4Gc zOYVo`*X2jBGe>^W?7uI+i}U63MjWk{>-OUF{zh(GxMAgdf65)`rCsc*&;Jta?g6`_F*rJ1Ze6(YeC-bM znRNeLxhLJ}A>V?di{!yLxmq5I(`V#|ar}`yv2f+Q!DsSpy1iX~A3Hnb&u~_4->T=C zV|O?CXYApfxQuIDsr!XBG=E6p%KMl0l3U;m`#9NKy$^P4$@dnnJg*ForaSwpzd(=c z$nRilKY2NJ@b_lEuKK@)E9bNJmk;bM`}O4Gag0wdTscp4p!((5K1dF+)leR0<{QZq zvENvJ8JC;L@8a}$c?}Mm$v@!|wyxs&xa#$>-9m1Lqn2_E}wwyi{#EY?J4)d?xpf=*ttv| zjZ1+%#mrwNzmDVU*NN$CrJLPk6c8}Z>m+qAZ znECtVd(He1`C(kf6R|Z^eTLZ|F27^;ACxm3KP2ba86|JQrO~q0NB47M*~aN3azpGr zD!0G^?uf0&)X&Ebz6$$~s}C@KLLO#3L4F(u6Xj_*#Bboz)9QMu=lR|Q8>q^nE8e3U9huQzQpW*Bwu6p zm&gNfxKzFymzT*8n)y%UQN}CfvDjZNzht~to@3^}l;6jtujOSp!Rv7PgZdWZU*u{x z==p?Yxjru8=D567{WR=ulY8J8_s8BJ>SM5T_kLBsPdtwU{Fd=x^-pmLe~;}*eYYER zUJvh&L);kW_;fRWpZ0s;_PvBczx+K;hsyup z(lGgeoAmnO2>Do?;xlkEM!iSjs^7=)jo6RXZ^Oys@(^r2AwOp3@f2LbZ{Xlb%`d|F zSb25f%JXo>$y@2(Q}S+o`TpQKI2y0+V0(hx6uY=JwkE2dWBiPK1rBjPoa1}2{jBCk z;s`&1os#-g>`szr;}ZS=CzI7bGy7BIZ*h))!O?T-)o<4Gie8bA#lfrcnT0E#XE00d zf!*2imDqbtz6txU%eUd+4f%c?&XHpr&6Ou$>n-_tT*9wn?``#YIL9Aif1dg(T*lvF zYrgt#*j^z2gPl~a(NFhx-<9iNZ=u`(=lED0y{Fy^$M4JSacPl!9!@@xd*XDl+y{Ff z$%C-JL>`KR|H&~9Kb9xrXsJ96$IIloxb%tqAx<*+3!Hu`Z^GGU@^&09mv;~KyrLEI z{y1JKH^SB`xg`#9d$YedPWd97{w-gJ-GAh}jCb9?>d*I) z*sdl&W%};&t2o+A{vXcpH-#(bjcTg@V%%EZZGgIUl6)|Za0}BZ47^ zQ%yfreZJ{lU3q#`Uq&LA?o1aa$a9RPT!2PV%KV$2Z~l4D~y)bEfi~2eo;!UQXt^OAdaIHal9vMCayXR=WDUR_e*gjYNOdQ|~ zaf16`>paa5!Vw;hov!Ln;2b|^=6&_o%zQU_p_#{@V86TiTAbj`*gIeSZ=B&;x9WL> z7pNbOtqWxrNBA_HV;=`SG#}tH?rZihQXh)#i{&SAh^Jxe67@H6ivNeBp6Y9{bE&++ z%;Rm?zf8T_ZMtuc_r?C@>PO=Yx5eHS>RoYyFEzcF`i(fncbFcikHj&48kcc`!z(qv z*mV3Q_Is=UhErVqcHPgvO1&OV@X^@0TD>)na2K58o;bWl^EY9uk9;3aaE#L%)t|-X z+vORBYZreX_;<+jaOpw$L(|`smm9w&ugCV=@^<6K2UPuiRs9ZrAHe(J3^&B~v6^p+ z%gyA|aH)md#q8sYanw@14^GaI@4{|pd4!q2M1IQ5;~BVoxq6D@E9FnId$qhC2iM5k zaN0-S^G@Bre4XqV-zYc3@y&7@9QBva#m*h_6=og}GW~A#hj4(W;1Yfnd*5k(f$2xo ztNOe?#`ckNZaUs-_FeUAcjnz`f179A7%NNRz zVe2w^s+k`kzlL+X2qy#8*Wv6oc@r+(A@6dx?ib!EAB0QT#X0VTox3#O6Gyl&4hE|a z#Tgz~xbpj%_kj8=oZ?SRAEy4j>3EmHI&c2C`XM+PC$}qHd3}4L+}-r2<=)tyDfh?a zS@M1CC$r@zO~=n+?=|(eap?{D6CBT#zs1&@^6xl#N3M2{?&Hpv>tKI@>|*C#xdV>z zh1grD-WR*?$x-2k#q)3$$&Z-%59DXf{9<_~wpPn;J~9k!2>f5QR(+w^19tKY|c8_WA+|5*8O zoMIQ-P1H{@y{X)xaOLyJn#mW?trO&{u!H;IGQJDDCu)8K4)A2t+p52TqtoQ~aEvot zI$ixsoOtqPoZ=lg$F=U)^NHJO{!pCYwz|u2Vh1n530{LU{5>w?E!aO_uV)S6{+G&iaTy< zFV}o;?BIUb!*}BVkHr2J+JDOI_mZDC`*=2v1NGGGUnzfL`qlE6xP&)juaEjarsG;e z^?Z_R)epj6KlvD(;pT-aKOgx$>g{kjk}oy;m)EcQ^J<{k#}8twpZZkn-Xgzl`t9;k z9Nr^k9Pe3-st2`CT(#lD}ZypDh1rJVoAn zxXzd1!*DoH{iMQ`^IEBVCiZX-?BhN-z!47dQ#isiag5)?-UoWWwS_C6ueC(}iJstH z9#nTfR&^WL}e8^-J9g*e13vHP9+ zPuTuJ-erW&V{eoX#@0`A3tZkLcgCe(<;!rkMZV7L|1RHxQ~VJ2|4<)~OWWnCIQ~n1 z6Fbcgs``0ehQ03cMx5injC-ip8Oisjr+he$@Ci7_9dUe_<}Wh7M(%^1>*c#}aI^d* zc0+jv&Tf(4!`AKcS2)6dn*BS}4|quD&+d}jV1KaO6X*BH1F#**58@C{!`A)kuj3Ri z!8!gKCnGe!4acM810Ux3j+UF?aEyF5F2(W{ID1kafTIa=jN^&&3pku4FUHmsImga( za`jOM$`DW~Hl1Jd=7kLVf{*qJE|CX0x{~!4W z9Q-Tq#HIh_T4QwHpxVJzKd(pPsE*to+xy8^V;?_^z5432anex!9EXR>8*u8#JF$C& zymzegct^^I;JC4T91fbuZLoWs>|>{?d<_oqZ8*ncaB#flOJ*J?IKzvv-%RssapKCq z;uP=k2;Yb1>WAPMH^XJz4m&M0@8h7Qd=*adKYZv#8Zji^|9G7r*qxx*@gz~#) zAAe$cfAz1hJwV=sbG!q41J!Fhq4VUp9?k}-H^yarDzd&uP^2OMhE#HJA`~Xhy(}gSV zpW>7rzoz|_*n3_6g?aZ2*?vm<{#v;)cE6TSFI@F~`cA$ar{BxNvG<2Oh5ZQ6!QpoG zH8|cOugAe(@?Y5cTi$m(@BgoS1h)T^JK_lU#Ex}H)!+ZOV6VD79GCZy$6>dIJQbJl zT zE!e@saf}}=Tscp2wB{${9KT`QSbYgDHIdigGTw;eKls7P68Y};UGhF8xo!1$s-WX@N9Zn{w_rm@}`CeScV+&W#Q+`@~I^8SD^Xc&< zc?tF=%U?5}PLY41r&Hzs=<#&fepc_7%#a%uZdkm3`iAV{GCqxYYmWL^^wM1ULVEJ1 zd_6sXOTLv}#xeHZR-cXo{2nghuL@VrXU)_6@AMGYEUCxXDO`D;);pSSMR)MI^cY`* z6MQRn=WG8#?BlU!AJ4$n0?ogLL%bN5aBh04`M-?clj}~>`Mvk$X1IjU!QmqH8*qm2 z$9|?h9($k43C{66Y=5S{9J|ZqjbWsE6s~+9!d2>z(M#*(gr0saFUC3k3R}7QHtgV0GGd)$Km`(d1~RxeS!`0LhNmlzroICd9SIOkMJ?Lgxli;UxwpfwErkBI{p@P;rP#&y;TVs{)^3`A z6NkIYU*Ht)z}W%ndp@uCE7g2RX7vU7&WcnfM5w;u1`_3!sYw6Z3c?b4!{h50G1fPUU zvo(Ja4qlUQF&#fvxbpm?H`QM-^KZ$^u=9@m3l8zWIL7r}*6RiDYW}psmHU?#%9qhg zi{#ts;aBpL#$U^`n0LREmttqTycXL#(ou4|edgIKhjs zzq{tw;~dv|Rj*gxL%kXHYRG37u3day)}Hd^IK?5(afF?{G(Xzx*OX^szm}Zg7;nY) zKI-*m>HQsBJ{5cT8f@25zXiKE!Z99&{d$_8Z2E!nOkBeAaEh1U9Dk0j`r6-&ZCrh} z&hO$Q3RivqaT}a8(EfSMhlk0RWB+hD#8xAD2u|==92}uO-OL{;FUH}~@){iDjX1$O zaf#A>MK5HfK#6cUm`s=!n-9fH}%bnzdaCU}#3Qju9op5@Ve4*LLS7N7&`atYoA`ixP zZ}~wS;-_$YmHHH%UoFqXNgsI*4sMed;0%9&o!iwjGmpQ(`JL)N8s8=Vj_teUz24CC zi*bEy4OTxI`}jnh-=p5a>_>8UoZKg0iGv~Xt%WP!4}ZA)Al(}wKY^`L@+2IMmS^Jf zIQdQNjF;cX@dWvk!j<>4CdnIcfOnmvp5OzqJ6ZF`;}Cbl-gNaljc3S@W9MZ#DO~yU z*O?{1PY-9yt8k9DVe1X`I&*nmxGA>gsJFw;T)7AKa9J(=bbNC zf6DZga)L9w2-~aF*I^g`VfJyIw{*WUJ{J35X#Y$cuamDXTse=wUha>bALM&+@{=6n z(y#JMI4H~W%>2Ld^1@Z$Z|l&i-%oxv`_<&X=;`jV{kG0i-a|gTaAiN-Q*KT7_ma;x zt|ecEV|*))_ECQryZg%HaDZRJ&H?K4j1Q7mVDDi0dt7cH|A~W!a>IGLPl8XxIqrbn zMw-8%aOJ+GBjlTKf`{T9kH_9onon?yKf&%X>YEBzKJTEZ{4d=;Tdx0(-akKAcCmY& z+yh(PD_?>5^Ie@keNsLG+fT_S6|S7uEy?Y0X^MOSj;G4~vGtrB z6>eDUr}zmRJg@#Lj_`alkCzv&ynphN=C_#nnXI55;BtSmDa^uokO7Lytd_-@@L<@+utSA8{F1f1l^SRPzlBSAAbTm0RG_ za=DxF3i*2WgO&0S9Ild|!TDBAqYzO0JLNujQ85&E@Vm z#W&#a8})l}j-SNYx9YDJuDpMFlRO_=Kg%C7@8Gq#R963)d1s4U?E}4Dv{gP3r+Yh9 zf4?`yab3B6;mXgOwZGg0NBCM?!nffJk23oQXnzJy@H?j0Q~#)N<-YbI@*3l;6RA7x_D!;c6f0{e!OR`xmZ!z6n0k*jI0h z({A$FX1}|9IX%2s9)!zR$d6+;kQ4UvtK`Kv?IW*bzI3hp6FuuI@3utekNe377p|P& z9V8!%?fc|5%!k9|GjTRTJ|Ei;%e}CN`{Q_&`rSAmEyu>OJOf*g$nRkXufZ;bz!+Qu8O{0C&SNz6Pgwu-PB0{ikplzlNi6>dSGCzr*%Z>N~NE z_xf1(DdYOspP=~`IGZS+hJ&YNAD8e|IK_9G`DZl$h?&RF;WB<5`_F1V!x7GLivPqx zN%Pg0>OLuMh|Bmm>`v1BX*j_bnt6PW>60}-&2+o~`%~3d;|%{{`g7{_mg#&EZjEDn zHZI|7afXNB^m)DBqu81z&%_>Hh<&`u_yx^x!0C(fpJso$T;~&=H^Il@V21kX*qbSL z#nvnGrG+a$|0Nva6c1xQNHkxf=X2$^ur*&^#=L`b?BUJWTA=wI*vHi}z8|<|;mY}( zcQxM#2k*-#Fz+mq&!T6`nFd-4RD4}#^F}=^9xr#|ME6D#P%QZDC0ln8SK0G6Kri) z-+~=nbA?_%!7U0`?w{fA*x#Z3o0u=*`^-KbhpnBOpK1KJ{62R6k=L1hysdEM{r!K{ zYpj%Gd;rdNJgT1Fd^J6&Bj1Y4_#tfXr#{~7A1_bFUNiXxTyo`E zIBG7>HTx&X3vhxLWA`NWrKX=EuPR)*f7z3N#9ll3cjm*(<-f6Yg)|p!2HT_5+h8k}&%*g*@IYlY_5Vh?Y`G5*u+GyIE?EWBMZ}#!M*!ofZ(ZW^d!!H;T^mo~{YzSQ~M&9Z~DU*waq^{d<+J9q#t<0p)_YJMTMf0x(c{116McDBp*S2|CK zkHYQ_^|P?`m)r~6_!b=DN6h|C&A)`5f8_T~|4;rLm+@w7?{aw6?+5nRI-if5;}EyQ z8Sa6DUA5n*aKl}S-@mKNw_&G-Jc{}9Uh*@>HRTyNttG#SGrZ8u@1wpH=XK=Iv9q7N z-t@Ziucp_Nci{9OdAD5mPY;&&F>WB&$KGM`5jZ(qZieF{pmv@u;zBs}Su-jL? zG0t#nY~QTj0hjv8UClhc6kDNsAME1Wu-#w%e$(-2?Bnq`#LwXpo`vlJdcC)Cia)@? zK=n^?g1^MpE$Tnv7;nQl-etX>r#ndVwQ-6M!NG0nO|XBv+!`mi1J3a|IJ!ggJ+ODD z9AM`z`9^FHmT$v3zTfQMqdp3U_$i#>Y1p|}^RMFw&&T!<^$(4Q%ByjTH<|qh)VJas z|84qk_1(YI^Nk*qZCn~5*T>F7awDAJrZ^s@eiF{d$n9|!%je?Y5&2@AJStyp<{y{) zV|ToK7fvV0!%UwjkHKX;9{VNrsisenU&hWeFULQL%0nYHvIC@3>9{`K>b@YzgYekd${(G{5&pGZ(#h1 zd>qa*xg)k#$X#)=QVy`cN)EBTTE544jXc`S=kn9o`c|G{=6{gi!NHI68siP}7M$Y$ zu)9&c_69y*d>jroskg_`X1N=7f0nPnNm=fT^DXl2INmBhh)ciA6R^Kcei>VT$SKb8 zmpIw3z8PmbHKb8`6!&=({YNs;nMz^zuL^>yK#nN?A6o!H0&QJ&%;4| zc_|L@mpH;d;~4*oOSsl1-6z2faEhDY44;B?+y&bQ={%QU4_}LYd;2amH<16t{-N^ToB94Za{a=U{pc{cv2i20Jr0kMFEaZ_$srE$ zFr4EF*gsnHb8vze;WA#0y~di~Xy);D93HD)>t{Ycd?@yts5i$cJ`=}H)h{#q$ICZh zx0!q|&hc1dSN$dIG?(APC7j^|e~tYXn%|1^mU6XUbRYW!xdBdaYaE@Zeg^hi$vtt< zMjnLiw(@A~;up<6e$VXVA909xV*50`UhQ9XUKhLA#~0!d55f^1jZ-`eTb^G3eeB>h z*uxuehPUIWz4mLAIbTQlP+UGkZiS=H@;Nv@OYV*Rv*p{({5kSy?42h+hm)@I0-X8s z=eXQWF5}Yq@?KkXUjIV*2y9&>pN7+mFO^5&@G`lCoh#(GaMnv+fuk$s zU$A$TT z->UPKu#3Hc>YcH5i+lx6@GaOKq&^(mx5`gp2hYLro$4Rq^e%ag>37TD;b5@*JC5#= zclllCFGq4+>YyJvc#y4Phg!-L08Yz#&;X`r>r}zz= z;SX^cuf@SA?Qg^(-ie*j>icce^9aVshv68v#3?=l=eP$hn8;0V z37?9sS?cGRdE6VPc%Ye|t@$B1!jEF-b@fTu#j|mMKfpO&gTp!6|Jii>A9m)d@4sF5 z4e>EJ!KY*QP0jbf0lwDkzomYc*~i1p{{PgUC|vpdF2mF4rH|F$!sVs%5*%dm=Qzge zak@_Z592T8>O1&6zmn?~uDpNw8~HdKeJgjuDZT{fcpxsV*Ze3Pd?!yUT)TLE=X-e$ zwtkR5#6DhyW4s=_KWhGWoZ#wz>GjhM>h*B4QErTLd^(PPQtxi|@io}nq<$Cn@gq3E z({PCAoB7S!Uy0qH<;~dsMYeY8`~j|u%lL2{|DTRK0o$Q&*grmql+?5cS(@yG1}U;# zX`@9~soW%uQk2THkhGX~N|_MaCt4KMv{R{3i3$xRTgxDYN|RJt)c?Nj^ZR=bZ^!?2 z98dZj=XuWjez!~Ld7t+u^^d?QJ^@F+C?9D0zslEO|9AOL)5i~+{14@?VCOG+F)rXW zJ#h=G};S~4BS#{-?;~d|DgT0kc zG5s3ylQ`T*ehn9D${*w6e)5;b`^(!+{{VT*E9;fpgpw7Z23FA5O7v`n8k? zCO=r7U~>EbwreY&i39u!_UkDB0H=5*F4k549d-_pcj3IAy!StRUhB&a4)IYq!KdOJ zpKtaJw7<&i@f~K5r<*;VjqQfozlW_u<xWm_rw`4 z!#TbbCoR+uj9bc+u-8g{!t4*1U%`de@&fF)kyD(sl{4%fA^(L_yq{IM;-9xUZj3!w z{Z2T>eQ?-L`LJ>~EdTi(;W6Y+d*xHHk7Mk1Q2sH_@fI8&sl0k6ozLwkH^wPG0p~|4 z?}zP9^2KJ~S-uX3cs#a_QU0*$cai6ryqmlfXUEDLaoSU^Qd#G9j+bj=?*zF$PEV3g z#f6jQ3vi5Y!pQ?eFm<@?vr`2yS$CtoQ)7RQ_A^Gv=)zSQJf+%Mk|SK) zTYepfco|OdCT!PG-`Y>-O>jM&?yLN09PcOh#Ki;Tb8&!2;T%sh{R7p1(YThp7+ZDa zudt1O#CbjC|6;d+yqB%>hxkxzHB#OIC%6|bG*;dp7n{fi6cA? z7dtACaN0?J6=$90CAiQ9bE`Lo#XE5C(PoMQJZ<(qJf|HAg! z%4;5^`xeiUn_#z}+zE%cH}=bvpNp;j@+H_AAm3p2=gN0sZ=n33*`FuR!G%Hc+c?F` zv3tJq499o}&OGH+Yw3R8V7V4fa5HRQpu7XlaS!ZYq`Z&u#q#+$#aEhqsPfxzh9~3X zQss}Ee7O8N4la|InH;ajk+1v@?2nZ9Jy`d(ua%qP!gca7*vF?}YmD;qu!n~m-=KUn zE{v7O;bI^^h_jpJXR&pQ{08>$A{^t@rhlvYo3M+2#u?s)?c3Dfr?&1N;0D;bUHK8% z!`-lbhw`H7-zj^hkFUlVz7rS5sXq)fM$U7X^kCcjsC2W(H2PsSd;09&E*YjK7{oKI5z6pkm$Z{p$gz5{y? z$kprWK7|M6hB(Eoaq%JLM`QP4`B<~Zr(-)(J_zTJ%RaVd$hYAleh?@4dF;$o|9u?b zPmG^Xp5el5`4_W)PTpnm=jDA5(fuP_A7?KqZ-t95%RR93ihKqRv1jsEm5;{WTzLwP z-;|%j$=mXK*iPiNX1_q*fulw8KJ|3|aGBg37naM%;^b3#AkOgh*!oQQoj6}9KZw26 z^0TI2y;;TY@87^_NBJWhUMR1_?httkE)JFd!r7&AjrzJzc7A=5Nxs(jZuxfXPm!nL;#7H-=|3PZ!1jaka%o>X3~ zq3#podN{={wx3eJfSsr1Gq5#Fz7QAjRXD_Vnf|lt&ouqn@~haMBQM4gUTyl%DbLGY z@$cJk)kFC_KCiq1_Fj$zt(TQg#L+AA^QMoN;^M2yw_+df?dUuyu8-~4 z)NhYnd@T0xS*HKG`a^LzSH2A=_lyHVDBUC z2Vv`D`3CIbJ8*`l;NlYXAHyMj9>;ht4wkC_8P0Hyon^`^H`e)GTn7iZ9Zo(`zhL^Q zd@A;FKb+&C*j}#wD4gKivAaU~{n*EIu=A<%1c!JPPVqL=|4jYLP5AM_`{NWJX1r4U zb~yfAJ{G&H z&i+vT6n6fU7n(j^hm*gQe{cGK%YU0b-n+T(Tim7mP#oZPIKe%!^^f{x*ulfhzH0M| z-_PBI-D>hAoZ}fd*;Dyz*xyV31Q%<{o3VY6{2LB%^%lBMR7?2**gjZpjElIV>Em9e zUt9e$oZ!o`TSxg=oZ}E%b(PP+aXon+4(iJvnSMig9ro}RY#*llcjHF#UM+Rs5ZA%Q z#>x-J5$=SurpkL^x0yTu7h1?y;Ns!(-Pp&E;uJrRGrSO6ZM0v5i*4m?IKaDb>?&{G zO82wc$!FpK55W<>1}AtN&hQi1?x5!-*v0Ei|0v}@;jpt@`EZ@bIYvGJN4Ocbx+p&y z`?wGGx+))r13VTx-IRy8h#$ovo{dxdHgKd&_&Z*8S|0<%Zb7 zZE%je;P6!S`d4W{+>g9-e@G{16WCb2!BB;0!OvZeP7`J@)a> zIKft1etgeTe?RQuLvf6cz}DI7_rOJbCXVn>oa5_p;T-Mn#vy(bXZS_z_EUcW4)AiE z;tV@w>TkzBu6l&-o8UUw?yvsg*vH**iciDt0QJwqAs&u1e4Xi^tNxuh!1v=6&&19^ z^*XfcxlwM9LtMbtP0IUV9}mPC z9*&D+)xQoWcpP>E<y%F_cj>-0{4|cX$nTr}R{2Y8eJ}68?ho?5ope6yN4bgdPjXjW%;mGO{j+=-&hc$H z*slB$?EE6n!|o1wrP==~e~+`@dNQf6wk-@ zUdlhl1^l_mYbf7_i+Im2I&X&S;d~$UUE_V_ldxmULvV_(#nu7J@4*Rv495p4f7$d8 zmOn7AEq{eW{0nyLD6i2~=P%Ti8{_m4xihxw%V%M$fjq*vp?oVY94b%8p(DrGIZXZ# zr;X&VaNI=x1s9vjdv@dN-As0H++6N#@)q)GIBY3jWb#(>jW{@5z85F>L7d}R*lDf) zJ2-74FE#tNa)#|A$ z-CO-R*vD^U_Y~zzOpe##6#syu)70OE3q^Uqo;rVYrtIJhx5jo~<;UOxJ|4&TbR3?g z{s5d}9|vbEzsux!26oO-J{K49M>xb^;S6s#`+nM2J5KitaBXatDL>rgxVy>wD?bB! z_+lL5(bzp#{qfkx_u~l9G#;q_BAnpm*g0SMX4A+2V9!&2;PJX&e4*S5=NHQ-VQZLt z9**#6oZyMrxkUY^u!ra46feX6rRsl$^WpMNT)a%KeuB;$Vh3lq9WGw3es64FArHVg z9)Y6~%5TP&FHgZ9o`qxlI!>=tecsP#m zSe)WX*cz?pKZ9NTq3Pq5rhlFKo3V$h^wN0~+z|WMtKZT1M)`Ep$3wAmlk(e5A3uRJ z{3t^FqK;h%AcE1jbITNBhj5EpQ39O7;`#b=oO z9__Ed*1hrs?BUsFkC)@ZMD;i02=BrAV3x7>D;OZ-f(k6kdT(!Wljn|BQ!YYpR}iBeti> z4`LTTj}!c^=}%YxQ(VMf;{gANW4sGn4{E<>AKkZz55)FE${XVRVfhH`J|drj1AHk? z@p$Y!s{W(c$FJc8e~PWg)c+B?c(2oSUJp0IQKWuX>^?4^gA?pyYliYWv4^MP2+uP4 z)9SyD^JnDuarlC~9w)e3QRlT{Un2l7mvb4JQ4f&VVuv`{&gHD@(0*mAb)E7zWf9B@h+U>gU-}> z^AFT-jorm^Pn>-u_cvZ5UxCx5@_6holV_M5&&AOv%0Iz{RNjQ`<+9aR=Sy%c;}yz} zz=hA`6L4{*d@i;=m#;KA9%u4Z${#geEx(GLHS)(e#T#(2R{1W||3a>F7GGc77Drzy zKMC7k$%Aq7wS29~GkFp&u9s)yV1v9EdmH6V#^1=hu(L_7b+*oDeJi)Y89o80-zh&2 z$D8GAakxdEh`p`yGuZuJUV!Z%b;ZBmt=>=P_YaqC;}LQl0%+htyw*t%v2@^ zQXIS|Z!~^i{tG(`7+{hjg-?EE3`cb?vt z;ab@JOL;>a;O;obXPf+Q^+#ZTmptC|@eCaOt9${rthN>Ze9N$h|Hd({HAv^paU1Ma z(*Agy;ES){x8#$HwR&%{YJc@VbtlrJ@VTfWZZ z4dwATYc5YWZXv&bbG*Q~rSetAt>oXZbGUr4r~4FfdmP|?IKd-vjwfTMwVwAn_V79! z;axbv^#}8L!|kx!M$hYqBYZPX@oa3jRsVBb#FZ}4^8?%-XSh2KJ80k6xT8D_`$x++ zVXLz|#rPOG!V!KJCq0!fH2HDzXE?{3uz$SrZN_KHdtRvfB=`XA^i|#rhqyP+@laei zOZ{6-j%VWdY~^oa=Nx%Cw))B6;tcP?UYYWJhj8BhavSUpkbB`24>kF@%I`9JJjdh% zm9M}N-im|slvlq~6rX7Fk;(_+2;YRQQOY000e%K=#!Ik& zz545MjDNz`4a%!r!siDcjC0%+dt=o<96N!0Brf9acr-p0--i3+@Mi6YVD}Dr6!!6W z9OFl^eW&^_oBeosF%IyTIK#i;@GkZDyOhrZZiMX#$~)u2J#rr$;UU<)SNRPl$M<7< zqVnf)fD;^t%0I)!`{dl@_+RWzQeJzw&L2&dTjLy`h{Gw$FT~FM@{QQX<4qq=!_idr zpT_9}@;qF8R9<3o{3XsGQ=Vi0ak~GrmYW*Sl8?gn^Kvg7;{iB)LHQNf zjpYFQcrs4$lcxWo`g3uJ7vsV!%GcrSHTegeye{v;!92O<<+^W9 zm0yap1@cYUe@_lgf1x}RyNl#kaIjcjgzb;z)!4^daAAq^zi_lvu6c#-V|^kw#Lj2( z5!hZS7jS^jG5gPz55)<-4#%sMkH^kx`AO`pl^2;k-eUUelv^WoUJuv7;TOse$Hgz@ z9@zRyKGXPX`63+QF~*tldvLs7j?8|8{4y@$g*e1t;=)Gtf5HK-?CU-Wu7$&I)NhVc z+y&d4l%Il&_&glp5jexQVE0??r{WOL!YO_eJKw4Q2@dc#IKzLM{bu!RUa9-JTVw}^ z*u~CP<;UU#pNakNl@G!0kMgzH+9r?39)1W%_<5Y;_e}pM?N{RzZ#MbQ%KyL--tQ{i z&)%-Q70z&H?Ea#>HxBRs9PLm(9LK-O*JJy4d4kDz%8%gW5BUWg{4FOq#Vc^MOZhiA z{zv}ZxY7|7f4;48H9y}f%k{BUMQ)1|+#S1nC@^Z>esl2pMSVMwrVPGjSKi#9OM2t*jN1#IKy|~;(p2>!YO_U zJGSxhE!_&R1w6*TY^@xdV=HA8a>Mekl&{c%0#9aG|;S@8TGLfvpzG|1y1SkJkB$ zEtNMlZY8(Fwkw~7BYX+A+9|&U7uw4Y;Sj%w?IV>h#UB0^2OX9Fi_@dz`q$~a>Ctj0 z9CeaU!x_E=yPcJfGkrY6h@0RHpMdjj>igL0A>WN7 z{3Lb?%9oiv{u77CDnIOcz2EIAAB%H*8TOA;emjnimm^#}L4F;lco_~)QohObd&^aB z;Qsh9oZ{}-I$8a5aRHCUKE5Bv_+^~q&#-%np7*QS;{$Khd18DdwoX<5Y+S^nOdn6d zIerzpr)mE=_VEt0$F*+K`>j6eABBs!ACB>jIL9+_;dJen;sF1SQ+)7Pz0WSH-w_w_ znK-~BaDwl})*0GAXZHAGv&TQ0J>DnazJ0ZCiBo(G_Rms&KF;t}xOlemJ8^^~oZ~mJ zdye|cv5&vOG2V%-e(Kk}S?Bd}Go0aLuve!3={UlJO&?#2o&M^FW{;mVdz|1Le{S{z zwErH5c#m6j-VE=Ly@BdC!_IkfCtSqG;{czH6MUiZ`Pz@b;YD&_e53pz4#vtc_5%4W zT)16ciTyj}Z8*j?Zso^gobskP$33t&Uim<5-z8s%13cC2@rx$ETm2;_$6K&{kMccl z3!0G+U_qko?OQy+9urpmQ zVEX~NKaTN8oa6hj`=I*IVIMET30{xwht&Va^l`mAI3MnW?T6Jr8+&*J4)J)i$4_AQ z5$)$=AFskG{td^Es&C)P=j$=K4R#{=WaG!>Vc4A^-;8to7%t9K{uYk#N}N5Rd^?Vx zl&g)?dE%$#me`vmpNz9-<;!p~TfWca_;qa0QNG6bIe8Zj@gd`RKkkN8+#lz7G`64D z^QK`Jzk-W+Irj0dIKuW_d_M5uIKwAl>jk~qXLvQX7HIzmcJQJ1a^H8A_rMMwgbVm) z?BmCAh!@}(Z@?+8I#KV-aSLp}r}v+NU3?iX;=6ISQ2l3d_<_6>C-{3DEmB@B)cd`~ zauXcm?%4lO`9PfEQP}xN`4nt@EI*IkCGv+j!QWwfsq(7#aUR?l$M^)C;-RL$O#7=% z{;513JDnQlU#=FZ{2r)cAYlop6Ht;vDIRw!7XqRcfc_| z9v6PmelU*k4cOYDd^+~=YuNc!`6`^_Uvco8@>@+yJNeaP0h}yeszbiP-vA`PtaF+=_pnJOmdj z%hzJNihL^$_mC&!xVk(OyL-v+;|Q<7_TI|3n;h4AK=&)uP<|+OYs&3#h`XD7KjlU2 z52kz)MZuQ282@A1ZIgp(Fo_i-*b9L;QF) zlJ~)WWBCx1HZ{T|Wzf)2`? z86PPhi|vl`U>xC_v3r#AiP*!B;Sj%yi=EW}6lXXy`_9UL!fqGYd6cgwJ`=}yFi!FH zxX@MmsW`&V;~am0y>9Anz$yL*7rHCo=P{ip>>)S78Sa7Ig7W^@$5-PNkH^-r>d(Lh z{D#@%6i4`5oZ`Q+)l<)_73sV#cCm*~#v%4_f=A&TPr%M`oEI1ITpZx#IL2FXhO0cT z^V!Gid57QvZijt*5{~eBIK|gs>jXXTZtUV2*u!t(5U<85{smhn>Un$5;OmK-U=Mf4 zAwC-?_%fX1Td;GIp8pW`@vCN!KQVi}1-repuQF5T^Ke}pViza)1f1gm*y*k3jle~G z8xHUTIL6Q845v6cMbF!Y^Hb%jPw2db)8tw>>LVY9Q``Gfi+%hSPVgt#I#>M-xPX7fA>Q*z-8aQ`u`^KnR@legaE!~!UHab> zxaX-q49An?+p%?JyNch>&BpoV?JGPVdn@G+vAaWFjr~a-D*79-JyZT07y2Jrkst7s z&QrWhZiek~a!2g!kWa#eP8}=uXX1RTe7?yqII1GQ3@6vhw_@ul`7!K1D?f*e8{~IP z|66&5$-k4g-~?BFny>F>HPt2k0X30j`2{O;;}f#Q?Y%N&hrv>@KRjB8*qsK#O~4BH+)9tE8vdU z!)IV0Uy37q6Hf4b*y^h1&oF!Z8jkVDIK>-rj(1_Zo1VA-vpTPb+u;EB#Sy*&C-@$m z;uz<68MeCXeVeg^tIX!>g_~jzcfmeB2Zwk_xf_;$9t%D7{AZ=e+#Tn*H+K5zeP`h!J|748QXJ!}afa`~R+*kR3p;oL zF5q?8!+&5O*M3g-32I#2g` z8$0-8?BZ3pfH&hJ-ibZDSIp-bH^d=sji=*daD-3AF&>Chd#(SnksACwzPjdEp)9Aui(Au!q-RAAgHuT=zAdH^Dt{iqF7yqW7JPJ$yM1 z@K_w-`*Dn4zzKdA7Z&LGt8j|HH~G8DE4|KnaV=bUPkAfs;T|}}eNFzp`onO5Z^YI@ z@89L2`(&^zriv713Sx<*PN&G#`rMoe4_j)9O1KZg2&(#KZY~>D$enT*h=;M zFR_Dj9N|6Q;C#3dPH;z@;Zw1*T+jEgi$~%Zk2m=W^&=eNS4|&(h!gw`PVp|B;o5KN z{5d`XTc7HEy|Ilw?BHv$i|@e^e!}cO)AJVM0B^uK-if`H>eqZr=ksxU9N?bVTcy5d z`gpAA-rhWC6=@5^xu?0lv3^u{he56A13 z``F$f2RPg)-)s8c$kR&R$FkBtcsf22XZRv)*Hr&jT!tUQA$|$3#!Jn9U+up$dtB)QohQVH;MKS@uD+l4{csVF z!~vd!7vmSq-q!wOobNAxf$an3pRk83EzWjd6!}z--_qrX=aa~#X%$O z-!%Is^2a#FUtzbY@*lC&T(171&hO(x%iXa2=eyTZxr?pCgt>v?D&_=!pXGh4R z@J?602gmK?nI^{{;1=zbZ^rhK@?Y5PDDU%;&Y$82xYtq2JKzBKGJV_++efQ^F%I!a z>~~Rqo5{P$lX2Wbo@Mgm=6)y1O|a8T?uHAv zuW@hX7vT(Fi{q1(Pr!>$m7m5t@d8{pP5Bx;4(B+<{}`XH{y|H0{`?HNIc{;L+!_1$ zbX?~w<%4l@wtO`n)=$0{+x_Jy@Z16N8`v8tFU55R$(v38e7W*co!1*IAB?MCD7VM) z5VA?fvAEM1c^b~HmtVr;Zj={ccdWb`uMXrNad3;g$0s^pi`(QTIK5pi;L&%= zXJTi(d>LMRmwYSsC&<%qoqOdNCllobxcX#yC61@an{nAx`44POm-k6^{^$YuFx=}Q zxhu{emiyu9kIEx)A(AKH&5z4Z;Bcn=4({}%yb@f2d>ch z?YHF?cQm@&H`iC0}Cp|H`9rj_<_PD|f5- z^WB5k!*g(P59RZ*Urqi5$9OYNv9(%1zQsM&uT$>Q=PBG>Bn$3)^R_e+2G@d*KkDi*tNMxhsA@ zaE|sjlUFa3@574+$g|DVUY6g>5m&C|4APBa`mruzYy<_)2o#? z#j9}_oZ-{)W_)qEOZUt14dl^CJ?}mo<0r5^O8KkUy;fd~1H2YTcndC!R)44IkCAI+ zx?gmI+z2N($sLRXxhKwUmiuD&7TLq$9r8#V-zks7`CalfT>WnO8PlI2zlo!J<&Us6 zQC@=!_sKt)KHg)!?zbA(!^vdz+hTi)T)-|q9jEvL98OpNDjYu`2gVP|_nQ4f^1~*7 zM4n^vN9DJ063HveUHZJF_y=--hVs8~{DfR}gYFy5lj~vY4Y@Ne;f zJ8x<~0Vi+CkJC?aOdicw{x*4nKP3;|R{kA%g#RJ;-cf$gM(%@~mb-MGVxqhwxsOl5 z2_9_r3)COQKE-$8=w0QHm_2?8XYVOrjIHEoMluuS<>yc$1e_Ma$!AD7{^IKta;hWGkb=XF!<4>4XLACA*c8|HVt1qb2lnv+-|0THa4VeS zgHN1Wi^ zxbTbe{y4x_;uMd=b#|!#jOpVKO&_nsgOTH&>et2zZi%hmm3P5K ze5&c=3rv5f`lGOe@5TXs8qdY=n*ATzufW-#^4B=|TmHfLANgw9y`_4k8l}&4M%t>&hSRuVo&XNVjtK1LFb)|8{?h06E0NO zzKF-+p*Y23arM2_pNflk4i4}FoZ+n875{vyq5XDpua3Oek2-IR55*~NZ}Ph8_rk?P zEp?qBZG`>G$N{$+Sp zBl#xWtBE{`{pP0fQ@B$zc^)p}581oTm9N5S3;8GPx00*>r1RLVIeS z*z)9uaCIEBxAB`ez>BdpRQrwC#k=rm+~^nGZx%ig=XfBlK1|QM33tMe;Q%kkF|NEr z&$lkozA>(Yd*NRAG92O?aEvG76hDM>9Ao=Zz3*MK$E!>}T=^zkyiEQZ2e{_1I)8*6 zoZ;5kxm^1$rjJj?b4MsY7hAqOyxgVFM=yLGF5)}sm*J4y!?VbT;DzKq{u+mPJN@V? z?u+fKbyl<7f;7+@oL-?JNIdSHXeqD;uv3#H{*M;J4yQ)W{+Prd%PH1lht2~d*N+(9Io_- z?vvtL*q)+&3tWb~;}G}7tMO1={eJDo;3A%YBm4;7j9b3j`whb_afFY>oAChLV!HNMVISX(Q#=#bc|iU7cr^YTC-?`v6Ic36=PNv@eJwl= zx4pZFc4710tnmt~OH{-R~eM%IK)eEg1^DlpV9s=+zIb*RjK&%M1Wi2827|GaT#v$te$r{_VKMa!qf3) z{2Z<`Tl)pr!)viWNBJ+?bpNxm$=W&eR!x>(M zTfD0M_qYuIgCpFivd)|06L6i^wC|5Q;o-Op2Y57|jHl!0@LZhW)%a7q6Mu`H*Y*Ct zae(bAI&VH#d2<}kle^*!_rrxZl>0crw_*ED?YFhR82k8ooZ`E1;T`oK#NGnVizB?q?C~b-ysQ4tIK-8z^7VaBc`fX{ zFE_;z?toK#EG{fm|19H=B<2$0_cPb6mvsQa%4X94(WFn?4?c{pHHX;{-p7cjA|DVTJk&u>GmL0;hN*c0N!fkQkbLGe30GHtuUu62L)W6E~@h#X|t$b3sOMkvA;D~${ei_?q z)L)3p@RxWT-hoqGxw@Votkr(Ma+m)7Q-mGz6uaa(E@1yl?TaSI=i^~tDZdWKcpA38 zR{kuG@Z55j?qAH5FC_QzN*r!bz6pC9<(=62M&5rf-LDsJi$mNCuf`W)XOs4~;$b+# zF@B-krStmVsz0AR#GjC7I3u^dQ~zh2Y>_MPt@9SP$_L{Rcf<+qi|y~#zogt1pC5b^ zxre8a+druP47rQnAy4sV6-9{i~NzvL0FRf8YDZOU7fyY%_;aZgFN2o{58<%0I+&@iuJz zp}bm6y+8O_9 z$gN81*VtF*b#No>RZ-ptxFueUi`cHA{zyCwKY(NWOt~w*{`;su zmps59;ljSkzrYFp5qtY7uera@HyyXe8SaLQw)&^x5D&pA9*J{&E4KI7ej;}93|z!7 zVjs`PAzp-I{3%ZHMx5hcv3-EvU*!PZ*To0mB0d!RxGfIxu{g%3;}j3XIldIz2kQM} zu#0cQMLZq*_!%7HH_iSaJ?|5f<83&_`y9yUxt99%aDv-m>tN+4;v(*gb9?~~YpXvB zyLIFVIL6Q6&3LKl*H!;ZoZ_FbeTedX4$}F1;TAZ=9dV(a`p4q{55jZtwb-h!{w+Ad z6S31k`2t*qx0^ox7Z)0;zi%y_H^PVF!lBCBn;f5Da!2_99NK)o z8mYekhxk*R;`P{Xtp3j?$CVD&ef%cMYhk;o+zN;I6ucM@H~nVnkHIm%8@tVwKY%m* z3@)@#{ucJ|$JlDA{0q~^KjIAUSzGrhv{L^7oZ~~Wf4K72IKju_Vr%7PIK-D?w~g|# zCdYSStF7{>#z)AH;{u+Gr{iTf!(W)atNmu|;NNfoSFNM_d-x!1x6{5Uj@!#e;h=+j zB2Mv8vp-V#owy9o!P9YyGrS!;9koBOuFf|Mx5u+^5$D*)?orxL#G~;`crN}7TSu$^ zEAE7A9isOKxHC@hKwQ0(_G57`{5THr^VsdI{(O@kBQL>T7kMqVy2^i=J+50%=NpZ? z;#qhQ&hbsy>89sBf_*#(r+7YgyQ{wp2ly+T;N0|ks9&YN&gbKUaD*FUyP$pt)9)$w z!Z99=Qyk(PN7z12`xmi`7vmycgMGXWhj`BhI=^+ip6B2qJ_@J!B$J<@{@FM@Q67df zJO+CwDIbrcUh*S2$FE|yxAISLfY)RDWaYnN57%wT=NY>=#a(gX6zxyOP9OOk?BUCC zfbTH-)777XWBdfp@jUDn)nAMwybc%6P`(uh_&1#6y${v>?7r&P$3@%<`?v=V@c^9T z%dvNso_8}&@MLVAt^8%|;uUx_-h`*)Kk;0=pQH1y#x1aQj-KBY=lC@2_ftL?hh_3e zoZ-7o-e38nxHv$51*iBU?3}B7gX!a)IKwp#)A`+j>NmgvJ`#tx503G9*f~%85!f0e z--HYJUbDv$_AgRDHaY$Pr}zt;;~m((So<1{be|L-itVAwJ75p@#4+xV{bA}~ZgPAx zwk}crAWm>>@=KL}fQxvA>EjFsm#P1Q$?@OVy~@?^H;}>u#G$5gK%H$;7f4<-;6yx83%Z_*?+3{&&4iYVD_IW{{;K^8yw+3@M64g z3*Bc4Zi`cV0$z=W;0)i2H{-`}j$gz(@q5@>sq?PE)$tG5#=CI*x%$;x>b%9(a&4Ti zkz3(#oqP;-zmx~#Bk?#~z|*jYV?1oV_A9WDzsA?#AMj}WHxBUrt#tlz`0#Q!JfQre zyg|?Jf`f15emKEbnEtoQZ^gav6g&&Rf#={4@nT%5{MAEBf8pDz@_dLv`S+(D{=a>0 zxi79#$(p>S>d;cHG;Le{7pMH6$)#@}46>{yySbD%DgTdG{-4sflKcE8FYN>N-<3bV zv^OsGOMBw~+3%j0_92B^AJ+Sg&Aw*&GfLk|F1_F6rC%SK{pZ(*lFhFVrT*?;pWpxU z^%&mze}8?hE_dncbMt?`J`v~pCD8ed&H3EQJUbN~%Z1zhO|IhnPKJ$9Za>z>GmHNAXJ$C-*{+G4+-(Qbw%KiWQdK3@V zL#OiNWo*vlDE^=G?4FnIh`>HI_H9H!ek` zU+@0==9@^7W@O8edO-GBZ4<3GRNUf%Y9|N8s?2)h%wS;zW+;J5AA zN@J-+bkoTaGGt$Ggd>cx6tXlpwrnGjBF2&|(G*2L)Q~NSp|T{5$WD_eB+WsVgvnCL z_P;*&_w$+O`+Pm~`d_ctJTss3x!!YK_dUzA9mmlrPx<-xQ{~-fcX0hWv)1p1^?i^1 zXI1kr&@0Oig7-cAU={Oob<**=EZ+-W^YO><9sA#fWsB1*%g5)B@8RqAzYELOq*sxc>MbD`N#S4jkVIGG``j`uPk3KoO)!e?|ZD@SUVMI zbUO6R@-5s*16QSYJ^Wyuvd(Vom{*o>2k(3M=6dE|qF0t*+Un8zzW2}Hc~%b3*N{(7 z8PDJ2Z$&*>?2G@>SeO16Q^5!T0d|>owWI7ufMDqbi?&xRC~~;C)}NU!*@vO|D;!z?*#9A_+k^AFxQ2)e`Wc&zVFN9|BU&ZzQQaY&%f`>^*MhXtsi_Z?7wh5 ze731g*oIzN>&N~39==b%7rnB4b9TFbpLv`wTn}HdAHQU`&@0Qw{rkRLpZ+ne&nzGJU%0+pe@ol{>sp_AoUgbZ ze!%>`pV;$PS-xR+KYIQ8zTE#-HeosXf?2*Byzk+Moc~#RW%+pid=H;*Z42y6uPk4L z^?eWDp#M6(vU~$K(!f>C%}0js)zD_yne@u&r>9GoKX5{Z_dR@b*Hol&1--I-r)($I z_dR@NH=A$=y|R2ff4+w==pUz7mT!jjeGlKIe}`UKz7f3d%l+?e6PCEho_`f)`S}h&s^wZNNK7V`< zU(AHgvUll~$9dnE`=?*>Vtf8{ndR$t_Y?bfJ$$yeO<0FsS-u^-@8R3@yU{C;JZ_|c ztD2jS44;=jJRll%JLoDNCQ_jHy;_k_f@o6w(uqP_$#Bw`5U54 z0~y};@ZBTJI$NDyS-xZS$on3?{xzGhBfYYGHypq3;j@7V-s;i%zAyJr|2^%W zSw230yRL^XjwCP53>%viz6A^UwGG`@hAjlfVD_PRQq^jPL(W z4&VQ^PPFx(=laT8zrUdM$hGvr_t<~^2iCtquPk2;`}aM3>m2j*U24xiW%<@zVSUa= z51;+W`X%X=<>Su}d=KC6m|ulnS)TRi@$)@=^8)i5&@0QgtR8va!w>1Vq*os2eP6DB zp)IhJ)@PQl&SyPxEq!RZ9=>yh_50B)%eSl^?cewC`Oj^_5%kLPd3gMM4_{nk{+sm5 z^26YL4`03B{8{wM^1bl<^F93V*XA##SC${lZ9Q_$%}0js|JM3z>6Ot>PnRKXq=74V z-^2HAFYD}1dS%RqZ%?yc-uLkJd#!(hURl01$7JvOa{mul|GM_iEFXV<)ptF7gKuyP zUS_XfW%=rylh^k>eET8mm!?;iuUkDjf4+ww(63FeEZ+^@_vQKz+l0?)eP;Ri{?&Fp zeDBZZ_n}voZ-w=J4_`cD6Aq_WmLCT1d-&?3HsM5iW%*X{zK8G9pGmJQACKSn@PohD z0vFROkMq8VuRLM?I(lXKZg~Cr9=pG!`GiO{~*1xe0=@-9=`ay`4{Mw z<%{tA_dR^;dGr6KSC)_G-}ms{7tGJ`Q+xd>%NMwj2CiyuJ~I69pJ>ys(dm`Z=TGy|!}nh`zZt!Vgm zJpT8a@6$J!<==DuTwi)Vz)#9E%jb6Y6X(zM@T~=H!khHU^26YLUmpL$HsSr3r}LF= zHksuc@%UX2-~XWb<>{5>+u`-&`||h~Gru-{gIT^)K6(?6pYP$b#m#R?uPk2)`}aM3 zWeM}U&@0Qw_ix|BcRptRNP1=YW?0|%<@!sTKTGQ~%g5(W#r38Cg!xP4ndO^SkDfmj z*Tc7#u?g4GE6ex7*MGi;FIF;tC%v+KJ3M~Ahwsz>gxKE3>6PV+dF=p@ zYi>R=e0vMr%CfoB_tAL&R>q&=_=|baPCWj;FZaK#`9rzEA%{dgXE6_vQM#*!q`geP;Ri_}5(z-`v&wb@a;e zeXB?3&-d`f?l$2zdS&@$IDfu}@6!K)URk~$etzS7_!fVN`8RrH`S|$z9=^H{W@g!o z^vdJB@8JjgntzjCS-u+f?|b;lLFVU8KL^9>Us=98x1B)bTIk_>UqO>)%hN04Px1Z{ z&%f{CtB0FkpI%wMlkNip8SDEVzEA&odS&_e`NQ|{!>?jymK{#7EZ?$vw7&1*n_sgD zC($d*cglO8*uU@LD_=L?p;wlVpMQN1-=n{ZURge_?|b;hQJ9%!H`6Q256gC9|GtN> zA8mdXy|R2Oc;CbK>4)^nCOs_28N_)US zuDSWh@Qv@_R{H(D_Rowz#r|9Af`JUL`N;4C&VNmA(Fy z@uyfnzW?~XT>rb~SEC;=%Xh7wSl{*V?K5q{#`MbaowNrGWbEJf@YS=>WZAa#%J@_4 zzhm{t`yRgkeVg!QdS&@mx(^IwtnYjH`VY`#*>UvB_*1OkM41LMyzk+A^xvmfmXAMw z@qM}extN({ztZ~5BOky2a6SCsBJ=mtE6X?MEbo4_f8Uqu|J3{oTAx|IVfDz@T@T;A z+$Ow5uPk2;-+%hP-2WBkKb~Hw`1)zUEFWLLzK3uB-26uL%JOmlzK0)PX?{C;W%>C2 z<9qlXUm!E-mF1gu`bX!__wd!LF*C~!qgR%X`}aM3`x^5n(ksiy^?eVY{lfg2^vd#a zec!`3erf(9dS&_e{^5K0%C+WyMXxNM#jl?^AARX>GXJnVv-}VzHx1-k`cQE_e0DQF zWZCQV%J|c%-ama0Kct`MYJ2`F%UA90N9+3@KJVFt578^jx3IZ1kgCuJp?C?|J+=A3c2K9`gs$E6c~9ANw9Yzt8-! z^vd$h^61?8<9zh+ZRRuRmE{|_kp`}6Zay;n@P6FNvLDkc<4>ph{Na1}#slWBq*s>j z;Lg)P#`?a8&wh^&S#}e>GX50ncf-#weGlJ#(ERV|mF0`~;oc|K_dWdZ3G{uJl0 zo-P>3H8&p_zC)kWE2E$4@%MeX|EDlB-Iw;yEZ-{IiS;Y4hi@~lPp>@A`@UTNX!9a%hJ^YaV2zupl-uLj`=P@(O&ZbwE zk6-`z9zK7`{FU^|@(rs;`}aM3>t&m83%#;@{QAfD<^KO={%_hpvwX$s(fVE2!}ngX z3IC>7mXG`QJ$(L}`MG~#uODUk`19f7SC)_a_dR_51LlYH%JOl2-@|7Mn$Lb| zuRmq^`1OzP;VTQ9pPycN(CWhA2&bkS7|+$ zaTDtg!}^+!zTE#Z<`<(MGRt?;JPc&4?|b<6vgVhgS03km4_{r*{F?O2@_pP$16Nqz z_wd;#&Ck&BGo!-sN3Z$l;rlC?-fAD{nS*TdJ>GJiY0vV7g@ z(f)l8-&w~dJVdW7-$}=bfn0O*k>QJV%|A)6jJ|yRrfUpjc;CYh=>J8pEdQRzkMq&P zch|S|=eX8hzsmCE!ft)vmwp5D3&}H&^{y}dhUS-&XO?f`hF{Fn|=Y0>~`i%L{(JRZh%H2;qe!hp#HZ?z!URl0@8)@LG=H}xjd}A~7htn&g z$MYv1zwhBIGt8evuPon6_kn?o^?eWDrvE;@vV7dX@8O4A*!q{yE6d0I`yRftrTOdV zmF3HgyZ!sV^jn#~L!Mbae*fEXJ$z+b^N-Ri%lECGIDedv9)7UBO?Z`FS-zF#VIbGs zd}R2>4(4aS&R)OD=<)cs(ggz<-uLDD^b67tnB~)d_Ervg-@{jSvh|mzSC)@o|M?!i zMZYG!^2p;x8o0v#eGfm}+1CFoy)x$G_)Ewuc;A=)3+8v0XOKPHFLpD30==^Qpj>_8_|y>XdS&@e@Ve2pv51-Gp3A3mF4h~u|GqDee;@M;(>Iyr2Vs5R!`Jt>3DfD7<>P<<;CuMNf#%nySC)_G-}mtSgUoM3 zuPk4lxOAG4Yi>Sr=?^x)mprrlAkD)VdDp{t4>A8$dgYPF4d;Ci-#*m*8T88Xo$&tU zd-&?%<}adGme0fA-|#(r{p;qhr&k_%+;IE%J$&;h^Y_s!%eP8BasGS{Kcs(*URi#K z8)@LG=H?^A558gRzf7-;9Q&snEx!jGI|_;eE;`7{D6Kp zdgXE6_we--ZT+v(E6X>m9_`=v@ZFPa!fEu%@~!at@jZO?RP#TfS04Fv4ls~wZa#9k zKK<2NpIJV~jWlot-*r8F|1?|wUV3HB$N7)P?|b;_8RnnV{+Z?TaQvE&9=`rv^Y73r z%g5KB@8OFx%`cGtJ8FFXQ6BlU4hC{9^yU7~GC!TZ$}AuM`!V0cH_kV|2EDR;3pdih z71sAX{NP9CH>X#|e4PLHeE#8l^zi*3o8OsUS-zF#VIX6D-^15C=J%mjmhZ*C|HJv{ z;VYM$KayTqzKxPsSwWcd8&=Fg#5Mh`zo7Yt;0 z-@|8Dn*S-ivV0Ra(!dqG@8O$QnZJ=<8B@#0&+3u)J$&ODn{Yq9@;L8%`1-HR&!ShB z@1%WTAY=c&hab|vOs_2815QKU_we0oZT+|DmF3&G;k@tRi|ft5|HgE_T$YdT|C*1! zT%Ue%`YyA4eEs+yzH@`EzcRhDd_BB>`5u1w8}l2|E6d0I`yRe=lliUbmF4rWzVG2% zJ@fm}E6d0CPv65ge{22>dS&?@9=tS=Yi>R=eDyZ-SJEq^$Me5|8)@JQ-uLkB+s)rX zuZ;Qd9o$F*SMa_s*T2JjU+XiE^HtZw_wO`6i(Xm2iyLX+3hVnGzIC_xSLu~8f2!m6 zJ^bJv^Yi@1p8v}71KdahS6JWo@V)!YFHNtE`B=Y)8)@JQ-uLjW2h6WZuZ;QdRjWtd z_wZf*fM#oYW%(R8(!dqg_dR_754OM|^vak&)%o*1eD#m!PoY80MdrJhH)7uD zE$ct8p7{Xg=a_LkGx33A$yFx*dsE*F`NEW^`uDQif3XwtB+r+!&R2ZD_dU+{;0g2p zqgR%XkC*S^i&^Fuyvbhg%JMxPA9BsjM~2UyG`|wPGAg`YTIqs;4DWmR7X1u*W%(0v zBMn@^``(}bl~8SeChjg|MbUd|IG3&Y(9s_z?hxOZGea*-E*nj02+y7s5 z{+PA@Zt$8f-{btZ>6PXA>xj|$^SwX*^;esG{MUtiOUgL@`0ssJp11vf_-1?lD{K80 zZlr-LJpX);<8S}N{Oa_|n2+aw<^AbH8uGq}@BGL7=Jd+)`O1^M@8Nst|09O6E4{LO zuWTpQ_dR?o{eQbK_N7;r&un|6{rkT3>HkB8ag02(e7$TZ)^E8UzR!Fry|R1}zTWgb zd?o#V3NSkK%JT93&-d`n^zXo9TtlxcU&W0ya8+~jk>NZ1h05*p%INX<-+~)y;0oUN z{`vcv)h9oHZw~p6l&5hH-5v5{DNptI^|}5wTwhu1_rvT`wb3J^8 z`B{49ao+dvIsGg2%JOrB_fOyZ=g)p?PJaG86Y`rWPxbt%Ze+**F4tGq`n`0@FpzQn ze2@JP=@;wS>rYvJo3MZ1`~9E3*5v)qpPnZ(u`tJyDNnWk;xo4YReQF+vevJJ^?i^1 z*Eci2CB3qIo9iRv_6PUdO7k#~ zv47wD^M7SH-z%;&`TVb+@>J))%Jsk5v-7X4_0u1hL+kq<`ybMumnKekS^mV}H6Oj- z|Gik+;Tv0;pLVOQuZ;P4|I5<_0~y};@GbiMR`bf358p@^3}krU!w=}! zy4Acg=ED!t1p^u0_wc=~Z2x=RYF-)h;p6%9J$$uh{u}hl^7V8d7|2-P_wX(HAKYr| zD`S4SK5!by@V*LSq_7yPYxW%<9P`@lfP`o8zCzsJJst(HEo&n%^V*d^tuUVqh{ zZ2c9uzOvRI;6@r+-}l&mhb^A#{W-M|9|a^j?A*WT**ExmhR8z zZ9~TW`{Vz6INmR;Kl%9gP8r7^zkh7)V*Br|XZu&y{u{QP(ee8p$3LJylU`ZA7rgJ` zJGKD|MX{a{SLEy z{CTPG;VTW>|NqwJ^M_eJe*dcZ=u5w+`D0e0XO@qz|BCD3v%Sn8lnxZOk4jrK7W+anqFWz-h?)9=@ReDZR3Mr_>YP_wWPylhbWHf0X4L!TY{k|4X+2rPnZDFw0kh_dR@_ z^S9OKkKp6ur}?;l_|^fo{tjGUdEENGhi}s#K(9RVxRC~~YHmIe2f0y zeElfPH^SFHzK0)t-S%Hex69WLvwV&lY2XU`*L-C7>}d0Np2I8SCZ0dIUkqHq`yRgX z4fDU8XC2?R)rU%htb?=TBLFh|Q;g zjQ#r_zHyxS6Ovr@r%drd-xvxg*<-cao+dv^%HIXd(tb*_tG9Pkg~ryp>AW%>C2<9qnt8Mgmv zI{(b_IX0gLGWM_e$nXQse~Hf@W%T9wOV=34@VJbvYI-uLi1{q^+9b~^S+1g(Eo#8d7Sq>e2@NodgXE6_wWPyNA>tK zk34RqfvcLEj|`uE*B<|!xV|zfJb$v;@nORIzVv6BKS`chKED5Du7__k|5LAD*JJ(Y zH6Qm6pPyyxpUl^fves{b`K4P@-!_wWVhADe!D2Ct0ySiiuHG;js) zd-&Gbw*KNger3#uZ=?%`yzk)$^y|?p%U9-{?0pYEJlEF$1<#+dd^J3OeGi}i$ow4q z{HZM8vgJqn_dR@v{@D%f{3**&LeL7Yg&rNufo7pEq(AkeDgx{7Z>K0F(1#L4sN7@D|p|-S1vMt zOJQCa^WodLkp`~deGlKc*!*#Yd1cIp@23lfyzk+gmzZB;BlF7ggHlg;-^150HNSab zURge_?|b%bHh~Zv^jq_zwL$ zg?VN9Uhuw$Z(PCSr&pG5;6@s_s=4{d@V%d#pZ7LfUl~0f|M>G~-@{kC=9enWE6Z2X zePAGCec!_u^zSRoE6Z1b(~$Q)e3SkMg?Z(1-uLhw`bX)N<>UT+58tI{T@PPjKAv7#ei*#(%k^)u z^}nz6ndRHTXRe2DGhaooJkI+bKJVH3r||QqvV1kH?|b+<{ptMuhq8P(c;A=Df2*y( zP?}f%{F_-muAjLczRG+N_pdBJ4D0*8JpSL>`oH7(%bDfl{(TSM=llohmF4-*(U0DL zeLoYEI9^^7Y_-4`02* z)?bcZd7Sq>e2acndgXE6_warC_2`x5HxK()-&{TY_etsBqNqIh$#TX=PfPCwoQtca zPMMrrx7&ZuwA0(^jXI6=S5YR-$9n$x{6={G9=ze?=kqZsPxbd%@;mK(Zp!0P#{ExE zmu9+PAlK3d-{X9=>35=69_M`zpWS8aA3(1>&ifv|Nq-EzvV0>gfq{(u`yRee|6O`z z`FQ-khcE87{a-|{EZ@T7X&_^L-^2IlucKEU=Y3zUe~+zykJe|F@0P2(^<57?Wd19? z@;L8%_|Cny{!8@A-U*|mtI-E9ro{g_yK+8clLg!EI$a|_wc>@ZT)5FmB)GC zm&gBr`E}?!%<>J~NCQ{3^uhP=S>OCN^vbBFr%N?mFyws?U#0&dy|R4M?tbKbU+({p zHsN6HpIN>rSD#qF<9hf3^Re{G@^SyZhp#+j>$mBZ<>UIkhp*FLNUtp4!HqOvZ!`JDj-C?gEW%;4q{b+sP!xxX+goWsp<(p|A7|7Va@8P@jE6^*;4@*7a zeGlLHtF6B&y|R3JPP+qStnYjH>XYVor&pG5h3{v4U+({D^M`By%<`4FCa>RhJ$&zZ z^QX`&%YO(r(!dq=um0=l>xmo%#~C4C81l6t-xKl^A-@vxv^6HLw^+z4hP*+@^^o@s z`RI^wy#DK(`HRV4&$L4RUds6T=7i_x+83t;9_M%P4?Dl}rNmyGW3}l>N z-@|7wm|vP+85Mj9c?IwL(*M)^=j55?E4Ys|kW24+_zLqN-NycvF@LK4`yReZkAG$r zURgf=yu|nLy%%l&_}>)3E6eA&kp`}?f8WCoUNV0cpWn)ukNwxv1w-EV<^Eqbf2m%d z%<{c-T;5k*4?p~u`RnMF<>UIkhc8|+e+Rv?eEfNf@8RpOng1)jvV7OJKRSNj!)LFX zf015UelX4M0J-Mo<0kyzP4lzeX^-D1ryl3OnJyUezAyLxmia~L>&%!x)$`By@J-II z(ksiiuy`6;-}mrC`p?iS%Qs3r;eB83|83j<_S!$Qd?on0>){*Bd($h+w}bb6xqtev zYX9#3r+WSmT@PQpWBWgqURmq+!}`95ue@vie0pX1YVf`<*QdW)>ody_f-hVTpJ#KH zGj69>mhT4dd-y*6pXrt5%Ty+EZ@hCG;mdO^Kr9We-880?y}cUpBX(K zzeaff@jZNXn)$`)mF3&v>jU4z_vSah8ojc7GwlHb8T-!#lNdF&t z<#FEkPKzDKJ?1+asR%D&z3NM1ii9+ zCr!aXuDSWR3E!bVgpwuRJkI+bzD_@jUU{7NJ$#G)H61_mIIsEW z;k%qa_dV%&T^{E(Uw%Np7`^g1?|ZCYS=!FuO7zO(yzk))`hs40ocBF^lYV=8W%*+6 z^5Gvn{=P5I-}1Kqz398l@95fG%<^5_NCQ{3^kL|F_|D3<{;fKGX3Q^-A2-s# z6};vnm+M!}_q9GVdiWeS(!f=@zU$#DtD1k3URi!Pf5}JQ_wd;U=3l2*mhTxKdEdkL z=-+>@z5bNtyTSV&zPX{T{|S0!`F`-ehc62AYtbu@^S+0#Y-D~5dgXE6_wWPyUFenN zFJW=MjE(+ z_dWbz8}paw_?a;uz8BtqG#@>DXGinb(JRZx^XGf`_Ri+-*YPvU$LEjcqla&N!TeM7 z%JOyGNCQ_jHy;_kyNmhP=#|k=PnUYSU?9W$9zNUE{5<#B>qmK<_dR@_{v-6t@6PWOk@n9lKMcO=dieay=5MA~ zmTy}0?;c?j{!Fhd-wN+PzAyLxHS;fN|IG67_XAbe!xzVxpZ$J&{wvE@!}0qb zzDd6Xy|R2Gc;CbK=|4@cJkG2CUix`H{=P$V@X2z83z%C^TE2q0&-^>)%2U?QVs0@1 zkGaRZ@S1l2#nU!_Mdm*9XP7I0w|*DRXFiO%{*3kCW^O!Z`BLW2^OkSd{C`;fD|7aO z<=2?2|FpcoTDHIJMa$EbU$(p+bA4#}bIg^0Sw4_?$b2Gm>lN$IXU<=>d;@d!HOmjn zzi#;j=E1)$&$+hkukjztOEP!|nNMOKGGEACS>60i%vI*UG8fEmF*lg^P46pt zxw3u0zdMe9-?%qh`iDQ#xR`k`yXD_7SLd+&AoC37XPFz!|6?xZv-$U=7j$0Uvwc|b zceY;Reb%qYd=B$w%me1VnJe$N`6n>%#C$GuoB0~%N0{%IU%>pc^31c{Vf$$_FUI@` z^V-bwe8BvU%ys6&nOn@?W4?>|D*1}}cVfw zBdf>S`}rp6=SJo4l+A2c7i{CvrwfLB;d=PWapqU% z`pWY0^QrIQv*XQAqgR&C<}H^Wt?&ENpJsmdz3uojX8GLsgm*oB&ioO2W%*93o`S{=dz$?plg7-aqex6PU>VgJ5|Z~w;p;yiw3`9b<~3}o!z_wdc0`SZBGvV45}d=H=9 zYW`|^W%)ep-}mtOZRYQySC)_G-}mrU`iJP1<%_gM4CI=dj||_WAL#g*(N9m8M!H}i z!)rb=e4q1QpjSo@Uk}Icd-(hgJN|cc{LJ#5bRQVVSYPvz;d`7v-venqm(gSWJY6u5 z;WZx_en9_WdS&$R@%vfd!#D4>{a>4o6YDF>H*g~jTw#6R!}sqqKL=m`%9xM!`|- zL*DoBjfc$d!Tl@C$DarJ9=`sF`Ge?{<>T@D9==C^61}qg(6&F?zwhC@kJ|bjdS&_e z`tdz{@r3ys=#}ML;rZ|Ta{mMKeeIuFKK?wY=X&`5-_1WwuPk2;$M1Xi>>2Yf(<{qY zg7-aqh5l`NW%&kfq=BoNn~x0NeAd>V|Mz_VVMaeaUFzwAfef$t$nZVR|1iBWdiXqD zFp%MW4?mz^mR=e2%k{(K=X?0-KWzVN(JRZx^Y45327R4gSw2tuz(B_SeGlKF-;-Wh zKCbV3_%8in^vd!D7Ec2i>-!#lNPh~w^2mqt=X?0-i+29brB{~kVevGOvA*xi_31Cu z`pok2`;VdP;ae};`q$Dc%lEK&8pv4R_wdEg{2lbl^6l{ToA2TKubO|HURl0}#nV8> z`o4#6zh?e9dS&@`sVBVe;q%wc|A$^#zFgR?@B7mK+x+Z(d;R9j^1ZOW@8JiW{{ebs z`8;^v!)O1o^_Qks9_M{u?w@{j?Vov^&s`5+FwdY@9_M`z-=N=xUU{7NJ$#G)V0z_o z-uLhw`s3)8$9dnw_vp`}S03km4?m#4lwMhWh#P6(s^;b+!}s5?$NzeIW%Se2rAQYH zWO(1hSN>=IZhB?;W~nE<@8MhYf2LQK9|rGx_~x6o{&V!o@;%&016SC;@8PR&n}35| z8S`=cjrr4uG~|5`-=1f#vY+P<_WD(pPj_1mdEdh~<~9FOdS&@u@V^vd$B1#APz zH8&r*-2dvf|97;1X8FSS==EQ?zT7|a2OhN7f6MiF|LEY3(!dqg_dR^RrmdgTD`P%< z{O@6W4_{r|{7Ur7^3`-77|2-P_wWt+b?BAl8^CGE`yReW|5rZFyG5?sk zyNLC_(EJZszC-!LmY-m5Gr!7QUDW#d*R%Z>AF=##=Kf-q*JiGK)bb9@*%FoyQC`yW z3CzXEET6;N&MkMD^QA1`&D>ww@)OM6>6Tw*u7ASv-0SmvFJn1p?k;P2ZS~7p-kQ0+ zyyd;sf70?dm|H7YK7+Z({C~_t=EW{c>!;rrxA^&hy7C-@*;& zH6MQr-`UXC|1S5hEFXVA;CuMtM&>V}SC(&=t559T_wcQa%|Dc$hUM?~nC0W=N6kkM z-{t%s*H@Nr;6@s_s=4{d@RiTl`m-Nn>no$j^Dj>q3}krU!&m9A=HsV~`S6W&!I1Yo ze4G9eJ%5J$6-J$z?#^Jnt^ zZ=x)p2k-lG|MVxP_w(}iL(JoR&-L&F=7ae9RhEzE&-d_^Eo}d9@%WYH8)5&xhi}qv zy|C?HSw24heGi{~*4E#N`&X8)hxL6AU#DN>kG8(D{4jXm!xvlH`c-=6ao+dv)ve6` zm5;x&d@ro;d-x&!46d&%--+K}aXxzZ_BOWuCwTsq<>UIkhp*SoKhJ+3T6vuJJ$z+b z^9%9uQ3WhxseGzOsCg=3yXXec!_m=>Njcf6DR;mwLkce$v;E=`RS*bUl2Rc^`V^ao+dvL;BUyVc_$(vV1&#-@`X%+VL+%uPh(W zzwgWa)8ogySij3W&ifud+uPQEg~zWv&ifv|PX9^%{SamOZg~8BU#`E8t$(xDXO{2d zMjE)P;e+ep`}>-IfUjR=Or4%C)pWs-_kFqke&+v1pE1i9rJnGHL*DoB)&1@9`7*t-e0+WR9==1rz(clw<#FEk@Rcvw z`X8lNmM_ZPPwe0K@OAoS>6PX4;C&C@q+f$xSw61sd-yK>#`Mba@#_=c!}kub)TmB)GC!#C+?qaWpT ze0V?XrV9q{ujc2c44)rt`#+KATN(4=JK^g&-^2Hs=Fisig;~Cx?gIlE>uWwTeEm@K zm(nYv$NGbG!9a%hJ$w~!6lwgDURk~<+X?S`_$K|W^vd$@Ie(mw9zH+J)_;&*S-u|D z_kFoO{Zm?>S-ul|)AjI`uh{zkp;wmAgZDjrm44ob?fIuH-@uJDa8+~jk>T5i+xj~$ zV_q3O9=~R~U?9W$9zHw5{Cf1t@>Sq8WvyQc-uLDD^gC*OX8CULZP&vWN80*LdS&@Mc;CY}=ue?nmTv{`d-wtU z#q`SZasR$AkN<17|66qY%<|;}pZ0)UOCQ>7_5V$;EWcRr>hIU@n?7ZquLjJOl`X%?TxVV~y}xTOxXT;$`-|!J`RrciF7p%2 z)lXP|P3%SfYw3gU;oF?Qz@N-3%jdvp$on3?OTR3=vV8n~ zxbNY6_(CL&wds}RTV*@3zVG3SW6js;mF0_cUNDerZay-6>zn3xqgO_c^IuID3}krU z!*}Wbwv(MdW%_3xoqmTwpzdEb}o)9=g2zsoEizhCq{eCyk`{uAj6 z&p&1PxW4b<2lV^%{3**9VgJ5|&ri4YH{QqASC+5iMjE)Px%tTO%`?oO!1a~UPxbiu z9==0=A-%HvFx?LZGS>G!eEU1L{;l-NG!eExm&3;danAG7>>9zWN^H-BJ$33_Gu z0*j}CjP-pF-=$xTURk~coQAyb;j3rc`dz;Ml;sdw*Cz6Um5f9_zltpL*DoBtsk1-p09sp`HJz8_kFp4`rWvGn^}Gkyzk+g|7Ytj z&h?e$4iAG3TTK7Ot*_s@Ja{m}Jz{$=6#eP8;Y z*!sVbXV&`h{b%TU_}(SvAD~y3ug_@*fLwF)k>M*pGr!9|_WDyskNr2oe~;jM_~w=7 zAL07S@_D)s3}meDd-yi}GxW;x@$vUPe24xudgYN1=im46-LCC_+9P)S%JMljp9V7a z?|b+@eNL||-z@cn_dR@ZwXMGfy|R1}yzk*#^qbHt%Qu4eJ^X-vM|x%XxPRZn*RQet zA40Dz|DL~(%=zfy`!|~Z2EDR;dE(Pt9UbKUWxdgd>sSC-Gy zIvB`U-}mr6`kUyL<>T|$_vQZSf3N*BkMn)k!w;Be(JPPhzK0*uze=w>&ifudyVcI$ zY>(ROXOvTg_mBAg?|b;xZRRWV%344D*r^=IH8=l*8>H_i6K(1HSLTzLmuGG>ufyD} z+V{WPFz2gSe)6((f9daEw)yuV|HoWibIo%7Q_|1IX8eA)v!Z?f zy90A;CChs=4_3B(1oMBZmQQEyu44Ho>Y49gUT#(Eaen;w)4Oaw`TOa9$b*!p`gwEX zc6&UYKg}LbW!yg=&-i@yJs!^{{Z;hJ!`QUo^4)Y)AmF0`% zFyws?KcN3By|VnE)DzzK@V(#J`MZN&S-y%JY2XU`_dWdZ4)Yh$D`P&+e?MI?sC z`yt=MckeNOFV|O=?}qh#U#^cIB&Bf@eS=xPSGE)9&-d{8edagi{*~q9_cOkSuikHd zdwOO0W?0|%@E!U+=#}N;`?2rK{r7GCBeZ{J`N5pF0pwcxkh>l}d)WL5^vd#m+(-jg z@V$#*?>}klKS8fN^5yO) z_V0W6>?!mAq*ssecWQF>+h zR`9+rkN-LIE751n@_F#ShtD~GQ+j3jxPRZncj(f@%gWR4w^Cf>z^k>9;Q6i?-Pm_?D6{w&!4i+-+P{aoR1#of5?0S zy|R2A2cHIV&CN%KFaBxkx3xYq`ttoNU1K1_Yd$i3gY!G|%IM+a>)-eA?H6tRE9jNw z`{_O~kg>k+%k^I}f1B24mapSR8uAU-!*^dc{}8?M$QvJd-@|7^^Rwuc<>UT+58tPM zkzQFoKK{OkZ~e>Ge}i6GK0f}wFW0A^_7{8q>NCri2ky?F?@RxRt-p{w^H}ft(!Xkc zNqJ`Zxc|QE;q%wbuR^aZ-@^^Jf8WCoUN`?4dS&@Mc;CZk|1p2W{C577<(t9#9=`cs z^PlJX%JRc<_Y==w-@`ZFFn=h$vV2_M_wfDyng2e$vV1$N@B4E7H_czI^_k_n!8cqF zUwO;?pXin42f_Ouen>y0SC)_G&-d_yw{88o9=FF&Sw8OH_wem^%&*1AUs=8r_V0W6 z>bvImqF0vh1@HUv`04BPLuUE7zVFNZXXytGX`G_{Gt0;0Z@V78n9clh^vd#idG8a? zU*E$w=-;JRmXGWE9=Xefo{*mF26!`yM`~T^X>G?@)g`j16MUS9~r(~ zvHd?nuZ(`G?_Ycm-=%+*UU{7NJ$#>jjwkH(qdd<09)3u_Fun3P?|b;lf_D7N(<_hj zzK5^Uf0kZZKE8f^58qhG*58d@S-wb*0|s)<%}0js&>uvvjDD)e&-d^>`eW&p$9dnw z59m*)SC)_OpT375(*KxVSw2t4fq`6e^O4~z3)}g-f?gT@RLAdo_$vMF^vd$hbUzr# zSl{>X9r}mqmF26Yp76eh@6$g^uRPBC9zI*dj{hBcW%+pieGgxuul&tkf6C*$@8NU$ zW$2aVyW#kKUmidGTJ(Kp`677Vm;3*q9sicvKl3C%}0i>E^6oRHF{{CVz<%#}6QEBCVxbDR0G^xs3}JQiG?mcDKG`Ebr} zu5132Vg8A_zxAzuVyVggO!nOktv`6z$$cgLTStDq%XEL6*!&xq`^@(+=by3uFDZNf z3j6M6*3Wk@fBwC><>}1%49n{?7tGr$Z(;r3%me1HGIu{~{cY<{-v77R-?f$XmoopC z`Bvs)YwI6nKACy8^ceV`zaO>5!^CR~9*<@hPUuE1sUO(-0!9d3A z$M<;tXN#HNc3@svzLBP2$on3?LEjjdSC;SKMjGod#uOFiK;*TeUj z52sg_Z{kK8xT?AN$neFIw*F}YTVEMH&R;!UFp%MW58tLge_&o&K2Huq-uLib`tHEI zvV45}d|&SWW48ZW=nLj?-uLi*&cB~tS-zFoK(4v@$nf>t)_-zf`&UMf^H-z`1~RbJ4?x1~3j+%IyUy&n&^wSHOV z<+ihoz2_rJG7o_9-o|BL^BuljU*{66+kJAcZ!f1JNOT`-Vw{(O(~-=sg9 zUK#V@E9rtE?|b+b{U)<)eP#Ks@samEeDxEy|9>rRURgd5-uLiz`kIcPS-uEf^U=e% zIe%_?W%)dK-@|w5XVNRnSA+LG{DA&(9>21DT;KQb*)n$i*5>-k@d6qqX%JS{7zVFN9r$2&zz${-6KmYPQeD#xd{EeOY{9%@lKY!AE^yTrd zVE&9*<_l)|df313;oF@56MAL&0yomYRV{t+J$!#fTmObxw!Sjv~r9XEY+rRQS?|b;lsxqURgfA{(TRht!C@jc>K!ayzk*F^qZv@+H{x4dCf-; zpVNPb>nqE5(mV|0nwyUd-=qIN&%ZKyynZ_Af`JV0d-%rccKk>2{3(y~zK74&Fh4)N zvV1)MzK5^SFR14q^Ej{h=;3qDpM&RLd7Sq>e3kw_uCFZLNb6uA*W7$$_%{86djAOf zZ=`t`@|rI{ zmE{|_kp`}6Zay-6wyyc5>6KC8@$04w1~RA58tCdl3rOp9>4G5n;Y2rr_d|Q$Mt;=KcGLCUU}r_v;#n{ zx%tTO^-XO3U+MUn(c|%JSv_(5u7~e$VH578SC%huBMn?(ec!`Zwlx1Fy)x!w{UTj3 z4x9InySC+2^?|b+z{ZaJF@^SyZhcC9V{hvXvEMJ86eP8aM z{vz$4Sw6o0Tds$1*KPgZ&@0Qw=kLznbdiW;i=k&_syzk-L^y|_q%g4vx_wf04w*Sx5E6d0I`yRfaKZIUcKCbV3 z_&)u~^vd#$be=GfYi>R=e06)<|BvaF(N9m8PP$+q!~4EmpZ+?n&n#ar^@Q)c9zNf} z*1wNlS-uy%@8JjZ1A1loR`9-uZ+y6PUR+(-jgH8&p_zOj?}8oe_5>FH9;nLea}4DWmR&aUPUrdJ;M z*-Jk1zK0*|ZvLC}%JLoKBkz0o))&oRK(8zx&%f{C`}8-^E6ex7`o4#6H*Ebs(JRY0 zgZDjrwukv4y|R2ec;A=n)6e^iJ^$Lw^1X2WeGgxsY3naVuPomP>-!$QOTQkyvV4IX zY2d2n<|D%o_qO#vPp^y~&%Ycu(!dqG@8K)>hm_Jdj9wY@;p5})d-w+Z$@I$Oyzk+= z^gpCmmLH@&U?5}vzK3t`XZyd3URk~eoQAyb;p_XG|1G_;{17*s_dR@Zfcb~$mF4Tf z`@Y=&f##p1Z!?d)EkCh;*TWB(-=J5P?*#9A_|`$T{h*1-=;sBURl128)@JQ`}aM3afGdZ zD!nr1WB;vm!I1Yoe2@NodS&@esVBVe;TvDI^{=K^mXGg0zK8G9|CU}^K7Rf0`*QzB z+WHS_|IG65*}v<{{eR8;KeT^l`Cd5whU?+;ubZFaIeYyn%Qu7fJ$#$~BlODh@%_j5 z@Pngl{ZG*=%g6ou9=>z5`OWE-)-h3`Rn^~|McI`{+Z?D^RMH2_#yL|^vd#8+(-jg*uU@L^W$y*KciR1eC)rUE*SE@ zFW0C4t=4Cj@05DN4_y!6KEc-i6TPy012@vZ754A@a{Uv{zpV9{pJIMpdS&?qaU%^}!K=TNe}AE}p8b7? z8=0HT$MEkn^!WD~*5=`7Jzsg4@-~Yz!ciPALx5ECv zz&_j0`jbC2*?*b+W&2ydZRo$vzJ7r93y1z9_WwQ5`Y(n4Hujx^t^aZ8pJYFyY5h&1 zf0zC6Q0q4d=kLQ0*!ex@Fzde%`c>E$hg-j2IKNx6f9?qD-wORc?Au3LUl0AU?AQ9b z^+$xq=WOyb@&zUy=@^Cy4v+tf|{j|_O$9|_DSbtpT z-(a7eWBvQmKeUMde`)83mRAYyH%qafajx|r4*h!Uhv!-Ub~wHr*`Mo*PlaP~#V z`U}GO|2F&QF0lU8&|k#9{S)gC3+Mk9_G?{ieG#5N53?U!V*M3ie=oB?`7*8_j&F`X z*!inoZvEro{%;EBf3Y;*zn_1KzV&nSpA4_BjoB}EmG$R`{cXp--?je8(C@?k$ZM>B zG~EAj?DJn*|GBXLpRm8{SJodMj{gSs&FidRBJ_Rsi{4=U>EZEthJEkX);}8hx7hFZ z8|(KB$G7lHcrC{t)Ia^GVFv?be^i zJY@a_bMZUt?__Q>KgC?V!}@obyUdIH(T;D(ygYO7PMg0m^MHAK=KL<}XUa2wg}J!f z`fo9}nSaFGVZN3*yT|4~z}#Z~hvqZC%Urq7=6`%T^?j0(@6M!H}i!}}h- zK|k9+?EAq{PE+BVFlos99=`u$TYo`%Wz3)I`RjZ5O2_6PXCxRC~~u)go%D;JqBbo|VikM%q0 zf+4T@$nagx--=#YJ_k-i-uLi*`d#Uj$9dnw59tr4S03kmUmpL(cKj_JKeK$-wm;f` z#r5z#=F{kvylt$!xHvV0M|@8JjZ7t$-sSA+L`dHk2!`oGrkGs|BZe1-kp z{P{g@)klk;eUzbTa=Y8R-U_W@k`kLnVE$_yhGw-kY%!f0# z{$TSjNUuMC|Jc9(?>(*xpO2?+J^Ax6PVM zX$l5%&CSP6_!j*J^vdY5|8}}yAjA6}zH)`F|93qB{`yRe|mF<7$Q_U;Ox5M%K9zMIq{Gwc6 zS-y@NY2d2n=Hn)O{TJqMT*}s0MnBc_-}mMI=~v+TP3DmgKkxTFeEV8kzsvQNM?UQX z0~!1GJ$#pb?fq>3$|H{(Y2XUp_wfDeZ2gV7e`U;{>iB&RKcwH9URgdqe|!($xZc*^ z>;DmUCvek_<@>-VUXpd}Wa&6e70>X)z%bGHEB8R+ME* zvK3=XA&vYhL=94u_+Q6$9>?>X@9CY-|NeZQcjovV*Y`QE`<~@l-ZwvbW%(lQ0|zqp z?|b-~{#bft`DWI$-uLi5`pXu!>!&Q=3*Pte#Z|WdFL1uHd=b3w;Y<3j(ksiy`M!rA z(O;Y9;D7I+EZ++AeGlLGsqO#AoUbe&=ldSMM}G&svivyA_dR^~XEy&adS&@e@V>l=T! z_YY6PWj!TTP*xWoK)^vd#azVG43^mouJ%lE>3 z-@|wBwD}LyE6aC-_kEsEKhb<<`A+a-*Tc8&viZ-`E6W$b`yReSzt}(Q^{*^H2;TSb zjk|6BYv`5bedJY@bgbA7+{e_$Rl|DCz{2kYnD zGxzULS4(^!OFqh2DvGsd0SIi$`KKdc+PhsveU-;g+&*!4l`}4a-pYPA+ zf5%)iKNZ#=!oOc_@$Xk(mM**h{p?lY_p$4>=l=cdW+~6>_p|i__WV3&WqyCajL(nP z$1r{1K*sY^>yh#NF8^Tu8}!QPvk$K?-@`Y?<`-GT<}1q=xRVatV7~9+i-*j=ie4E@ zF+aY)`yPHk|K^QtzOwuTchZ3y%=bNf|6!Yd@R8<~u^#hV=>vzn@8L)EyM4yIvi!vO zjQ2hK@c(T7aR-`LmM?<$J^Yyd$9(*h<*VR*4`2S-<`4M(rYs-l`yRfcf12}^-~Dd{eF(`cgpzuc)y9)%lA0n#-nzp%<`S!eGfn2`mK5X%JL)JNe6D)Zap%5{iN;x zK<-}|J)S?^^nn8z-uLhm`orm!Kl6+a^Czx{um5HKTlC7)yzk+g|2BUWy|R2O%=bNfN&g#qW%+LKzK0*s zKSZxA-wEFL@Qr6}|Ig7Y%NN1>9=@Po^htaEE6bO``yRfczf7-xX8A^V|IvE%+5gA( zf3-Zb{1|uAftz;vqjEib`MmjC>6Nh_ub(Q+_dR_71@n*4E6Wel=fHuC`M!s*UgY)H z{+Z>QxRVatz-v7+e7Es()QyE#wd=2pKJOoQ(t#Uz-@}hyW`1=(e#%%6-^ZPF;0E6J zdH($7-$37Gp5}cI-(0}_7WB%~yzk)$3!2}aURk~fkDu@1M+=$XP3O-n-wIyq(Ze?u zF@FHPvV0dmv!?^O?bhQie79--L-fk%as3DB0|zp^@8OFj&3}wud7Ae<{D}T!oj>z5 zul4BR>!ob|8T88XMOudg8TzK0(#XZ|Pk)B?&phLCCmpzHr#}X+haatL^S@57jP-c__tFOrdEdiV>zV%vy|R3f^{n?j zd`*7?y|R3K{rDcfwZ6^2n_gKy?%((DL;8p5mF4%topj))?baV&+V6AAt?l=(Co%V# z&u5-6|4{3oeEeS$+$1>ur|zR?qw~=05XT z%*`Ea{dbwW%=e}5X9}D+kB#*6^yBvP^LEVD6PEYT&)5I3{2u0`nU7%ZGatj>pYAo~ z_osKopTE<8$oak6OuF4O<$3))UTk2`ho|{?D&z6P^SQ&%p~utrcs_LL7kk>?PnG54 z^U?S4#T#t?Yw4Bci#VU_(ZiR_o6{@Hm%;lUzNUXCy|Vl`c;CZUZ?yd%MXxL$ub=PX z2lSt%SC$`!`M!tmZfNr_rdO691@C+KawGE(@cU_H`M7`I!}sWa#`((f>1CM@-S7r2uS+~oPLho8LJ z=KqUcSw3Dr-{<{rYJTfi+3TldmXF_$`yRf#x%ox^$=4sVe7t^Ij~;%^^=r~A%U5X~ z4&=65kDT|vh0WiFzGRjk0jERW_wdav%`eFFSC(&t=a28RFU>C}&nzFWf7A8w74wdK z{wvEjZTmC(_dR@OMc7ztL+wK0kcT_3Lo|%G2ii9==Dv#9{XME6W#Q|GtMG z(4WEmD^K&jhab@&La!`ehxxvT@4Uqxzo+Sy<>U49J$yy~PCoyXA>4{#?PxM{of$a(%-&EKo} z%;@viFWgB7Zs5nRhwr@2{F6F=W~_%F;!Zkn1F!YS@XZ~}FY%1M{*}?g$LFu_;Y<3J z=#}NG^f_=KW4`a<`}7;rE6dlw>5%t5e6geLe;0aX`C-=#}N;_4hsekp4<~W%>C0^*wxZXWRc>^vct`@8K)@ z$LN*iI|CHs6@b%mG`TRTPSE3&>%lE_e_kG^~uI4wOubAZr!TTP* z`401KdS&@u@V?LIPrr}OpIJUW{(aZOkC+dkSC+5CeBZ-&cC-B-O|L9p1@C+K0sW`x zmF36w>-w43kMH4od)xdk(<{rz^Y=ackp2>SW%+pizK1XOvH3rxSC%is`THKeroV+= zS-umz@8L)Ezo%E0kLT}u_{P4r|0n5{<*P8?_wW_{EB`hKLqU>^Tc|4;J^+-v{dq4SL8<(d1;yQJ^O3*mH&{ri9a@KF5y z%C2+&zU4hB&+GRsV_vVC-|s8q^W%Dr(+3V@Trc0_dJo@c*ZW+0W%(L79rC`1FAp}q z1s^YE`9^rZ_I>t;m_Mkn=Ud4vUxoiYr|;qWA2R=X{=A|rUt{y>KyJJB$neF7&F{_q zE2GEti?3JT!*}VArB{~krq6)`8S{M)Kc+vIURl1G^{n?j{Dgjw!mgk4H1B)(#-Vop zf8yh>EZ++AeGlKFU!3!mr+MGQSM*!aD^K&jhwstP$c!w={$;CyBIeBsh{KyJJB$k`uZ^9P(iV3r@HbvS0c>+}APG=E}Y*S}_#9{{IA z-uLjWqs(8+*PpU{$M}r*eV$MM0Da9YKgOMO;HI7a@I8F>F`NGwy)xG0`BS719LVs# z&-3Y@(R^n47Ve}&zIHwQ;Aopa=UKac%JOA+|MornuPpzP=MUGT&--WIN&9#G zyxu=**TYYk_oP>zHsAN~<%xFw@1<9k?}zjEJ^Yyd>*?>A@%P`#^6~NaJ$&<%Hvhw% zuPh%QKi|Xm>5rjTmM_BoeGfmR|0KP#d^338!;k1cL$53!AAjG&7bn^IpGU7O-wpG9 z58tD|m|j`F4Bq#7|MUaxpIN>i{K)n2-IHzq7jJEkzp{KQc;CbK>968^W%+phd=EdN zzlmO1z8T)Xd=K9^)%Jfcy|R22_V0W6ivBTrW%+)X@B2LebesP_&1aT>$$Z!6`OHf_ zXV<@SJ>EZFGT-%i{^xA|>huj}%^$||cRl=&c?)`F`Cjn8hwpse=I=(YEMElgd-yK> zf%MAq@%7_-_%Z$A^vd#azVG21XW0HvrdO7a^L?N9Pk*lV&nzG3cU=$PW4?@DSw7D9 zecpf1_J6(h&n({x*T3O<_!je+URi#EJL$kp+pR~2FV3|2Ptq%+$Mbjn^nn8zUj6<2 z`F_No?;mIG?`%K+|Bt!sSiYG5J+UtTdtxsZ>2syesbfw4yx#qf{rtWubM;@#Z)YAo zZ+UO#&i^c5k-q*F`ef<$5PiNEtv{N1!u*r;e(Ber%6_5ww#c95%ghyXI`z4JU+_fu z{lJ0mnEUqyhowBP-xqXvy>Hse-Y=B#`Sbflo<4iMeUHa$LcjQb%qz>s=bP{0tF!F! zUYTB5z6kSu4`0)-O|L9J2;TSbt+Q?Z8|T>mmF4T;eGfmN-<0!}<$J;V9=`md&EJV$ zS-umz@8Ns&`_n7S_i-m3xM{of$ndRmZT?5-mC@tzkNfvM{E+^1dS&^zf8WD5&$Ibo zqgR%X^L-EBr@xwBS-wu^fCIVh)+56gU$Xgk(kr9K`FGO?4rF-W!}sVPpjVc!fYTxG zd-w_cqx8!1@%s55zWlQ7|5A-p{v5?>D}`hJANI>u+ZsFh9aPVs89y?*F|s&e#9` z__^@@f9P&=e?9nk%J_QlsYe$$82f|A^(-&6$Kya=Pi6FYJyhuf2Xfo3N6wE2{V{qx znB~i~4u^c-_3&fnJ=U=2qq2MxcbxY<{NyXP|1;^8<;$#R=ldSMb&>g{=#}NG;C&C@ zqhF0)d7Afq-aq}}+CQ`WFwCF09)8fb{clIFEZ+*=_wZx-v-tQa%NMwl4&1cedSv*< z#Ww#(N7&=1j0(@6ar(f44Db6qpZ-gl&n(|h1c&_C_3-uAZ2oUoxB1HQRo1iK_jx}3 zM!bGwX8HK_!1wT-uiN}@a{tQm74D=1H*L2b8Gi5$^C#-@V@8kbH%K2ikm0o+8NT|a z`FnW%mC?f&=>rEcyzk*_`m4ErWvri<_dR@{etzy>Sw24hd=EdOznSxu<;(E%v+v=X z-?8(5W_5e~mF4^CJa8bl-FjsB0sTd~{>&!Qvx5r-@J$#iua3I6`9=zd=6PV2 z!TTP*cc0CFj$T>5yOezbZfg5<=!w>#x^LM3J#(M0(pFVKN`yRgYjQL9E&n(|EKI63>J$%jeN6{-!^S;mf zr$1f$5A*AA{RggxZ#`@K|1!O@=9l5$TlyZp`-1t)>6PU>;rx9MKcxRTy|R1}yzk-1 z^mo!L%XfqKJ$&ay+y6uK%JT8`<9qmu{&9L``7+G+J$#@3IeKOJVer1s^BW806$`#- z?;jPjd@nryzK5U8XTC|VEI$hKeGfmJ-~1}{%JMbtqysl?w;mb3T)_OA^vdY*`pb|v z@V?J}LGv5QGs{=_9O*#L-u3W(=56Se<>P$cXa91W-i6dFUq}4?YnQp+!+sxox_ah|nTtKGzmmDbd<%1r`9bC}^HcKgG{4|B z_WR_Td3omMUe>Rzo_S04@3MYZ=8E}!%su9#nOpnV`cE@=nZL-~XZ{KQesjRT-~8?x zjYh$1hnp4B?~n1{_v|gaMgG68#XM%-jJdIh^*bmpX8HT8&;9xKVP7m^{Vzh_WnV67 z{mINnGvo2~zrS8!_ql&xeQe05ri|ZTpAvq5-CWq7zpEc*@1M$g{`B+N&c1$qkLTZj z{<gVMCmpzf_dR@Xar4*ED`WkRxSU<1*`yPJ0wE4f&E6bPZ^WZ?neBZ+t%a|Y2E6Z2F>5%t5d`*8C&tF-7 zob{~tJ$$vS%|DS|S$-6}@8Mg^nSVFE@-**z_{Q?)@1$3juW=_GxM{ofxC>veV15t2 zewESZ$1mODK!*1{e4lcB=Da*(C zzK5??Hoq|EE6WeVeBZ+tuQI3iw)v;@`el~yrFA%vF<Hm-KU&``>W$Y6mx7~VV_}(_Q{{_++;@^KOqsR5{ z+K=Zm=kI&?#@o%WNUtp4NlS1bW4`aam*pp6|5}e8zOk42|LNZkFv|~u*LwK@*B`>`rz~ILPC9VYPJj45 z?|*Nbe?rZ)udS&@CTtDB#5B4{IJYWCH^6~tA4_{U0m!(&h&nNEA z-}l)cVEzp5zhagz7su6`y?(xj?;mFV9C~H>uJOE$wp))LzS%YZR=xi*%Xfm;dijd$ zzp4EP-=AZj0P8Vd>*X6q+581KUl~2#zv6t~WB(ocA9232d?P&mzR&(>oBym{f6VgD zMdsdr$Mx{lN#=i{^JkVH8K1fST8|#Sb+Y+i(<{rz|Nf%y;mgy^@5cQr%lE?d_dWdR zv*z#Od}aAzxPHEe@Ab@&>6PUN;rxA{_x}a+Ptcdl^4;Kl4?p1gf72_=w}SUQ{8;l| zW?w&Na&mb7Melp~=9#wtMd+0^zY6nx58tI+W%+)X?|b<2EZhI) z^vd!T?xX`ZZMPmd&p+FITl1OG*2d!G{2Y5pILsG^{m%=^zf~7%rBmP zO^2_4%JL=dqysnDzwh(>bIl*3`ONa&tY>}K_3&fn9=`ap?f;wf%JT91AK&Ns=bOJ)^O@y~@cz|u zJ$&aP^S`H8mVe3LpK?9=y#I^M|5^KImLG@fU$`E=@ip^L&@0Q=!TTP*rhk@RS)PAA zJoEhZJ$(04n?K)t_Wq?T-@~1B;HK@?Bj^2JW_}U+1~dBn`o*1e;0E6J@T1GkuSl8d}jGh`aC$0^L*FCcbM0uSC;Psr$gTN@Dut?>6PV+<>vOjhj0GM z_P;H?@{Bh=GvD{{E&5&PmF365`##UV(dO@~`ONZz;G3?8A2J_8uPk2&?|b<2CYyf* zz4A2g`#hiic+F>?=7+A&^KZ8Kr)WO2d>Qs%x*on}K9gQqz8Adj;hVSE{0r!n`6j)xd^7y~>U;R%Q|1eLW%;q4{>=6BJ$(OZ^BdDE%MZeQ-@|wQW&W-7 z%JT8~?|b+${k!Our+MGQcmHkk5206<@8C{4aMO0{k>Q8Wnm>kK89knV&Gdl-8Q%Bs zBl=I%E6W$a>5%t5{Dl5&dgW=}_wdcjm$&lJD7|8 zt$#%8nO|V8D(jct*8V_j6_W zer{)9&%TFm%`yKR=PSz(gZDlBgns@x_Vq+rz6##=@SO#0{wnm!@{{m>?tA!hA@gsh zSC(&v??-%}=Pz!4N6lxJZ-xDLTn}F}zmHy7KEIKs&w<=_>yfix!sh>yk6+C!U*JwU zaFf03;rmVVCvv{B{2+MW!*`Z4|Ar6R^G8{}!0>b+W4`a%&Y48 z>v~+jVc5UcH0Hkem{7vmmhO|#reweb@0B&{Axv;-(0}nzm(;>!TTP5 zM86ijvV0Z1@8MgowE1`P@l%!`1n+zJG5unE{VGrMzK8FvWb@CWSC(&v`M!tm({IP~ zSC$_I?|b;}$~J$6^!Glmby>a>yw;6L->qo9tZ=-+!I?9?xG{z6{>?@Z;B; zzmWS^p5}cIU#wyNQayi|r+KYM4_~cm{ulJh^6~NWJ^Xk6FGk|J?i6di2?EX8!%$f6Xl4GCp(uzK0)h{d0Q$1>X<<9!Kjnzq5_aKU?R| zJZ-+#%hz20YCeCIr+MG!{nOvi_m4rCUxxGdJ^Y007g&%#{{&xzpWn1z`)}@G=f5Sd zzq0lp=ldS>JM{C>E6X>-{(TQ$(J#yWE6dm6`Qv-|@lLk?fAH~BmM_A5-@`X{Hh&2p zKV|tkc;Ca<^c!;j%JQAyeGfmP{~;fLW%)SY_wb#z?SDJYSC%iseBZf8-{<}B zVg3y5pIN?zJL$j;=9jLA@9t^-EA+}(pTGV9r$gTN@HPEq^vd$x@c!$2_{m;2|2leQ z`FQ<(pXa~J{4JW#EMMf^&+fl=J$#?}9(rZ@QSiQp@9u5$|46Sa-wEgMd-&nL<~QK$ zUs=8z=KCJLwV(O7(JRa62QGaM@-**z_%Zz&^vd#` zy!+Yx`yRe^fX&~GURl1zopj))?baj14-PcHE4?y$yndtieV+eb^M`0YvwSZ+e_O7H zAHL6gO|L9J3Eua4|A&}ANBd`%AEtA_f!t1i3|tT2{ebyz(JRZx`M!s*K5YJ4dS&?n z!_$F``M!s*>3>bHEFYhLzK3rfYV-d{uPmPjyZOG){xI`T%QMTz*KgDHdH>7{EM%|0 z+Vyz;^wS3pe7<)2!}st-*XA!nudMk6a606D4`0%+POmKA#~tT=4?jNK=5Il-JmZbe z%=bNf{Sos!>HL}H$H8kodid%H^ZU{(%lCu#J$&Ox^B<;HmXFUL-^2IlPoYvF5j=SC;SLj`P0H`~SH4b>5uzo7VQ3 zzD`HJ(E<%>CU&-Xoi_eAq2&@0Q2jL)3E@8Qc&n!lJ{S-u~<@8QSv3#GpX z#rZ2w^S+0#PqO(-f84yXe1SXZz)jn&M~3g8Z2srmzcP9}f6DOn%lCQzr5#8o4_|!M{QC6D@+Iy#?|b;_V)I+j zE6d0CFWbZ2l?q%JT8&H{ZjT-!^|Xy|Vl;%=bNf<2&XrqF0{geGfmRzm#5in)f|? zeTmJ#l3rQ97549Y_yPS5^vd$_`uiTfxYXv~O|L9pg!#UQFX_kh%JOCKzR%}R|2LgK zvwT1J+Vy$=-?ja}p#3w;=NEqZ9LVkTN8$SHFEhW?qW1n(Fw4j5?|b+T*BA84@`JE{ z-@`X9xA_~;E6Y!U_dWcCzNA-{FT=mz@;!X($2NZ#dS&@unD2Y|A^m>z%JReDeGgy% z#O5DHuPi^oopj))?baj1cds=6DSBn}`1&2MzwhCTtIVHAuPon8p92Rn=KCJLMSlss zvV1G+S?_!JivC)9W%;;&-@`Y5YWu&7URiz_+(`#+uz&Tp@!!*SKd^T0A7q|<(DJj) zoex=F=&kneeS6FW^O$)9=FW$0{SM5{LoM&kJYhbJxqq1TCo(s>md|Fcn7_?DV7`KR zbhxem4RhxsmdDIJ=BKotdC~3ce2OD%{VL2A^P0>(<~K8snRjAt9%;T}E}7q+ejX|E zm9;+(;=kV=u4Mn-_bBG^%9c-MZmnYZJmwDbH<`Pyvi_Hg%>DU)7xMQ)-ZcGu;`g&! z$h(I8_uwxK`AY6*w2tlPH_VfDEkDd$u4nlf=05X+_u0RHo-nV%T&{2HTg-jt?X{ly z17W}WvL9_=9?$pp;tw9H>^b+pZ$2~Re#-dw%_oQdURmpB_WJs}Uf<04)Odd>I0H9$ zeQ7;1UZ0(-&Hs;H89n?cec(Wb_dR@ZjrmtB#;;Gz@-=WeFeV<-gz7xFf^ZtKs``=yrXP)u6lMdXp(;ubl;d{R@|4GhQ#`^s8DR4UE zeV_MF-{t%Xv-~*gS?_!J(e*a}Bzk4}`1tuAzW$~8bLf@jt1#d9@MHQ*=#}NW;on#I z9=>yv&A*mjS$-Ji`yRe|v-#WTmE~K(`yRfe|0BJ!e4Oul_{J?Z|4Dk~Y2NqnL;C;H zE6d0I`yPHmzu4mT{-Z2khU@Qp_||Q<|2629+gH`<{jpD zr&pGbzhCuzo`0wLgEgO7KK_2Dc0GLWF7qFySC$`z{reuiy4(C`>6PWn;C&C@r~fj& z@{Grwbl|4#)+57@@3HycrdLLv-+yo?9k_w_J$!ku`60bB*27QI2M&4P!?%8C{tkL& z`5Jee_dWdJ_vZgXuPk3=Jv-m`@FV(X=#{5=-@{Mn7hHm`ALeOZ>(RqE@3Z|cN3SeD z4*U0go=?B7<}=I3*U!ZD@b&#Re^Yv8`9AKX12=8A9vQy)gZb^~mC@tzAEXZ)$nd_0 zAJOkguPh(mKYX9(k8S>8n$Ijh#PD<==lQOOA2XjsuPk5VPCDd$4`2Ps=6{i1S$>@L ztoJ>9`LOwK(JRXjgZDjr{#z&v4o<=gD%xpO{d{kqKOGH=a%9`l~eUt<0sbD#MH z<`MIm%#EY%^M8lA#eB2YGcS2b+Rwu2@#p{kbOYv^c{k=h^P$W`=Fc&Ym=EL6H;p&g z&o?!5@kYyMGMCI>Rlkw--%sB^7JRI5^F8*>O|0KB^uJ&~d6V_~hW;M*qfM>fB=nE6 zA8c;@p`m|)eQ!(aSGnJQ9=wTpGv?-2oX@;H^Kr~Q=5yqkzb9Xs{|$4={223T%!@u? z^M}lMe*2#v*M8^RKR@d*H2{U^P$ zd=b3w;cNQ&(>E&k`A1p46TI)?NA$<6m)@^kmLCVN_2}UTf3f{9!THMab@=|#_wcR9 z%vYSRET7+a(=6n+TaTRm-^{Pd`7LJoaaxCC#=9QA`MCKrIbT`6X?(`}9=@R8ob#3C zd$^Mh++hE{haWs)^DpImWvs{7&pQ13c;Cafo;Lr(bRUnOviu-^|IPL2;m6OI-;euO zmT$~S3)6v&{rf)q=gc22&n!Q{opj82*TeVzYyMPvW%>B}@jZOwdGqJfE6W!co(^Q} z-}mqZ{eWIsegK>fdEdj2=zmVHEI-bA*83iQ@ITxC9rVibt>AqRKc;_>URl0_JL$kp z+pR~2Z@p;q|36PXCd3Uqk_wXb7P3V=UdEdi#7qt1?&@0Qga3>wO zX}k5v@coyY-;Z7yJ+6O+JL$j;yzk)~uQ2}sdSz7b@%wMz!*>=je?nxfg8;C zJ^W-*^C!?NV?E|ia3>wOf%iT9cyaTer&q>$`1t0<}cL#ndJ-INe6B)U+a#*L>gS{nP(c`)8JKgy;X*_1Q0N^M5VREZ>jb_3-ub<{zL}mao%!;6QG> z^~msz70f?EuZ#-kU!@Nm$nd_0ujv0xuPh(me|-<%T+!w)yp+9vD9d*+JRQiG@B2KT zent9TI^=y1KX|3hUz1*0{v}_(xgI@yt1!PYy|R1{chZ3y?BDnB!&jT%hF%%# zas5ZQlMdX#`yRgc8uRaTY0 z_2}ViuJ6$+%TL05-@|v;wD}j%E6d00=X>~aZS&uxSC$`!`M!s5tY`jv^vd$_`uiTf zNq;@PvV0Nd`yRg4vibMYE6a~@CmpzHyY9v)=Xaoh{6-Mz1VC4Bq$o{I@i}DSeY!z6{>?c|O-~ zuld2p$G_ux_=Igs0KJ#zM?`H#yp%h$M*4%}q# zdicRx%%4iHEZ@m`*83j5v96PWn;C&BY(qBTaJk9$azNWv9UU{1LJ^YaVZhGZu z-uLHu{QTKq*8J#wpU$lqcjp&s%zYP2LeV$LhqvkVD^F!C?^WVM{yqV>!NGZ&w*{!?1d{B`Cr^N*Q3C)oNM zm}}U?*l%DfxPMF#Vi@_YY-! z>Un+t>3h8XI`sdbSDxm54`0zQGsosD%g3L8eGfm_-d_J7;p<;ne$4BG+;;1c;d?un z{{p=-dYpehec(Wb_dR@TNAp+FE6W$SlMdX#`yRgYcJsfbSH^nGkKXt2-JQ(;onBdf zm_7#%WX$(Hd~0X(13rGr@)dA8l^IYh1i^Ah$8k_3*8Z`5oz%KC}Ed_^#{WJMXahr_d|Q*TMT9enfv3y|R1} zyzk*B^k1h}p5}cI-`vgi{}Xy;`AL}Xd-%rg=6_AEEMErid-#(6L3(BR6@pj)n)H5K zu*1!KA^(hDZ@RnK*QcBH^@#ai=JW$x{w$d1zaG8)U2}gu8iss(%JceqRPlWN!}C$r z`NW?`e2?ofpkH@=`+A}*U*_G;z8-uJKcW9s%e=DuAb8)y_xG^JbIIlG{YY6pzMuF$ z`#sHH$@zU|`FQ@m&->^4M|l2||Bv@QeECkB{~GRJS@VnV`wZX1SMM^vKj$mUSK<2k z9)3uFAJ1P|z7F2^dH;Lc{6*H0Ctr)}j!zH~i&m-#=ue#-I#+)0PL@8OFBZ2rf2{>t(l<1^m(c|QH;=)27F!{B`n z-#XCdZ$hsuALsiXzNX)wURiz+=KDU+e~-=ILGzjAUozkIc|P;&HQ)94ek}Uh_3$I+ zZ_q1Go9}!0;=Q*2_wxCpEMJ84_dR?`f0Uko%<}Qy^J+bM_`$(8|8#m~`6|r!J$&>1 z=D$s^EZ+^@_wY6Sh+cWdr|%PSAh+FmWcbMkZT@5Q%INX}{q)N6{V?D6`TV;!|D!s8X8C;K(&s>Kr$3sm&;D@pr^++S z*I|Cs_3%CBv*?xOOWa8ZZZO~X@S~5|{EO(7u|7ZkxRVat!22G4e1!Qc=#{Y^KK*Ab z^MM<9_21R+Z}|I|&G`G2E`Oi0Rr-2T7|nk^*_u25ncvT~cDL{6p3(Pz%nLkdzuy=# zFU#EA!`83Qygf7a=f5A^XYaYc9~_1JrnJeCrt7 z|9bSw@&)ds12=8A9vQxKtobeJmC@t+SLp)>GQ98M2lQ_{I<0pZ>*4G4fdd&{>yhDG zAGi5CYyZsX=QUsJ<$GMeKfSX2De3dzK*oIazvSzwf0F(F^DgGb$(Fb0^S#IC`##JQ z=0j61@QHcg^ZVDs;rq<}diYDo|44aW|K71U&aTHtcs|Pb{J0)1+(`#+a6Z1r_3RvP zesHWk9?Dn`-%B4j|zvS@S#L z`uQGy#PvU=SC$_J?|b;(Nj87P$6r~#6}<1^hx9k<@ne?n<4!to({}5T;j2&a{5R+G zhZ#MtUk7*6fg5`ym;l038g2zSyk<6RG5f7blx`TnUa zUu8Y(eGfmTznJH*EMMbJI&g#i`yRgfyv^TmQ@ei3Sf5`%xRVat!22G4a)$ZE`TSAF zdiV-=(t#Uz-@|vlVE$P?f0VHvz7f73@_qJan?GEhS-ywQkq%_c@3-}msv1?Io4@1L0EU-JEv>)|^Wnt$`LHeY$hhx7M6d`*9? z-hY_o%iy&hJ^YaC@1j?hkLT}u`0iJ1|4Z}vt1RCP^L?N9PyYKL3y^(WIS%lCr!eV+d{oBs+ve_G7)@%()cUvmAwdHt2; zJ7K=>;d}Il^ZBDJUkC4d_~zGb|7-B|qby$p@B4iI^vkViKaaMU`24My<>TY$d-yKbAF1bm@HIYBI&jl=>yhCn z-?jNy@#~*5`uz1f-Qqxo_dR@lnfcx4*!zdFd;y#edEdkL>G$LFS6O}>-ambx=MQZD zhJ5^MX8HL1^*#KE>$j#?mM`+|XZP=W_zC^a^vd$_@$)@=kE2i`8ePA@FV)I=#}N;_47S^<41P=A31>6 zpIN@Zopj))jXzuuU;NnozYZ|3jHP)0tkVY$WO(1h_v!aN(Y!L&!x!lT2Qs|x;fM6c zooHSe>*1^Pfdd)d_wdC}Z2v#z&(F&8@$vILe3$;8`u>%9n%8>tdH-C$(*fLn@I_jO z1MBntT@OEIzWzY-%2+?I>*ss;#uaw{r&s2c<>T|u_wY^nA-%GEkw)M^#{PW|-=e>@ zviZu>yzk*V^k1M?p5}cI-=%-ybepd%AJ5|^=hu>RsO@A~lf8NZd^&pgi8|NX{M`_BFM8;^zjOv?ECjZcUF9^i!6^P9ZB z%J}@azE%3bfsE_xdptg!tL*uC1--I-GkkySd-&>S=5M7}mXFU5-^2IlAEH;5FR}S_ zAY=c&hab^DMXxO1&3e}R9=^QV_P@wV_WgzOH1B)(0sX7#mF3GY-}mqn`VHunfJ$!wg?f*=AW%)ktqysl?w;mb3___J7>-?F~+5a)wc0;3K0oG_i^&yfyf%&%Mz-?_>BqAT0$Pg%a3^{n?j{E&WSdS&@|{e7S3-)!^O(tPG=zT^_;Jk9$azI%(!-<4ijz7FT_d-w_c0rbl9@%()cU*Br;KSZxAUxoR;&*x8nyw0C_ znjgC!zWlY#|1`a_d^~^O!w>1trdO7a&wt;;_iwZLm(nZCH^ce+9)3W7HNCQYD|p|- zkLhotSC;Pw?|bUT+4?m=zvx>cbmF0`Df8Xcxr*G1a zndQsieGgxZ?EF`uSC)_SeGgyKuSKscAJ5%=#}N;{(TQWpx>5WS-uy}-}ia{ zci8#wuKhDl^QG(IN6h=vE6ex8eBbBuztiS-b^grqMetqM!}pkvqgR$61n>KN{&(5@ z&+Gh|<>UO)_3#z*`Si;2%`o5h`TXgx(D}R1kFTGj;JdER`@h@vf0Opltodc|rR(8q z<_GAN<*VR*4?m{=2fea;d{Te`ODEO z%g6ou9=>s}`Pb7c%NJq)zK1X9-$1V{-wEFL@Ll??>6PW<->>=}zW+Ph{~q+p^6~tA z58wQ~`47`8%U5ClzR&xoKVJK1mhT7Ob$ycmF4p{u4xa*ZMPmd`v=TFAkRG2yFU9rnE$6dv-~j4!GWCTyB@y#p!p?UWv?G) z`9apR-uLjuAI+~$uPi?a-uLj$vH30NmE{ZENe6DQf8WEm9x}fhy)xG0{j-TX>A(%V z@8QconSUR>GS z{5tf?@-^T|u_wZx-&(JH&7h%5d;Tuod^}CQ>S-umz z@8LW2m(wfD*TMT9enfu_z4A2g`#k?C+yBj)&n(}M^IZ==VZNJQSw22~zK3r-ZS(&~ zuRP;%CmpzHyY;vW-~6Zf$LW>Pb!^w@u$K5!tz`yRgajGg}`^vd$_`uiTfq~DQVSw3Dr-@|w557zlJ z%g6azj~>3}`qSu@<*WH|_Os{jd-(CQcK%r1=}^mF0^x2M03t?|b;>Qs(cYSC+4E zCmpzf_dR@fY4gw0D`R~=f8cb;`yPHmzi9f$CHVIx%JNm#v)=dcon>tPYw4Bci*WsY zpZC9<`7P+X%rhQ$(t(?H`os6|z2(jCNw19cIR8PI?|b<2mFC|^uPi@Fp92Rn=KCJL zwUYUd(<{rz*T3)KYx*9&vV45~`5wMU|4p4gv-|{i(t#W7U+a zchZ3y_}caG<5kT+K(CDT@V)T<>wEa_Yt27PuPi^nopj&^^L-Cryx#m`ue0Z`GS*{$ zyneoiZ_%$suPooeopj&^^L-CruWs{qp;yNG{QSe6bl?Ww_j&%B<`2<)<{6*$tZ%s< ze$0G2y|R4#_b{k_weQV=5ME0mhXoB`yPHk|1iDsH1B)(qGj`+ zp;w;feGlKGU*z@n{85&VuV3H8kLg#VSDxm558v9r_P+(avV3EXT|nfvTaTRmM&{ou z&nzF`e_O7H?`&fJczR{|`26=heE&`6&!<){8?&(kZ*7wJ53Ah+FmWcU&NLaW>JPZ>SV zze*oCkl}p~-zshYtI#V?^S+1g(XUIdEFWLLzK3tT#pZ8KuPomRKfm}s?|)nKyKDc< z^6~n&Tn}F|zlUCVn)f|?hyF-^Iyzk+M^w(+s%<^T{vtH}b!#Cb$^Y5oumhT7ed-y*6 zql9>6XyFq?|(=0%hETP<>P$c!#8&_|2leQ`2u&+ft$8l zj||`1+58*nmC@tzAEgf*$nd_0Z?w&Kw0~y#c>Y?C9=^l%2hl6bx6(Qs$e8bY_?rHc z^vd$xtY^LN;V1N8rdO6PaVH(P!F=Dtw>ozI-=kN?`uzThJL$j;yzk+AyPCg_UK#7* z`{Dh|_j&#v=I_^hX89iOqysm3zU$$Kdz$|Ty|Vl;c;Cajc_pkN%{P2CQUz=W8^P~4Y{D6K7dS&@m*uU@L$MieWE6dlolMdXp z-FjsB>VtOu_NG@xpWi>zEe>RO-@^~-52II>FM-n`?|b;hhiv{Q=#}LMSl_wW_{o%G7`@%iI>_#XX3^vct`@8O5^&(bST^S+0l&@ZvJz5bM^dEdhqN80sU zk6wA2_dR@vzNA;4=6w%e)9*&FEMMWlO9yh>tw)9*(;rN)j2_RQB7NXMhW9;u<0w1- zkJ2lnf*+<29P+-0AJU&luPh&5f4+zBe$?iFo?cnL#2q)^_wa*{nLnRiS-uM1_wdbQ z%wJBgEMMg5v*+)7_!j-o>6NE>-@|w4Z=+Y1?}hokhab~FK(8!c1@C+K@>o0nN9mR2 z<9y%4kLdqJuPh(mKYS10__)oVe;s@MD$6&+{(TSMq<Sg%T@T-{&0j&UEZ@SNbl?W_eGfl6(frNy%2<#2CGMmHH}JlPZ=PiS zK6+)W&-=%nbl?Ww_we15%|A-7jP>xH^npX(_wYmdIqTZy``8U!l%g4Vz^F4gybo1NNE6W!co(^Q} z-}mqZ{X6KD<(s&Z4&1=|9=`P%n|~m^GS=h#qxU_0`C0Qv(ksi4(&xZ|jQPHYZ+_1F zr|6aC`@rdt_dWc8{%iEg@>SNe-uHR_=WYHEG@n_%8+_CC@HO*o^vd$h;C&C@qkn{6 zSw7D9J$&N~+y4vn%JOl(@ALW7FO@?2E5t^VSw7D9J$%jeE72><7xDbv=ZEhzuSu^g z-w!{(`X0VK%g(=~SC%iseBZ;@^!v~&%MXM1eV%`|&Hu3GGs{=;{onQQ{d3HpNUtnE z2=jdp-#OR(1@y|(yzk)~=b68ZURi!L$2Nf6cI$B$esqEPo9UI&MPly|Vle!_$G>cI%Phn_o4*$ohQ#Go#1;d+7rQGQ8F!!}q!V zmGsK!;j8q40~y};@QsUY{s#2QGah%+fg5<=!&hH3|8{z1ES=YU-@^~--%YP9U!>22 z0~zyu4?m_qhF)2|o|E~E_kG^~w{8EYYX8jg@%x|3_3*v#m_MIhS-xZAXXg7p@1OpA z+CQ^=9o~P&uFw0w%;x_>`)8JKhWVB2;k(SgqgR$Mg7(VP@J?3}Q2M&4P!}samO0O&*ub=Pp{^<|U z{+Z>w;rs`#hcA9)`#+jqS$-J2@8QQkG5=|LW%)9A-{<*PnZHo;ndOUo^=7YM;d=Oz z`KR>C@?G3X2X5MKJu>{@r#Al{dS&!@{3h}D=Ugw}ADVxZURgeV|Lc3q?_6)bv4K7R zl;!Ji{d^BUy21SN^vd$_@$)@=?(ksjN(>1_>+;;1c;afMG-;rJ!J+5DkJL$j; zyzk)$x0pYWUK#7*Gvp1t@3X(v{3qm@<@*cblg!Q^xE{W9r}=Z}m1n&1nf?17enNi* zy|R3TJL$j;_V4>V|8ARqyXG^?$M^4!>*4#%PtYq*^S;mfr+@hy?D;owpMPHOU%rR0 z?y>zZPp_=`b$I>w9)5hE`E}@(<>ULG@ALlYH`o4|<$L++yX)_I`1*dE-=SBQuU~GT z0J-hfBf~cyHh%!UGOGOiPq#Rb;eDUy(;u$+%<^&nwd>)V|7Y_*ORp>+pFh5bujtRG zSC(&v_aEQGcmHDZze}$yKTfBN1G(+iBg1$8YW{k9W%RgyMf$*j4Db6qpZ-qGXO^#V zCmr%#*TYX9vH5?ZSC%ibp7p+mZ$4`N8G2>;R`9-uFX>@8QSvx6mug z$Mg3+{Dl5KdS&@ex(+yy+ipEFeEGONfBr_Vj2_pomp*VH!}}h7ME^X!vU~xY4td|h zPv{rlkYB%;<>P#&;P!@vV1qUv-|fweB)*2H{<_*1LbMn_wZf%r}g|{mM_A5 ztw*2t&-IIJWbZ${;9J4_9)8I6zv1;$*8J#w4?m&5j9yv36XyFKzMRjl--GnZ@^QZJ z;k)$L(ksgsVZQI-d-NC4E6d0EzK0*uA5O0mk4%}eA@8Nq(m|tjPzJD`g zJ?6*r*Lw8uL#|()UU{1LecnI)w)B%YAD<{4xXJr>J$$jG?f)QpWz8>u(;@GB_>%r4 zdS&@>*0bLCdHzy1|BIT>EZ@SNbl?X2FI*4bS=#)!=#{a4Uf+NCKKo_NUm?#dA7B3+ z*TXlKH-8JgvV4)2;6TRyeGgyIKcw?#mLCA8Ltg8V;YVEmZ+d0<8aN&DzK8FuVEbQu z6MOzD%Xf{>c;CYh>0d*yEI$d}_wa)iZT=SY%JOym{+H{~!?#v8zX!dtd>Q8Z9==O| z2)(lW|0C=?z+I`THXOVc#DatlqB7EpKok)vV(2}D-eKrS4Jf@09j=s6M1(60(gh{- zt^w&a^e&+Zh(G{A5Yc~sdwpNdx|@^d-_MgX^YX1XYwyWql9O{dw@iGW!>@kZ`X5SP zEI;kCYcnj~sq$8S~erFP7h$ zXbS*0Ts;_me|ht_p)W>`$FIar7}&t~IsBq-ev7^s_0fkMhJ2sH&sH%1DEeagMYP9! zpTjTdpF&?Ozn1tuhu@=rF@3T8Eb)B~e?b3M`eOO%`RDVv{*`R~Pig&R`CaUUflVWP z$y^SLJs5trn)x%)7b8diT5|sT z9DZ{R^M62JEWex>?j#H_`uiOIU>);Ur!SVD{{O!|kMm#8{LM9gvixc~f0x6rZD9UB z^u_Yi$KU7h^9{|PL|-hwoqT@e^SJ&k%%80FljTJRlAj?TOYW0zBEL+2n*1iYPacrp zB7f4e`~R3+dDM971#JG)k{4Nc!W56^vI%dJ@SX`z6;`nWzHl76)s+AK)dvYr+}i&A ztD}>D|Eha{T|edtrzL*=AjVze`d9G&!Hp!3&%XoBU!H!QEWefbK8N37J^mT7`16m% zZzjI#asTiu2U-6HuYY3ouP46G4UB(J zE`2_=xSp4|95JtTiSKjxefmG6FP5L4KR$=wKFa2QD1EW~YSQ25@Jsq9 z&=-&LeGb1v|JU@z^3%u9=kO~>+x#z}FP5Jkf1ksz(Z7biSbm9}FtBO3dNBOnG1mVc z`eNjG{xq=@1~%}04nI52{1@npQ4c>)ejncF@QX?2ze8UvKmB{GK8N2v+5F0KeEyQ< z=gIdIsz(lg&^CX1`eOO%@%MRL|EcDGn|?-?pFaLRhu>oT!t}-R`(d6K;D)OQ!*8Bu z{gKE#Uo>1K9PTr2js&J4d=gOw2IH?#8*A?IRCS4{{Phc$@0_lvEp+0^>fVs`cLe7DwdyNCk$*F zt{x0OpKSgd^u@?A{~SAEU<2Rh@Vmb?e;)c`)Wa{r4MV=q;n&YK|NELhdFW%u`Krf% zj{VOwe--s7%kL$A*X8ir=bOJVeX;y@>^?SspTp07XMRp!EI|mrs3+r@OytW|2g_%=oe)9UF?K`O(T5qIsE!F<}XfPjCvfu z96MoP1K;QH%V*8skiHo8@VnuLA>Zfl^XJUpi@sQX4Li>FIsEqX=ATSoEWaD=vHm`X z-+aORv*?TEcd!!%HVsz~hF|%s`IpfbBZ})!9)F+1@4jsQ{q)81)BZk(-+I;jXXuON zm)Hpd8_eJ5@T;$z|0aDg>f_@NISlzekNxStul{8DS+vLemdoL{$rI{){d76{r}I}m z?jL^b4V!8ou{5~ch1{m}AIsD4N{4?l_CP5*iD<@uDK|7P1x z$%_TX=fTG$p9gn&eooKxS&aL~^Qjtc7+^dfeU9ftkN$V*i{)pK!;tTD_yhVi`eOO@ zXpi|mhhO`*J)f7SFP5KP4}A_lr@zdKVZDy!HzgT`Z+GD=Y;kW-|{i|HRSbm0`FtEY=eIDokx%nH> z?~q6NK9BSNulb*@!1&+{yvAFf7$%A=!@lNiSKjx1^o-@i{*C`-{5Jv(iSP5ce)@mb`pNQ}*a-uhM)=ZpIsE=ttp8*5#i$?e{h-g`_r7ZWi}c0vvv5Bc zVD$Gn`~m%U>5Jv3kDt%scfV%+Kc_F2KTqsF)?fMG`Fhml>(M9V${F^0HDMily)4MH zlH0$s{4%|soM^8HXMCel$=C~{={!V4nw}`<+oYC+F|zii;?5;OOKz=(Z4>M&3_N}7Y}_j z4+D((`yBp&enDR>zdj-AL*M7{YjaxvHhr=DR`UO|`5b@Sv|C%(_)F;y+<$~6K8uk~Gk*s9V)^Ou^Ev$d2j+i^zF2P;KK*Uzi{+Pz?{oOYkF5W-NAUSimS0QGKh-0T>;JL&du#n<`K_dX$K~*|rOiKq zzIc@HbNFrglj)1)XGwpb$NAImX#QmRdE$3m4!^pL&A&@uEWeldK8N3@|2%!M{A%L+ z9R7g*oAkx<)90VhWB=uB{vWA7S$_I{r0;V0S>60Et<3kMLh}zVhAp{;YDQegAnVx%zA4v&l8`AIV+v9jZUe>K`XJ$uE%$@)F_wLB_RU zGbi8Abx*hVdyA2)XBgMXHS)UT9{JAjdhPEI>)iogI37*k|Lrj4`@szYF1|B zp6By;cFDNw_wh!X zUnR?r4}3U=;70i3^XPAE{*T$eN|v8K|9uX>Wc>$g+x*4yv(OgW2A3w4Ds-RbQ-Zs{M zJsv-?{309!3~;Kdd_WZ4o)xV0JFtBOhi_76x_c4FZWy}|& z6zk8z4Fe3{=kROv@8$f(sE1z*Hw^hcho95`I{S;|f8p_CJ#zRR@|8M&T|VCRL-q2z ztp5vr@vwjL{e#cZzq+p-zxR&d@gvKxWAR~t8?GJhu_}Mj^9G`#qx{f z`1>4w^+59{ti$6^mY<_}7+~~QJs5tA^((Ny82NbX_c{E6{)Y6$^6Sa`eGb2Su+4ur z`eOOb=N)q~;Z z$C!T=eKB$z|1NgIzy`k0;b+I0e=B`4>fv{ipD+6yes7Zb4`}{m`RVtcsz(mLa-#Xq z(HF~)6Axuz%-`qHKgs;R$tTOtgMu;iT@F7dzfWH*f51Q3Bj4xnn-^OD&*+QgXR-TO zf1kr|(f{)5_WT#iFB0G9@CWo~r!SUYO?;ojuUusF{~>*`{6XUTJocwQneYDxWcgp{ z@ABCHV(Y)U`jh3iuoDJ04SaDq{MIGrZ>Hl%M(McMAD6=~$UmbmmS18g3~bQf=kT-3 ztp9%W#i&RBEZi`_@O=)yPX9>yV${QLhZ}}`pTqCbKZU+nemA-P_#A%w3Y-5q^u_WA z^H15|=kSZi&0m1OA0w8ZnLeDq&*7K!FJXVN{4$xp&*9gfvi>*e_>tw;lK!ek4!_0v zC+Lgi=ZWug_&xf6r!SUYU?&W08m=A;zxj;K|8x3c3_{Pg_s zIs7*L#psLWH$w{yFy`-b_#vx=ex9Jb(?{oMA`uorq%WoyV&*S=Ewf=``{p3-8?sE7&^2zkY z^7Ev>&*9fzv;ODO7t8M_zR%%TUpN0s`eOM-;`WH;4Fe2c^J$NE1^Uo1a8em;kve{TK@^u_Y)*a-uhhN}m|FaK-)-|35yoem;-=>3?l4d;XW?QNGXNSEsW6v(Xoi@_i1!pg#|N@hIQt z@CWo4r!OAm`y77$C7b`U^u?ompTqCbUyZ(4ex6+aeGb1iwe{bKzF2DL4TjaZ%$|PpRl%F zKg6g<|Md9#9DbMnbo9mYyVwZ>8}#=%{9=0RpV1ei9{s!Fh9TeQ@at9c7o{&A<@+3d zWd`$CrZ1MCzJK&N{OXM6Z%SV*KgUiO*fd-{7=CLe^LM5%MvnETzR%(JW;TC6`r=W( z&*9f*HUAj;V)@PF`sZ`_#q8#vMqeyHJ%4--e?b2t`r=W(&*A5DSpOU8i{+>D_c{E| zoaWz8Up&h9IsD3Z%zuHtc$DvR_|44x_vnj9`96nV&Tanx=!@ldlgH2J@bmf1|HeA@ z{1?klA3vYN@6pfbi%0oBhhLxH`u~u=Sbj4cVhnJ@)q~-;>90y(j2zFO)b~03KK)JU zi%0oBhhJO3=D#a_@z76>zt7faeX;x^tN{buaP?sLm4(fpL|=?(y!HDWev|&$ z^uW_vwp=es~-(zztUqhF|-U`R~vdBOmYa^Ev#2{(tC;<>%pkFu>^VbNGGwGlUSo z|0+g(eEoqO1{l82;n$b4`7c6WJj(Yu{F44E^u?ompTn>G*!t)6#iM+m!_VpOPhULB z_c{D7{Zr_RNBKU7pDk_kzl6Scl<#x+1^rv;i%0oBhu^3FD1GrL-{#1r!OA* z$@RnM@XO`Q|BSwPl<#x+m7khlUDwWE@z4(?7~s%iSdU%!IsL`xi;<6a{`(w$m;PGx z#q!hFAD_do)@}Zq(-+InljG-e_^lPq|2ci}&=2dt05@Dc7=Dlb8T7@-vHtY^ug~H4 zSF-*W(ih8bhx@<)qrcDLw^la)YR#W4KZhKKeAR>F{8@jO=AZbTXpi|lm%}esvHma6 z7ps4f_&$eUS=IajeX;y>{XU1^rvG31V)mVNKfm@l{7S?8pVJo){ZN7tOIH-hu>V^{Cnt&<##4d>H9qP-^Bc9)SoQBl3f2PE|30Z z=D#VQEI+sQ!}V8O4nHSfgdn7}&t~Is9x#^G~NQMm_r1u@eS1@O=(H-^u*n(HEm0eiXTZ@AK&I zZ2oof$?`MYM;PGfyBvN&zKgzi=qG=_$>;FPJ*@we^u_XPvHMtmpTqCbf0e#ie)|0J zIs88Tf6^DruVW_+Y#Oc}3_sh;=0ElN_WTng$MNrn8wMD@&*4{E=FdrAEWeJOFtCB| zbNKbW&0mtf7^Udn4mS+>K8N3 zuZNv5uz~M$_=DrjUxB_D_3%5`2?HDWK8IhPV1ARn81?Wo?1X_0e4oSbPBMQd`eM|> zk0LkleIET^nt!Bxviv^oBMfl#T@JrI(fqdNPnMsqU-ii0H%~VIeEMSf>Fc-8V}JVB zsXtkMdi^h54!=XbpT1arFZumzpTjTkhu^|@mA+Vh_VpMKkDt%u{7dsc)%?lw)9ZKX za`?6L&Hws__WTjcPuK5r_;vc{n2;re|Jze|5j`eOOD#P>P; z0sXD$i{&@569zU7R}Y3?zrc>)9$G&cd3^qbEe06A>cQ}H)*nt^j2wPFy?(m;hhJV~ z{ZFMYmS2SXzyPDa&*5hmoBw;EWyvHU*d zFy#9je)UrG-=;5?AO4KQ6u$Cz`1dM0{CgFjlPhO066?R*u)p8fB+o>yo@4oU$b-qo zi<4`=HC~Hckas2b$S07qbFKbda*KRDxl4YWTshC`-yzq?UkQK64S!EMC(lhTORHaw zTsz-*V{(_=B3FKA`C0sXZGHZ|wnf$n=ZYQ5_;ow}eUA27_V+vXA$NXbT!_y$KAGG* z$9S^x-x^<`{9NOgLKolfR_5K(@+SlP{2$C)zq9-sD^KZv#=LW(gB`5EU2#`CZ0^7#BC&qcrH@_7A8e4oQ_v3@c7V)d^k&p)5TFaBWbUyi<5 zewp<5IsEL8=C4a%EI&(ppTn=y-;Tamen0Vj9{XQu{SQ!ovi$V*D|0#gHu)6#;!(cO z;a57={{s4A`MqTRK8N3s{eDt)p1ZsPkKewY4b^u_Y)*a-uhhN}n1 z{yYq#0_Kcg>} zpC{kH_#A%w4)dqo#GXImp^u#~uxYq@F#N$^%%6k482Na|&*$(vcbdNleX;!X{PQ{d z?p@|DLtiXEJ$^oiU%lJ>)#-~z`96oA)8CrDSbml~|9uX>xYzn0LSH=e!*Rp_H(Wg! zeo6mC`eNib{`GLf0K@k={678j>5JuOki(GgbNH3}Z2s5N7t7BfhaunR@N@e2&=-&L zeGb1%|0(+7QNGXNXZPFu-=;5?A1ChS@AK$CVE%vQljXPL>c`ffxg36nJjSlcZMV4Pe4nw}`!SFk* zpOd~={uhqFyMOqVC$0Y?^u?ompTlp`Ux~h0ei>R|fE%tJ41Yj>d-`JJ<6VD!4!`!4 z&Ho_!V)P;>^bW{iN08V`ugE>_)Yrf(HG0llKwuA^QV86=1(5ww_FatO}>Y|c$DvR z_#OIxr7xEMh3j9^zw*2tzxU{iNBKUF$B+J0TiE&A6o=!6^S_lIKbOPrl4qnZR{t#V zeGb1*e_s0HQNGXNS6;C7FH2uM%J(_^jQ;xc#qux3P8irUT>WwUyfx?Nt!I);@}bE5it~PFoZ!$iG zoZW1EJvk>oK`zMekW2FP>)HHzc$^Rs`$kSaB=J(a`{36ds?vZ!m=fQn`9(-Wn3=cHNi3y+2`rfVf`En=8 z|HQm|o8^xu`5Vm3KUx0YB%k?JexChj%jXN6X)L?d7JqPmwW(u_WLbAiJX%!B$wn{$OH1z_SKOncrUwhr=-yttV?vqy~*B&%~GjjHj z@$RZ8A4V=7w){-;Gvq(Wf5h@T$(xd&BbVe4$bIrx{$}&7^~}fh%Kv=hz2xT^JM1*& z&o_P%7(d@QJ^B0Uy%+8Jx*M;LV%-0D?{9sM>udF|<{wR8EI)mJ;B)w0`p2CR`Z<>0 z5A(nPwn}?=8KWX*S9Z+oiM=geGb3+hWYz#V!l{@A3I@S1K;QH2XC5x zG1o6fJ^EL}4MV=q;aA==|1SDs`FZmD1wMzLe`NkY*SGnL<)=R%_c{E|$L2rH{^Fq@ zXFoQ7pU3(C%l!8>f3o~C@hdKeUy|SA@fXX_6W`~t|0mXe;+FRQrb3pVem>`O_}RbB zKYwF8eq#A~^7*RI;TQii|7iMR`RV&BpTi%}ziUJ5FP5Jr>-RbQYGwLZu_ybBmSYYhb(`9oiMOzxOy=B=9jGhj`YRIasFrFh5?4}bNDU#GxPBiqaJ>G{qQ;b zY=ZTlUymPIeu14Zut9&-gW;DG&0m=P#mLdWG7(?Ke4j^uTJwJ@pDe#j&Y#ld@ax|& ze?$6W`JLqRWuL)GQkmS0PJpTn=tX#Vb;zgT{H z{Cpn$Svi09uaf0wNq?Wiud#l5KK^3)gR0#DxZ&!-@UsQ1{{~0e`o+lc_^0dlIs7L5 ztLcm7m&y6#bNGWrtp76f#q!hZx6k3%7d1blFP5Lq-{_#?6%)djFu?GA4!``q`P7e`5Isnuh^Kf1ksz z{>c2Zb^ek^`Km`A`?G!%o`3Dc?}s`J)W`lVhu>Pt`maD=tp4fG$9xXI__6sf@bMGN zuVE()Y|!85@H_Di^M9HB#qvAY2?HDS_c{E|n&y8_UyRat{)R1ve4oRwt!4hV`TP;f&#~itpTlpj zZT^?&i-*4H!~Q;pKcGL&R`&i?EI)iK69>5A>cQ~q>stRg>5GwL{rzym0K@k={H$sI z?0o$d%WqDM`q1||{MLr%|BUZH#PZX}-{e-J(+ z!T>j1Js5s}ck`Fv@e?D*@yo*v0}S8i@aub+zmASSS$-?pW4`Ku`6YJ3zy|YIJs5ufIP*W{`6ot>`45uo zkI&)vCYk>ReX;y%xDO04`ujZgr@tPbzkRa&X0*qApTn>H()#~H@Bhj2)AL{T$l>R# zf118{l<#x+ZTffc^9!;3b~1mT!_Q8%`5(V&INpxsXV?h?n?{nuub*W8!F>NBMm-+C z^!WQ6ev|&G^u_X9Uki5<1{nQ)4!?Vr^*@*ApICmnexJwwzcIf{ze$##Pl)Zu`nw!{ zXR`Tk(HF~4f4{=#@U!#Hzmn@0%g?O+u)ojY*XdWbw%2d5{33b&_#A%s0_#5`eX;y3 zS-;QW_b)bo0s3P3{bc?=kNqz(e>L?d%WtOrT@Jr`Ip@#s-^B9M^Uvq-Gx}TV_><+g zlFv_6j~srxWBqqM(w;wJ`B`%OeGb2KwfUQI{bKq3#P@mZf1UYz(QlLGx3LojHjVJb z=kT)|%s-XB81?b>19BMheGb1#|6yK##q!hR?{oM${rP$P#qyi>=VyogeGb2Kr_KL5 z_7}@f`}-Vzm;Pls|H$&2w)|m#)gy;rz03M{`1&E1-?NWrhrZ9@_a8U^cJ>#`FO&X0 zhhIEl{;NEGV)^O%eGb1(e_=j<#PZYEU!TYRPh0=DIRAnyznc8~!{@R8U(J6<@1Mv+ zKUsg<$%s$LH`XFI)eax8dja<+*UR}Y3?eqj9%)#qnq z`V2{x^93iBTW>Lk>f}&*A6v zZ)AV5{7Ulp`#k!yTmOso{S#S!)7lUF=PrleAwS6eV)^O&C!fRb&1wCwXMeH$PSW4! z@QZJm-{AQtmY>ew=dnNi7xeg(<)_#Gp3C8P=d%7g@%s<4{34mZ&*9fI^M8AcoxfuF z>H9CA!|%*z{u?^}Wci)s@mD=^`1yk7pQ*>6EWb$Jf2v-7e-ZQN;qe#CFO$FT<8$;c zerW!*N89?vLq9owK8K$zY5s3`{T0j46W`~tKmGsk_!VUN?d16R9Deo3*8d8<|0WN8 z?1X_$!_|Y~mrI+!B#*xsIiCNuaKiw@_c{C?{k8S{A@qdNBL}>!-{4`Dx;3C=3G|_^JoPuP$%>Khy7jkdb5kE$oDW4Sdyu;TJzOe?j&a zBZuD(Hw-X*pU3`n^ZR=I$nq=6`CoN;^j9)}DfX|D<>wP)`(b~d!*8u-{=@7qmY;tA z;&b?wHO$|oY0n?A{9bbY`W$|5E%OheFP2}o=?~}c^SJ)C&A*1%uPRx76+2;I(+FRD z4nJGR{01L?G3xR7)xr%!zR%$|>93aC`6rg&O5VTv9Da90>%TOwUt;;;Zl~z)^Em&F z&EK5;GqU_RaX){TM}HIZpVIot@^fn+@1_y{W9D-B1^E~3FP7g=et*g5@bew4|BPI} zSbj6`A@s8oj+pvwdD2F z=kUv~n*S~O;-R0+-{l7q@38)V{P~wy{aZcQ{}`aflVF>?5A?1X_0e4oRw ze$)DIMPH11`04Kt`W$}cJLb3Oi{%%|=chi8^Pk83V>N%W{Pgb&7A}Y1T*&;%^u_Ya znLh%mqnR}Y5YTHO3+=!=o#_}9V>0}S8i z@JsrCr!OA**a-t0_&$f=!;PgKYjlD9DcEc z`HRyRkMeyEfAB-|SEer><@+3d{v-1@qc4_UU?&W08m=A;zrU3Ed(sypkB?vS`Ge2l zSC=*aDEeaggXH@spTn=LWd1qy#q!hh-{{K@hMp$-Gwz!#UpACNz$FP5MFeO;f!FV?mG)9qmAzgT{eTt9ps=fA%B zbJMSoF6LiHUo1aM z=I?X(o!!m9kG@!bdi;G3Kik9nK7FzL^!WQ6esxdtKcO#{-$~~0bNJnT%%6ToJO9P< z)AQfw@ay}UKQDc;{CaZyeGb1k$owDC7t2q7f7a*ldxx374t=rwo}GTf>xa+bmxr6b zIeoGGetQ0~9(kPqk>>BC`IF_RpT86?kMlpu{KGYWvivNazsund$S2Yl%daNB&*4{& zw*Hgpi{+=^fBQVH|2Xrn(E7>pzp#Fn$Mqj?{%u-6S$;P;{ymq&Z~xN#9(}R=^!=~T z;b$kA-={B@UtlK;Y#Oc}48J_t{P*dLk>mA0?eBB=wYK?{o$UE19_9NSe)m-KtMtY4 zi!cWaFy`-b`1RAw{|O(d{XU1^qJIf}vHbM-`5b=vTkC&4eX;y>{yvA_IoJHV=!@l- z$^3l|zj>bdPtX_3PhWq14!=wPHTq)t>HK{TzgJrS59y2Lr^nCd@GHMFf5Oi8{1?kl z`}-Vz^#b!}q%W4AuHWbI3;J`@7t2pyKYR|qP5(#q#qxW}cQ~q zmstPv>5Gw%_xj^=_`OTbzlOe8ei7~m1C0JYhu^%+{QKyONBKUF{pr7?{$%+Xnuh_7 z{ap@!KpxN+%kN?*4Ea8X-?`l8Kh-Yw{2Ov`aQsr==kQy9Fn>n+V)TQbC+}Z;4!?J$ z`SZ{h%kN+(3~U;%9t^*@%KRVF7b8di3_D?91K;QH%d5>_jlLN5^-@V5CP3enA z`96o=zt;TS=!-}BK8Ihq-uy%8i{%fn69zU7SC3uzgB#30iM|*))?W)Z3^073!_RIs z{{s4A`5AV?zy`k0;n#06|3>;^)T4hLJ7Hi0-{rG=H-E^!wMI%i(ADn7<}{vHUE#e)v4D|333K)B4HsOYDS!O(T4% zyBvQ1e)D(K`pKxr`ICPBqI%@;TMwDP4}G!x0y|+~gZ@5;KX};uL+Fc9kN)ZL_j#QE zBjz8k`IF^WlK05Ea1`Bx_5%b4%;=s$1% z@8y%_r^mnP@;Lt&&A&nOC(G|*$Mx^K9Dezd`FGM6%deU~T))rZcj!M%Up(}a&#!$B zzxy}q{{nrn{7Ulsr#_GVyXLP z|Ci6<4?eX1-={B@U&l@u*fd-{7=G;|^OvVDMvn6@4>t@je4oQ_)8ClBSbitkW4_Pf z*FU!Yd(#)o?;nG`G2iF#vqNTz`6=|p^6N1j^L-9Kr++bhvHZAj*Wc&SKh*l)ET1et z?Vr0Geo20mzF2-MxqkZ`ezmavuhSRHPtQM}!>`kyxSO57;!(cO;kW3|LSHPul^lPc z!|&5yh`v~Up7=hG^FPAY|5MGMEWe4JFtBNaFLjs0Zy#y?#`MLg$N68!P8it0_c{FD zQReSMUyOSA2ZkGleB~$qvQo)nVqb3H-{$ z{Jp~P+4tW;HDJS1ZE+4V{5pum}{5rY% zsBvWjn_rhai}*3i7bn-BFkXe+eA0Lea^)%Gy_J)XSN^o+=Zc>(zK)zdYy1GYM}CD| zJZJgms(-P_$%~Q87cF0nT>Y!@w&d9+UUL4b@$2H( zj6Wx5uN%*@kg-W!&0Mee+5yg#}9mhma%{O`t>k!x=o-%hUn!}wY9 zfc!DJ`;O%^Zfx@_-Zfs3Tz$`YDRPgzrs@Zl??@hy4<|Q2wERr+Wbzf{4*53ucT zDY-?S?GNF2hTrup$OnYq=g#cX62E>^f4}rG`}?Jfkb93CFHaskVY~sk{-p8FN{Kd(el2;+0Mc$m; zC+|kCzhVB|3rwiYAKofeA6+v(o=cEtCT~E_$h(s3WW4@_AMp;yR69@k_i6V__?W=> zd$q?Vf3LQAw7uTV!vEh=jJw9`UGF1n0mkd4&+&Sh9W-++IQp1S?-=#))6ZK}j~ssW z5c5Ai+I+G6dZ@zyqrcDLH|Z~;`IF`6ki(F#dNBMB>o?^5#qyic9`k(;zj7$o&-V-B zQNGXP{OO-VzeyhD`y77B`iD7xvHU!lzt7|R53~8-!{c8e%TL$u^EiLjzs3H|#83PC z9DaxOudu&(RDYkx`5$icpP&6J z>Eo|@`CZm8OkX_8_c{7kCt3e%`1}#ew^x_3`*!oxH@e|9h znm#=Ld=9@$e`6hgvix@9s~$Q0X50GjMqeyHpJ;ag#{7LA=YNLz`)mGW`RV!7aXI|T zugpJ+zIc@H^EiL{r)&P?QGV0q@JsRq^u_YKw*2Ao_c{FhOq>7p^u_WE?1X_$!_|Y~ z_kV5vUG&Asas5~>+%UlKl^@9WV=cZPn?!EEY46V_lRM_|3D!07LD_%-^A(ih9`MSINmIsD3G>%SCzvHVK%dgAlwpKJcw^2zdBN&kw=;kU?J z(-)8OeGb1*e=quC`RU{DbNJQsZ2pJQ7t2rQ?{oMC{Ymu2^2=oXK8K%`*8f-Z#q!hh z&*$)K=bL{aeX;y>{yv9a(!YkjSbo~y=kPnfv;KF}7t2rk`#i4y0`ni!`pNRU$??lv z4!=)+g}zvRft@h0X}EeY{QM&8zwnlPJtrf_^EV4O3^07vgW(sff0zBm$m8=r`TcjF z!>?Xu{byx=vHW_t9}F=1`y76g{zUp>`CZ6i$oF~d|9k8I-WIn0Dp`KV^r7!__+8fj zHGGVO@2AD`yA$mWz?i?!;TKn0|Ec%1>#tb;AnEUO_^polCvI;2#iM+m!_TiWe_{3) z%kL%qeGb2NwfWEU^-C`|B{jZ`g9_9NSexLrW^u_X9n0y%E zhN}m|Z{BMC@1-wBKHmC$4u3%ZDf(jh>G|t(_?16d|JUe?NBKU7U;VTBAJ7+%@_i0J z>ze;Leeo#Y=kRN{n?LPdcKs8N@_i1!euw!p(ih7w!y&=|H(Wg!exLrg>5Gw%_xSl7 ze(@LUzc78V{PgkjIsEpW=KqMkc$DvR_~l*ZuSj1!%J(_^&fVrW=!-}BK8N4E$NbId zi{%&C2?Lvks|Ulc-)H_#^u@?={L|y-bNJ2s&EJ>4c$DvR`1u3oA5C98%J(_^)`RA^ z>5E7CK8IgCWd3CO;!(cO;kO?){}TG*QNGXNmyei#BYp8G-{eJPnbVVi|^maqkPpP zhu?nE{8{LW<)^PdK8Ig<%KUlgi%0oBkL#zu1pO9Seib`mVABX+d=9^O+WN0ZUyOPj zzjnA`$oDz?>NDoAM_(+z8|^XQ=kR;>bMo$+H$MMWwH2<*~!{hH*ejPhuVADu)`1xPWzpiS& z81*=xn%D^g8~8ql-+9UWL)c%8diZ6yVaWG6{AS<$-*ElnQNGXN59r^>{^C)-&*8UU zw*D9Cd?d@SC4Wy!^~m9O-!^{|`-|n5*a-uhhN}m|&)+fsT>4_DI{V&ZDx>PC$%O}h4$8>D|HJ8J$PB4EGeX;y3`8>?$vHvvY z|3>}E^3(qxq2_Y<#aGS0ioSU0C-e6?{2u)W=!@lFl=#YL*UuYIT{KoKMDCM+N-oc^ zd~0(1SH_F+_ow>&{i)T+)y?epv*zXNVefwaUZ*$iAVW9kNxS-NxvYE@_iorFKzvQp#J1he#PanKY4xi zcR8*HUs%7(WB+BW|32zZ9@*dJu|N4_^>_KW{aqgWFKhiTRDbfw{w|OG$$wIRmyg@u z<+1;A*8eH>Cy(s!^4OpJzWTd--2N_){eNQpzwvXPf8>$^u?ompTn=MVE*&;#q!Ifzt7?K=>LPh zSbm=PK9BuZwEmx|KY5g2b2rW{4()<4!=u(5&B~J z-Ng4f{9<*0%Y7i@tc2?{oNV z`is&R%P-J83^4lp9Da2j>%RP;Y+dVr9DT9;ZsPkKexLrY=!@m2{e2$i-?aW0Y5wF< ze&O;s|MkqjR`Vyz|HAxT9_LTKL-Tj}c-N1<%i%ZIxBidN7ps4s96z7K@6dmqzF2;G z{qQ;b`UckjAN0kee4oSb(f<#9vHbM$^Ev$1hSq<&{p|W7mY>ew=kO~VnLjsuvHT)A zem;j^(67-K%g+5E7CK9B3)#QN`{ z^^-^Wh0EbrH#Prg`eOO%@$)(S7X35ni{+>5_c{E^X4d}_`eOOrP=Wz&xO(iu@6x}C zz8E>4zuj=d0K@k={9<$K{{Vfl{1S2)@_i0J+rs?k>5E7CK9BRK|EA_omY*KKuFK&! zx3vBr(HD>MeGb1*f5QIu{1wY@+46_$_j&BUmGz&2ev>S}NPM5e@3DRX`eONMf1ksz zZ*Bd5LSH<}_c{Cy{dMV!<)_Er=du4b)_)82C(BRQUw1kDE_pZl;!(cOWB=UxAE^Fh z`OW0`*If?3O`b$wEI&_tpTi%}|1Ev7{B-?3hu_-P=HH<&9_9Ny_NRZ3`jh3S^B=ez zeseqP{~~>{{Pg_uIs7jD59o{Kr{|B)WB=`~|I`QA^RG#kpU&Us@H?!ZjlNiZI)9(T z&vvl>3(yzKPy72EenEdJ`r=W(&*As!uSs7lKRtdvhu_-K=D#_8@hIQt@GCo+zdL>L zDBtJs+w_kKFE;pjv{-%?T3~=1Ne;h5{|NRM%TND4xX5Jvpl7C;?=kNyy zn13F9vHTp94+D((`y77rK=ZGlFP7i5fBtsp`y76Gy!p4%7t8O|V*8=*^Vt6;^Y2xE zvivBz`8Qo2{hQ5yTs~QT*V+&JH(d_DdW-q5(ih9G>^bH9eIEUVW{m}($S2EBpTAX? z!!O8FA86MPvHWH-f1kte(VvOFSbjb6eIDn(u+9HF^s8j~{p9DNK8HV8-26r9i{*Ec z-v{wI{PG9pFHc`ApQq38@$-3HKm9eeezN>dx_+0#FP5;t@M}Am|0sR2{Pg!Z zd=5X~(fn8Gi{;w#p#RXr@znTbNI#H<}XKIEWb?tKAg|tX9t?U4t=rwR#+zn zxZ&!-asKqT*8Iux+sXRdE|2{WvHtt2KUsb~^uYkf{w{}~lYdEHJj(Yu{F43!^u_Ya zon!l9f1kszzh?8lioRHWUZ2wUdF(&$Y_Z_a>Q9!R9{Eg{~&#_{I<0p&fn*; zKmES?ljWDm@3WOIkL#~l{|~i(vi!7v-R1CmfUm$Ck{(HG0F zC$FDAhhM3izaV|F{AP0g`W$|9Me~=TFP5JtzR%%zRyKca`eON6di`fTa`?T~&CltJ z<){BXtk2=+P4oAsFCO~I@$)(S!A9mEOJ6L%n*2VS&*4|LH2-w^V)?l}y@uzn&*S{} zG5p#G-`~pl`&$Q)TjUeT2awMr7vyWnZSq~@4*6N~fcycu zw)s+VMic%RexEvATXOP@6LL=eO2>{z zLH-W8P5vJFEb=nslDsy#L*A0yBmay%AQ$9mx3=}1My`@CAZO(3$aV5P*^WTi>SS1;{!1C*&4+eR7+;Be_G~pWG!MNA8h-P41I_ zPacqOCs((%^*l7{)k+Xr~Z3bfB5@+t&gpK zHgcD|5V`U%%W*yTzwf%r?orDwi5O}=*f24WPZ1MU#X+HbBO{~|8ET&_xcRt7K zO^g0ihuHhIAqOvhzm@ntkFQtsze&H;{n4){zR%(JSzn_s*8Ef7=kT+GZT+jz7t7C+ z{yv9a(BGWCSbiTnVPMm6^;H)QljR>AySx4__s`$W_MCG4 z4<-CeV66YR^83m6OR7f>e{i+=d(#)o?}j=IFy`-b_?>IaKZ3qkejRcc z@_ior(?3)F$?}_~5B-75;n%OV{uj{~%TK@G^*Q|Vdh>6gFP1;RP8irUTs;_m`$qF0 zp)W>0-u2Vx@GCc&{|bGv{Pf@R^f~;_ZRY=zzF2+{T3~=Nf1ksz{mJ|ZhuQN_EI-3e z7}&t~IsE3I&7YCJ81-0x`u(EM;b*s-U!yOUpT7S19DbYrO7z9@J7EqOV9ej=@auP2 z|BdL2HYJ?w;m4f^}sUw^i0O?mx!G~wq1k9Yma?y~-cjvrb5 zv!uW3@t@=R?>7Hbt)DFa3+s1zT>m}hpQrVc<@b{7SIy<{D^HvM2l`_9dGhap_#A%z zlKHpL7t1d~3k-0>)q~;p=|4hWj2!20dj0S@{Q4`_{}uY;QNGXNm#>-s4t=rwBFq5; zjQRTFMToUas1Qgug_!uf0@6m`jh21!+l_YV}F;&{^T{(-{t7v4L1z=eV4;8Ke7HB z(-*6Mh8^eo9Desx^S7ffmR}~m&*A5vnZGxEvHbM-`5b=rKjt4wUo5|jvmaZ(&*69I zPogiD-%5O+!_Pjq{*&p8<$pWzmCtgGeZSu3_YbJ|*VFCxp7MJ7RKl+X9`AZu=X@^V ze8iehnas!MSWln+ZS=+R2g%QmeGb1j!|buc!}P`S)5p{2@QWGEf0@2metJIo9DX^I z`5)64%P+7K1~v^>4~C!3V*a$Da9+pA@qB6}KYviY{Pt|-&qZG>zn^@5?{oBTeaHM7 zeX;yJ%mD+8`THDxkN#Tp#qz7z2?HDWK8N3*%lhv~UyORJe-LgM@_iorXXgJOVdnwv zT2-y>0EZ%iMy>@Ea2+~G2_Qw90R=%MH-gfnEbvGZWeHr03Pfp#9zlu-5{inn8$qh5 zK?Q%Y#fHcc$rY5Q7zLFg@Xv3K@7sIq!Or7+p6s<=zWHX%IoHZc+h=pQ>XYT)X8M#r zbh$tO4?BG3`Tua>za_@`KR>*m>&~_Mr?b9T^#`H8&oTb?O6FfoUo5{Je4oSb(Z80y zc*@64YS^?~e=z*<%2xk2`eNi*|53W3f#Lfc{%{rZzfWH*f0*rQ-{(>*sU$CH=qC7t8NsCpBzZu0J@}U&HGETlLAvv3~LVue%(6v8MTp zeuj^Kvit^iQo{!I)gKJMy_WfJpf5(AuODfP28Qo*_yhVY(HF~)>*sU$^|x9527R&o z^s#tuVAS_{uD_1?o2fooem(dDm%|^fXa2kBi{&@w%&hNo__ep2{{i}9`Gx6I>*sU$ z1^o}x7t4?5zt7>1=^sX4EWa7*`y75_BOCvx=!@kyg70(qCH>Rri{%f)=aD|o^|!S8 zSExQ&ej7WfVbe-K8ZL+5*~5C`%K8HW1|3~^_`DK{D&*8UsvGw~KeX;yz_&mtx@Vg%}zjh)Y|77{GzWO82 z<7fZZ(;xo_-{*P!ds+Q8=(owLACI5U;g8sVWBOwG^{{?E&*P`Rt;Qef7r`I99DaRo z8~@Jq#gpp$9DYH6fBItivA)mYH|ZZnUp&e8IsB6Tr|FC3kHh?Z4!^yR&Hr@zV)?`1 z`#jHoU-Q49`IF_pV*W1A^Cy2r^LII}pYioa)8+8HrPaTQzF74KVf;SN^WV?>f#y$^ z-wfC9w##$AtZysRv|4d(uJU{=WEgBfU z&vSkHFRDISetiGab2iH+cK~j={wMJ7s}&d6-&Z?>JS2Z!e}C;l%P%EYUoid}xktWLKKc9P&KIr!ugSGb zjK|6^GoG`1`g|{acR3_4OD=nsuT374w;?yLuzXkYfP4VCd!^+kklR-opQrxhYss~% zE&rZ;@{g5YYx%?ElKd=rbe-i(?_u+){jc#V1o5;;uEdMFFy4Cn`a`!glr^UA$ziLk#|Cqc2xp{}>Zzq@EG~SZjztea- za_!s3ZRO+x$ldQ){z>&87@tip$yboucUgWLdGuZ5pO8D>Gk#e7ed8C%#oflse8}e4 zyvKMoa{C9ytMl{b0Y7ivmOLhxe4`R6Z~kDj;uZRvlL>+^@05B_cWx#|Ch;`2W%f64NHlN&D^ zFZEpU<8fKA#;QVb2d2?VFy@(w&NN|9E~Y(hUua>$}hK{7^sA{H^ylUyT0w z^#$bAoh*MCp5J_) z>mO(Sq3L^=T%RmIPu$IaGktD{676F z=!+-$K8HW1zct4%mS2VXK8Ig^#>T(V$9Vk7@<$8o4!|wf9}K^__j0+zhge^X9Oqv* zr_=NIIs760Bj}4K`99C%-^c1-bSTG9mfzzGRB#@@%i-4!Gk-qoi{%folbU>==kZtO z|Bm&CWciKY`#je_-2DIM`q#+v`@#1){QeQGAsA|7M+kWch>Ot3Pu11NMJF^ACPM`06jeI@ap{ zg!RR$-wW>#eUAF|2cSbjY`f2cq5 zynZKH|2wv|>&JjR<%jY69R85~58Tdt@g(2p@JICj%=Ht?Z-)9lhhLm*2fG?i%v6C7$t&qd-oMQD?qAx~&T>oQzpTqCd-;lm|%EwM>*r2}8 z;g3$`@jlt!pHFe>kNVAYLzC}w_{Dtl*P<^*fA~eZp~?3-{3iWf=!@ldvOVql9R7g* zC+Lgi7s2;=ox<>b`aXx>r+4qlX=kV+2n790&*EWaJ<`y77pIUD~Gdi_I|-wnR{BZuE- z|5NFU<;U^+9Dd_mtN)HYZ2iRYwX@o@n5f z>krQ3Xa9napGNTS48I?uyur_-M*KYLhw1fuk?vD%`E)%g1Zj(U^YDZ1xFctN-tf1; z&nKSk_rb>J+kDSTzc+#NRgAmFND7Pb|L^>iay;pZ?W4 z|H$%t*hvkWR{GI#IsBq$^>1N)G5X{D>!cf+e4oSb(Z5UQFIj&4yg~hu!*5?<^&g-w zmY)l|`aaM8mFE9TK3RSzxoF@P>bV^Lki68X_IgD;$@h7#f0fn0jK{xCmS5%SuD;9R z56FAd7t8Mi-{l9DMah4!`<})xSmOKUw|=JE>vQ za{a;Z+gF>vGOzz)o$_jr5`zj3SihjaX5`OQ$@=kTjL z&7aHjM=ZY^Kks0F4w?OyX2&=s<-{-mhZ_M9^{(vmMo9$`e=kVM2oBuKTV)<3@eV*&n-;dYl0a^Yi_&$f<`>oY~ zH+`}EPVjvWzj(m>uN`RXFP7g3zR&ag=|6pd`E9cNBKSUsU$OsEtS_GA`y76k{yFr; zlYF1U@6+FtzIc-FbNEC0P5RXtC4! zeGb3=C-a|ReX;x=c2dIzJQHKA2)xY)9m@HE>1c8 zVY;Eo_c{C#`yaEIU4O*r55Gt^H2FSPJcv}A3q=QIsEQkHvV_h z7t61O_qRUJ{zuH;O+HzEe1Fa^ADgemfsBTk9-cl{J8m_qA!*|#7=71v|N8M z{6=N|1@y(p@%Zb7^T+4#hew)!9euI<`1db-4!?Gc`QM{2mfuNT(7+hK&*69I|DL{B zejjpb@_i1!ajezcm_Y;BFpb!CpBy^e)R{#Zy#s=7WBo) zvHtP;>2vs_uV`aXwW@0fo$eKGo@ewl7)@_i1!qCcO$SbiM8&*9fT zYxTcMUo3xs;;Df#exJi1(7&0!SbmWdH2FST>h1rZ1NNiu0fSk;AWDY5ouBi{%&L`r~u>#h1+=(HG0_q!MW0mg^6O z-=n|iS$6)2kz@V^c2dIzzR%$gzGC&?Oka%t@Q2t*4IB7Ahu^*0{I%$d(I0*XJE>s< z-{6`)Uau#AEnFT4{tI59QtDP$NKeGOg~bS?{oN_Uz>k9eX;ye zwx@lc=kecX{!JP`S$=%|RJt7g__yZ&lD=5}7(1z9({la6@J9>Gf117+Ip*KMPHNb| z_c{FfgXX{HYs<-{ko!szGVKN=!=nK z{hQcH4IB7Ahu?eI{1@np(I5UGoIgH?UoP^N)T>ro`W!od#qx{r_XB+nzq5?_tI`+C z@8)}-9>34w*Z<4>ZRm^TH-qnU_-*?0=!@l#!}}+n!*4EU_0Oa)mR|+m=kWV0ntv00 zvHU?8zt7=UZ#Dn7^u_Ym#7=71v|Rr^((fY`2-uDcd`{rY1K$|?V2V=fI&+AS9 z?DYSNfZr!i@_i0}!2XYMy~XlJp}x=I_vYI8w_|;={P=wBbNJnr%-@y1c#`jP_??x_ z{}_F-{8v2Q*dICk`YPrhPhTv*2=n(j{099OxPD^!gW&rd{#btcTm{EZEWaImpTlpi zYU5w3Yu78W{CK_eIsDFQ=0DE*V)+GjQp2X@`h(&3RyTjHjz1YW&fhV1Qo{zm`h($j z*ED~5j$e!%em~vN!0>$zzqywAOS8UMejLBg;g@eSe{I$m%OB?I)AfB0zp=LYThJHF z9|zy(@QZcKZ_^jckH_EV@GJTsp)ZzSh59~+Kcas$eX;yb@O=)yT-U~b4t=rwdhmUo z$4|ef@ss73!LM8ne@O1r7t8Mi-{)H5!Kwm7s#7=71v|N8M{C>my1@y(pXS;s; z9R7g*U+IhG$K&sF`1SRz{^FnG>us|9P8tUq7~@xeF#In2FHc{L9OEz34Gj$6=kUk$ z*P}0%-^li~?{oOY1~&e!>5Jtzv6C7$sPA+5<%Z_B>5I{Sw(5JueQ9Ly; z>iZmi`|Vc$2>N3A1?1G^`y75n|1M82$11AEXlbw>P)(zv(=lzhvYXf01rzVEF0}M*WKYSEDaR4u92j zLj%KC{s72dke|vKK&BptXd*n}& zN8~Rg_VsUJUR%NZw3IX6|DB%R-_3L5eJSwkj+yZOkH_zDz5ffxKc0U*m*e>N$-B@O zV|+ON(f2w00sU*~izoR$hd-p>r7xc3`yBp={(b|9`TY}llCS>A z;n%jX$KO4yFP`N49Dbeth`v}pKQ5no{P}zyI@2?cB zzd0ZOV%2Z+{=u#E!{-=(MSo{qKgjaS;Hy7!_(S&J@nBnjvHWiEeGb3e($@c4`eOMN zc2dIzAG49KRU(Y}Zep!*A1{PhULA_c{EM z{uw-f#q!(ONevr}-{aG&o+La!ynMUg!RSpN9lghz^LzY_`Ua7{kP1w z^%u)8=VX1#_c{F9`^>+Q^~Lg=;rm9P!*A|v{;yB9`eONYD?e4==kVL~&!;b*o|U~{37^1hhICu>Tk{ZV)?z``y76c{!aA8^5gOMIsD;)R(}urV)^}0-{UEk;M zNA#bhFP2{h-{5C`%K8Ih@{{(&UB;V)oJM>SYFP7iQv!9;7&*9gOw)MM^zF7WY!B;-y=Q+#r^PFYV zpOGxs7n{eK4_36#dm16f{rmUtH-z`=D}8e2`}emcp6&g6#qnRu@ryP72FC<$r5`@W z{Co88p)Z!-4$t2{hd(~n*6%+0V)^m<@AJI=pE7^$GUrag=e;8i>`#je_!Te?P z_czJ%3+$wZO)LEvx*YzvWB!vLwe=IDKdwK`bVHNxbNG$Vn7=&7FP2|qd)oIo{5Ji6 zzRv24C;2{yU(r9D^B2pH=a0|fkLYj0@r&iB(<(P`%k>AtAJc!7;};{J?fUO?`1Q}) z`klh@i{+Q;e$c?E?{oMS{mpg$ljXG#s`_z}w=qIhax)c1L=f1-{5 zIi5ciS$+XIHTgb=-(~+*SYIqZj^F3-2lU^=<0qCs4%aWA!|$JB^rc{@l8)pICkoe4oQF=wHkEizoR$hu@^X1%0vnGSv4u{2u-BYk2(0@|(d|f8_8- z>|g2e6Z}!|)nEQ#zOCPhI)3Cy_0?Z~?KJc8|CP_rA7uIQ_^H4AHv3=3`r=8x&-41x z|2QB2y->dl^Y=OY+UYj_<28P=>KDORe~rIj{{=k%#PUbM_j#^=hSmQj=U*es?*`xJ z@Vo54fWBCM8#}3C({la6@JDA_{a^6JlChc zO_O$PF_~ivQ{vGIx7!cJ<~puW%H7hg30pY+A(kNTr@LzC}w__a&Szk=fz%dfIM z?fV>lMgJT0#qx{b`y76k{ykbhviv;obRXcB>krQUr8fS@<&)*dfA83JIsE1o=I^HU zCr|ld{OYgzWA=ZU^~Lh5@com|QNR3})qjNVKgIIn^~2}zEBdd$$ezE%^7~=@K8Igi zWA!&+eX;yl-{5Jtzg70(qeflTU7t4>w&*$(5^e?3^mOl*jeGb3-4V(XfzF2-g_&$fBk5e~P{sIn)9>sbK@(=kVJL%&&jJu3uvGhd&CRfB8Juf5`kb={Lyo zo8j^AbNJOG=D(A^Sblu};&b?eKbpTceX;xwPXKVs^#{Xm{?q(Z>5GwL{>^kl1H<<@ z{0{vq>5Ju$v6C7$@O=)yde-XSs`-=Af41YN{>b5XpELh{`eOO<{Pj8f@_F+grZ1M? z!%k}0VEjIZU;DTD&(jwp!uVhD{XP35_t&pG!u4w1PtUx5ZJc=4&);9N`mei~&%b2V z@1;6uV2rtDd;z_>G;g9GqvZvJ-%eU2?UO(lXR8M2W5YgYC58n*O zf4$>oo)23jp6z_7En@3&)IK&IvBtAmSWln(`uBu-n;k#1{<{*-R=>HZ)jyKQQ>^;e zh5A1C^?w-ZZF$1X`r9O)t^Rm%tA8r%i&ejg#ZC>}N59?-^5O8*tA@KF#OtzHvad~7bC*@Wsw{B zKF|JJ&EH)><&E@dxXiZo2 zkpAubeQNQPkDb)8f$wwp^_6V?KcX*2e~dp~|9lR=T-p5F_Z2H)rK zoAT4^8@wJ9%dfDL8aAzv=kc#@_0Q$`(-*vL)~21AufMiVJlpH9`Z`wsAFMA{{q(>2$_4GoO?KF{k<{|)oZACo8fK8N35*XF-&x_{Ic%O9oxjs`}3 zpTqC2Xa2uGY`%Ds?{oN7!~B!!i{%ecJT)-t`y75_ee+*)iM@Uh%P+#`$v%hQ-o$)7 zPhkFH`JMFN(ZHzhbNEC0r*i$plYF1&`kPw)^*R4GS$@3!`5b(k;Hy9GAAV;CtA7i}FIN3Jc2dKp<@$r+ci(G%gXm8GeGb33qxl!HzF2;o zzt7>f-)H{rtS^>dq<<%g2FCb(4!_#f{3Ga#<;VIyhhOYw{+H7I=i^6~AJ1R)N1p4m z|C&60Rq&gOr;e$iKgREK`2BsX{)HUB82z#SW9+1c4Sb)&@0I2^SznC)@VnvjP@ltZ z9AN&oJbq&N<8&WrVAS_H{Nh0K)Bldp){iW|ft}Q_fv^5x`0aztzgfqhj2z?7A~*2W zf670Y^*R1FS$>K8NDZ8Qm!p24T+tU#@_i1!eu&loA;&M4-$e1$z^LzY_-*gW>m2HGe7kV&pjfMY^GZ;rkr^kpA-Y#pn;ek#1=6eGb1i-|DYPUo5}9NYMaDJQnMpG;=(MB%WK z&%37^8W_IvTlcTk3IuG|^84H3m-hYbZR7?SzMpUHl$rB8GH@sHZ1b&u&d$G`IbSjE zf40Z3&oSQy{g2TXPx5^ZzfFI>)|)IpKK|7oIs6X$xAgyW{|~9wSpRyup@HH19R8U8J*+RDs<-{A-{v?{oNL`d{bo5C`%K8HW1e*%56{9M@8_j&d&wfYyzC(DoTKgTYI zU%SlwB|dKJCzjt$UC_WS*B`s^yYv^|kLyoHj`i!O8yXnC`h(#&dshEij$e#CAHTFk z1H<<@{F45UPP6)A`SJae&*673xBA~^eX;ykjGz6H=kZ@*{=FJMS^ja@Ne!DkewX{# z53f3P=Ie*!0-uz4w$~4XE3N)RtS?smT-eq3ImSP@%KWF~ljX<%|A_h{&+B)s`7dkz z$np#9q=pUV-*q|s{&nWpFSF~P82xel>*4bYpXc%4V*bkX2W0t;bRTG7)b~03G5a^@ zi{;m|J?;A(e(hGPzZHG4{2q2v!v^(z4!?Js`8&`Tqidc&c2dIzzR%(JZ#Vyg^u_28 zKc4?Shd;W*{DbL><;VH^9R8U8QS`;~+i47FV2t1A@SESX`d#{B`32c`tKj<_entNo`eOM-@O=)yOaIk9d;Eyy z$NE0cakjp>W!$NE0cqv(s}$NBplew+S$`eOObP~Ycy{`4=@{K@j;`gL6nzxEv)|8?}mlYF1Uujt=F zUo5{7#_x0ZJ^DYOFP1+HzRz?0fsKEp`egaF@cB{Y^6Y=l{O9G9<;VJ!%i%Y_Z~p5q zx5tlIei_E^^E`k0>(TF#<;VIy&*Q(_>c5YEMV24y`yBp|{STopmfs1_pFW4*9$Nj+ z(ih7ghxz*)e)H$%Urb*tzZZO;!ynP_(-+Hc1mEZI>%Xx2chVQjFR+suHZ9j548QS9 z^M6TSj66U8rY#y6zR%$|=|8UdljRqXQ`eONI@O=)y_?4~S8uZ2Td%^d4u1|j>)hEl3^B=ez{*b&aeX;y1)b~03 z=C5u1AD}Ou=+{Yr74t@mPQrN>vg zQ!(y;w#S>#vEB{(Up>=&@g(2p`FPVmjP;vj`9)s+>BpPT;g{^cB7L#^c)t1^entOq zo-bngWvK6S_(S?9vc6b;5kBwpIsEbcw*Gt37t5~)-{o1mHgz@_venJ0t z^u_Yy94Q#C(9oNU;UB8?>}hu z&*l8Z@+<75hE2=$2g5HOGXHL^9~n6wKc7oCG%$Si2m8nG>rR{b_&quB*@^M^JtO@4 zvjOY%xqf2RFH#*e)%Q8ZKcfEw`r=8x&*9fbHviw#7f>PP{-Ufemftpg%J(_^lKxe!FP2{f-{gCPnI9+cU=y@ z`K0;Z<@$-`kHYwU4!`)b`Ts{>EWZrC&*69IFL{++|HSf(;QJhYkNz6;#q#UH_c{DN z{cY%rC;2{yKcIi=VRrn*@`u<-4V#wh4~E};%GPf$))ynk^|wqnG%$Rh!ynT>m%dnj ztnYL9gR#}WhQ3&S89p!ZIsD=o^B3^(E0*8DPHNa-{62@@{)hSRr7uQ*%)d%EH2FTy zF&=znPxD$nxX)r~b&{H`#xG&R;CQ z9qRi$kDva{^t++{2zQhkHm&r-=kTlNZ2X_1FGhc?e;mKh;dkg?Kwm7siJjE2L4BXY zA3SgMpVILoqd)2o(hW_%`h#=*7tEjYWnMqX^5gl}aXI|{zsK8HVAXocKiHTq)tBh#mRpTi$4Z2nmszgT`ee|!$VzKHo-vc6b; z5$gLKeuMsp=!@l-!S^}*F8$BY7t61L?{oOIIX3=_>5Jtzg75P@e)_N00dm z;a7`U{o7ezEI+Ql&*2Z~KR{nBzX;>^Is6g*pK$zQ`LVvw^ZXaL@qb$LC(ADuu>pWv z=|{um@Y_q8zfyXzuHqQ|XT5&2KXUj3GCIQ-%kPKJn|%(ydV|$}gyR>>FH;>fFvjn5 z_(S?Tv%Xk<7M<_&?7z|KKgZ)YB+DP7cxqtO_c{FDo6LXJSM2&FmS1Ii+V?s9`m*LP zM_(*I9)F+1FX^vEUo5{Fj=#_I_}^mnx6=5@@{2frm%|^BccU+sKMKCjbN%J5{-LT* zmj8o#6W%{*eCSU$w`dSbjbDK8HV|zao9H{37^1hhJOS#=il5 z@g(2p@C*7o&=1JjeX;yDc2dKp<@$s3_*b>@AEfbmW2e$D0Z+pC#> z0)4Uk`kZtpsew`7=kUw5%s-#LSbi;Dzt|sn_SZ50Ci!IfV-!yfjQXX^;kVZ{|Hm3X zS$-qi)4uv6hu>lU-_aLO@_i1!Pyes<#q!Hg-{)H4hzS_=zvHU@J{pxf0!}ZO7 zJ$`eON2@O=)yy@}O7lfGDfeE;He_|47C|0;d4{C24CbNF5QL;7O* zas7Rs>u+xLUs8Rt{4RD@*kPcPljQ8=D{pVP|(7sl$BEN;) zC%=PSE^7T3{zmGb-rJP(HnH_1cgW3j@QR$+k5$t5=c_GMtKGJaeIMT-7wZ~tN$xd_ zw={SN&j=!@mY>y^*pci&_6 zFQqS*-$U`#z^LzY_>Jw&zm>jN{ubf*`P`p>Z#iS;`FBp>OA^oaeRK6*tAFx7>3mB? z#j0Om@Tq|@exK+0(|`NB%5^BUhiU?{oMg`g2)dJjwSt{Q8bI z|G%=nSbh=e`y76Q{!8@5^6SC(Is7L5I>#@b;)E$EBo7wJCGz^LzY_(S>&U(459WcelJ)a0u_7=Giwt^V@##qzt^p7wnXe?Wg@ z`eON=;QJhYvu*Wn;p1N{zX-n1;g|GZ{VJY6Wci)=e$(afN4r@4h4}w_p5jy&$8Q+w z`y77%1Lkka`eM}|1>fiJyB{?FE%e3mV|}0J`R{7}RhmCpelOH7T@JstoB3zZ7t8Ml z-{*P$^mpL#?~|u|?4*WGEB)|!9{(Ozf5Cw~eq{OM;Fm6k-~N#Kf1xjyKMa50!{_je z{mkEk;}^@Xu#*}#7{AZqclS5{F#2Nj$N5vF8yXnC&*As!pP}_5qd)vEc2dIzzWRgV zH|JUX%jk=d!|yGeexwG5?{oO01I+K!7t1dprzYR$x&DFXAIbBlNtR!kKIQuyexLpK zr!Su5`y768kk!A9zF2-Q)b~030sXr9{&*MMQ>i=5Dk1W5J{zg0+xRrkN zT@Jr}zWKXw{9^e9*esSQhC7$j5;NS{7p1Y(6E?$p|asRlU48rrN&v8C#A<;Va3uFv!Q@3Qf~=>|K0O0xVWc2dKpm45gfe($^HZ$)2> z{y6_?;rYks*}vQTz2uYS50}NAOxN$Z9DenC^N*n~mY)aie4l6kA@eVgPnO>a$G>tp z{PF*pUt8avf5r0Ss<-{&EMzn`+qgRLtiYvO!tEZMtz^duaC|DEaxwlpGD{UJo|q$|6%#$iN4FT|9A8E z)B2Go`YzA@)8;R9j2-{FIE^`9zi>yXVbe-Ke4hPh%>S0^lPA`9dG`Nd{uP=(d7|&~ z?ElmJxf(xNe*E`?b(h00o;Cj`H`wD}EI(eqe4gt+XZ`~Eb+Y_d9DkQ*|9SJDmQR*H zz~ZL{Zlxb}m%|^Dm-=5DzgT_`a%%E@4!?SV>qlQKzi;}K?{oOYzs-LqeX;y1_&$f< zrN1kEvHS*hQp2X@`h(#QUbOljqc28|^LLnTXkhq0&-Gt2|8&(S%a6yu>vH&=m(Bkw zeX;yl-{%_CY->old z$7^pMFEQ>P$Ge`ZPaiLz<9HYJkEbt|-wnRc;rHoZMqezy7kr3Eoz$>_uYCFa?0P)n^>KZ2V;#G`?ndsBKSLgpuO-*lwf^^!+vJ7zxBKsqch&Dx zeblbMCy)o^>&Qd$V(Awp@%vT74Y$hUUp8@(_w2_;%-b7VzBl=5@=4?|xlb-OvHlCl z2a%Wfo7KCB{4@T(RmI=8dW77Y@cUN>pEL9N|6t%J63=@5U&fCAM|k||WE`*Aj=#@w z{2T0lBz>{`l4}OW@%K6WF8vODvHZaty94< z>HnF&Sbm(p&*3-dFM5+*f5h@*eV@Z`(*OAZ>3nr8zY*47{gK13=-)tJEFX^nG;quH zzu<^ktw6wbbYS%Nug{L`&U}167Wlcuvpqh09N#KjA2IG9W2;ynjPdy#^Q*tvj_r2$;z_>G;ScFA^$okeh~*E${C%G1 zzlN>fYV^Bg`NQD*9Dcc``J2-h%a8N-IsA(LPV~j{8`wz=o0jVjhTmJu>hDiqj67f4 zu#*}#@O_^Bx0!#ue6swPvh954Z%?mh3TD`#zrP-y`nj3c!xsWCeC~wn;o3Hyb2J{Z z##4mHL(k=y&tP5iucR-Q-{zRXSP!4WudiqRt@Oo{e4oQF>EBIXEI*!4K8N3ESp5a` z#q#6$eGb1v{|-JMh~*by{yvA_qkk`b@g(2p@CWn{=Ks$_EWZl%eV*sPzRmw=`VI0V z-{*P!?7z;Z?D?=4{86aybNHPNtp1jtHeamzjo|wnexLq9^u_Yy@$)(S+J;uYLtiYv zAL{!&*QY;6^~v(P!SA~qe)H{C|Bdv;^5gt{4!@%RG}m7&zZ2^F9R8U8TC6XYUj*Oh z@ar4d_}jmof3dz;em&Ipd7eN016aQb^`q}|_#O6NjlNj*-%N$BwziJ!>?~_$M2o=#qzfg>+f^_{Bufr zewoL<*gPM2&UyCyb7uJageB|0IsG#4(qr z{5QAxZ^Zg_vivr7Qj_m<_~jPnzo6$Iviw2#eP#7W4!_vO{1?}@`HSVp`THDxm;ROX z#qv8Cd}`p9>ko!sf0xx?^k#cKCq|CfGwpOk1H<<@{F44>SYIr^gPqi{f$wwpqjy{V z2kDE^AN9NGh9=+V@T+aj{|{gJ~j-fQ*uqc5KFUyJI~^?eS%y@&Zn&=<=e zgx|OJIsE$m<{w92EWgavr|bJ1eno#ieX;xkJE>vQa{a;ZyC1gtU!X5Wo*%#1NevtL zK8HV=Xa1G+#pn-zh@I51f$wwp{R7Oup1v6U;rICfkneN&<#-{mgf1kte(qHlxd;Sp1kH^pF@N36e{pIM3<;Uaa zbNFrgtJ4?D?_wu4Y+9~A82;#ZtG^L_G4g!=Vkb3h;QJhYw`2ahG=DPs!!NLt8aD9N z9}K_$8S{6hFGfCFeV@ZGPc(l&`eOO~=PpzAm2bfBb4L6=XDf1dL;L<`7x6~M2a&5y zjE^VR-eLRzzwfDi%)Sr$JGnt#^5*n?O#1iuZSu)$id>)UyG zEJ{zhHm!#q#6$eGY#>|EM#}7f)jx{ozgYelJE>vQa{a;Z zo2QvSpS~D*e*A^&x6k2^&oKYW^=$lN`NMQSXkgU$IsCzy=D(l5Sbh_7YVv&!zjl`S z=X3mG`HgH(`#y)?pnneQi{&?i?{oMS{iEoM<(I+tIs760JLroi`99C%KilSipTEqBlpPg{rs*8^I7r2ne$sG@oe*}U2fz18P5-~##e^%`8>~$ z{$un@vi$h?@;UrI`!9T}y*?Dn?}Yk3hu^ru#=k6mvHWK6eGb2(zb<{T{C$G&bHDz# z$MwEw=K61*80#ND-x{+1o&0=LtomiB@AEwWD{cN?q2D0OFM{uL_-*$88GW(*aqxW( zzj>9_{{wxo{6_G7p4Xp#sn4g$@(1DZRk=LR|7xp$B>e_ie!M>V9DeU>=AW+bC&==f z*hvkWmg^6OKf1>J_s|z3$My9C>4pY|uY60sUhGeJy?9SJe>VHV%=76ziD!E}H?Otv zyr1W@SmUYZ(M*rW=a^5M{_UKPSpF-{2lht}zj>Y2|D@`Z<&UtF8a7xD^#{W*ZZQAz z^u@@rp2P5Z%jfXNee>&ly(yOeisxJQN1p57XntSy$@1g+6)uP0Ag`y_yDrE0yXl68 z`)j%WVE6;}U!J}g`E0(=;kR$H@o$j+{rD=5p#{$ThO{qJ-BV&te_q#GI- zzR%%z>9<&4jQ;TB`uQAwkA6X4JjwSt{677?=!+-$K8HV`e+qr^B;V)ohxCu2FP`N4 z9R7&@eO!OB{MUu^U-^k^EmAAe`l_M7e}4LTxPEMV@yzSV`xDRh{8YQe&ZmEHJYtQf z&4S<-ey~4wF`qVhncM97U5p&(LqFZn!0>$zzjmwDUx&U}eu16Tu*vn=9}K^^&HSzD zi;>TEKKmSglm4#s#qt~Je$c?E?{oMS{g2TX%kMx=O}@|JkLjO6Uo5{7o*#VNLOvlUdBwziJ z!*9?(nZ8(l9KX-ux9Q)?`HSVZ!~A^?zeoQ!^u_Y~!S{Kt|81N9GpbLP-wb}+=AK$;IKkgs?=q{^2m%do_JE6YM;g{bve|`F5`Mu!#9DeP4=D&-+SpG14 z|KfA_!ylQyD}Ay2t+10CHZ9kGoqf_{2Lao+()GL$r0uIi{`voK{e2)@Z(CoSdHvlz z@od-M`cG{9D}UI|e=)|3<2Oh*G%&{R^E`k0i_jmE<(H6Clkao*jh|ZmW$26L53)V& z`yBq5{$KQZj4XeP;Hy7!|NQk(Sg&0!nYn&@C-&>NYWlpi;C*AWao`;S$9j*1```W2 znf1!Vz8?I%UO%(-I)vw2gNz)<>ow_y25zMv%J29O=g%KQ{XM=kb3FSeo^3o$*8dCt zUX)nl8DJ+hjmPJhPwnS6pKag4>n~Y;0Xa4K>JNrru>bG*dPqFU_c{Ege2qWUkIx_K zulg1HAI;+-R{eS&{q*>Kj`|(?f1hjf7f`&K8HX0rLF(x>5Jv3 z|IKu6*tA^#?fCw3xYt%We=)6Jk@xHe`uoS%W8r+->#~{W*CB~-X9C?`D0m z{CIx&9DYIn2G$o(@_i1!LH~EGFP5L~HaBp~^#{Z6(*LK{pNt&yFVhVT3}5}h@W<@G z%pLanK#Uyz2s^1^1K;QHhxgn1J$AaSzZm`D$H%A7;n#j^{-cMRFP7iNPHNbozR%&e zA25F{j$e$fsNcg*YS_T{IsEYg^S`;D)fb~b{ARkLf#Lfce&cuMU%sFDV)UQQ_c{EE z{yFr;@{4poXkgU$Is7jD_i+AV`QvO)`#y)?dCra+n zU?(+fFn;w1!>=AOe~Z%Ui;-jf2I+Tx%zZ{pTn>J$;Q9?K2~2WKi2m-{DS@`xc*}K} z`a80|7&+EI*7rI5F8%fP10-Yfstum*3Co zi{;1l_c{EE{-r#B#PY|f1R5CQ_c{FXuU3BpzCIDlZ$eH@zR%(J=yy4PvHU@{r+uI2 z`eUnq4gHcVzs(n%Q}taAzyFf?cWV8~@(b*wCSU!*@P{v(zmBf|WaK!0jdVkkum19D zwYTQ{m#i*6h`LVwGtA3CD|DyE|ei7=czx=^sR{weW;;H)B zNe!D;`r&hof4sQ)^>6a|myG^czarhx!0^={48OjF`P=dQ6Cm5u*j^u_Y4;QJhYMSmr(pLmk*bND0rr||n( zvHW=c_#A$HNgMw+^!+edelv_;{gK0Ov;QU>zgT`PoPR#g{?b-|NBLy=v3}d-@Vn#> z(-+GhV<$CiTCP7Be&@AT|0w!m-!vj@kXnE4SlivTJU|I{WqI`r+l*f0z0mL;d1!Rx0wGc`eOP0@cz)}@W(5d z|3~^_`SJ1NbNJL-W-&onk z|1SDs`G;Z0t-tbX`1=%tZPv~C7W{p~E`Q%}m-PO*$cg>9IDNnE`8oc5i2ujG5Am8c z7OAcFx?1hW{-YAl_Ibg8_jmsB_Ix8&eXX&^@AG`V&_7A%iyI%V z7bV2h>j$rQfG7mfyopYS^?~e=z*U8dm>j^u@?gzeqPU zFnpiGZ__`R@0Z2s55GGn{YXu|&*6{Ow)*c_-PT_$KhEFhdHm~`f6{8^H^}ni-weLb;WycTZPpjdFM{uL_$B>0JpaX$e4oSb(EljcPdv%@Is6{|)98!k zH^TUR4u44h(NEa=iRIUW?{oMg`X8e&p5*%+{+NEB;}=izeGb32iyi+p_T=#=%WsD9 zt3Pu1P4@q}9)JJASAY2(_Wvx8zgYF-`RjAkuYbVC{}~n`J>?b9R6T;oBy`-#q#6l-9Cq3-_!gPx3kBeSbkhTpTjTc|BR1+ zvHV(i{_}bE_pG;Wz33Kh_t^FT(o!9DYgv@NKQW zSpF!?-{-mhzBd06*RM&IALs9L_-*!onZ9_E@AEu<`lo9Ap?){azjQhLF?pqL^YbQ` zGbA9@|syA3%%wOVb3mTz_!(54QR5D4#69Nd3^Je3!#-lkemCFP7gheaiPa{0{xQ zSzj!_3ck|f9qPx5^Ze?b5J^u_Yy zB=kR;6g*zqsP@=M66$@e+@0sBA6`eOMXG=0ifz7s#+@ALD0^!J}< zzZgEh{=^kCKhHic@ob;R7yo1PnKR(?FUo1a<|K{_&o=2O%Dg6Oiezm9#0NhGHd=9^HocX(KW#bpi?}hRE9R860`&nNs zKYst?bNIz)t^Q&3#qztMzR%(J>HmV`7t8Mi-{*P$CtCftzLWDO%Wnq1;d1yDc@BNC z{9f>V4!?eq)jyW=7t4?5pU>fs=dgy(ag=lP#%{>`jk zk>$T){w~k+pKt!z^y_5#>0y-{xRrkR9Dc$6*XjHTeg!c#`RWgb-#yLhf0w=(Ij)DX zzR%(J=nv_O<&VSq`8?M@)9UY@3gP>xWqWIE>%tx&DPV{|0~mWk{AE=kIg)-HXhx(HG0_g!(>*U;l#nt8o3q z^5gmMbNHQ$&EJso7t8O5`aXx>_@epS==p;ze;9oAM-IPsiTMZ97t0?6-{Y6F*S}t<@AF*$OE&*csya`=s&jek=b{?_!x z^2cHRK8N4E%KQ(|7t4?1_c{F9m(BkKeX;zTLw)6U>+hkw%YJ|7SL87nzJGnc*p)M1 z&wn!TiHT=>eLvv%Ivk%^yns zKUsbkJE>vQa{a;Z+gIE8-+H87U&P4q_->~g8W_IM;rHl2LSHPup6zMh=kWXVPwrTK zvHTHsQo{!IeGb2Sjg9}(j`?Er$M}nMLj%M2d9F|Ymt4O-S$;3RK5{wy_Vrf(){fN| z%P&%0G%)J>9DYTAvyS;<`EmVx4!=YHZ#sX-@|&qH8W{D}9}IuM{!4VMz8E>yubXaY zVE8_V-@d`-U;nPXJ`>CDXM5WB`Tr;EOyH#*>;HdyJW6;nDj}--*s?cCC}Jo=8Y9V) zxb1r;OLp#3cnFhyD`N{GW8WD&zbs?lQe)p4*&Yf1>vMfSpEKX*a_05FUavX#{r363 z=X>4T%zfsZ=YXGGWd6eR#iM+m!|%{vr?mNt<){14=kUAqS73j!{Ph0V=W+g**!;i3 z{ux<*+TZ8!E3AKFO`E@1e!BmC4!=!*{R7Px%TN3J9DaxXI^2HoxQ~@Eu&BFwF#PVN zw*6bPzZf~rp8_jkU;*Ff@bk;f-=Dr1_3`xwD`8*(-{{}q{rXq@SF6HVSlmwe)9g|bNG!Lt^Z_gKUsd-U-ii0m#p8R zwEZuZUkP;>;JT{^!*9_)pYsN`eOOL#P>P;&dt2OZn66lvHVKn`y76k{+#s1qkNyk@6lhF zzF2;iygv9m`nTHrmzPhLUncYKxg37uHuHZ>Uo5|s_&$f2_F%7qVspa{=a8`vHGXS-{+Wrc8AUX82V!QWpey{4!^w1 z{A>2I*9Wouw7<{cx9Ib z^S7rjmS4e&^L-A#`H1-k(HF~4KTq~K{Qjfn|AoF-e)@TZ&tw0`&A(Rt$@0rM`{DLC zT@HUhew4mgemgn-K8N3W%KE=XUo5|u^!GXZ;$P-xx7qn8mS4q67+BO@JvjFNxB2tX zZ;_GXex)5A81j7%zuGtd+w{fq)As|P!|&4nDSfg0j*}E^u_XBePKOvY+vJf^Vgv-mVe@BY=U5HpU?gL zzjN;N^FJ@)%K~HmM<#zSXz;4_znJ@1tp4fii_bCt>~-^Rpf8r6+w{lJFQ3ED>EB6T zEWb>yZ=b_&53K)_^u^V)^Oy>2vtmoaV1eUo5{2B^Y4L-{s|6F;jxL*Cq@+-;j`(!SMUzyMRyXcGMS1UFFaNX5|;n$Wh|1tVv>AUo5|oy#Dwc{$N@2cc3qpUrT(S z!>@kV{DbL>{}xN1UxgUyS;R?k{}~ze9f;`eOO%_p3gKU#y;^eRcqSvHV_4hx7M2 z{OXVLSaAk@vHU!_{(TO=v6lJQ(-+GxsbF8@8b7AWciK6S3UCBpY?On@BDv!pTo}@)_;lBZ2n^PPv`IR*q{DF z>Q9zm3oS6f_3)+Ra`*%C+UzfupPt`7hu>W{$J1xuXMeH$c1(x;eGb3)X&x(nto=`x zKbUM!0LJ`P4~E~^AddyR@%W38??Z$BL4^SbmZCK8N3=|4YtaEWe%j zK9Bu3%45ZR>Q9#6z)Bcc)WesG%i$Lr=ZLd|c>Rb`AGaSXVPFB@=kW7Qa>Ut3{P*=@ z)Wc7Yzt7UuO^u?%$pB_J-!!I|_Lsgc&^Fy1z zSpFcU!~Q;p-`paP6|2z~%a0Qe6=2NY=h5HN{HlDi{APT1=erz!pWNa0i{*C`-{ ze+Rc;jC%O}@W7Do^VomeJmwG6ZHsn^Y=OY)-E~X zZ1Vrv`=1!~n14I@{>L9@fJA>5GwL`_ubFpTjTzkcX-)n~lC$zNN$dK8N3?zZre8 z{9b(aq3?6}&4aDOirjx<`K?Lz1mL=>2gA>%=HW}0{q=`odmUpH+n@GVz5E{iAF;n! ze!BmCj{dd7^Ux*Bj%I(c{ItK%;aC1>{(3rp$nvZ4*@yd2^~hs?)^A3?miX!Gx6k3X zj2Uk|E{C7}$to_OFCOLl9DYv! z7W!iOmCynMTzB6KkW5S zEWaAlq3?6}CH*<*i{ke!BfW zhu@;VE`9MR-{Q;%6?0KOmn(Uo5|s_&$eU zo@o6qqc4_UB)-q#_vt@KUo1b}|2~IbIm!AzM_(-8(&7H|Is7X959y2Lca!=19R7g* zEO*=WBbHxaB@8U;t{x1(aY`Q6vTPpuV&u5~ORR)}1$>{w@12?>&X%SxMm_xW`1u@u z@#j2LW!Xyf#qw)09rpJ*{5JgteX;yJ@qG@zOMgrHV)^aF_j#QEU#!DEnm<{7E%6JN z$N7{0r1`rX`>&DsZI{Czkk6(sR{tXLeGb2IS{^Gdr!SVDp8r0FU()Z<7t60D{e2F< zOTSNFEWe%jK8Ihl^H}jdeX;x^@qHfq)1T=cyMDT4`RVri9R7gyU!yOUUrYM?9Deom zJXS10Uo5|j>G1sbIsDG)d8}B8zF2-OrbFN7asH?0v0{DApDe!{)1g0bdF+2i9xDz| zf3o~qOox8Q<*`5c9QAiO&i_xnez_ceew=kR;5E7CK8IhUe<6Lb{B-~O9DalT&Gg0c;~Qs~ zCb;hE!O=h0=KqL%vi$V>w}#8%ch58bCHi9dC04?~qVDR!@N4JiVJ*wvr!PjnV0bhU zh5?4}bNC(lU%1cCU$Oj7w1>XW;TIR=v0@4OV)^~V_c{F9h32nJUo5|il`yb~^JhI6 zes)nFzJ#A|(HA4a_OFXD4Ef5R=f6K}{&1<7zajpq@n^RTKfjqN93S!*$oYDfFHCNc z*CY?f+mdTPv-*RSlg}h~*0=mxa{hDU`^nh`#xIcjSPCxl7(qyo2RClbbslA3-j5 zGCqSmAYUuq+49H9onIM$Zd;pAe;4ELl8dJCy5ugosr=WLA5ZR)Zy=YuTK+tFK+d+a zevRENUx3^rudaL#%Qqpn$p?_L-&lS!xg?)Qeu;cHxw)^^KTYnC-y~=IS-v}eAFpc+ zCa*zWgS->DMc$9xAs_SOD2{mJ4i{)3MJ@kDJzfb?6AKCE}kMeyEe?Wh8_7}@jC3zjjF;D^{m39_9NSevAHr z^u?ompU3T||C+X+EWet}zwdJRl}l~@d(s!nuV5t%Eb6Wv3_rgt4{PD`V$NTT9LK+f zFbpt!pTqCaud=^b{-^%`bF4=WKf5XqU$X4~*k3HaAJbufpTqCdZ}a>Y%m38=V?A>C zm8p^!)KT z{Op=McDR$iSiYsh7kHvDu)zFP4~C!Ll!vt}o0Yy8Is6X7Fu?GA4!?I(9+E8E zJRBC>UyD%>zk!u7uz>IL*#DLsakkcP&CkiGhhM`=7+ApfIsD?*9C5Y)=PyS6MDzDK z{K{=P^z4~Kt-o0Qr>;-dBZr@pm(l)n`GTRQ^Eo`bo4?E9_wLPOz9xOK`WKU9Jih%t zhhKfr{N1?!#qup3_V+pb2K`^MzgT|D+K>15Is88TU(pwj@_i1!`H;=D_c{FRDf926 zFP2{oB^cnktH&z*D*Z?4i;?5}OMRciFX%s~?I+9chv&cmqrd9G@N56d!&;WTMPG~@ z{cGWY0fz5$_$B@9e*Qd$EPn>9gnnD$ieOZh7Rl8XIFUVQb81wO;Ppo^v^zT2nCH!FEiQa!&|F*7Excy>0 zKlWcUIsbf){g*vs{`~aC^3(I*=kP1^SD-JJpPoNHhhL-rbNXWWHoM{R^Ev#2{;u@J z^3(bI9DbAjAL)zbmthxSfa|Uv41YlXJo;kf*#CKWV1VKK9De259C3CjeKG3cx3Lli z7Vv!zzw=y1Hud?&`ttJO9bUTKN9zLH<0Lj2!zf4-X75eAR>D_gMc``eNkp+u?x$hVOIu z&9`&J*>~xS<(J9+^Ev#%yXLP)Uo79!VSk^)ue@g!P5NT_apGZqV9ej=(SP6kBjl6i zTk3q5!>^Jrpf8r+3w<%b=_c{Cy{aGL4 z`9qeU_E$Y}_&wGyOc5w`upDp5`Hr9MEAdq zkMr2!UG^7i{Qbzt62Se%(9a zLwNtcA@Be1T5QJY>hb)3e{BBu>G#LO3HJj}v_G;*W3m64-?8@-F`ggCqZ!lT{_r{W zN0a_B^u_WwOMIXE`EPg8^z;8`!Y>A%X#PF+|1yt4}ZbW#CY6S{V#Yv6+EAI zCYNORe*f;$nSTF1oA4WfC)&U5*=&9@92w>ko^+f!zphPhe11O1_7zjiUyu7o9HO{= zS@<0)3^4YO&!hhZ^S6>umY=@f6fTE9ApeHGSbimTANKb-{OpTkv0@6hUp&h9x!?c4 zxp?~h|4PDd1;+kQ|GrX%{SW8-#p>Uf*ERr*{pa(z|CSny1t)9&k>&SIAMSsb!>@hQ z{4?l_-{`+W|-wu<>L(ih9G&SyIiTzBI zd=9@X%%ABId%qUTZ($`2EHHnc!>?>H7V|0e#i+;p)AQfw@S9tjKQDc;{C+ZjpTlo# zWB#J_#qt-xN*GvR{>m5P=at2QOT~O~a$XuQLvD~)BJV}U^ZD1WJuaF4_3Pz?KMFk2 z`$xI$SnR))_CFcVkNsCkt{>GS$M&~&Fn=BTV)@z3@#)96-{;Za)%;!MljRqmO?;Qb zAM9;@i@sQXd-C+Y&tv}s%s)r{$@25$__tgRzf+ojJAJYIMzZ}rho4O~|3&&@`2(zk zfkho(SdUfsgTuzcTKM}3+I})}9KR;QFu?Ft4~AbHK884(^r&5bV&w4C>)+?GKmEDr z56JR!tb~C@?C)~;l_SPtz6gCW>d}9Y?0=ub&syfMNM9_!pPauwhu=TO{59!|2vs9`cvtPS#iM+m!|&3cGS%iU zmfudUC!fPF{yY}9@G0#-viu_1e$^w7{aJtDAK5?gKXv}N9Da|yJALt}{yv9a{mWRK z;X9naSbj5^zt7>f>A!!3&0j3PmH0l7{ZF(0pQt}sel78ej(0ZEI&)mU!O<+%(2+N!~Pwz{ItK%;dfcT4Eu}ar=J)29RA>}vDklWp1)%G z4XlKLMLm4+IsDpR$6{V%e=+K@|GF_9`aXxBon!tA`hJ)!Kiz)SBZpsM{aWlVmLDe` zYQdPl&!d0tSV*#Lb@s22<+oz$e3!#-lQ(96vHTJ%VPJv&K8K(GZ7k;7(-)&2`!79y zK8N2p-~7Gki{+>L&*$(9`UlY$%TMR;bNKxW#^U^2^u_Y~F&%Ed&*673H2=@^#qw*3 z?{oOs-_1XtzF2-g@qHfWPyc$&pDe#j{JzWK7Z+Lod+Cei*An07@Z0pCrZ1LXB(EPn zho4RmzHxl3H@SF6fasFcYwZ!*1{0{wD9=F$jvHY~Z z&*S!AIu<+3M?WKv`&bDBi#ooz9Dd`nF~r$BhllIUF-md$)xrY<3}5wN_$~U&vcDL4 zyne$H0}S8i@VoTaI?Vcu<$o>OLtl9-`F#Iee!joeh~MuyA-SKQ_44WO@8=0T(fxg& z^ZN<6PptX1uo4Cq*gl_Q`MeIEBe{m1B6|3CBhIs6*y2lU0G`uiMygZ|7<*z1FMl<#x+1^rcd{KTVt zpTlp`Uzq*H^5;&@KcD;a@9N}yTk^{3&%f^np6L8*vHzOvFINBeu@VLr_3%acZOQ8c zazCH{OZu;T)%5dOBe0*(zyCkacW>hV;Ogn0Z>_+1zVzo2t?S1y{cQ3Uc72I4U%Wmv zW=HC_kM+oLeEN5r|8ZfySbiY^R zn^=D_>fzU7I`n-Gze|5N_7}^~lh;R|!|&fe7CRhFUo5}GN*GvR{yv9aJUABfGwF*_ zkNK|{)1mKke?Hxt9Pb}oGyUYpe5eIEB8{VTNp$fNwO%j5nd z-=zKLa%_LvzwdJR*+XM-hWF4HtA8z~!~N%T_%-@Z(ih85?|*y_zeWFL`r=W(&*S#f ze_z{AmY>eQ?{fJ0!((v^XL{0JpT+Xi?;m{*zxjyybI}*ePy72Eeuw^|^u^;oR>Hud z?&`tt2ak>+&b~umj2y?miIp(0fbVno#p7c!UyZ&P_3*37{kzZMx1KbAJ^Et#wfOAA z{yvA_qrU}x@hIQt@GJiuiyd~OFP5KUB@8U;;fv4VSDzY-`5)+uQIG8(U?mJJ;QJhY z{_nAvpFm%X`ndmMI`n-Gzd`>D`r=W(&*7K!FQPA&pI(1Hhu@=rD}Ay2Jej}G;ScCP zL|-ibxx`n#5kJpw{nmc|wiUU0u<>umP4ZN7hx`|E$+{1V-a)-PGxlgW<7x|6VZ$#dZ zjN|LyKOafnFMoXP^zWY=2cGEtv)>=@$g zfrV`UiIL;=Cl3z{FnpiG@6lg~{l%z<-wF>5`96nVJU15e<>-s$7gz}c3-tFn{O(;;SAx{OrZCSaBeIv3yI1 z{gn@Nz4QA1gj^hL*ZW*M+UrsK7~>_#1M=$R*0GjvNzRWm{xz@HHm}zM$(23rdOnKW zBV)e)dVV3fet&V@^w;wafhW42tK1)N@_ZC)f8=p*4flu7u|FI1kLLaq%a12gcn)yg z)q|t|(pcE{ETHc`W8P=zJif9)3HfLtpjC;Wu9~|4I5{`Bkih zfd%^e9De)Nv6#O_UyS;Ru1BB4ufAsf%um_tkyw5^xu5en{N5Yp=k&$$KXpB@9y$E% zP4mA?Uo1ZlB^cnktH&z*oc>Sgi;-jdd*OirhVOIu1Nytt7t7BkM}6G)dGy~Niv`EY zC(F-GANnqbUwOy;o9TO5SvHTiV!oZ>)zW5w|K5Z=K)98y)kNww( z>CpE%{3iX%zwG=G%kL(>&*4`;7>gAP(-+H6kDt%sXa6;SP5NT_m88GV;aBKyMqezy znfN}3U((;5zF2-I@qHe*|HH9Z@h5FRS^lTKpKv++{3G-KMqezylAJ$2kNrO}|5o)U z%kL)hueu!mfc!XpvHTn>VPH{r^<|9SQoBggrb zUf({4pHDXbKKf$$>HD+K;WuV7|3>;^`RVJE&*2yJx6$^K<>z4=Fu-+J4~Ac|{=waC z|BI1h`}6R?0K@k={5Jg>e;y@9eY`%g5(XCVeGb3>8QcD=`1?*`)KBF59DY8t`FnEv z#qvM3|5=Y5e&ciIPvO505z8;J5(XBSzt7?KW-)(^pVx{}Khgg4Is5_rBRGGt{Mgv_ z_j&YZwf=vRPnO@qiuYX(zdObJ3+RjGr{|x~V)of)q`XIFPZ(!zw2`NwK4POp)Z!-#EP50&*69GH-AC;V)@}ePv`p_errMVze!&_%J(_^ z=ECN$NM9_!z)Bcc)LlIoe(xLR|A@XAInJLlJTSoUeGb2|i23W$7t2qtU!TJ-=x<72 zJj(Yu{3iV!=!@kyCdcWI&)?_pyGz*occU+sUrYY|n$O{9OPhZneX;!TpX0!y?&`4$ zzyEFXr_vWA$Nuk53SYti!}mG-_Oj+5LtiYv744z#bNJQe%s-XBSbha7VPJv&K8Igh z-uw&bi&2mH*RT=>7Vv!zzx=NG*U=ZF9)5pP_!5SEpTjR!H2-e;;!(cO&DA-{NHixbEt~v47qCxzwL5zZUJ`@ylHfzaWp%7t1fP5(XCN?{oP5b*%s5 z^u?&3X#0H*zxq@2m!&Tr<@+3d`7`rZp)Z!-N&fww&tv~znEzw-C(Ex*!qyMBzv^=M z&0m_oK7FzLcC?4S&*4`#HGebuV)^Oy?{oP1X6FBjzF2;l%-`qm+nbxe7k#n(EII#t z9{sJ%KS(}VehVvMU{McW+AfD*-NyVs(ifv1=TCb7=X3b^_U50i?I+9ch3CKkqrd9G z@CU5Fj=mT<`lr6n;dghi{*TfZ%Ws6|zyPDa&*4{gH2+2VV)<>zVaWG6{0{wT^u_Yi z_aC3bukB?0CqHAaUt;;S*nQaF=kQDVbI=#d?%Sa*vHbM>^*Q|ZF6RG$zF2-W>F@J6fBNfa{^U`9&*kv5ruF{?eeo#Y z=kTlax1leV-%sZ6bNH2CTmL=ji{0YWwdJ`eOO%_2YB+UHaG37t3!a{e2F<*v#qwK8f1kr|(SL=$SbjQxpTqCdf0w>^l<#x+)je$f zGdydrpW__njrWgq{yvA_rT=;QV)buhB@8U;t{x1(*wgyYM_-IQzJG=#1{l82;Wzd& ze{uR^`32-K3fr`eOO*#P>P;a&Mde+VsWpyNT~}__ck^ z|2ciJ{C?v59Dcs9`2~Hk`~g>_C(G|(@?n56|BB1u zcgc^^7t8NL4nw}r;g^4~{;z8L$?}V64}H}mhu>%Y+w{fq+gJ$$3(Vi=vHu~~|9|RF zmLEmumoAU~q2_<)IeYyr$?|ioc;Dsl+f&W2&=<=u6W{0X^TW-bhrU>T%i71ysJnXP z@H_Mupf8r+$4VGj!1p=)))Cf!N%~^c^uf{;%na<)`02_#A%s6!Z6`FP7iLep+SdPM`eOO*#P@mZf2R3osXtkM)uul_|AEWl=VzJ!clu)a zwZ!*1{DS^f^u_YqiSKjx+1b|rR{CQ3W#aoBeo6lU`eOM#tb~C@-PMEPH_oyC|E4cS zj`P33N*Gwc_c{E|x#qt@UyOSA-SEJW?{oOg^UQyrzF2;G{`wq#pZ?_M?e$wMzls&t z-{5Ju865r?W^9#(MhrU>Tdj9zweuMt}^u_XParVRg=X3Zi`c?X3`JKe~ zIsDp%Hvd)Vi{cBDUo5|y_&$fwv$@2SH2?L8dzPKEI z|5EcWrY}ZmeE-8r7+ApfdF+3=`PZvIS$+vQ4EdSM;g{sQ=!@m2=bz8vH?FY$kJ1;* zA7I7x_c{F9RpviOUo5|3`uO~P9{baOL;cC}Yw7!!%i*`Kwf-}`V6R_d`RVJo&*2x> zn?E;wvHUWbzt7?K>3@U1SbnHud?&`tt2RE9(CVeq-oPV|O zzyQPdIs9tZ{0-=fGZ|&^W^;Vd7S@k=3l7!ljWz|pSv7>hkO-%vHTn>VPH{r^!#Ykgs|${2J>&rZ1LXOaA_#&*7K%TK~_#$nPJ? z@?&GyU-ihNf1mkZl~0ymU?mJJ>fuZ2a`^q8`Ag6jqdvZVC&%CC@Uw@^{~>*`{0>&a zzyke!4!`rT`RmXZqZIwy;ejFF=kObkm|xHr%kM^e==&Ugo5FP7ho_R#k^ z{OZfr{}cLR`9L#i)m0!Acld!1p=)_B-YuN?(lniT0n*;Wyqj{}lS-QNGXNXYZN+ zclu)a{ZN7d#{7K_zfZqQUo1a8|9lR=GtK%xMPDpG$4VGjpuf-I_dYQHHTq)IWB>J& zzZc^3*#C12gsLq2SpCWJn^*}0i`d`g@bg*C|NP5#{fXsA(fK}){%qziD4#69g63hU zf9`VlRr0s#i{+>HA3ld)(qEgtSbjQxpGSX+&3_yDWcmF`)6c(jIsBqxeo0>}KR11R z`+Xk!(?3D|$?}WDFI^75Pri`8c$DvR__aA~{%kL%qeGb3!1@j-FFP5JtzR%%T z=|4|jEI&PdK9Bwvt^Wt|$s>K2NB>LafBqFa|EpyAWio%C!|$+uVfteE>G|(-_+9!d z(-+I{C;fd6zdfhTe_i@w`DuTj$NAIWO7kbn&y)Tgm&5Oo_oFYCpT7S19DZ#sn}3VG zSbqBc<8%0pxy?U^zIc@HbNIzP=3hr&Jnkpk?{oM~`uETmkMeyEzoh>Zeeo#Y=kQzf zU#Bk~<@+3doBqf2#iM+m!|%|a@~T}w;!(cO;dkkOmA-hC?{oM)`is*SkMeyEzfb>r z^u_Y4$?^9&{K{AC{8@{>c$DvR_%-?)(HF~4uV0_TZ_wYCzIc@HbNB`Qz3Gcb`96o= zq(7Cuc$DvR_$B?5>5E7CK8N3;|2O*LQNGXNx9ML?Uo3yt1w~%E?cW2d7y+AU97po?$2Jm;crHi{#!p#tVthHC~on`MdEN zX|D@&FE;iqSJU6-ZPs@t>>)%8{{5&1#;zi%YRI6kbg;T zlXoHa$-g64Uoii8a*KQ}xktX1oWE%G_mNBTbL2kxzw%$Q`YFG*?W?|QoReGRDmj0} z@>R%P@=wXlS1sR)Tz%bmPjdE#@lB+aFo}9J%wc@%!Q#z8T+PX5Ed~+a%-p$k~j>OOd8>TeX!YJ5MrMSfmB`2%u3o7K;{JFh?TeB^A34EpKKUEu z+7~Tfk=!FU$b&CgzB#!&r}2U0#+QvxB6r9aiRZHXW^z8a@xRH{uNc2WZj)#KjmFu4d>*;>4XeMI+#&yyoGoJchpH!6_Okgk7Pb7MD+13F zzJKB0+q;=uyUG6lrH_((97IqTW;KSj>T19F=@`5MlTJU_Wh{tmfMUYnfXZ_i(ltK>b%9r9G= z4_JMh+$LYHdh%W5F8MifkNgq2PoC>qoBx3PO>*|2^;?r%As6JFyeGLzK7!mPpC$hx zd%oMqCHWchfIN*{JZ$w-uCw_y$xD+<@~Y(GQL8UhPd-rfevG^=dFJEH--p~F|B>7#|C#&}`4aNn$D4mUxgbAIK9T$?xljI>oS$HR z<-fLl+mRO~x5=xJUm|ZzUgSjccO^H;hm(8cGs$zGWcAmR_aZ++?vh_4Pb1Ipq0O&$ zviWn84<#=`?vcMwp8FK5Uzc2vw<4cN{tdZLKAgPBspg+XZjvu0pG&@-JRmGphkkelQ~$>)+!CJ)FLke5Hh{Oidjxkv7hpCL~pe?ng5 zO!Mdc*tVxhUXt7)uSA|k{uz10v&`R~+$Qfw?valq&waMlpCO-oxqR}SUzxlid0ldwyd$|s{yll_bIm`MyaxGFa*KR7xl4YI zJo9V6A4A@b{C9GPd<(fxew4h( z<>tRi-jMt;xlNvblFheAUX48W73Ob5UY@)oc|&qZ-iv$;`9$)CT)Ecr(e!bOyLT-@fn{4wvk-QxFPV&0s$_?gkLvE7s`TbV-!ZG=V55Jv(vHP&U z&*3-e-#>@VUo5|q_&$f9=hlC=*ZBJ_}Lhs_ZY8 zUtlE+Eb6Wv48OOK`K`U|_=}O_{B48>1{l82;pYpRzk!ZFd6chusKm94M^YNm~bfxcLNC)z{b=kWXV52P=a9~-;=K97FY`kx@5 zEWeiY@4Fm+{w?$WMqezyOnjfiZ_~eqzF2-G@qG@zL%&B~EWe%jK8N2}+UEan`eOMl ztb~C@-PMEP_rGoa+w{fAar~>{fdPi^bNH2I%%AZMyMDy-+mOSM?{oMa`d_6lmftgd z-1j;B@;lalIr`#JzR%$|mNkEM`eON&be%{j3=dHZo@9}>BFmmli z`+neLa&Z&CA0fBNcgQE>c=+!ZzI5aC-!Du}_{6{yeZSD<@jjLJ`(hpMMsmD;j`OAR zeLG+F;Q1n!pC`W0;aBM&Nnbq5_c{Cq{qyLH<)^P#K8Ih>zlFYdl<#x+P5Lj=7t3!a z+wXJum6dG&eMny{|5N*q^~m8@$)A7IUa!QXe4oQ_(67=LkMeyEze#_6`eOO%{`Wcj zlKvj_#qz(9>_6p?@Ota>dV5CK-->qqP1?t<_ZE3Ua-X~!dGLL!Z<4c>jSnZc$!C-E zn&tP(C;yk+TE+6QeXW0WRpaM*{pL5@_5BvPMaK5}>v_TM^w;xA37;EyqU*WM{aNGn zEY|)^&nKVbcy#F>$>SlG{}rr+fkoZbufpveaC>K%iJ#xxV%s|>xwzGMA#$6H=kwdY z%uUm8|9J^t9eASc@2_mv)6wD09-n`R@%(uI&%*-)jQRT<+n?3Uzl7T_Ml_M{bND&^ zTj`5O`96nVqyHFvvHVt;2L>4P_c{C?{g>#A<#(_W1{Uyr4!>O0wtpIZG3v4Xsqb_6 z)gPKa^MJ2MWcl6X`+wCVhd)@|{IAm&%Wq*N3@k8zpU3&HVg9o8OS1e*;`LFGyc3KRtdvhu_`M{FUg76IFRX-t z1$>{wZ~VgiU9|mV)KBEA9y$ExCgxA2FP5JkKcBiAEGaopB_J-!>?^={u}hg@+(*g1B<$=2g7e{W&V`^@cbhq$NsM*ub--yUu^R8Ux&UJ^%M2?Is9^a^LM2$9`~^l1{Ub=bNHB^7Vv!zzxcKJAJZ439)2x6Fy#9jew+TBZ`=7NmfyyT^L-A#wwv{@(ih9` zMtj)b=kT-L&0mAQSpM%4U-?eF|7`xi?zjIyZvW7@O>V4ad?mR@zL(tk5%1Skzozkw z`|9fx%w0HA0ao%@5m?5d4ToL>Q=ujxk285+#&Bz9+1x@*VZxr9&$;3 zpWGvV`9SMeX;}St$PMyO$t8Iga+iE0Ia}BK3+0plA)oxZeDZ81w|71Bue~mC_!<^8YX&*N6Z9Y4w|@ z|NiOPgnNPU{nJs&{~xc#>+g*4VuA0U#Jc|SR_cQ-7^(T+=TP}xR>~H>a^u_XXthoL@hhH9G{yX%= z^20v^n$Gt*{6T5{4DZqkLGj^keq4-EM}hu>oT7=7_5-{HIU7!>^EkOJ6L%J)`YFaNX5|;dhR; z{zuXmBggUYU?mJJ;QJhYalHAb(ifv1em6WY3&wro8@6o@4zF215d7S@=*8fh;pDe$?N*Gww!aqRJ@W7DobNJPh&3}cySbjQx zpU3|6KTv-`nw!{d5ZP_?0a_oi{)1n-{^og{zde~^3(Iz=kQDVUHW4A>HK{Tzj=Z6zn8vvl<#x+ z#f9cSL0>FCoxjiF_vpVyUo5|o?0=ub&;M@yKc+91UtlE+Eb6Wv48Od{{Mp{;^+!gI z*N;!_KbOOAcFg}OeX;y%cn%CO`uiMyoBrbT#q!hn`y76DiS=KBzF2;`|9u|kPrt7D zljW!Tzv*)LUGf(6#qw)miWuO!s|UyVUuyH;P4g$qFGC%M{LJO>OY%YV#q!%&alX&t z=a*amqv?y~S4A$Z2Wcju5JQ(2E-{tW0tE~Sg^u_Yi^UvpT{`BXZX4h|% zEWd{4VW_{);dfZS2z{~qGTKAm=kTjn+x%CiFP8tQ5Ju8uo4Cqbyp9D z-@L~9Z>#MmBggUkdU#-f;j4a8em>aa=Y!uPH-BcI7j8!GlXoRI*0=l+a+};H56IV$ zt3S8;`^io6bL0+r8adm*>ZknHKEG^|7bf?~-y;_rTKziYHhFW^llLU&8(DozKKX3< za#1LPk0S#ti6(l4BzB}~y)$3DoeV2TL zlCOF&{OUjK_2Ce`K9P~*_2KC7z>u%{^?5#ac|LB){nO+A*;@PWQQLoqE*kcC_%}SY zr`8&OKEMB(w@$zRUQYPkz!UAi9_M=;=P%a$d$HSa{yxX{x9_&?KZm|pe)|25&*2a5 zG5;F+V)^Ok!#;;!^vwT1`eOM!eB=Ay=kS~K9}Nc!Ki?3`&y(%cQ~4|Fro(OJ9r}=T8*5fba9@KV|-V^2zeMc#bf@(RVrg@?Yl9^a1bB$?`X! zG3w*K>bKPSyP3V-?m}*DZCr}?H$ItM9%ww%_4f0!%47ETDdr&;a`Tb=6K8K&ZVE&c##qt}8?{oMK`ghV7%daKA z&*8V|KSEzDzn%C#hhKfs=Km~xvHUXeeGb1v{~h{b`RV<#&*67pvi>vu*IrM=@&`$O zpU3_$n?D!*4q1LR@qG@z&-z8_i{-Zy-{_zy{%iEb^3&_z=kN>q*@t%ii{-bH?e{tS0sSx07t3!a zzR%&e-n9A8PhTv*miRu0-=qIc`eOOL8SM$cbyp9D-+tTruSQ>t9QQK=tb~CDe4oQ_ zy=(p^nm-x!@cUQ^0}J@72g7f^Z~pG|#mM2OuOB{#-==?v=1-R2!%7%fpug(DvHu6w z|5WuSBS-%ZR>Hsne$(af^AF9xjJ_E4@bmD%0K@k={2Ki`>5EYhf3EPrkgvSM`?I37 z`?KrFwLcg?Ol}@x{06y0p7kJpo^Yt;3y}xpmC40a%Qqoc4l~}HT#}EMPrg|B;Z}dQ za`MaM$`O`-_V+fQ>`3E<$zAey$bIsN4pLvp3nGcxP$jzs$zM-7F8F{;ZS-v;9Lq36={o8UJUw=P)aJXOHDjs?J z@=3xo-!bw1Y{B#Cah^|Noloiekwzr4!#RO*KC2!KKmVUy4m|KHIUBS%tTB@8U!`y76MR`ZY5{K=?ClAeF6M-IO=oB3zc7mxCN z4!<_V{43~-<){1K=kOb|oBt2`V)maen06yaCz+iW%En*C(F+h zzvuGUpZrJlcR8Lp^#?A8UzyALpG04*{<|dol{fi*+~E81AIa^b?fv;I@iE3XlFMU_ zpCot5?~r@PSw7nz?Eav8g7Jdn{6ym#xpI>6M&u585AuNgCvx>hm0S#qEJH@^S3`Tl=ZU>zIm;@g-v`*wfuFuC=N@$=;3S>tKs z>^b8(K4Bx5#UdA0ux~&Yw5`Ao6x(9Djd*a%8yw*a{Qn`0Sn2^BjRE`u+5h z=hvA$zr;Gf($_bi^dcwor)Is9Ti^Jn>(-|v#; zr?1bdM-IQm`kcOal<#x+UHZ$?7mxCN9=D(V+Vls>{6Dq*E|1&)Roni}wEg5!{R@}J z?I-W5?RPnzIo*FPm&ffVAFSObLe&uVn{pZsc zqaMj1JTT<@9Deq7^KYRqmLEmu`#k!&`H#pakMvz0{W0@jlTVi4z>4qha`=t;&7bs% zo&RF_z2yDf=kW7|%%6w8SbnHud?&`ttn@gI16MZpqBXW;ScD~9=;L6&u_)@)A{=xeo?jg zFF;=`KRtdvhu@*UJbkhJelmZb!*6}d`q$};<%d6e8V9)U>YwKQWaSjQ-~3qjo8);9 z=KU>sd2;1ct6!g7kar=s$W!H$&mvd%SU(G3t?|zR%%TmN$O``r=W(&*4|UYyLLcezN=` z%mD+8`Kulbzs35!>5Gx$nbX&EpTp0-XZ@$r7t2rIPkkQezk>OvYW`&TJ*1)f3^CP<@YB?ecaDn4!^&O`S;Kl%O99N?)w~mZ&mZ3r7xDB-VgX3e*Q!AXPji` zuULK!D`8+!clBWS#cJlyMPG~@N&5R-K9BSNk@-v0?~zCOK8Igh%lx(Ji^u&i2MjRg z?{oMa`diQ!kMeyEKmW1yKY+eie)|1@&*2Y#V*WAo#q!hh-{gk&pg@AU$OjN(%(97 zAAPa>M&kP%ewY5T^u?ompTn>G%KF#oi%0oBhhNa&hQ3&SKbgPJ;n#Mt{=cCwmOsEs z7+BO@Js5uV*XAEXUyK|{GdwWB@O=)yP5*rQV)?c3H<2;q`y77%H`f0)`eONQtT^B2 z@XNi-e}cYPei`jyf1kt8_BQ`N^u_Yi?e{tSCjD7wvh!Cgzm@d&dF;QB^&g|3k>&TX z5(XA^d~rGa{=Vj~L|=?jB<=9PkneN&<$mU`M_)Y3_c{E0fAhDaFCOLl9DbMn0rbVA ze4oQF4zT_w&=-&LeGWf6(EN+(i%0oBhu@}u2Ys>p^!WQ6ezmmzPtg~T@_i1!OaDFk z;!(cO;WvJ3{b&CS?;ptWJ6H(=i@K`^!_N*fedjHmvqjy&r3dYsC{13ImdWWa&fNlTIBxUjCUe;&o};) za`Khr$_17`F22zCBXW!Um8tAc{yw=!-iSOP??tZs-Jb6Ra+Q1;xk0|4+$6tCZj&pA zS^qA1adMyhBXV|;_1lJ=lMg00$Y+yFa+lm8KS}P9|4Ys~_Wbi6Zu7~>D~m6-d{c6b zd?2|XpF%FlH>&v$`Tb*1b??|qZTjU1$5^_O)oLrK#8^ip==WlKDdi?yW z@~VA4wte6{p4s;00OkerW0U+m=GE8CzcI-lVm@I0N|JxVy#2cQbIv+_|HT61_xGA_ zSiUN`@uu-s629Ire9b;-RARu(Oh;I5A2)&3-sG@f)nyCh1dX4C&i$H*n zDq83uAcPJIEs#+Dv*%sgK1{gJf1XE3i+8WtXGWvZs9d=TPk>*8?f4YG|9O4k{m!9J z{r3IO#RJ>>pN+!r)wNF6@$+Dgf6jjV>rJcu%h-;;ac;-Y=GpQu#&>o&4Q-`V|c;ruVo&F`Kszm4zgezVX&&dsl1Apcc-XZMrh@t=Cj^Yy<_{%5}a@Fd@E zgke{G;XlnNH@|(6`~lPI`P13zEh(OV$GQ2fOXLs2cXq#KH^Q(h>mTRlCzr`j@tv*S zl1kzAf1I12T_b-Zd}sHoVHq}zt$&=G-@@P3=MTHzHaQIUz24aT+O_I`1io{Bew>@1 zUMK&2d}sIb#!>$`&;9G=-{d~*e%U4;hH;4;eMQ(U&r47-`V||^hti4o8QCV8{c`7 zZ#TlQE1Q3uo1fjJ`Jd3ac4htJ-2C<}^54UE zwt7oC;bO!6I5)p>tNiJv)BWe{esTN7x%s8P$X^=Y+5NKJ2*a*y{&8-8xg~!qd}k}Q zBn=lE?#H?L75ts?ohSK)-%E;f^J{mj|B?94?zalZ?>IL+=lvg&|AP02-7nsMNtB!4fIq``p5zy{U!0p?`kVSsKfU%JXZKsh z=U?hAH^23i{Neb{?$-+a<2+yg7v!&kpTO?-3fnKv%`d+we`|ba_bYZI47=)!>W$5> zz9hef?`*jx|MU8ldiP7O$UhC=+5LK0h7DuuALrJ;j(-)tbANuEn_v37`akUb;r@KD zw>kQie>QQb>t`yEcPS{kI+EdH+x4@8$hr_p5dz47=(J|7k_J z`K8b0pN#KpktM~?598eY+L!Vt;5)lt>>uamx4)AAn6E$Ve)0J4^_H98qy9yF=l=XS zH$UmA|9kk({rPcjeii>qeCPiBI5)qJ{|mlze}0^s-@>1HM(zL3{rPcjeiwf*zH@(m zoSR?%m$u)M_|E;XAuu zl|IRjbMx!?WAL5bzp>zZ{=pe~f3SL|-p`xnOmXQx@mz2lULLO9uY5B&eL#E=+=b8a z`UjQY4!7W!+<*Ki#kdY0x>Yb)=AoAA+a8@?It!mq)lN96wqC-9K7S>L}ZUmZ^1 z9pMUm99)C1gd6Z9a0`AP?!Z%zRlgp*C|rJ2{WpYDcptb5p8%8bjsI)Yw&^a^>7pJ!7sq+^zx@DYk7ymi@{IARk%EZ>JNeUfbH=f zzaQEvy#Kk_)4zQ`bh*I4_kGax-#j18q~oEpA5U6#XNF;H$HO?c<53rX9KN&rjohB> z$GQ2nAJqQ_d}sGN1wYQsuly+gUVLZw+jb)iyR!Mmx%s94%6|sm*&<77Q-%M8;eMRw z^Z!-;2R?szk}rLdUyE|{yYRp8o!u|aKhDi>PO(tl;XnA!?pN$a7@%qkbWLXZIU+Bl6?i{Q6YtzY@N)`^EF|I5)pDwfs%+ohSKf zKWYAPZhkV2{GIWg-S63rFzl)?sy8;jJW&3h@trNV?bos!Vc3=Vac+KlI{9bfJ6pZ^ z#m7&an_rz?eiPr>{YqGd4P)yc=jJ!?@4FnCSW?48KPr^c-{r*jC@?jYF74m%l#J`aJqYArU zD(v5Jp8IpE|84HW?zak$&uWyLUz$h$llac=mu>Q47~A~g-25{BJNVA-cMJ26bMt%i zss9)F&hA(2Mi_Qw{o~yHbbk52;yYWt9pAHXvEhE4o8Q2nuB_vmv-`#KlQ=iOG)(=6 z;5)nDw&r0N+x+9){5Jkbd}sITL9yX}oSR=6uKw%cJG)=D8<8L9=2sV#zYV^#`|W}s z=jN9emcKu~v-`#Ki#RtwTSWfx_|EPZkFRlVeh2?Td}sHweC;Q1zc@EPT~z(A$9HzW zTJYoC{5t-9_|ERv?M4`O)fd$pn_pU7{h!2lw&?fHZ{pni))Mkx!FP7Q9+qRn*!su0 z`RS7K|KaNoyPugHhWlP`Y<`3KZ}FYoPwhq+c4htJ-2C=Z>R+0b^9$JO^Yu454EMd> z*!IcU^Sdj{zYE{l{mgEJVOM=oy|MX~RpdW|?`*m4e@VF5Fg8EV&Cl@P!*{lN^XuVa z!~Hlnzl;Bk&mVR_%k9a&*IS;?f0X7w&1`!7RABeJ1wYQsPga#bC%&`$#qA&G=BKO4 zUku;b{jAVG&dqP&{{i3G{d&QVbMwoqtN;4=&hEDgew>@%#@`a(+5N2G$GQ1QMg9MT z@9ci9;KzBs{`d#@`or#*3Xh*gl;{3h>VLfZu>18w|3;LXU;d-~2EMcV#p6$$o8QDA zkMHb$R_Gt+=9ku1|C{ig-LDqTALHEo>bmmp!gqGRRPf_G_t%&Ij{C6t#r?k;<>qG_ z$o~}I+5P`H{!?$c`K=A*|A6o8ep1+eac+JGf2!H__;+@{Uhv~QU;mBNe|G#T?0#18 z<2;`~^~3R71;119cE4xK2*Wt{qul&vRsN3n&hFPu4#WL8H$T}_{sH*T?q|6@*^hJc>-Z<(JG)<8 z|2WV6&D8$__hI*o>tBy@^J|;SzY*Wr{o?%N-24vy1NhGU`EhQ3x`q08@SWYS7q(xV zo8Q9!5Z~GT;{4;>{PLFS|6hD(_bYZI47=)!>W$5>ZY6)FIrR8-w%qpLZn)SmHb2hI zPq&u8AilHvnaN?eALr&b@K?fjcE6k3ll?e1zcyO^*T;8uzxezS=jNBTk-r_jv-^qN z2*a-WqI$b&ezL9nJ@K6_x9wN68)4X$`EhQ3V>|gr`TE0FZ+`Lk<@J`EpKUMybbM#` zo1xBzvGtF0^GiF(zr@!ccE4gb!mumzz20t`U)fRq&G^oi+x&~$KhDkX;6H@#?0y!O zVZ+$^$GQ3GPU`;xzO(yvlf!U7&dqP(ck!LwFCPEn-285){@>y|yI;?{PwpS*=4WH% zPd%p|f6ne_1wYQsZ{yF2@9ciH;K#Z7<(<`kVSH!zy9Gba&F|rl#CLYTUO4}WbMtF| zQvcQQo!!sxxG)FfzNp?f_ji-u=RWLy7V2zF@}u1R4!je-v-{25p6thY-hX%XKfwFL z?$-)_Ey~UB!YAT8yWcHrzc@F)y_fo*hwtouVmHFDtG=k-IPbr={42dbY`Hyto8e-^ z{ce<-U*AXmJ^0SHiar6bgTLwslVvruBg*!su0`5FEW_|EQ^3hN)|xqp=U@9jS9esTZL zqTKw-vGNbccXq#QH^Q(hn}3{}U#-hO72nzF?fz@njWF!W{5Utidz}1B@SUyR{3Kj# z7@HsG=9i9_e zr<(rc`A50=Df}V6v-_=rALr(G@&ASI?0&I-oSR=hQS<*9-`V|Ip?{p4U&o(uZaw~; z-LDt?I5)p^lKRh&@9ch7@Z;S441XDXXZMTSFV6GzKUw`(#V^C|_X_>vJfHt5@~b|7 z*!};Rf0XC*hclmll-vGaFZ9o%-25(l5WaJN{o~yH%Bh&G^plXNCT8ZhnUU5WaJNew>@%#(y2(+5LK$S;5)ltT>m)F`=71;3weLo{o?+UM7jCpvGPaaJG)=(ALr(0_#5CmyWg~x55u@G zsy8;j)KLGO@trNQ?bi(#8^-3xx%plE!| zohScVd}sHY1wYQsubwaeetc*5YXv{f&2QtsfbTrXFRXu@o1b2&{vY5wyI(y2jC1p| zi{*cd@9ciJF#k9=zjBHEf%E9`f`C&*A$z&*}R+2f>|}#HYc@%i?R{CVacs z!)>_qit1m6(^tjs!sXY*Q=hB;4R}Gg^1AXAuE866{)X~h;Pg%Ld2sbD@l9|Cegdw) zt^7kcc}M&!+;~?!!+C6<_rwX@gI9-}?6+=L&4+wl8v7ycP8y`}G?r;lj)3A`~}ftTd_ zRb9ScwJKaK>-$$5!wq;>xC0*o_uv!Y@~ra5!YMofuEMv$HTXfe0Y3q^;FsVI`~lp9 zzk|!OssDi4^!>3Eo(-`G~9sKfLrh;a0lKV?!kM(<=NH$2snjLgsbpHa1Fiz zZov1uKZln0yyx(ja0i}ocD|24r|Rc}+wcguG?(&q;3~X1+=F+98*{7vP&geVJ`--i zx4<96&wBkls(%~qz+b`Td6myNhvvT?yeQm&mxn9!ss4{}9o`Y12p6)gJ-3;4|QK z5#<-dUHAsLvZ(S0;0%5mE-j|~Ew6{afV=Rtb8CGni>rP%xCak`YfC6!5^lq5z||#{ zkA@rYUU0gUa(n)czn}VI;rpl?J^S15r*0P5zMpz-@%MN*KbSL|CfN5=Td?g755p*KUMiSA9{vvH86#t$!9SHjK@WbMx!? zkKsGJpNo+n=ed8i`akbJ?0&oOdlL01H@|X|{4Tz;`(3*c^^bG&lUw9}wr zxBs2@zg7Ov-XC^9v*uwK_l5sdqTKu@JoCJIecbb$n;{i~Zx={09D}_|EP(3jO0e?|+y2XWk!nzfw4U zBvEdDHc|fJ_|EQE3x1rN-@0G^`S{N6mkWNJo8Nv&{w?^{MLc;7sq#Yzf)NMI5)q3sQf?RJG)=(ALr(mkC49+zO(!7LjO27 zzjL(w?eU%6uNJmnoSUBx1 ze%Ee zc0aQlVc3=Vac+L?Qu#0V`omUl^H0LXhOzlxZ)|>p`VaA)EjPb-|HrxcUHotHo!zg8 zW!Nyb{&8-8cA4g1nqQA!XZLHlJ=u?Q^E>!ud}sF?1wYR7{^Qkue(w*vUn%%ml$+m# zm&A8=KVR{%4CB72-Z=L!SO1mWhuv?6IvbPxC^x@yh5SwMo%{3S-25*7F8I#wchr7T z|2Q|l)l~n(@txgI>_!-N)fd$po8P%o{#blx%WeNF7ao6cp3na(`8W9dVfVXX88(cq ze>cj_Z(l9HjqmJ!VsaSn$9di#|8?&V_vd$`-2Bot>i<2yv-_>Q`{e#{Zhi}Yng#Uu zadtl`_;GH22Y)_%XZI@wKhDiBU#t12_|EQ^?M4`O)fd$po1a`Kzk=^?Mx?cXK_|EQEO%B8TI5)qFzYD&z`<2|D?8mwJ4g3S~o!zh5jWF!W<{#(z{BP9! zPxtx5?iXLbl%hPJ|4s6*^7+H=x2<^?-oF~<=9h1le;2;9`^DpDoSWaoe-hu>{ZrL` zQh(3C<@2G+r#iu&?tFco)r5yQf2MpTxD9U(_uv|we6IR4;3|AQT!-&~+i)B1!SBMg zFSNWVFVOrt@G!XfrSjF`>Q~|&;BrrV4BUXn!#((6xcx8Hcj404;wi_ee*!NGSK*Ox z3;rWq`9}U2xCtKxm%deg5nO}shLi7u=iwgwHC%pMpa0GF*U&$FzL>%z;VQf}T!a4%H{i?R7W`MZ1AhQ_;b|XL zzaD(7zhBP#tb~mNy=*!8gMl_(3>bP4&;gb=Z#I z@#j0Q6h6<{;JM#^zO!}U-~D~DTlD<0dw82A|NRlzpC6LK^Ftct`STn6nm@lqxt$-3 zF8EdQ!#UoR|E=TG>2L*phxKi1_U%zTUy5_v9_?GTJ&#~}I=f%oo^ft|7k}y@yk7#lUoUJ=ueaR%>@Vs+Kfbg3 zncWD(uKJ>S<9z-t`OD(BVaxOL{cvr={Wv$jL;X7V&hDqh*9+0|%`e@d{(Im%yWg}M zVc3<;KhDi>-YI`9zO$9u{L^r;;eMRw^T)r{=MTGI&+W;6C(6yQ-lhJ};yb&a6#O_h zzlQ%QzO(yT!H@HN{`k`;+J8E*`;~$p=jNC1*8B(KJG-A0{5Us1#a|ZR+5O`7k8|@g z{59~M-ES58$9X>gdo=$oeEzWeb-NLUUG;_kl%w4I#zgtM<2zgZ@9jTvZhjm8M0{uW z6T1Wk{_rup@@{Aq@2|97_BwqGM$Y#5s# z=jN9mkv~7av-{QDp6tiD`5FFV_|ER`ve-hu>{iNW>x%nCXNBGX}mkWNJn_t79YMAz4XZMTiALr(`@fXB* zcE4HZALse}pVIoTj-SE(`EhQ3>1p{p;yb&a7W&7z`6>QU_|ERP3VxiM-^D)}-`V|I z!H;wEtIufu=i@uOUn%%;Zhiy*3VdhxlY$@T=C|-~#dmhUQ}E;5{Q9$+|3rLe_p^c@ z=jM0uU&eQKzf$ny-2CJ@_3z<3yI(H&ac+K!Kjm=k|IY4L3x1sE>yJMOzYe=!u^VC7 zRbTi|oSWZ%Uh^M;?`-w<{88M0;yj;!M}EcU54&Fp%dlZ={nIEnzXorF@9civS#tKi4E`EC3|@txiOpY2Dz<>sd^s{cv&&hA$V z{o~yH8vX_N&h8iIALr&LFRA~{_|EPZ=O5?hH}Ko|&h8iIALr(G@L$DucE4I!|2WU* z|FY))rOzMk&rhP<{2Dyvf;|63x$Xa1p}*JL^7HvqKP!Hx;O9GTsI~gO@Six({Z};q zq3*+0Z~eRBVq=mY<>t5kE`J2Rv-|bjp6tiD`RS|j*T8pnzg_U--25JXAHK8u4Z9JB zUG+uv#^%>wSO0DBoh`TZ@7awo?8^K&H^26#{4w~>R&Rc*@cKK>%}?Hue=xqY`!|GT z*f6&Kp5MUxH*Ma(xeKoTp!av4hSUFu-+&wNm+t?heEN&@es%R{@%(THUII>jQ9cUJ z;C0~AugbTCYrF%nD_os2&DZBJxI9370^FENd>-5yD833#rxQO0H{loI^7P8T_8gw` zVy$0g2IWKGbSCi#xB;)``7Fw-a1Gu8u9lVW=RSM{+=Wkq%d@KfeD~q&;L;q*?}J-& zil6g*F7YRD22XK`)~^K*hD&p+eknMGSA}cv9K65R=ze`|`@gIn<7 za0hO{J-7*%*OGr5oWf7SRrqzd27d`R;A!XA`;nzTYIzAf)?$9w#K^EZX}Q}+m8 zq}nxqB;%&du-PUxV-LezAX?o1cE7^`D6E+@Bxk=GX9_!*_N+ zE3AKgPc{GVeEzWe#r034JfA;2aA96wM7cfwirc>y<>oix1@N7{ ze^&TDZJe85`cm^BiSO)w@%%c@&F_6Be>Hq(_lx^~oSR?&m;Ckco!!qL_+gsHeNnw} z?td+RQ}^LXe&PJS9_6|Jt^A$chuwd_u>I=fTX25X=KL&!tMlm|+Y9c&hryM>%Fl(H za0@Qaul%oY9e&pH1(d(;`4I8Pa3c|a2UmxROP6wfJxn|!TpKQ)*Yichi^847#Vf+) zCB*B)8N40bhHG%Tr0S1@8}J2iX({E`!4>!cuZKHu7ygI)OUq9=KkIOQHVUq6sPnlE z;G|Ey6`aBQ!gbj0|M>jw*TVVS!7u#w{O-iSzjuCD`$7BHZG8Ui?E6;|`q(hG{X5QW z|7_sz%l_%ypC9MuxA2d_cXoe9yAg(6S%1&}&Gt>%z5_1P{!@cb_U*fgw&(e93%(le z!M6N(d(QgeZ@1sc1wJRRZO=yG?{C{bYI{E7-zR`=`F6Za!o`NMt&i6m+xF;EedwM;bOzs{5Us1`H%Wvi|_1yBey5}ac+JK|8IVO!0wmrMi_Qw{k`7U{Pus<|4n>n z%WeKyxY#f@KhDihev<#0&mVUGf94vm-{yJgxBJ`K1->Bg@9l5t&)Qyxhn2I} zXU?{KTi+yHY#7`6#<^{;D*p6~==t5*>dn{MPWI#6{5t*+d}sG7VHq}zt$&=G-^L$- z@7$js=jNAw(fY56@9cgON^BTg|2Q{4!5@w9?0z<_*^~V^H@`mhB6+@tuRrX5D^Dl; zUT?Yi=``|>!FP7QUGU@F{2uTI{A0w zJ6mr1Pq%P>66fYuXOjOszO(!7X~IInFt+}2Zhm4pA@!#oZJ1^#vjf7=j?v1 z;K#Z7=^)+z`{Fyh-!AxZZhjB{SbS&q%LPBq%`eTP{tbL*_luvO#JTyc`Q%T)cXq#1 z=pX0i*9XhL7vI_ay4?uFuKJ>S<9z-L$bZV`4_j`>k1SklxL=BL^E3EOd}sHI>mTRl zmxrqVC-~0p=Z&NOai06blfwbH{j_O)A7^U{kF+rxF6@{SBI?M z$Nv)Fd6Hk)|Ki;IR;vC#<2$=w-2dX-{L%>di!83kpR@aQn|v6?eNnyL%;%548Gaph zKM8d<+>dkfo7C@$@7$js=jONZ55{-y&yRESyZEQ#JG-CSjcERHZhm>Bw%^tG&h96< zJ$e1(-24>3jqmJ!tMK@Z^L+j*sQ;Tje|VB#*nhfFZhm8B`Cs8XyWc3xKhDih{vdzK zCA9xIyI(K(ac+JSe>Qw)_p^c@=jNAIQU8VUo!ze${5UtihQA`dv-`b*ALr(0qtw3- z-`V}7;K#Z7b^JZ>o!vj8;Cnun^VN*=)hplzd>33@Db1Jg65NHm?ys!;D>z+6oLtWP zY4D@I~-{;EC`o ziO#=YgBOKMTWR^D;2yj&T-#dt7`QQ7di(e*1di+5+Dl`1f8flvdUL`T?&OoPB>w3j14} z+y0v1AItvg?7sG%$;Z1mH@}MCz;|}PQs^J&<~Q&!$9L|}k8|@o_&4D@yPw&OFzl)? zsy8-2U0vJnA$(`c?fJejZTL?Z#^%Sl`R#S&zliVbelNEt`*Ci5YhCU?d}sHYb|VbC zvi@;yesz8M-{L!4z0JQJE;ihcbMwm^$e(UW9q*mpFH4`~$GQ0l{sQ>U?sp1)oSWan zUkcyZ{Xg4{Fzl)?s^5&`S&QS@7`Ou;30FpG4;}|M;alMz{5YJgs`~fg4!l0c%ar3~ zACKo2kLMlWWCuO|_lHY6if#V!<9)5a|Mu}dvA~Z7w#WN9h0h~u8|nV~hR3_JE#L0% zBwTD5+xCic+ujZQRoLFnR&Rb5E;ihc^Zfq8@ALZ$cE2HglHZGR^XnUH{yXA3yI(H& zah}f~e_x+J?0%)-H=^A94txy0v-`DzALr&*`ZWJ@@tyngn%4wqka~A=l=XSH@}5H1mC$oKhDiBZK?S$ zgYVp*ALr&*@mI%p?$3{N^PBja;XC)|$GQ1E{N3@L`}5=6{K{5Z|0D68`}5=6{09CR z_|EuUPg~!=l=XSH^01%=06DE+5N0={EG8@{`gDa*WmvA zI5)pT{c8Bm{rPcje!8vZzcIdZe}0^s-@xAi-`V}*@i)%R@8a)`@7$js=lT4%)BOMJ z^N0KM(PCg5Qa9^DCMBZ}6SnZx;MGH@}NNWva)ov-`#V zac+KfjQY=o@9ch7=pX0ix9}IicXq$H|HrxcrJdD(6uz_jl|uhGH@|}4hwtouGOZS1 z+!xgwo1g8e{yXA3Tb{rEwi{vCmHBaQetR$Z`{O%Xz4=|c5r$ovALr&b_mO`RzO&Vv zUkMi*?#H?LUHpsio!$SR&sV6o-2C!>>VE^iv-^oP55w5zALr($`1j&FyI(gs4EN*Q z{1$!(-`V}*{u}4!C;Myu|G;;4Kg+vM?jPso*YUr@cXq$H|Hirb9sKD>=<(<5ex=Yq z&do2^H2=Z)&hGaLew>?MIzaxC_|ERv3x1sE>yN)GejRqdTkzxD{OmyW-yGlB{j}i6 zx%mzJ-SC~=uNV9{H@|$4`X7z&?0)h7i}QT`_~-fjVfTyMKZ|nns|Tz9wfN5N*9!BG zbMxEy58^w!-!1rYZhrF+^?w21+5P;17nWh%7u6f*{-N?ea36NRQF#7rM!EUvpXGm# z@9ci5;KzCHA1Qx^W%c+;VfUZ08)4X$&ENB1ct5zZn)a|6uh8ddjn%~q!d-ZEIISq( z2Cl&e!5#QCxU`1qC%_f>KKJ1c+=TxLci^Ak(wbV{oK4L)g;O|#H-H;(2Djlu;U0V@ zoUFxs;VL{4uEQ_DE%;No3lF$b^DF;R%bORjz$4%qye`~?cYr(a!EkA9E$<9Cg(tun z`~cj5UxPdFH*jekEpPe>Y)^PWID=P%8}OEJ8{P-*!NJLV#C<{I5)qCe=WYV`^Ehy z&dtw`)BNwmcXq#S&BHLZ{&8-87yqyL&i(mup7%dq{h#;#u>0l0`AHV#=GRV?{|>&h z`@0wZe!}y$I38x3>Ug*b+#M|*11H;v4}$CPNpJ_g(CfEV{f%%9egJO6&%>qdRR2C) zfxm+r@U++Hc;A8Nfs^g!FAmq>$2s0rIo`eK$3wUa*Z2ATFj=Z8JG|E2;l_r9;t8LRnUc3OD+ zhlM)({1Z)o()NpUTmK&ZTqAY9?(BYZYAwLnwtt+P-?%{iQ+#LlwYN>a|Ki;IHvTAl zXZKr$`Nz5WwQ=gd5x%qgwSph#=6CV8!FP7QQSjqD?|-5C@8SJn_j?7u7Ukw=7s)>a z-`V}*`p3EX<%{K?g74g)ALr(`@h`%6cE9+3Q=FUMyF~r3!*_PSIR7{|zj>+riTKX$ z*9+S(&dpCQlm8UHv-`DzALr&b@ZZFDcE3~bHpd^~UDcCaC}F z_|BHw`An(seeO8V{cGfJ=05Cx({6-eSJuB4<>r^KlfNszv(^9J`Ba?e{qYa<{;>P} z^K+B?laCJ1A4%xpV*#EYT0B3j3Af?R;mZDcKG_4#;0qTE&o8rv{qgM$@x2ppZN>C!=vGREqq_R^`5>jUW3c;i|cUX1M%5j z{}1t%`-jJ}?@ZzPfdao=;A6x76W4z;?6-b#|FMVhEa6)=m)VT1=n*|Yhr;Pn zgY(>~EN?9>uE5Qe#5=&r?qWMmTYYs!@v)w-C%)WyYw<&H=U$z#KW98+cs_Y)RJc_t zy$dH-teW%J#$oxj$28yY)z7^C@L#n3%EsZ+JwmxX?-`el60Zff4-jt;H})4F0GIa_ zp9**P6kh^&YT`TK^c(#HlTR6k`M0On{JZ4k&sG0D-2Os5eYivN`F<)M2A4h)uK}m{ zTY3)fZXEh0CH4C=+?q#xhWocnm2bcB=MH(lI(#==ds_M9aOnl{TX6Me@z-$oEb%m9 zn)&uUUL5}Ulbjn5h?jxO$BEa1(__UudfpQ61NZ1>ccZOewXF3ymAt*KPG~Rj`i;Yb zE)4s-A)8MM{~z3d-+?RZsQxRs3QrlPVf{KAYk!-=I4mzCA5NZbqbu8j``ttS zHUvI{6RI*C?MkY$lse z{W9_5a00Ibr!IsX^#EhwHT99C@pmBqzF;pQUZk;Y+p$(&lA9mcG_IaK*paATNw zU${P8d<Q+x;9*;xD-+~^a(3Afe~e+;L?#XrF9oy0ST7e>}UnNz#~T%TJ! z0&Z_FUKdVx5NB|AkoeDVbp`P$UO!TNzURzu0$jHTY8VsY#sKkSp3fqF!FfsX+i<#+ z_$#=(k$B3PwSLw0#e?A5VDX}Gb4T%NaGClIjl(ue=GFZ*n!Izm>i2-_tB4Qtd^z#S zaE1Ewjl=SKXKH!Zz-gcMr`x^0p~uhP;OYh9x8UaB;raIJIiI5ZXSg(ONS@C)i`Ksb zF9x3|u;0dBgcM@l9~T^8W@mk5~RaT)9~Mz1LqV zp0%v`x7Z#-;S$SR1+KBY4dLD)TK~~-<4p1HaJ{AF9|4zc6Q2jy$nS!)cjm~q=QExk zsronJg!TUd?w+fBitt`Q{`iK6!X4IUUAPPH2RGS%r@_7RwY)3f(s|+s;ZCCc;RU!h zMEsHa$Ep5%xC&1jUO?LX8m!MyxCAc?CpXGp4^H6>?!iaFt#`G(PKVo{i7$tQ1LU3afJwN=xc{B0GaBY3@KJFhqC|};u zaI3EKmxkBZl~0(Ii|=+mUG-1F-P6Qx!i}-wZ{Y-NiO z+^LHP%&qy2endR4ad-@L-`gPH9?OzX+*0{kaN{8Hw(v@ah!29(Ys6={f1h{)JbHWa zJ;tHm$Mk!gytIq**Wv5|@t5$#vEpgM!^G~t>NxQrc;W&&-%Q~w5m({#2-WWacMlaG z2mf%P_#Alj81aqp_2-KpgkQT!-0^%@@n`U$)5Jf)ryeezE9}NL|Jo_y5pZ=kaRq+u zTJe@}`!4aJo*yYb3$7n6z7Br!B=O^La-#SxxWoLvhD(nspKe~w@9^Wr^TXwP#UtT? z+lV)YTic3v_WHBMhroN>BR(Bo^hWV`xWwb>FK~8_@`t_tSn*4qZ!P`@+&*3WGu*gb zJa;(E+xGtWGVutwa;bQ2c%`OzXL#U4;=|$E?cy`wGV>h|KiN`#GhDx3{5RupysIp% z*As8S-G#*ef>U_f!K!b-L*VLys$Ur{vAjOdsoxcD!AHS0{BdyoEiLaFxbn96F1Y&- z@zZegpW?SX|4{r5oWV29ulbj{%7?(od*YGC;r^)nsPok|$y;A3x0ltny*i(X?PaiW z_PO{dxcrIuEV%cvcsyJpzr}rf<0Om+oc|+!8m{~#e#1D-ulebyy#8bI<}b>BbpKcJ z^xl|QI{6XUSH>A$tUJCL_;4F5BX{m84Q zt(tS4y!$8l7kd3};uhRGNc=Qhw>PT7cpon9C;lF8z%wUWpA=pQZr4=5I-HSj3HSC@ z{wKJyr}#Lyez5p5xW#<#fZHtZX}Cwf58*2Ot8v&gogcKl%0o5Z(#(TPHWq+eGl`dk z>+s5O7hWH3?jJTp7~8?+ns`4rBR|XY1C(D0x3AOw+=3hSMr9cH!__;)FB*sWXRm7h z@4y3B6Ms#8{e`fjg)#LotzY?LtAN-{K?T+K=LKa2>u2 zZczUwoP4W#`#j9fKRW-^`OXaCWsU9s=~Ur?9mY_&@xAK*;5o~yI=`oUSGd*{ALaS9 zTHaZ3drI+*aO)@4KMQxKQT`9OHmBG=thV{Jrxy={t8m3Q+#ju_R?FwV8F>ePPdFJj zAkXdhvGeui_oh#R8@q)Q*)Yz9yQ_zZgfYSMgT?mys^bxYkj<{l1db z`|l^&@2?owHd-WK{?rSJyYs4kPPlbRxDm!M*uO8E!r7qk!ZVBt++0n*ec#NM@82ie z9ZqjqIIp*V-`;Zn_v=rGt4D+r%`h(We3X`F{~ka-Uw)te5zl|r@?L~n9}La?_u$5T z^1p)9kCaapG+SQtCGjk9I(sM#V<_C2KJ2Jr*uOVr_5SZkje<*uPMzml!;M44`x=M+ zp}x?lJU@{w7Pp94&sH`tsHT^Z9q-WDfC{aCdg`&v1J-@!X4Pdt{4< z7l-SMi`RpbA>tk3bT0A!UQfT{;A~Fi7s1s<#dpA^#l$Z<&n^A}t}iJ574DS9vn{Uq zmS+?Xhf52IS8~R$!Y%tCDvVv=Y+>*@C&uZL$| zLi0_>seS?DaDTRE)%~{wocve3BK0kP0CPRKaho0=W8mH{;-lc?cJX+)a+mloaO+O- z6L9wq@yG6y4_H$3O(rUz!})IUf^e7ltpHb8-X?H!d)4m*H(1^Q&g%BKCPd`iyMblAFrb0{c7at z2Ri<40#`p2XP$pLUB0|O!<`Ss=fdUB#W%sNFT_t6hkk?B)BgDeoUWw)U%J1qo{y$j zM)R$~v%nR20pqZ|&M^5)k+-&(KA+#}{n^St_ImqZGz|M^U+wv+wv%|qR9x9syf9qfMZ6-M?ku)H>oPwj-^uIA zkA#yksy_>^!PmeY{E2Xr`8^Kz*nV%oZMM(9jKlVBY^Lp58ln00-kU#Pzj@&9`{EIv zFR$&fI$Y-QvCvXR@z@NfRc$$%# zUz_>P2iGsu@|S=Uw(lsoOTMAkAFulD;WFFj5V&@-@>AjDeDS4lm+gN&+$6sruAZ*? zr{VT#;&2;Q`BO{gTU7KL?!RF9v7qA1fM%{jWbp+;dEv3esFJ; z_;};+_-g!B$E)+;PFviBd+=@ewdLhMOkTAYu3O0i$PhOj5XkLFZ+?`Ix^Yc8PQu$SI3BD69 zPp|q%Jiknj=MLN+Apavcvp1T;_}2aL;we|q`gQPUgIlNRcr^^J?4|Wt*>m3i+XAld zt$c5|0iWRYr)zoV!A-v3H^KemmEQ+<;J4v)BR&6o>v<-gZAHz$ys3B*=k3I6!HreK zqv4W$@hyyf;V$zz-t+0hP8-H~aKiUPZ-6WCqwb%q{qY^Red8Rt|2yy09|hN${~2(y(BOPNm%*il#do<+{tR5U zH>$&U7p}wK!nM0K-`Q8z`qVBLF9|n~)b>~#F7f`+c5rr+>JN4wJ`1k$`mqT&O1eKD zfRl0ZpM&cci2n&U?Te;i{0A;);u-&-`DO>sl;^|X`i;t$^W44&6-J-)h2s6-GX9Bh zbAs}5aC(vWR=CG}pZA>lPvJ82{}Jw0YhR_HcT? z_yD-d@{f1kLHT)b6TTkqOsDOCFWkFX{hol^Cx~B#tL%TDz^#*&|KRyK;+ex~q8;CR zW5tWY<*UVZ8f*V$^Zoa&= zb$oc)^EJg^z|C#M_OjjTyT@yPx37`q{^8nQtHG5&i$}vPxMpn8!Qn<2Cy}QQ>iB#O zT!J5^e$frXM8bF(E*%+egz-Fs_q=Kxwr^`n-5(#3 zH#vX$5l)-hKWD6HeJZ^E9tx-MNVvJX>eq#<*NL}>vzx{H!X@5MIL`fRl#hdJEdLtk z3CbUa%U6qEcc1#t;QAHHfAO66`({~#^|?~{Fu49F@d|M5TJeT(hwZaHoLsMbKjW}H zlVi0#k0I~gW)GrL=`^@@lXx6lZHcdi%hcZmH*ZkhhO;}xPs3e4|9aIpM7u2SEa{rUTdB4NqI-kd! z>G`M1C&0B6wLji%92T`lNy~qlytTpn`SRX`s~d{Hg3ItPa0-{#()v~4p>UVwEeAK? zHH>ZjKGN}K3-aq16ygu0`$@3Jh?IK>=d1vt$um6+yAh^1Iwp5~X(e=fL&zcie(KI_00{4sEk_pLKoBx7yY`Q-;mQNzsW#Ajs}GCkft&DBa0mV)oZYMXP2ImwJjUxE(fS<( zr!R?5HV((jLHmUhpD->WuYaoi7P$Gj_%Z6M7wGu*ck=eaIzD~`HP9W~$!;?rbXF9WHMnJ_>G*5uXc}_7mR>SKtTX z1b!9nZKwLr;pPtFU*XdF;#oH0{rPK*TlQKPkuC9B0t~jncvl( zQ$Nvj_(?eB^<)=rG5@dO=2q%IU}Md{Y=1}*#;kD0`Yd5QV>mwR%#X6t2>LJ-9bg^V!`vY`^-u+I~lpXUi+U6mGHp54q3s z--D|xZ$MT36Y}A3kN)exW!7&GxU_ybzdw$EJNAbQVVnz>Kba-xo8ayM<&VR)^_0H{ zm+TKW!uT0(Z6F@BDf6p}N5ZXr#hbv{$KpNV<~!oE;O?yAE8y~6;=AD1W8&xF>OJC* z;LhpdAK~sP;@LLS{L1!+B4I2JH(nNR2q#O6$H2`I;-j6v7GLc3%WHex43}3DKL^*= z6?Z+ah`)ui?`F>DGxO%mZ!YCS;B*!B8v!@g5U&T+>_5Y@g)y^KGa8z5BHN)`Tfn&)cO7caQVaq^89JI z{+zbY>&CN{N{jM+)-TB$ydPQGLF?DJh}R!*xdAG<$5^ZPeknoc~!j+$?i z{!76PcthhU!ui>!THa{5{7>=j#$kPzr2bIy(tyGF`kn;Wct5HECs*qJywW(_-#@%C zDzCqryu$AXJnr>6oRnU5ZfN-*!RbV8-+#jyJj+g+e@cA$_@`TUtz9g@Z56o1b!o!Ti{nKXu zS_*D(|Br%e|Iqqw4AH9t59GeTmO6&Vj4&c)0h9mUkm*HMZ z%Nq>0Zx=5Er|=qZ`C#o|TN{V<8%Y0M;Zg8W)VKNjq;YV1vX*}x^=0bsF%F0RLH}JU zpWma@ciEoL8;8elXS&t${B82~E4u%_fP2qr`2%**`gWcb&jzRD!{IXd2)MeE?(em| zemC(Bp6@BH!7cbCxRxrv2ySjDz8kKuFMbV9))oH*HiTS~kbT-#b)ft#6l z4BS~ye2Vjm;_=2|`z7y>%D3O085jY4&!mC_fdh+8>sNaTA=aDt-~JkbeWW)=|E|UTlxm#p}YAM~39f8x42b;=SO; zg45;s(QuvLXSoP&&#wF?xI35lML3;T{59MlpJ{LALp~I)^Ls1H!qwU2uM1a}7Hv;S#?`b03`W`yemE-7~d)K7)I8@sDtg-y@lAAI-mWtn#67 zeXMw8xXkZ$Yzt?6K6xNq6Q} z;MPIn!TYMd#Ot}`ji)Gu-&@!7<0f$FK-KR9w+<7Z4kw3*uYubKiyw9-f5Z83<=?u0 zhIrt9>R;k~Wf)xkv*xn`+~xUueK=u0J9+)QI$j;*`8ittDR2v(0N0LIeji-t_Z*&r zoA8^)GltKn&(ZVG59AqtPdv;1nt!7*ZN7gk3^(@?uLjp|((z?SxC9>scWzXE3f%r& z&wuv&oYue2@3q?Ra~hutzYI6vPw`Xx!{{&u)HJ_3JPdB}_k=6L&4Jo}o5Sr1@@wv2 zD?SfSZW7-EcWxBF1(!C{@ngUN>fbt0yf9pbH-fAD{nx&57ynH6x0HV)oWf7S9sG}+ z@uxaa{WEwGxXa(8tqr$FYx#S^)kVd}!*$-Tm;l%CAA>XaBe?Xsw&yelsej7)E(uqd z&*pG#Q}sK{I6R)4`{?mJ4({$PzLWaW1npn1z!`sE_95Km@4OTT*&Y*mC=Hlz&@;u^);nwux zm)z(3(f@#(%7AIpQGW{ zPO2XZr%Q@&bzVyRBHSkb8g4G3eD*^%|JIK)7oK6)sdKhcM*_V2Jje*Nw|3CKL zJkIi@suL|y5gpM|KoJ!S5L^)Ls@@T_v$C?Pldj52DzmD(5&iYedv9jmuABGXzDq3) z4aFu12o2h7vXtzILfL@J430el>gcHLb413q2j8gZQwni+)c5_KCAQ!1R`dRNpEvLG znf`QC-gDx_i4)t2h!ZE`r|@}C|7nFU7`*!D3jdtb|Bb?b;_zQ8{P|}z{|kSi@E(Il zf1>b$!59Bj;SGZ?eNy4)8@&6H!f$o>Zx#NC!Mi@C@E?2pXB7Utvzq_z&no;FhyPCD zLk3^G1A_wp-9i{u^Ub$BRp2dyuXv`y&o%lR>^|~c2H*Gi#|i!034bN*0k%K*_ZENt zKWqR0O@r^hQ}g?j!KU%Z*zZ!hshZX*;!6QDjf&aeX*;b!dD*ROj-(d0IYVak4pK9>=eM-OW z=?y+_@Gj%`2EwSi3pSs>)8emqo2LJ;!S}sY;omTL)#5*C@C{ZUe{b-ucE4)(ohtu* z20y{z^9Db~;EM*Y8ob-!O@l`UKgZxpuh;(kO2Yj4vZqRYy~*P5x<}*RZ}5l@L*l=W z8hq(P3jdbD_x-cNpYrs(v_C!QIV%5dv&TQo;QP(r@S6-i|659b$l$xoe{aL-e_!J# z2CuH{5qVx<@U72K_-=#m{YKRf7Y)ADR`{0r~;# z8GMD&KgHln<{x(4;0yOCeb?Z7KcMiP2JiWh!gm|I+x&apWAME{qwyaxc=S^Wf85~v z4gR#j7Y%;Md6oCxpHTWo8NAEnd9uMHi$7}c#rG@yZ3dq=|DzXqyv^rtGWf0^Q~IAa zc-8pbXYk1OqxT!U%izx%d|~%4`R@y#r}CbEgu;(9_&(@-{`VwG5WNe73>&8vG*$UwWeUpAQ;*{u+fpX7H{X75=!xw=4W4{%1@~;`Z=bIG1&EUH(D*SST?=ydidkkJR`rkJA-e1uQ{EWf( z|C+*&c!A2Z`l||GVekb$EQ$Y~Zt(r)FVQo2w66I--|7G8%Y^of27g>8gSK%iZyvyLH7`$rmy1^GMec#|q z7XLzn_uQfU-em9%d$hbCFnIT2g@4`P3wJ90rwm>-dH==Z&ujc6zTevWg%6YRKG9*5 zXVKsrjQ)EJzGAoL_hQ0O-K(E^s-%C7#oxz=81dh`E&k#qjsHc9zwkPZ|2>1RxJTi? zGWy-0R{Ae^vGPCv7YaX;@aMt)(fV59e~rPrPbhq&!Mko%`1=gLa9rWB!T0tQeu=>& z<9D~gtH(6{#|^%}tMJblyz6@v{%wPAF#10?c=yd3|8EB0YW%24B2I z;Ts*^R`~l2zVu>Uj|~jo^P)#f`CsVplfO{lHyM1Z*-t*?@peA(3m$Lxw|?E=`|o~? zr2nMByFa!^;D02H_Py&BTK^CI0hRw=JCA(~VZ>keFW)Kj`z-#}Ppf96`P18Tk;Cnx)^>vHEqxU~p^4~Ie*9X2t z;By9FVeqR7qrUDxsrC6*gYWxZg+FZcw?5`^lKwt}?|Q+P2>fRT-}ecX=U)vT+4{_>tB=-$t0@$NVF1F!+M)zt;@D&-VAH4ZhdT!(KrcUG0i{pD6OY-Qq9( zqV~V{8$9}`!vDeG^9KK-!S{Yl_|n@Io*I1Ln-qSo!S@>cYJ)HSf%d<5 z8GOaZ75LC*r>Y2H$1rpK0)= zPiXwm;2SLc3p~BSuQPa;mH(XvU-(fi??rcn!FT2L|78XI$O8U` z0)A2fKc#>d3;0L@pD5r~0gns#jsku`0l%z(UtPejE8w>j@Vg55CkptU0{*!I{#XJ3 zS^@t~0sm0}f2x2#Q^5aFz@PuBy!{?oz>h27ZzZz$k*74SU; z{Bs5Tu>$_J0{)!>zQ2I~w17Wb!2eXh5Bj0Jy&h7)y9@YH1^n0o{?-ECTfo;A@OKyR zO$B^&0apdwDd1rNpDy4#3;0z9{MG{gsRI7_0{*1}zOR6Pw}3xcz<*xAe_g=;T)?0I z!+Co>qJY1yfFEDLPZBt;53ViZzpIEpRKy=G;Nu1SJq6q?;GF_KTfomL;FlHfs|xt_ z1^m_mes2MPsDM9Qz#lE(Un$^E6!8Bj;D_9ux6ij0@Zka;6z~rg@H-3m!v*~D0{%<^ z?|w}#&$kuulMDE}3;3YGvA?Vo@h1wnU%<~T;5QWT#RC3F0e_-^FBR~^Uz?Zjn+o{a z0zOp0#|!wj0zO;7FE8K=1^m7O{#XJ3w*vml0{(*6<>h%)0e^D=Ked2Y3bRD&YTAz`tC;zgfV4R=}4E_@4^+L9fs2_n`&+ z@B;qY0=}|_($^g`|1LIYym&1 zfUhjzCl~O60zO*6Ckps`3%FarI|Y2EfS*^uFDu~J6!3)tes2N)WC8z70snjf|55?p zSHPbr;QI^sQw98)0{-U${`@!Q?f0bx{D=a6bOAr1fWN(fuPfk%0)AQnuNCk!3V5S{ zXK&uM>kPtKgmVaYAUq4<*$8(cJO|;q2%V?cM*OM;r9{#0O1c2{s`fIg#V84NrXQ}_&*W; z2g08q{3*hpA$$tq&k_Ct;r~MTON75d_%y;LgwG)SHNs~R{s!T15&jP0?-Bk1;U5wH z3E`g+{srM*5&jKf*IUq^5gvr_`3PTt@P!BuM))Fxhah}0!j~ZYJA^Mqcqqb`A$&Q) zZiKHu_)3I_Av_%65eQ#}@YM*9MEDwnM7FTy^AD-o_jxEkRagliG5L%1H{$q3(x z@DzlnB77IZcO%?@uz;{1VG-c~!VqS8--GZ>gzrW8K7Xya3^a z2rokTeuNhzyaeF~5MGM#GK7~S{2;pk1k0QJk;cWO)*BkV@_3WTpj zco@RN5gvi?RR~{=@JNKOL3k9x*CKo!!q+1_8sQrd_8>e4;jsvhL-PjyaM5s2zMd83gOiVKZNkZ2zMjA2H~{`uS0k}!W$5N1mTSc zZ$fx8!dnn7Ap9u8TM^!d@OFfEAiNXdT?p?+cn`vlA-osi#}R%4;e812N4SXalL+@9 zd;sBt2p>Y=e|vUStG86^%SV=u9$&AHEZhwE+`{s-JFXVDyX{i~j<>4S))-e_8Rx+I zY}9YSEDSm~b+NU!56RnJ)fkM*2;6$t6>$Ij_V+;{yJKe!lGnkwk zv=4O$)k^n_Wa#kvxsiyszcuL|-MFpWo>l=h9QLb& zS7ljilm*ykSrAdm0#t)6p%%LRJ_{@&@VDpB-$)wpAwj=2nP}BRg!VZ0jTjM_B&d)c z-Mm`pbWXOW?QK;yi-sESJKP&+Jx0tB10NkuBRe7W-VqA^eO@rZ?fncE`W3GpX z!&9@72p^H`OLK~Kth?2l*lfXCX+wc1rrcmdat`vK6+{-vqW3{Jc z#U3AwYckw?C@CG07?eRNsU{}IRa3-ZGB*_!ajvu?reKa4d1Rwol)S);v+)>XDG?0g zGITQeeujuc#L(I!1;DzHMUd)dJ_Z*_&~h1-!O(mmp`n@+Dz<@~8ZW4D z5s3N3BCusb7Du|{Et$H6P$25TweIcv0*wt5p;)m+l>n>&uuE zqKHc61~#h+gG+WcgA1dy*Hp&`XSfy#@*W>?BNssJ4FQxUCbZP=_ePUm>?ccuS?uko zL97fqz7LcHidv>x8MOMof+nTxW7m3HKug^Ujtd=6cc3@H;zG0*;|yFn+wNj!bo$*+$ko$=_!!tV z#q>^h2Z6qj5*;N(Ija=Mo_S!{4pBp>s^K_P$_n?MeKd28$RmJ#MPJ37CA}&D zy2(&*xHWF=tXoGdP;tY_h-0n6R=2Zu4ukycVOyvc6y3>iHg0!MVwGw0q$I>f0!unC z33@DKPAeA}jw8?xWcSWQDUMZv-G7%$*Mv(*lg8%~&Euj}p~rx1Uh5)CcQO!4cS0sz zf?bBdl6E`U~t@>vRo;t^0VmiM&E-(8&$8(C?ShA##0;Eoe$Dhz43q z%R=@@n(N`CPS`v2OTu<{4TiK9q;relX6tsuxTi%+8GY^u$1lHQE$Iv zT`a|F>@Z}y*nXSw%PT4u zWc8zKyOQlW7{0hRi@I-3QDz`ui?6pfG74(Y;Vd7Z+=gUC#|Il6gfbBo5j|S1?35tQ z`S?I$)XdkErU{2hVE~(Dp_GkPQQG6s>ILcqx9b_-g5Vk5@$f+Jbgyh^-K~f*q6!nT zYbj3Z*e~g1n<5um(5KcZlmkhjhuuVv`i^*+@HSxG%Tr)(tTP9)fjO~F%zb)w=G2>d zL?d&jfDp`$*aBn!vNpvm)8k5)5()O`s0&k^F0V2~Tp$V>IXdZ$u+N6{VjwMO1s4~< zNRJ$YO+{2Wrs!yJR19|vO}K;+CjnNt?@u%#5Jy^K0FAI3vlL!M3y2LMf>(+B!j7@m zMbP)-N~?#lNn%AL$rYgtxB}Ic8Y`PHyo|AxLS%TgAWR{cm% zM6!qtRG|%pE2zR0n59kDnjz_72-eG}*l$*5ZhVV`VTl`1FotF+0VnMxvS^9dhb(`j zHB*c-iWN1yqdP!XbL$%VgdqZnAN%D8H@?xR9m<3VRLR0%Fw}`$Ms^yt*dI=?j1c)e z2c!tKn&8Y7RAZ4=Z9;z2nRy9x+Rd``TJiLN*(shrYxP}81*uU@^9qEhrUC)oC=2j& zq(saKS$|+}BZsUZcW;kFi!fUE`ygUL0Kp*S#v4FOg9KQfC@4DW(DGrNd`y!=&wyDP zcv}P%+G2gXH_@$vq?7ENN8$!R?}nu15@!edSym{~p)_KIR%^54Zp48aIkM=eKIW_I zL|S5F8j747z3H^IkuYC6+ikP^)pE!qbbo8S@~D~wc{J-`wKd%y zKsiZg4os$v0_j*(aZ-9zji%ID#kc@_q_x#+M>SGJtheM`D8b4qG^qiy5F8Dq30{-b z5UG5ZjjYv+GOSf}iay*utv(VaZ!PY!Ojm}oZA_)AwKux(u$A^FZZD!o06R!kwKl|> zV1VjV1={E;ZEY5zZ0n%JLNh^bQm?>!Cqeb}Kv9|W#KNb)`&9O#5EUNcjD|+@u{&5H;mA7?}*_zS|7yhN0a7 z=2sLT3NSr4vi-Iao$0ntjcqWqFi=FcVwU)>TRR03)Bml2U5(?GeB`4ZZi|lpwDRV6(M2$$&uRi(m@5=buIL54^^F z8($DM5YJDrg1zwRt{m$pY*?Bq6<}>rVvY}}e!AG8>X|?PLhcm(08vL;6IoX`q%5LN z411l`sSJG~&UY#SmE}hoB5KH{5|g+nv!IGn3odBVkgsi);|!Fj)btanq1Q(A{YW>y3B)IZ^erShB%H#t!946f=)f z@!9q(PuLhmv1BH7T0f6=_;7cyHI>s`$JjWo%fZ%9y(Bu_YQ@F+=Vb6787 z=jduV@f+O-Ckj09)RhV2k7U%xT4(a)K%^W1))LV3Dao(^(TKG?ft!sEbT?*Ow2o-Q ziT6srmw#qPTFNVqt?5d|7B4ni8RY)61_qY8eD7|?-WxDE4fj$am&6nDJhd(Z8WR&r z!ex<;h7ggIyTI8btm}KS*3Q+;rVwipN1D^_zC<)`qHG&z961Pp!Hl>z>b6r_RC`WJ zgl%RlF)$n@+=L~WB-mQH5a+gl$b*eb;H-FxTgW7q}tu#0R+acquUaF&>2`_v%u`gqoz zS6Mf!?hUzP}A0amPC$d9clQxGxbfmqox1I@~K0zDmy(Nk%r!;GY)!PYGG}0d0CPgJfZt{oWE7kVv9m` zFSBfKWQ&#%#d>K-AGHl?Y3=1w;9)Yw#>YC66;0?T5Ey=XdSg&$@<49}Jg5#V|%Faq|cECi0 zrGug3@i)qD@g=1%v$WM+9Aw&HmBq$tyALrSsd4zF8XCT!q&eA(&nzV z$%t4+FOy?$b(KjYcqn6FiR(YRIMa>g3YGO~;lFu2qMZ*Vb3pkELnobJ4@? z!f8<LU@<>dk?Dl)A!N&&Ui$`waJZ^_UB)!YK?PpqfO;$V7^ap!!)JS0s}dua6P30OD7SM@ zkEH3A*Q!H{DQtUI%Y|E5J1}$%3{7g{OjAu#pUptY={2E>n`@&`#Enqw302(M85Lwt zqJ#Ub#X?c|#xG#>E~10I_BNgFFefH#jzugl$0jk{7!_TU9eZBatap0D)S49dq8qvi z!6ZeBM2;~3YnROr^(;k17UL^M)D-*)I9A}GCsU%Uz4oboR|k%4VwFFo$)d8+mBl2- zc^TeIu{!Qz_r}Xd>{9j1MtOXB-w22EILnyE^ZB}2R4`%1g;{{QP&e-Si-n13G)9UR z+ifQ%pAD*ofw)^pvIy$o9Xy6Se(7xR&`&TT4;=kLfvp&D_9kQEsg_*fFdV@kXl z$*4fjOJX*PA_cIQNe~;K$<}b*)bFNch?rQC6qm8qh&UJ`OU32HVFng5fdT>Ug>YQ@ zve`lJVSs1!0*eOAhzU2qQ&hNIlOW+8#s&|VWCf7of+as7-BltWl1V4U)l=fju4#_8 zN5x>VOY0%E#o%rt3>-xo+rI_csA?k$Cn8y@21bdB3h98W3+0$`C(Axx3S0a&D93x&OERjd;Q>nAKPzfb=4llI4&#i@M#|Jdjbq@BreeD!8%p|cK*tw(8 z7G|AZ*agEKlQ?=M>Jm@nE0K1Dlf>OzP?KkfCJ@I6nCTt?Rf~gbrwTaudO8kO8}%_o z1Hy9B-V790cv0Gb6=(4VJn9PjGP$Npeg;~PS45s8DBNPe1m-K43hpSAJMsC613pDU zt=buP9h+RHO(U0hu+1skoC4A~R0*rAK>3oWK#Tuc1G%1(7sN8l>T!BQlH&usLf~7o zH09wg?_)FzYh61f_fzl`$7Z4TF~)Y8^V*q~ECZBWHJQHCVib zFej?&icPg1I}rOP(kG43gPyEQd>bCssbj~eCD<{`qDKyc2zVrS8uauW28LRK(j=!_U%U15}}_C*XpEptF67uki5CQB@CTH#V>#L7vP9m9!SWI}qL z%heDxcF=+^Q=Bj{dz9FW0=Xf*;ADwv3DbeWVP9d4;4RwkpQGPyZ?o6!_<^0r#&une z*^hS;#4Meoo0G3$y%sAALX~8x+psfS>#G68Vg99EDKr)fv`h=k6u&|(Kwv3IK+vQr z2Uo&q?fB~I(PQgt!9E!17#)D*e!CXA= zIUePk=xz4qcvQX~YBfY-BrNGsVRPhVc_VSjJGoKAzSmIl8bw<2BC=NUBEBYF5q~-9 zY9&w8BJ#4l8%mxjDXUBxQbR}{!IP++)~G2;hg_#tMPO%9mT%5c+qE&7MKxt+QH>lAV;wWt z+ms3uqovSC>6&PcFRopcOGu1AuM?_na(w;Z-fJ2etRK8`-<$}!-IMXSjU31V-A5&b%&W5atiBwmL*&>%l(3eehZDUr~UN%kEmqY&7T_#Q1dD9Ga zFo#yCN7bu&>2@rL)`uurCPsp8sQiO#=$&*S(E~oOBxcM@580rBVL7W{+RIYG2$usb zp05VhSTdTbs_R9rC!3QfR^F*eIo*UjQ7k{aOQV{(A06W&bSp0h7qP*dow87DQ?((9 zYml@GxOmkePxeP;j2*e$!T9oSj#{V zbaTm6C05pxT9vK0di@=L`pE?h3y3rqUr#%c7|UXpp2!WFY5~vKcxesAyJWIhIy)W9 zi)`=#S7M0?HCrG#X~2o<=%CNXjIAUo4c9#lEJx?K@5S8YXFVZ1d!hvAD-*e2DXEuv z+eyo5%z1Mi=Xj%IxORjGoYt`3F5+>2UkbnhmJ0^=1v!}1@s-CVM!0Z`l{JttZz2lU zWJ5_Bsm!gZi3nwYkqV=UcVgleFp!G(yiC?@oRgbzDv#we$T)pg54{kj<fFf{6wTufE3>53j>Z!3oM;&M1F^ zURgMHXpK15<{19VXtb!T6C}=nQ!-SkT>UO^PK9Nj>T9`~6Ym@4Pg3GE)-MLx+lIMQ zwjurK@)^B&&4Pv%dq~6G!4h3i$+|K0tV%q{{C<`~_Id)%87zahU7UMzOmbeGM+AFF zj*fK*pCvfUhkP)XTO}c)jo}y<57hx2>`Bv7UdDw~I!Py_*mfs_Qc57EetYZVbT`zB z>qi`S!C6^OzOsWaT-V3s6^^;8gPmnwih?qd!*gLx)rK<+n9R}{wJV8a(8&RPox%No$7KG3;m-P$mxrC!MUa&+Nc>Sd{B)lx{L}|~19Lfast=pc1CQWn zJkc~N3e;aY{Bl%LNStMhJ5UWsPF=k)B{gN`2u#36TK&vP)ITiGxT)} zmlKheF`@uN^wVcOT*h$Cho#_HbcZk{Bvqo&Y!E7f)0TNa^YjzypN}?%j!IPCQGsdb zsN54_NubS$$9Lr6FudqE?evC0CM^2sTZG3Tx@S1G9^8Ukvq*HJRp@r~`iAqP zZcgfbyL-0N+v<@G^!>uxx+`pj>8K`?ig}|ZSiMBWL_*}Ab^(D*jCw17e^e;!Dxmu3 z^O9enT^Yg!-rfK-(v@KYot#TTbMp+s=pqUmq8b;8mBWZ6R$Xn<^d*J(h^*&%!~>2Z zq99h6j+!Jnnu{>FMYibPY=X@B#7Dv1s8TEsc`*Sj@bjv%LBBQM^{0kSJg3~cnWB_&V89-149F>BSMBQdqvlzg#E{Lp;EaN?tgFH!XQc&ch8YL;kk9y~d7{I#r;Hd9*&gJ~tKv0pI&+;#;lF zu&97BiZ(I|J04DSO*@h|3%Lh$51V<>v9X#GhY{Pznz7V%YD=1zgFfUpUqGK$8nZy8 zZ!zZa_isbU({J;$2`mT6x%)aUmj; z9~KOk&VlolUmUD?>LDds}H2umqJ( z3P(p)67bNONec=g#@s@}WI+ESPb7D$l%gqCto5|d(72K?4ibhV9cLJ-Ri4_Fx{bMM zT?Vb0)B&Z{STGQwd}5L^hbVi?vSfMF87#Tnlhs9$DiptB)S>rJVTTdIH8xHuBcu8* z$oWVi;&2xZf?{G;=!GhVvl7`0sU|}&B zMlhh@I?i+ggEx*y%P4HE`aQh3R^mBhr&zSR+G_Q(RV2?Ml96ZvpcroBWg0Au=za_- zgQK%gWyx|}*AhH@_a#U@k|Uc+;&ULO7SW2Wv(b-B%wr@eVFc^-mp5^Jg0EHUmRHJx zZl!AmB|}Z9;CkRbha`-Db`GuK#`mQXm6%8!ayq%)#l?)~^vegJT47I`7b{h|o4wRZ$%aaGJBd%+XkLVZNR6QPhxw1EO7p)Xcv_722{1`5?;2r7Z17d7x z%HAj@mmxuSP8Pbg8bI{t(7vF8zInj90$Br%?pr1{XSs$^WeRybS~f9xY+`Qb@&MI9 zOtNJZ0#PG6%?Zq*A$#4mDK@UsZgN6{xikSLVN0AM>Cnj+tWeo@s>9FfICOv(m#Ef+ zLf@-c@zsXlXse7@#bKEV=itss=eWoj>+`d!>y!bC&>)`<`e5}5q=#&l4~ViDhZeQ} z3V}b|;IhQ$864w1R>-l@-S2iLLHHvJPR)Bau_Ro$RdTBbJ7?c1NxJwJgQvs^5Yl$J zv}>v)k7jD&&`^;n&EVgQn<3SsPp?8ZQswlOS`G;}CFeWLS6k2Ug~B;ZA%m7g{mqM)H~@H>8&( zxNHezEj)&HnNvY>RRfR7&yR=ODQq&AA-IM2dFIAnz5(ofdT#1$p%batIVL#B?dmZe zx&_y7(PRfTiFJg(rk~*DS!OKLs$+RmmJn$IRz%L`4keB zR}8gBgFz*eQk~A_9l}IREHdTYu7Wgab*(v^4B?VQ)*5PQp>I5nsM7S@)vS-g{@9A< z$~=Nam7&ntO>jzyl^Rbk&&*9M0a#ymJ;QbNFD&r4r=5hPR(ac%iQg0}?hKLtT7CY_JYQ zlzwU_ORM)^rS`CCp{#hRtA*3hf!Njah^!TzT)rzwU6j${n7)Q1_c~WCUW!jI`iiiy zkybvT-*Qm|wW=3;0~RBbONK0hXHMxBO;_Pq z7AE^W;(BfIS&{u3KSh)7QlXX7JFggAdREVjYp=3MZy5?Kdh1b%}pM z6x@oaps-SW=nW~-$9sX>&(DI07-@&I0 z#2kSas*9)EGUmZ}yJFUeEa}5FGtM^Zt>Gn5()D2}ZHmupBaO*QzO^$&0i!^DdPql< zd>9wcJgA=`^Vd)1;-;kFtPvG?W=Jwa!Cj_nx6;rraSYb((j`rEa)<}aj=@{|Q@May zb-E)y-c}7|0&9vF#a6Xxy47g8hsGK%wrzS`o6P4jE+J4H4ZQXQgpOdjhNVVip-jeN z0=qU5R9NhrW2UGqd>%9D{dr7s=$S`^!I+~lM`7lJRStV0KQ3>ipgZJcs6?>r8UWfe zXCx${tsCOs*>a(md9JJ$Q+5UcKeFWQO&85FmSwinK#q==iv3g z5Avm-;)Q%38_yFQ6E?yk7qDj1w~x?j+S0Gnv2GVaGT1UWJuXail5=kA=c)8Cr^#n@ zq`z>q1@({g;j}1BvP5Ens|koB*SUpc^_wIvK}gRW1qd;PyBwsf_H$^72cl3VF1yK= zSH~>sw72U1=$DfVibpR&@mD~|96^ee}H z!U!|lQ5u7;0>fliUpUew8qFNsF0^3}&$7cNN!ykEc4>eoURX$A*=lC1toVA!sM|TJ z3v0YQFv}$2j9x9_wHnmCovKyG>+JyjPxq+YuQ78KsZs~WbR@JU?Ov}slTQOx8(+$? z;T-P%lpa)&uVBqJ-+-vxA%$K5Bymoc_j2GnfHw>5d6Q2jeNh-dvZLnJ6tD(Kx zD6iAfxxsAyReQ<>rMUT63PlXz)MH*hPJ@rjVs29^HxXBxc%p8=rLW>QC)iFVKdZq| zZpA2S8=X?G^0b4uLX{xtr36br2gYXaA~Cj;*awnCn0~r=jG@e6%R7E#z+ctKjBE*q zzPX?!sDZhJ=BNs{BCRJ!u9JF3tlv@|to(cwpi1bCWg@fwlvrvqt1s}bdV_5&OOggE zkX4JWl+~oQX?eyLm`um;npNidyV{`dqdrDpMB4RF?5Nwb^NMs z_-7NwOC)V??@&Xuw})rYtJ>RRWP-mOZK!Ad64Rjk;mg!xx&{SEH_`y+$ zFHl&<>_98xXQzk730#XRyx7;Rptd^wR;R-VeC1o5e>#2b+MPbWmj(Q6v~L&6-)%!d z%OB*SC6klDO)WjO$EKAEf2B0~*J7k#z~HZ9R9b3!)CZ>N(K+=;+3Ya?Z#=MY?Bw!F zwRH3P+6v+YDW%%%4k0#X5|MUuvk!M9z^D{d30Vvj9(wm@B^bFY1u^km08G( zr3Jh(AKd2G>%X87qNwNNG8^ z`O@UloU$2n~a1tQ@dSlArtxTu6S}27H)- zm4n!EU+=*1=WK#Et_3?WQWZvwKJ0b4u`rm9Aj$T*5j%DdD;bdwMeGgR>;d?yXmbsG5 zaIJ;S)mPoS!`HbmugjMrCyYJnha=zk|ED_<>?lGj2l?{-v2vHKqKej+7rVCn17b65Wr67#az7PD#g?KP=@A zdNyBB)4z%tP<`y2!XJfICG5aR5A?8u&bxy}2(Gs={cIrkL2EFa^t+r-a0eeE4Ej|c zYY;7zjuie&j{GZ9@P`bLI6g-D(PAtzWJr$ik@{U&{oo6Al8o)H5L6G{g#xA9 z5+3R5bWDj|jzl%mgHeXz zS!abPxEgf)O^Sw;h~|u&B^5?+=EgRFDoOre2)N!FnZ>gxMT)f|q$rBQnO2uY&I5z1 zlhlMI5NysvP;{H%`YB7zzS*IZ`aC=y=EEI6EZHkgAWIB>B%0=iD9@o=H+;W`13g@X*OF6V7hi$QYSfwaBuNB2n9mNb3hXbW1 zw9X5Wm})468j2KqhzX*9umI5NoDAR_K&{B>OkRc232kJPjs8XdxqTw*8`}wJ-{QZb z2>3&_um7T+;BTbFAJv5XK}}Iiw!G2B^8o#;3F$*Y4F75lJNictgeF*vbvW~|TgyBI zb&FMU6P`_~_;dP_>IB+L=T`J;ojdu1^929ObcG)>2l6imCzLjR`oxK!XdZdi1wVDR zlpmZe`6En@0LCGUap3I}CZc7Q#9z<$G;ZU8NpDLPq5kaa=o3JcFORN3qaz@GAjH&Z}ms05<<3u&X)p+d}wgzML>97J! zKFp%+z<;mYRq@YN`iCnZf>I(({Zjk<%i8B(d^lHsuo-~Z)NM`vzy#}obh#r{E#elPbg#i^sdgieg~~M+o(1$%-k#h%e?J)u-Ac= z0x+Hu2=Ao;wc6c+y#UK#zo710B9Gz@wHj_>0gRVHhuFf{Gfs{}m1DdIP7g#r=A)ON zD|JGNt7q`$BLSiGtu&XD>J8-0v&2B`<`GpS%n3UgGx#x(WZw(6=`zAK0re%FHO-An|qRx$|xTYiU_VHMOZV{bm)NBlJ4oE)8$_XNU^W?!po2%4I$Ja)g&4M^#HQrZydX|-Y(imx zl{zn#COo(dhX2N_+r%7^DI2mD+7w9!wu5bA;ZY5&EGlIt`p33JB{wWa)dY%LMKGDj z+~XJBt=iFq+p4z1wklK>E4-3LK|o0(qKRj`1(J%fgX5D5ym8(<$l6bDsyD^7W?R^c z+Gp)U4zTseh8NqYO@uZ~?Km_^vw|xT-i@9cjcTKct}v8X033!UZO7h;*5o@f9xKh9 z@+XaMY37o^{Df213Mcol2jE`!uId34kk+;(7rAi)aXtaLs9!DRR2$6 zeP)bZUaEPDtVLBMY-RG~<^gpr1FITKFJT>W<0s8)xJi#5>w=jWs+#VMs%ul=x)iwH zfHQDzOF2ohy;oQ)=Op$b1F;iNK`d@8Q;SE3fl)9?5XZ1HOh-7D1cs&}>&Rflc>%kI z78PS1W)jg})W=y|4Y9m(V&U-ef$GH4u{A8>s>K_Z7H_)z;N0j<&v52PDK$ea{WV^E z1NY{!`waBdXG3zw;6TY}wkVpBNRy<Szox>c0WFH*75e<(z>V|%>CtnBSTE6%@LyUKi9Y*3;W3x)pb`}n zly`=x+O{u9n_kSiz1dxE2oTWjmFxagVrLPxab$BPIGJF zwc8kJ3{23yd%awm)MGhE@4M2wgcZ_zLCBo1ku>R9C$QySZN$RueuGQpq=NT`(UMS8 zkHQ}St0G-sW%ORC)U_e3{493sm9z;@s0=`#1Y;j zTr_FvL^#)%`}SrvwC|cw!7}Ks^{nFrGqGVN9BCOeSR}tXPabqo$nFa7nL3KEaXAh2 z*iE|l_RnS2C2hL5iu*b3RM&(y7m4?Jn_3sxw>Q*{((l_FhL0u)A}}7ykg(CQ4EOEL z3$-uSNxM730-opDRta9+UHSND+WK0+eR*x~^M(xcP~|BTDp8r)_`(?w%$p|w{K_g4HbSMw#ZE-4>f1~GN@2kyPT`) z8tfBuggW?@NRuEZ6=O?5sVl;qZcfF({ygF$JSW!Cnd4}{z*^i7LDbI2UKIKzD=n;o@L=HnY?G&pvo(Ryx_ zs6kkV(|Fw?CGoIX@tifmZ1sm5sD%UrbELRTq&TU)T($1?QEX}@Dk^rMpr!QGCm&+4 zudDIQDnhx3V%kDKv9D?M7%OOvNqgLbreY`QZNQ5sXYXx=Nf%aVcGf)J+G}snLjh6f z+P&AfuEo(0H?7h;RT#ry+$TtDAvMH`A=tZ>Rnk6Zm{J-KCw1{t61VYa-f2uO0NX#O zmAVaT+IbiKBqp;K5kzXZ3MOGYq^y~WvE;yVz|ogGbTAHyZ+ut2fCY;>>?ibA(2bsA zgZ5YBvmP1aJ?euv>Rd}s?6Zi2F#V?V%h3VCk_L*yaE`|015?G$27b5=Aw4>E61gLD z848@B@^rsDh6kLu2BFe4tvNC{bIx}n-a5S)^w!x#ldPpeI*LX zG=DwaT@Uhx^LatZg}9h5-Zs?Yi=x9!BIY3QlQ|t`4@qGp1vbqIA6Am~L`pdN!25-# z&FChUVR*RzdyahdU$TC#nz= zTSpJLlAO>nkExTL*Y$*O)H zk{xGQ&8C~Eo2(Wh1(?vCLXY@ju6DXPRHuRxkNc8bbcG|y7;lHGnx(wVB+vK9P69FX z@+9vO9;Pz`v^x6=)d;Rkh@f<{#`O=(b#N*`<({n$&cQDNuL;2fcTu31d1|=}W_TV6 z!@E2Ai6?E*N&yd1a8;R_aFu5_E5jr7P`89Vri>KJddWN`MC6*U)|bI|4L4!v*^3jT z?IFa+y&jnIP&&QgfQxKAQ^ozW8IDGwHhY-kv0%p$K77|TvNyqmFUu~;+bRl`*XJe5 z8gWb?YgLKyynwMu^NY;2d5r}33G^&J%^r7%`mkA*=4aff3sgWo3mej6HF&XB5FFJNg$=<)G4RPDH2ny5pKe- zZekr?br2qsh3)Um5Sr?ol!C`sJRr#;OrjWri$1tOis7K8i4nXafcqeNZ!JMv78uG= zLN+YU#E^09u>ob>Ho)M8o)|zp%z#T&ay>LfW51P=RcI8P>Ee1#NJ^513ueMC&X-d0K99i)mU`D{}`zb;f{V67no0t<8#?X$qeT%^unWKA%-(SS& zxJY2Ex#aF`L=~W^ff$bgFDf}^P8BQqG)KwHC>e@Z%hOuxO-#k6RHiFalqvNTW%@Ej znNE$8>Q$FW(!XuS+kpu}Z^gzGxEP21aax6ma*bqIMInD!K~hTiC#E1aMsm$9ro!Oh z(Qcgxx=B9mm69^?1Zx<6@+-xcdZ04JozPf|#bS=N+zClz0mc*kqGv)^tBx9pAZ*PS z6Vi0(vp|ZK%8i1>*(~C$VPmSWx=dTn+Bzn?16vnvD7aaoTZRp7%xC*C-WNojbLYEX z)`hwj!uF})+5|bFzhHp)sB6Qu*Zsn^`q;k2cEPjLzs`~pv$*yoag5<55bic z>c~^jycedINtOJp>8$^?=9E}xmzzV-vLv)=08Jhj=34uO+LgACQvyM%{d78TTsjp1 zmsYAT)T4}vz6WhR(?p3QJ`*{MDs?*_ugLYfJZHfI$IKr2nIt2arpaa%;UaT~{DLwRO{$j|1cg45pv=UQ+8zuQ%3-hyV}MR@ z1|Sojsqm2kHP}R9J#D%(G#qYFx5w1hA(@EnmY6_gwOQa*ngXdUSs}zCMOWt8i05Ry$0S zkjXTqeN+fnxO4!wn-4549$Qj-pF}KU-@SkbVBmCqEIdDT7&gmw4qUOnUnY75JF3e> zua3K?d&AizC&2}A+U4|04rS(uhpb#R=Zl$u(Y1@8wc^AzwGHHGCG`qAgs%hPCe>YDs$7l% zl%buDLSU*viNNfmZwEnzDG_2hB?*!J7NRrw&K4YDH8&;AP%1!%vW(==AkJvjiG^dh z1+W%WaXqTKY3Y`eM~@w7q&bMg-^GQ)hnv!S++`W89G#c_(a(uzb!2J%#-j&t(5+Px zb(15q>M;%Faalbj>j;m}28THT!CHJau>faSYg+XdQbJn|q$sRNQMMG5^s5v-KYO$$ zm0H0@hApy1*TB29ui_h4ywPh3_Z%vLL*7+5-Mu}Wy$xy@A*-D?+vnXnY*jHR|Z|>p7ZFX4Y z7!}%~SPaLcBH+{yAEZqSl(r>}Az7Q_>6QWmHD|{r8KLZIGK{u9%mF2~z`$(^rOk-M zk*h?aEAd078KK&rGZYpvJZ!*h5V`>*k!~0eXt5jtzZd#HCu!KITCX9MW)?tp0d)d` z!VXxbt7CRbVA%AhD(1p`SJa6=3M_vIF`302n zOhE7rP|8-a^&aRl*lZsXNZSXW$<=_6cNoiP&2)scN|2^%}K-I_dbute8`SPLmKRz!+5<&vUQZy+CgiG1BR{mNX$ zl7%4o#Q-aY7Ua;GRZ|tTmjCC4~ z4K;k22Xbb^QeGO?eVr`myA2sRw89Mf}oZS0=My&k|Uz&l^UBbht3Dby6I7Xzi zix}nQ7wNlUu&Zk`de)}CmJwn!LhN_YO6DWNXG~2^SUmhexfac8MY?7bwjr+Gdo)cf zOhclkv8c(ka1BZ7UD9P6ZBBga@K4r&GtNd-Aj=EV1}aQds83MX=;G&^75rlwb>D_FM`GDcJs zEaFVGh)_NY?pjh&Op0jVWu;Y zxKU)tt(Kg>#R2b#SVG5G;SAIT5P&f6;I~dT_@Ub&{LrlzexR{hY9R%XG0(O?h}0bq zen|f|1X!!H24Lo5uZ#c!V=ip5c4$>QW4?5RV**a#OlfXzvMUe_^nk4WBPL-i&o3fb zT5AAjcx8lNl~Y@c%~!yu%RJQhA&fRm&d?aj&#+|)Hh2;^Hs+TR$Bgxrc1o;5MmQ!#Sr;aF z*O>)g4=NQn)ofz8FG$&y2Kpekg9^g$Xn*dE_ zFjT^c5F1JI1ihO)(IH!W)P$xx{AT{>=#G*Tk-%CHNQ|=r#zyFpOtK!W)s&&EHZq)z z(4_fv{6z#6YPAg)|9a=H_mvFeyti0DD*(RS8R|iQCk2R^YIoN%MC@$9-s~?5MZ8j5 z@k+Ey!2yfB(T9Z4`cXoy=sFk08ykFV08h`*fN%N%9h0{Ls)PD0eG)&wB}yLCh6KD^ zz_;oX6!!D-E_s5oH+iK`@X37XJ$Sf{bE)+;Y!StFE?z8Zx5tc#NVo8&2R}*_#;}5_ z+w`|iRfbPbGZZD0kp3+6{Xsg>$ca(h1x8%lMJg^+l(OwpJU4z}C#b0UM|n3TE3we) zPqEMIPqEJHPxueO!$)XgWEYPUg~VvDKgDFPKjmLfAO?HItGQl(!wVNfv5oIc^yGjd zq@;;}hI~cHPxOUq;lR_5udU++nuV1^OK_3b=)|&Luyu-xl;8=2j#Kc<5h;x2J0_Gs z0AF}^#4UD39;tc4;AEnF#K}Z|_CgA$tvDLd!hVwAS#!YZTPPtr2pBNnsohRrlh#y7 z17i!$IReN_oepy5wi=|8w4=-1#wBtYoYf;%6s}{@2s)3($ zeGYI6aF~xlPgX_Z70#2wB~FeCCK4xW8;y(NIZwV|3ggc@tOj`H7uY4(E#(VcxT%Hj zE93Jma>-H`uObF7dfeFS;EIe2q$7y}@;gMOg2QR)whgptbLXMk5 zM0=?)`6`=;$J=hF|^A$8Y6?ACV6L<079E+kqv@-tqg5-?q(6Cw4UYBDB#X-8f?CTfaglma3w)$9K;2;Yn>_uT4U`>tS)Vt}0@zsnJ z0m~7&WhQ`Dla-kTwV$lu1oS106WWR`W0lvuQDR#KRgV`k622vlj*WUi&J~h~1qU`+ zW)Lwtr#PEFtPH&5B|qUSAmc><3^ln*C4k%?l3#vx$Y|smru;T%d?T{yQy~3t4S#A| z(?dEyu44is>Y;#A8t7)YNO2Rx2=CmY%~C|l(1{YB>_GYwgK7`L@b|*)0eMFu?A58u zB`*@#?n*CAt9~LHYYto-Jt>agC3ZirGUl32MwoXL&oE ze`H5}3f~Gt;XVBd9^9t3?vvSA9{r_iB-GC!**wd;6BdpAux!Q?T8okWx1c3Q`6VLA zuc)b*Nv+b1hng%TLAJ3IjI5UASE>uWNXyv)_hG3evp}FWBpEl*esO&Rwk7syiNJOn z%iQ2kmy+Y@n>@)WR3xtSV?u^gW7Uf#Bq!Fl*O2~2wc-aX7M0Yiv6jY=ti_fgzm&`f z#I7M|wOPndzcVg?wwjU41#&^l1#k_Tl-raFHa z4UXm})tZ>`bUVTc33rS;UG7xTMBJh{N`|PUw}={|!lDSSy5V!PA|PxBM+g0LnhP_O zWD<3R&uSjW(UF)UD49>>tTSi`LFuv#vyK-`MO_Y8<%QRw?sOS*6F%!)-Net1AX~i+ zU&h*TV09R)f*WN`<$R6BN!+8CW5SrD#VmJ{IOtx^ez?Sbs=E(064n?x!LWbHHyc<6 z_9@Of`WtRrl2Sg8LbZ~nc41azW#rH*ChLY`!BqwC=PaGZ@f#fml`W=w+{TQ;bC;_1 z&g|joBi0h}b55j|IF!jYMVN0lo5UicHJM>tH1sg>tZS0bfkV=`yKMY}Hw4dGfai#h85cvz7_5(Rz&LH-5c7zy#;}-6JMvXjuhRqa zB}$HOWvI;|m5OyAMsQN8QcE@hLh;xl6&xU-HFF%qx{UqFc;SsI)jTLFl$)+RDrE2K z&M-C_j0)-r>rEW&vyFT(P~YRiDy+hMIt4Mfl`G3)enm4!+XTfabBJ%&qMgl-i@i7A z8_L*I7&Ny~am}IR;g_!t1f6U-1eX0HZ)6Z+=jPmGEOLXbkf+-bL2S`-D!-yuHH7Rs zBnrR4+H^uHEwL`Sjweg&#$ZX#RZCJt+x|$D8i3_zzIhUqJ@MvK1#wcupi>0$EeE5i z3FJi(l|w;U(ZyI+EH;*|chJWCMrMrX(-RZke7BmR=wV|Q3Ef#*F;WvHm8gXTiKfxI z7DtTcatddiemG(eFe4jc*=(qU zYGT31lhM-!BXyh$Ca6Ln!SNrpcSusHIpQL#pn`=U)4`fQTStHSHk=rI7nXK3b4IVM zV_-#Fi^6sSW@fzA?`-gJW*8*KS>(c#THIkuULw2gI1ABiv3mv(j~I<^=_A@ zNXJl$m!VW3kS9iza29zadjYLhB7&s$=0RgcxJWj#R9YQc`rFMCyQ)+O-YAy^Ag|$D z)j(26V@_IzgN|_RCG4cOy!e8V0>n(53PKl1D_X?v;CX`B?FEV*OF%1>{AS~FOv^N& zj@l=<$l&Cn&rskL61sTxToI`=&%&T{u;1eS4-NQtcbZH>21w$ zT@&3)T+XG)VGty^MA%5ELqMsL!m0DR4r+_k?YaRaFF$9n=xjf4ILhTRYQ;#&>|@)Z z&h&_g*D$R5WL@nqLkIw0VEWv^Mx`5j^=yOniXRyCEW%DTW{*BR!Uw@QR=kr~WHMD5 zCX7R^ewsbe6nG5*AMfnh{Frc7e5A0~qC$3d|B)VeK~5<_AvF3giW&R1Cny_;Xu}s zbEpPVoDAiHWk^w7STO0*7#eTem8- zDW%#5kn0-!R814J(UVO{lj>s>;JRJ_G)cwlc(iCo1dkANj2{{1SbnoT$K-eB z7)SLjA4sg0Crdm;(qm~D)cAsg=nk%FQbN5ov<$7Tn=VdhoGd8d5Z^R`Qb!M#ooQhW zwwxCANH=CJ2rdJXY}W8;M937f5vQ||#A0E&iDInHHdJikLgzFV0aYjt&u%+omC^;y z9D2=?s^4Lxdel_7L_NV7Ki)yuh6cc=;j#EZ<{s@#(JD$Grz?f6GboU>xgva;RVW^v zan0&QaK`+|s{N+u*%`Cpu@cJh>>%=3TkN6{rJ_YRN*8e^U_@m7G@@Di*tdu5WEmAf z@5?F1F8!l2b)BGZ!@w*Qjgm=R;no~umM05#1yLHtcwwo{UANhDa-=-8E>=8brgxVj zyG3>MmbK_=@&#sNLDL&7Yq(N^bunKPM4yMPJ$ai!AgfwNs0t9QRtoHLF?DR0oU17j z+$&3og+Y{+Ln3;9n1u9Sj7WMiPQ+*;zod#3=YEb@ZGofgO<)@w|`6hvh=s}QgN*{qi6jVO|`)Cv5Kr6ZJon5SH4)15c1Uu zd|eW~PU8zcl8;?$6LDv7A)$Yhm|$FxI)t6Qe1AjI2$K{cb-lEW|(kMog$YnVRz5P~p1}LYD3D#|~h{6#| zrw*TnN1n+~j~XO#;dhW0o@F?qKuTt)0LNnWjJ4_BtEv7uLu}*xtdB?fW3kx2q9l;g zemhkp(mv{B{#UXNQI!^#xg@`a=GhXt3s+L54Q>N0MI|J>EX#WwA!%CKq{}K?#L5|p zmjXm+h>C@@k!UhxN%E+eMBC3xk|oKbBuTSOIdA8YVG6wRunQ8teg#nn_^ zCrI1FI$AE6OVJpa3X_XjB+DZuSs{TZD9}dQER&BluL2{^GmDIKybxQ11?^>Usp1U1 zHRRd1>%AOmtJ*{tloMO+h~w^-_;CWuhmOv2*C#cunWq5kF`^4OzK8tm4`#BE)yQKJ z8Co;wPOCC`4%@0gm;oUm{Zr*s9jVW>C$3|5Ho{M!x`Wddr)1DTF^OH5aXK0$5blWTuXJnspJ0iqMkCnkq6>m6Y~fO-S`-^%yb_ zICKO^A~iD9cNma8#KUC9RSgn&cCn79_|C{CR?yAysmx`z5Qq=^1u^2RienzymvP=A zrU}b9#;c_RYxD{FfU$&nF$8(h- zqby-Ik0^5hgZT{)kDP+@PK(EAtSq%*$ik=@zt6fOj(cF>%u^)g4ofR| zOKspf5g1$H8`w6p6l|xvG2_w+_W`9|w2J(rHQO_lnnMfy3fGlvK^K}mqtNohSA)0b zGKuCf%p}WrVXF)a5VkA45|1)9a>$yR?S?yucwbCfT)r~gOd$3?p?aWrzOQdRJ?~Ii z!e&-=EC!Dt3zk5)26zUIVi!@NOi|>}m02q$lq7A6h&j%QO)}0XWbX2p8Co0Ah4gno zj#&h|LxB@S7%d*jrIxup2!VRBh&d#3AQ7)IsByrPa!VZgou{)l!S(Tum~OdimR_O= zbI=O18J(H7tq@!z!B14WeG~#%WhDijqjNKUAs5#KGFl=>L#GHDvm+e!nB>`{SG+Q4 znF#e5GET5KqQi88+VB*vhkOqc@N`|O;Kjop2c$kQWpGGMl?H(W@ces@CdwArlwxhyA`3kTOo?EZfP@*(ITpYX*2D z1oJ6e(Zp>EspZ*cB*mpCel^3oU?{MbhoHkV6f&uT+@@j<7YzIz-5N!tXOWf< zspwX#H)H~fBoCk7#r_ls*eY>JWi*8tN#~OWj8t)@5E+u%77$)9X)29MF*wfVazjvD z8^X~JZwJU{gOm)P55hHDtN^s!n|NQqdg-QI>D4{v=>SN-;oYZVf-=^!lu%aFp?}T> z@?(;R+a4=hJIA=+rt@Q`qZZB5!c7j zFs~bh<*c!y#UaK8a#>XC@=jO3B$u8D?UnRzaAtG*s#D+MH`Z|}1}aHw7>mc+E0;e7 zWu(Z+Les<%6U0bq!QMJ@h)!T;&gEFp_l^jK#ju@*;g47xY^4}DsPH_E&v|Q-Se7bV zUTCb6>qQT3E4N^tCsIfY|Qo<=G{IFpqq-<$?(H0)L?nWQb zm$5QI&vV5fqd+=~vKY<8D-*>LEuHCJG^z?9^s~X{%xrl{`tCsaaK(`jr)z+O+I{*d z@T9vXAM}&xKp%<{r@4$UqD5X`bEqxO=6OtcVj&d^Uaku2QL+Z43@SZ)oURJabX#s7 zq@LEsha;;pj7y2o`;z5F6%!kF+?ACHK7k#hw5MYhn((`f9Ps=|XdIPkJQpMQxTf`p ztV)vp>-aE#+3Z(Vx1WH-R?vD)=&}|u;QuD=PrK{7aeZGnpQy&JRGnS>zEos6(b?{f zCC7E1H*3gh>{V7*T2dU>r@y~H8WQB3OR4?bF%oML0Kpy;1VND6*_|;KMQx^CRx-9lY7?l4g+%(qYMb~3_dH#U1um=tMVR%< z-s>T@QDZ69c7#fdPRY`=t2BOm+UdO%`!V;0Ra+e+e)jPWkKi$FM`b=qoys+fMr5Ba zed{WX0evitb5F+b4TVaiUr8(l0tei{rkh-8D%h~X=3 zKx8E*lv06MS?2H1Y8B10#dh|@S!nB}`#^Pt%-9y_rewhG`)jQvJ3cz6G#Te*^ue!zM-@n9ByY*N6i}44j_MZy{6YCDje{k zLJY^pu&?!=J_(C|K$PKypR`!n!EOet6W+O2U#YEcd;>d!b#_-_<^qmxj*5B0;)=LaqAOEpzJxD-=)w6YrTP@B;Mf4*SB zWwk2P>a%*R6}K#_va@W_b9Xl8bSpxH2VrfG=kwe|PYxl~LqK0KC4C$=H;88-_H7Cy zc&ga?@M8@%yeT&^3#KCmp6j~4_V^7jVq1;+YAW?3n;Ny3^P;*L}Wann%(@ z>f*FX`Qqv3zAcFR?fKVh47J7Cw1c|4Nr#0t*a2qM>PbY4ePlbN`V|)F8Om`yzhYeWbA1p z@5!3UZZ?5e+0NT~Ph4V6p_81DI#gXv4`@|2KY1vv=Q5imvb)8GdE<=PZ~70r;USdn z3h3{)(QF&hwozH&eUV*k^%OYQPLW(noA)po21IR;ImkX*bZ*hh#gMOo!jq5e@`l1V z5+2#W>?6m+!`6xp_U?B!(>gsd-k|H zArH!ViUmp?Zq7DSP1QS51>TzGf$j?nruqjZdk%Z@yVXG{o~USP`q9b8D@)>x@$&ra zA<%ui(l^{maulPnQKVKubYms2-J88*9_U%qe*H(>>uXg?r@6*)8nrv~XjPgIna+6Z z=e@s1rQbt|R#Xf4mJ7`L_TuU0raar>Nnh(c8??R0AF<1U2AK$KZEB5KSP@%gQsG{i zZ#nRvbbl?7_`vbt!H@RsT*C3DLz(mFE?xW>+Ymtd?XtnCiZpVv`r&dCt6r(Q`_VZL z8LmrpS!OPJHO3tEPq?(B)oMO_sxMJWblJJw>Tv&GbPhT8?=Jtz1PUMCiG_A9!GiKS zdG1;}DB9XctOXri+T2L8=A8;A{v&6fUF@g# zyZ!7{aH87l1__z(zpeiMvkLB3gK5ebr3vA&Dh8TLHkg0Q8aq?Qe6yh~A){*?5$_h5 z&JySl7RtpEw9%eD&4ST1k|_KEELqeCOS4i@%4l2$I&f&{1)d0v!4r_iI<&Oa-99=! znd8_YtmjY>XrS7&J(q8(c9BZ)A&Gbd#58PEFDVp#p7yJ2BG2phIR9t*m$ThT1fibD z*1)#oJDi-9lkbbWb4{e<&;&^KVn}Gwpq`)fw|BA*wBwZBN5kypa*Xb9$nJy|M_wKX zW=$#3t)9Ti(=tAAXnc=qFTUYhdrIon^mPksYIs zXyBYTYLz_6TWxsc8@}X3`pT5>xgpMOs;qb%z;c%J&YV#v3p? zC)RBMS`#vpsnn4`ZgZ*9V_13ZBGK#jfVm%aNLbt9?&-T@@a;3Bp;Gj+4Zs4sWJ1w~z!s~7X6UdLls)b(vq0JSv_E{;eJ-gQJ|6x#HLQM)NT1e* z^q-l_CW^s5Jk^-3F99Qoq(47K=OJk{&yv@$QL_Y>3$Ixj?Kdkke_#Hy|CXUG;hzh= z&hL`BzHVd6KhsvR*nLJ%lubNTEro-t9PL|au!g)}lt zaAU1~tO!3{Y0>yh4`e11-)%4~lAxJjMoP5&h$-KarGtbmU2^-$BY|1P`!H{)*9^)o zCX41dJ`(hh6#>LF|9josObBxrHyut5J1B!#B?)n?T1yzhK5wn)0@)NML=r>`|#ae_mW3O&&sq1I_vo}pjP62=dF>W@xJ+vgl*H~ zH=Co*A|h=ihYSJW`@@#Oqbx5wILVhCotTvlPgHdDT=d+?B%d3b@S)KO92%d%+6lDV zqo!Lhv8)5z2~30$VJv}}eLYKJ_hhwzfys&Jc@HwY>h|?8EtAPQ!S0{!8o13BROTY} z5LpaNhDx-e0L9Jk1Y177sQibrE<1c*?5sl+{+NZ-7lOi`!V5u5SvjOs&WJ}QjR1s_ z12RvyUzTclod(fix(xyE_(IE%)34v6rN}i&u4qzc`!^2{2EvB5?~(4`sX!E(d$VY( zEWX8|;Fxk~pG6|Hw6B>i!y1rvh|eF~f+VB%_@^_ede#|^V_f4^L%`@!oOY`ZiNUE_ zSIym8Wgphq$yn)hXsEm`IVtD}Y5PWNrzcHLIrPoWwD7&bmat>k}D$6+is~c=wevciJ zJbjo*jKP;J7Pp7wRd*Ujy?2g%rnB_^%mN@B0d#@fcPx-oXvww{H+5UnE`ZQEsCnNuYTssaI#kH3 z-7N^SwR&@mYVpouq9^cx>G46kgR# zrRj%B+CY87)2g5HTn?oDD1 zDWphd;jbDR9~iBpif!gEpA+VZ+uD#UB$adsVut|>1aGx#QXK_Q~17IsP58r#Tw9GLAf3Fhk}EVNzhKZ%m#6 zwLUYQB&#>%8=5j;hPn@!^~$+?@Hy)eM*SK=z?I*DwH6Ms?ve`>ebVXlYfuxM*g|4e zy3~C_!1TG1fIjUL;z}A{FV}1nJbfCgWV4l)qlBO$YKa2sakeRoks3KY>p#7 zgUPte`jS{hha3?e64#D>ue-w9iK^a0N(ds(3UU?IwHd#ikQgp6xz)6V`DL2>>1e5s z9h00K9v_c&z)1Vy@Z`re;9o}|rMy1-U6qx^dh>L?8wozL6%+OZ$;Ohx(2kx@s|GF; z(c62DwL4+9$lIFll=<`3@qK8)&=H~Z3neLf+2-#rjt<`+z3e?;*vrk+eyw{c!s7Z&reWeo`mW|8>MQIStYE_LFr2t3s%m z49Q2oC^S2kNus+szOhXQC%!-XIpdrvTkbcCD*RdA&|~34iDaq z(=yuOtvs@t$-I8a<$)o;)8Y0P9Ws;VSmkUu*Lxgg)V-k^1)Ql+W&B4_bKZk@&Om>P zi_1>u9W6^?M#NVp{3+)|JB%7Tdtuq;=N^PY7}1=pqaC%yIf<@FYVNQFwwP}m<6UE1 zIQQ7sIr@-{s09It^K>EJl&EtM5>^S zk))sSl!BN~xF6ES?Z=1wYw}0;5ePOnb|EJ{wB(h!H6`PwswKcxgG{-lIa52CfHQ&o zE-6zp64gx$L!*w-NNp}HpzhTA)($aT+I(n2zCLB&p%VS#rIS zeHQgo&HJaS0{iExLfyU^5Crh~mP>r%;fP@#ZXa!8Gx^4L=v?ZQuj&%os%0*Ou@(F# zfuo~-u;;rUB?D|yYMFG9Bwa`ahjy9c3kj$^O<6aD%gG7z`^~l3unBG;)97RE6>*VG zd5sH=f7O(c^%|speB2f6N?2nPUaK7hqG-|+(Eq;m#q63P8F~| zNUC1f5!@?a@MQ&@T>5CKz`(;QV0}APz+lS?jNo1YgD)%KGiO|q`j`Z0`Bz<9?8kueyXab7DoFJd(oo8Dw zNf0tOlPQBUt;ozhHy?Q-dFbLmh3zh{?(_~-=0Pv6I?cIxaCda}eDsS4F2OGkxsn`W zf(Hd3C0LrTR}!!Qbd^7o*Xr7m^i!OMMFA@K|~olI@P0As(NtGbX~-7re_W0ICW=(Iz-B zUM%`J#B|v1%%OeU#{A3GAsxE=4#Jn0AH!D&3$Q39^)cDxuP=#>O)pYk4qb~#5>_7C zf^WJtsN8VJr0i3aD%53S-5dKIL*;5A5gm(lMw=aow5ewyfr?S#mkkH5wgseueM*Dx z6Dx@`I==VB54gTP$o+-Sy>3dyC*PutxVubs?RRqs;=X}%`4e*5HioOar7(qP^zR0ukH z)Xs+XWAv77JCu-D@|(LuvY8rgM80d$Ucj#vBpvI(ZbUSOUZ(jI_)j#HtQiO4?WeRJ zCrF13Pua6#{?ndoODH4jKTT`!pYBiLzteZZQ|VOTsdOdqlsORiPjegapK=!PUx>K; z8LC>qOQZbyL%>V3wx-PmyfkGyR*2UVzHIg8Vse&pAHPeT>>7oGn=?YvrT;;uw+o8x zg2a^`XULv9+Vh$?Rmx@eTK6gkkqYe}^C@NIAgw$>)K%JZ`Nf z88VKy$R8dyAHm?Jz`q<@@|fMZMJDOE54YxEba`=rHTHFP>&v_^?Q39#B&cOMyyF2k zBr1i`7%N13U+yt#4N?IWZjhJkfbHw7im)-e_G3t;BpH<(&uV#SDmIJmsf2%A2biVH zqL(R`8F<1rD+7(V1e}L@t&kyE8sFe3K9Y4fmZ-xj12=7xM~@BAj)Rla@EMkzKHFW` zLx~)k{nHOf8g%z~!y)eiOwY^fY^K&H{o(S92M%As`))k#kjwmhDo_nMnp(*VZUxHa zoNspz*tZsSaU=f{E*)C)awUsd#!%VN;+FYvBai@H!Pxl%j@NqDX_>E|J`6~W!0Yh7 zhyk%90L)zGEf%mNI+{>Vw&MxVOYCOSFC}#QU!rWSOI+eLJ;iiQIXx}O@ljEgbUkuEC+TIpClIr1mNxwR~`E;Sc zlb-$fio7lLA}`>mpcA=_2AOUo9kNs#0OXKX&H?bVy+O;Cq4Kv^wi}QCtKGqv8oE&Y z(xj{kNsnmcE|ig3zv}6x2L9ie95@mS;cK}fcz7c@Kr~x4_Xa_=&$Gg4uf`swy-}!_ zTcTah68lqK{As8YH<|~R^D5jL&C&1Ym-mmqpga(Uxj~yCtC03PgjP$NsA{PcPz}(< zQUlqmFW8or9#a&1We5%#VTMY&3x$Hour;2LaQcNWC0_! zls>6Fr3!BRjtqJMfnvmM937fh#!O^WPscy|g>(&Hlr=woY zbnE5>Ox@hTeDO-QvDY8(zFyv9=8Bcom%)UH6)`~-76Pw|k%udu33U669kPv}whJD? z?PSU|)%3Dh>RR1KIOtlQjR`S8r3Bo_G4wT7zC%nkZ{rr5A6MxEZ;rX!+bj38LZ9Hv z?s@CBtzSjP)5Lz+d`0}Uw9nWf*(K}G#5=kRJ6OrX?Qbg5 z^7JWM8JD@;C}ZMQvNoR@kqm8xJA78?5v`IEWYV{~*1qLFJpxpc9ZJ-3$wZ3{Znte{9T#Ro zF9fvTx8|nPlDuXpk)-pj4r4usqk4leM?1xt%augh;XzAi&sZwT0dUWFqtn%-^!b#j zxD%JjJ9)yighF&=!Yqp|p;%xY=SwY-*tuj|%p{X;?6MuxN;{@Tpu@OK;MGhks4&Zf z7BJh77{JZ1cAeJJ{*c$8wY_8ZLHSY^`OP~5y?(&`2PIym^ka?pM+Yx9hrb-WZ)`1t z=nrl$bUd_?M;fj%TOD9MaFAu2{sfrozlNY6!370{Xj_X1IH!nIn2&WU!#1O*xJu@B z$l7DO;xGulec%xDRwN4X{({fG+a-*UFLkpVK1&EkGh(oveu=GD_EDxz_8)AX!47%- zqUOH5Ygp^Xp{$==yfBib0s##Fu56uUeigI#hEreqK<7GctTP5upw8oZeFq#%ccNX# zibXEV-r2Rg+EH~s9n%Nc;x0SZfY0VPH=gJ=FVrE&<~J2K8Ao_gD+rGQpl}P8H%Gm) z6SCJM93m&6rsMl&;MLcQ`DLz_bZQs`Gs*Ikhg(B0{FWMK_Hk+m>1H#V=5~3HYT76p z)SWRKoPqW>y7?MWib{&Yn}a38jl3S~hC^w4EL8#Ri(vZWzw|7sUStUB>l48L3!A9MGS@^iDITyrqFw<0;3BzlBxi^P+I5Hm^`e^r(66pa=^OgQbcYuCdY*i~OS ztH@?i=snc0>%xuNfv*2GASH1tO7|tbfrW_*la3n~57pngw$TDz@Cp93yYK2LqBbMv6U50H?O~Bqn z&3!CiO!czQ>l?|I%XsbVMk`lP8dro1QNrz==w(4qpYj?+WAk*&>#7&g0}@TL@vUPE z+zPjKtyyGmPu20%68kRWw7I0VgE-aA0ZYF`aJ^u)UVOBZK-in08X5_**CIq0~P%)D~C(8 z+_}?wz^Tc^!sBv6Owz$I3lzm+uq9aPy)VGmZs8VhHbGD&B|)u=Wu(nudYLn z?AdZYg|fuz8l#!(N*Y0-ZfJORd@ZfJ_RW?TG=lX_a{-1Ku|NhFngVxqxd7%mtrTlF zFtx*WLEEYesc#E|UC=FR81S)@0qhpcp}}Un6vPW{$s7M05TY{1gRPV`}vlG6D7}w?z?6Pa@^QUB`R|YG;vGrP$lr-WXB}4IE7&WsXNZ zX)3=pTR6^7I?CL-deZN@HmT&rQu6M%+o2zBWdoD>7N;M@LHNbuc=$QjQ$tFw=%7OP>QELk&xU7C z7QpnzJNeE><9C^cw9E5pA_Ezk7wZ$J+cB%OoJ&btwq7)) zIQ2%x(yg|q54>oKgSvI6gLHPvmyEe?=^`f_Z~8}C4jUtb`U2EQIKL;I6mGOG@b@s# z&xiIEVMWHQ4?rR%hWvG{aPS5X%q!u`8i;0^ZYfbZsSmeTLmGM~2v=}9bo(=n%rATM z%(5M}ryFbX&D~4(V98qV9-Mr6dc5EzO4Yg7fUi^~vfrB%HiLS__vb@Pd#yKA@zwU$ zJ;pZgpKgU^n}3M|)5FfJ3bI@M#_>8)I@#Xj>l--gKVe=RrbL=Ju)VVP^i-KK4!9wV zR#wi&<>2~SJtDs-TJRf-K-;80$Bp7lcOwA(dVp^xUOmW0$yw&Zf4f`e?xhYQwW1l& zIj64b1=Grcp5r~0&LXqZ16W#~WHRCF%O)pk;HHk?@WG4?#=_d9ioLn}?{C__`)~;2 z>WI_~7La>BvM_Y7Q%t(y0bH}5QfeD?* z=IyVHnCnN#V$>*or%%|io_{gz5Qx<=jqLkSr}if2PSV~Z;9$l`!CSZ| z&o5^_GOkt>2V8(v>wdq|~IFm?{2>x?G9YnGtWG~TGM>}OIP5i!)j zOqP1@D)FymzcvB|YZKA1om^o0K5~K5{A6Y>;9}}$idiUCKL*JE+Lc)bE7>h&{Itzl zZ>NY^)ho2DLm!G?)Rn>aSNVpl5Hlq@yl!c&1^}kU0jX^wIT!~rm#QAEfCObA54Fv>)D%Gk_C8{WdW8fdu<;0K79j>La+io)WTYUBhnpu z60U<=_sCEqZo<7kK-`Luf`e%5ay%3?T+e~%eV0iIL9Q#e4 zj;+=H>H7lB?ob-6_9GH^@A&faXyl>Wa;)2ry*VdbS>BJO4liE4MKX~mZ#&!KC zjOQ%fd(MYt{)39o=UJY7O{lo)fyVu{Bh?dve^4_eQox7%XZ1tQ{w?Jy~$GZNZo!}lc z`761;$8-9}3Q&Q#K)535JU7P+l_d~1DQ9XGF~h_)JExW=+5&IGy+bcRsYd+9{gnmA zhOkFkg|JVS%xzLh5-kN1F}EKd?vQ#?`Z`#@W|+-lT>}znEbg2>p_zPgw~MyKtxBz; z4U93fS53U^z(S4}*Oy$CS3smP%eR~_wKV5Xy6SHVuMq6xzUpX5D@o}ySNIGbpfE62 zkku<^yXE_gOpD2Wm-Zm>BNT6db<*dL7YjZ&*qAVM$tB7rd+QS?Nq#|)++(SxF0Udi z2Ji!Jzaxzw>O3-T673_Q`CYQCC3bqBG5CI?z^J3<7vCvMF?kGVGGPTYRvz>1@5loF z@DWACMCRSy(*xTx&6y^*Oui(Y%ls5a?V_G)m_W?{+hpKV6G{Y@IVB?4>OVnczoSYyKsgFbBJKfymji!93@Gy$vjH8w&=Y=zMlKrpN&1_o21) z&7?%9Qd^Ggd+XU+4qG$K;=H65T+Oyui$NK&z4%b}d*a|WPHe`!6&o2V-km-2gokP< zn*!^ScdryOTp^*na@Rt4udPo|zlG>aogR z2DWFIV^;N#C02o8Ae$pj4xDOgz5Z_|)d zs5Qq;X6l~%?dr(1Z}20tlgfpcsA`QNA1g1XKk@)Ba9Iae5n8dz zFi`uU9YR?ntIpS9cYw$^6W(-D9s4IlF!F#S%*c%^@$tX)@#3x ztJPUjsF5oa45QDs!7eVVK^XY=5cCs(Jp>2x^fDf=71d`SRXYt>s|7G@fCcj$pEq>6 zHYe*1l8WkUM&3BxAh2Z>8KheQ8Yn)7Ep5B|Qky(Q&|#^2x%?1Icj!z*lh+R}_LFD@ z*xAN@5^X}S;|F|Z@Oz|x?2Nt^f&}I`UOpK**OG=V_Lbgz5Z$M54Z(+u21MX& zM%@gL$T$Bao#Gkpay;Py(K<-sKz(<(lM(_$TAx(`6|I6EzdYPwyQ-kHP*<4y$&GX> zM81fXp86tgO*lBQ14=0lSmp`$DHZA@e8l3en_N08H#`2CfwhLtz>e2uvN9WOE12+j3<~9MyTg= zxF6#aaHE~lE5?>Rn2f^IfT~Jt`c3!p@6YMoN!WhA(fLRaou_ zT?a)s!=!U}K5NjK2<7EK069s0@xL?wj_;ram21$ zo}MWTB#4#<$&IU@hp9JTAd74pFVnKGJ!QbX4uv~B%OHCxz>(4~L-Z69G?X-|yu6To zlL}_Qp8M}IjYQS?BSLFrR)xxApSFX^MoY`2tx%B)3WE$#D%2v7n6m;QDUvOa|Cpk=&7uk8~1sj4xwi^+INpwm>x3llzV~Lba7oCvc}l<_}?s4 z6@wHOGxBfo-@3ZiMFtXP2BThTh?dA-{_Ah&oGv`vT`Ovn!=)juz++A$oawb=>rS`~ zP$rF=r3dJHn~?RC+Q#YLrjxTfx^jE!NSa|N7BGpAoJKi)lDUmS$nK_GA!+k@#@tV&DzMNNOogMP2fCYtL5kDT$T zk3+^ZjT@v*;Ra#oiicqXGeYyIeYjO10jtxD+VI(UiM+AfP%N9;SGr4U&RL7rye4$A z`~CY$+Z^0}*GJ#g9wTSwu^5}!<09q#ggucV;j(74RaGhPF&qQEC0hCHiTzj4jL9U2>T&1I~K|@Z&>Wa+#=Y4nt(y z`WCrs0KV7BE%vvF^d#Ko;9@2BYm2S<-L!@~JGGJC!d<>Q?r-~L6wMFi*Vp^?_Wa>) z$9*|sOA`tz?3xX&AI+>kKxwZ&Vvk~Ec49Bg=U8$-amFw1p3G%2$aw@t*^EQhMZ7i4 z?hkzLUk^-ccf_{h!Dsv$!duBI@$T~B%KY~(A9^NOZT`9Y#G`+Nt}s#9Al%pEGlvh^ z5_OLghmWu4?efN%U397MfVSmp+|#yJ*vKtUfgs}$*mI(+_~$FCsrSqE$@T5)+mp?Q z_e^cM3EzKz!cEnFsubyjj@tgqZ?CoQ;|i{c7`a+*{?F5vJNKvrVx%Bk@v7P@*4&An z!$ZRQc45Xkf(PHPzjFiD9wO!*h&=K&BZ7@?&)NF5OM^-cXj2-_&d)j4Uew@3SD5ye zp1Yl?+6Z6*OW|B?K~^TDaomGDkUa`t{-o=*GGRv@0Op1N$WT`c-=``qcKM-)}z2icW)09N?F+J$<};88?Ps zZNG+qPhKu){maokO$gt_d#|r~NG2lp0r1~BRijp!)Ek@3K68Zhi?Oo#w^LbKMExK@ zLSRnAT*6b8Y?Ay9=WLb~YNQCApAhdrY4aX-dQV?=f|A#}xnC8g^u{-EJ=nsGxkV_( z;n#$6n_asxJYm^yDTZf*(nv*8eWtbjUT-$qE7#k!awWR)kDJN#lPnYs>?|;1F#ixs z4en;z?UioSMgtdJ>P@p->Ac$@u`TGocU*)| zqLs>*7DsKj!cfxryX7c%;i_J2+>+8xr>QuZuddH@J60$8r~`IL9JTawxK?R>U`~A( zD~@)p#M{1Ry|X^KxUg>V_hb#yJIp+WE&NbN`|iv)*L;AG)L8gz@)8i~T$_Bqv~F-O zyIoYf3YR(+(}2D-ymN)PaBZ-c*a(~(NlMq;g*d8FL?Js}QAi>3SWKblgMW`u9PI`I!i@7#U@hH=h`H(7ofdCRd~8tV&*uGeH>XZJgqiIt((U`mhd z!`aK_Xfo2$VjgbJ@1N)xY@kgd8H#Gjp#*;`wiWDw@_?hlQ#d3Tu`ebba0@#?B9QCkjatd<>*La81XmM}CH(KpQLwwCE<_nYIBITAr@v z_(u`>)UGh%RC;t1Z5Pn@W=<)RZA<26)Bf)LCk?dBIaqQ&sY~Kg7YP%k2DZazRZT~T zKWVmTd)Vy;Zo`&GvG&*@J~!d!=2L3O-8bWAi6u0XY)aM|1N?INJDdIqXm1U68mo(Y zS?FZR*3M;jW08fok$68dc(e+YCfbxY)B)-`goKb`RAEkwnG)If@My?3ytWPtJEUff z>(w@Y?!V_=w`F%`q4!~e6S>}U4Hg##?MH-SsjxM3-aOY8=vPmu(F0n zEl)IYe4?n-fEvYn>8!>h>LMooa|xGZvsqH=E_#g3ON7^?vW^nW;$7j+)-B-`9&Fp~ zq|;J)wsO7$d(Fl4VW7uqOD{K`i{|?_*l_Aw*+nC(B{7Qhahyker>dBEpD?D!Sv{F) z6YggWd1`^?VCldtg+-_X;t?sCWW@SjYBO4M79^&CW>qe|M3JtrTET5)SSn^g)=J1% z{?%XBn@+Z4#MRPcSpBGRbIvO+O9ocrMY5Uj*sgF?w6OSne%s7{;$twjS<`K0vaQZQ zU!u$DhVy04iP|9ZMl2nP!NqE(PPF(IoQa><9w1VF%THomeipZ9VMO7hrtdcs$nOBV z9|@Om`7G#2$Y+MWeP1~8cQ-3~BmovK!1^#DXhj^JT!zKrf=~vJ505e|{uDj2yZBLW z=iGh!Uvg%a>x2IN$yZpw%R9_G+0H8#TSqoc7&yf=^IG1T=n?2{QlBEwENqUI{|X5j zy7@sU*q}y)%7b@#jcdZ6`~m(r_0K7vFYje}FA*LGEZ}(hWy*CR#g%#amG~NX@mSlB z{e&5Y7bg~TMbZ6fi)Qfq*SdW1x%fQEHNkQp4*T2h{3kD`x{ zg}VjWH^kbo1U2e_jwKY#phD2F9U|eaNCqIES{Q?%be!*wID!%<Tx+Ia?jr zNne-ik#0jDY0WR(2XL*!vV;`5mQx5i}{gfZ2WwD)HOE8pMSBv zFwpZaVUw`mc5cnDtMf1UlV{cQ=lK^RniyN~`4fEkS(*8_S$vtgH)cL)7)ga94NFpKHZ${&|Aoc2YU1N0A!hnVIn0{e~z5nhC z3rWdjR#g7-d{=f346Lo+m_0_g!~A_=-=l21>}z{biem#S&lRrSq`hmTwP}X~;4`Pp zkMY}Y$wuP-ao1Yx^xpZ`cV@$kp-`Rg<2S>^iFX_O%cuUkfInjm*M<+u9Xs}I8J>BA^fTS=;N zg|JmxUW-->{rF4!_1E?*mF2;8jl_{r&hfQ~G^!dT{#T#512By?=dj{Ie&-Cll69zg_u6RF~y% z9nevG%YjK;N&9`JJx)sviL+1kb)%(hd}VN89padI#{r@X5(no-$=EUZp1v7X76R*DK3ZfB!3e-nO^|u1FnA9y#3^;E#p;T&T zY$yt0*!@@nj#9uIgkR*k_Ok=^1wDrLVT#x0%A%%a(nTgW4Sd3)IO&I-lG6V~dviDw z``VnEtnBy#$1a%C{WBYBXGxpw`-q}hzF28Qz!BS}q+3&%u%1kF2ww@8&o+wG3R8vK zq&x(i91-oC#KxCriBPL_Qm!voL(rYHHOb--Q{LB#qEDprIBPKDlxtKz4XJpO;=P3? z^&+X?&2@m*n-B@y_U<>6(=LQuJOoM#(TmI9sy3vq%az>A%2kp1d`wsx)39jWXk_j1 z$h*tBde|Ci{7?efZMcP)`ANJlEg|LbhrVE=@CLdNMnA#z#HXXYdgM~amXg^d%lVAB z@4z^%2RtZirwYluCCL~`5MAL09Y=z%tc*cE5v86{IZuT!x}gRnAd zh9eB*$C{oGPxp^+&&>jf28UFXEQ>5hZC?6PKa%t;Kq9hfjhfC zdr$~JZ#Aoz+b_Ip(IAMc3F4%UAg+f-o0HEYN4(w(0fEm1(U@U;}M zxi4#1jFh-4Xy#g#J4QXgcb7k{m_fGsjygNZgnheuW44+&T0$Tx={DGku(@G4J5{MD zS3qcHzNb7o3`*Ciak- zCH-C_qO1oJ))|llN7$O<9KoRR0jwbZ`oWMr3a3HJOG187*x&VV8ZxgU-O7I<2Xv-Q z=%Su<_0NCz@;x0T2jTXdouhfN;NN4cq@%Xqc6Q`&bEWW~7-o|K{g~}{rYM*DNST5Y zA8F4*&`Z6W($eIMcPOINTYoui8tMFEBqq@GlYK^k)ySZeO$%OGN8YVVlXtthKs{dvHGvRfr+&D7R zM%?q|rF&1=n?LPm&9vb&Z*iboi5`S5`3P@Q?xNQzAW8BdXKO^a^OxH8uS;&0H-_PD z?23aEIY{-;3HjJ**8WP|TN;BBC5`2Bury4Hak$4~uIyGxndc73neHiBh|n92w9fm0 zu$}XBs-$s`x=h6*ES*ITWESO*zgu@`l~7b&bq1=XvM>$S3Qd3q>Fs>_(lYu!u`TI? z9b?5f8nCeFAo)5eL<$RJs9ptnhgC?ga)m~vE68pGNzs~%;aZOCgO%D{uS#{Y9Y{{R z@ZyY8$M^tT4S4sRlXe2^6KLS=6_1{w*4~9~*(=#VQNxxF`MJG|>(FGzScU(eeGOdC z3?vIyT29LvmElY(&-s7&Aq1jt`PmjFu{{+g^Qxax&lu^} z>li7`j@jPHqoGftDiArt>EhY9U?Dm-oV26EtRymX zj7}Sm-}(sw?9^mx)Pz-}T@XZ~PpAOIgi=#pIy;($HlR;Lkk|q*1ikW+LjbGzMC3Iu zz^r;Ntk1^a)hA;DhPfEPGVcP?=S(TjDrT2c3viq-k^QPnmjLB#5vq5qnNWS`f-YJg z-#?u)Yf0yMi*y*D2>5N}Z&?(SaFdw%4E7Rm^CR>RKIlcGOh}AYCbj;3$*X-oDI4>l z4`9-@5loV?V-h;{VM53LN@y8@1Qq#^pzOn1y*|Q8Ri?!Nise)@tKvi$n?Zf1B?A%m z#XCb|@mBE2l+npoB5GNHF}pm4NXYDc5+@|h+I=j^DJvv7KgH-`6__EWoMENsvvBEj za{iId*50h(h)b?lExlH|n2K4DW?D|cfYG)tCkm{KhXO2pQJ@iIxb>1ghnlf$$`}nk zORCxCCwpq+@*?D3yKlXM(}=C-DuX^V6siyYK5WdG8J+Xa+i*#+6Z?=RPq)t~VsH|a zK8toSJi4gZ2ucSgMXuRQPm4Cd?`a4MQD3{Ar|J_^**;kv^XX~F2Bf8}J&FXTcrAY7 zZ)#1eop$XpSrZm{gqgcTb2;yqrNx>-3(IY_abLTb2uXk;%;K-uv3vZSUf`TOZ^R9DCh?w2%8p8^b;VN11#IqvN+9 z`Ig-;C$1xZ^4(gIfCXM8%LFYFpkV4OFW}tHmL*xR=yc*{z8bM$3)ZZbf!p@6h)mw= zWzFm->D{=WrmUp>#oFC6qA&o+LdY-N;S(}$;zZ!g4T2rRcrs$=C;eE3ld*n6N8-=_Sq_~n zU5=+L-Of5l{pH7z`Y%6@)Eqo{WfpD7I>yQw8|aQr=iFi6YOgdRQ~H#(IT9r6La>-s zqfT-G9iiV!Vc3exsyi+An6%Pzr3+Wf3+QGPG=F8@Mn20o2!h1NQ~eL2YfQ>l(N( zu?8x_r@_W`-@xONZ{TsYH?Re{u#bamSVJ{XmgBpzKxJpd-q~uWftxtYQ>&G_oK+2_ zo(oM7&c$e)1EJXldJVW6*5mR#*1IEqU9Ks1rA?--_CK zPNHxjwd7H{$GlakfsTr`x1iEwshmq+foWazokdhyV#!jjr57a&N(qK+Wmu}0qOfD% zxF1=#cTg{(!{$;NhGW0RD@*H;ULr~p3-1b7zfxue_EIZ!F1O&!&fj=u+2#fOsXVlq zfX+W5Gw*<7;?{i-co5wPkKjzrCG@sA30tl<=^CV$+CX!$i9ljoQ8HbH2-@zhbyK^s zjdW)kfMDs=_B9Q}#Hd$UriX8Ofuiwlkj}km0fJ>Ki9?4U0F;5bpgF4?1n>jZOpYO(N$=xAk z%=Be%4N;;LrjNcmKnO9H*mZ?g3{-t!$b*OTSvXnNG75Mot-xn>MTK>=sVF_!7U;il zOx7I-`H8mzE3g+=q296)!W5{0Y+{A=rtUaN>8zEC`s-)-85opLDpDTNVmU6caobsr zB~cw^($cyK0^hK0cjs7%WZP1vbf_DlPWgDJw^5~QR>}r7V~0N@vN3mHscYL?oJYyg z0B9^cTdwT}rMY&;RT>0)dBHdVEDZ8yO3_++YIu@4NqQ$GBs$7UJ9&S^i}79-K|?H# zx@uA3S6n~dhuhh+8PWWjiPwtPp^DbBC;{W4A4AU=yGOGphZMjS6k``1JTvQFV2c`T zn7o(w<|M_|15sh)BxmmIH9ji1v{?^{@6-A2&r|xxDgD<>YuSh=E?IovnC4=jD{-GK zx=&*_%mXVRq9BL@E66o5OguBlAKk2!)5an4MQjv*T~GjVifokam_0*|WTF^A+}@;- zN=d>mFcuE+J+T@WfOU%YM*i_dYY3M)@5My)p0sa#(0Jx1I6Ucd+<*7!>*<)ho`5%# zfIf+&w3ad>UTe5a?$ar4$Q_E6dI975OP!rgXtkB~PJ^HsUcmBVTVT9{7T}f1=bXl= zcVl%{!`$!C)7NK&D-po=pdDznt3bS8!+0F)piAWh^e#=vED=t83FZ84O;32vm7Ep5 zj0Wk2G*BzWFGlhNr`tFYgk~OXLHWvUmAK!q*lUmQ;5-8TBM`90TUvmb{#w|8b&5r} zzaYCf_L zwtFfN?QDNTJoGx`A`c=LJpPRfP>q`!AYH_?NH116J4+L;$)Y{=lGOfSn_oWh>ng39 znvKpXh@;MaS##?AQ)BUqT^?cOB) zm=*b30S(YN-51!P$=1!)T+2m5KNzOf)stRX|83RtpS|Lq4t~ibYL-d*g?oxx<^wfV z;$1|&!|dQ}&yMQ^9mZ`u3riZGUMF2^)!8*MXKu>Io%V1wtTo7!j6V9>1CE8BW~hdA zZ<*smHhRK(U~}!?Ef!k{C~Oh|vJlQjONZ*l-twMcg{I&wgduhX5oK_(OuD#fKd{A0 z7s3a+Qw*@pl9axV+`DU3wfOz{rm(PjmozGRN!8ysUkd_T@zt0l+;^*ad+Z`gZ0TM{ zcFcN7p|-bzI-$##N>?DAjJ^Jq3vns9s*7w54b%xG3B2Dt6yD>_qP=# zljxq2VQf(9^E-Y}k~>4T%oU}deag65eRgvhK7pxNbVzIf0od2b!jW?&(jVLqRJqgR z#nN^dMjP}xh`robpc&=dG8sb!hoTvcQ{FkMFbift5G?Eeia@ir_YMLfCbmQH#VL1t zE^n#_w6iB88&uZ2+{GXrzDX@>lMxNlJF0=Qn>4_7f>Acm_Ufktmt@|XJzMU~YbJ#O zzT14gR5d$gZe}0!^j()^NNoeSaL$w>jcJ$QxZZ$-M8z^$?m8sMdN31N%S_Xmwj=39 z{Kh3N^oXI@4&(ZIz9oJAK)h>(y6;WsAkW{^j}{O)E|d-6Xh4URCUl@rgWiXmj!I`5 zuZyqw(%X9}7X@eEbk=^<)YG{gmS+XNJ#4d<+zC>_)iSz;4|eOJs3QkOY&9>|QJvcK zNSihMGuy2?$osgb`{d}bXk-Tr=8z87iM8Lp_Gh_N8H+5gJA7q;J;rD+$-XYl%oM2* zG?8M8`7ahhfcy^|9pc<1jODCbf&<|9D_xgQirZ@f&fRijUEy{ThzPawb-O2Hri$1} zBjl6D7aXw-JODwoM1w_h1Ae)++@` zUJw}|zQ^rM5PlW!Mx<6M$DI|+E_i|vr;evnw(9DZiT2qIgw0iay#|XcIu|>)GGvd zpF3*1)>DKXT6EQR>Z|RtdD~_Cwlrv{@zfx~##J;k%xrHo6Mu+>0|Sa>IQdaEk2JDa~vqUwGd?5op={Z1?G7Qps)474Sf#x@(fPCLI3)Di; zzovGGe>1m6V-+xOO#$@Q6kxQbK&&+-?X4+*(wYLz))Y{!tY05i*4p_4)GIuIdX)!o zRC<6}wFih-d;+;6#sI9{1 zlAgRhtjQN|-&VHo-o8IASwH?#Qm@~>IO@2UuM@@LHM;~|?6kUudQWH_zj>8EKqts< zv>^?kx9jy-dk)Pr(xT6Dbn(TL;~Ty1s3win_qD9Hp7eJHW~pO-|TS3-ePFaT$uS4dAlbq z8d6WH2P^vb5g^--%IYL?!IB?SVG1Z>eJ5W<7wcJW?>x)LriO3ArAqvrg)(T2gz&iWN4J6b;-Pas3Y-A8zp8ufzgY46H_n}?PuA*(HzJ}Q|GE6}o#AQjn>mK%W-NSR;@ZgamlUwibhkYHs zFN48N(zm*GZhSr;?47qhaVv6tXl?bIhiO)?H}+qAcdlDOMXMDl-|zI+wUmm|(Et0k`bNQ$isAAXgi|N^l|s%#<}3I ze|u$FgzdTObqu#AcnK3N%h+NyDcsm{X$ZP!StM#@Nq}1Ei~qrdhr!-jF6S-O%Slcs zT1CK}#$(UqhIoBq3$g6k{|^&7K3^-78-?`joaFK(O;52buEAS6Cvn<` zS5N`!QG^;-6h`a~|Dm_=ZaMg|2nljw8aNwZo)revQM;+P=0SbOSYh&y6)0B^J<}uI zYKEbJ|KsViPK#!Y+!{PzU&|eWehE8m6TvRCN-<;u(@{hQ(=mh{3k($jf>!h>-;y#n zU~ik_kT~tPKZn7tIS}?tprMYg%7%}PCm2|; zz%AQF-uZ2vps?G{pCcf`09!u0qu@U$l}PVZB2+VvC2K~ZOKy9NlG{fuLjX#afRs$w zgcyw44GvijzQZ{q(w&hqd)Yw)BS-7?6Z-Y## zyul{r)L@gMY_O^;8emcrgIQI}3^ZyDk#p4d47eloOKa8tprhF+#^WLA{(t&%c73(c zYf^|ro)5ABfjXtyIRDE56QH|9J(r= z9krO^4qnUwfmfE8f$MsZv4o9)EGgC*N>eXniybcTGaE^zWRz>^pj?z}aEM1j6weGx zoD7YyPN4)Wi{X^0i)bSg%>=TmcOCY0&*^RdFj_7R(vsJ>PKAS(XXsxCO(WyLaRePUjhO?-;R#rkV-9NFyVgQ;fneS0!<+ajs6Ec` zZ`-0{6;L`5WzK?nyc^eiLDg?w0po;@FGH(E!C>lHh0B-e3%<3Eg{up#O8eKEj?p z-CbR2Z#sa_O$>3_{*DJLDi68b+&-=#7GN&i$UrxLQ>AOW9nskK1S57E0hW5QgC{qz3pGgk+0?A0HSeMkrp3jkys z3W!r~S^Au@o}|e#{JUsy{}kCz-{9KMXNAzX;V0#65gh*_D1IjYh{Z;lvvNwDDA%|q z1zG)O7-?OqR-!I!JdFJG8mnI9L%HXa^s(D$JwroI0zz2iE0%EotgmDq(2;#vM3L3C znOK{jKBncTEIR(Q{{u8j~|XkG0hC{ zbgNZ&fsyC(`hs_DdF%>c zfk$R>v8+fY)^SLa_Hc zMid|JHWI$KZ%GIS>U5^0lI6>*Q4uA7<$8$)Tk>2ZxI&a`oH8UEGcPBI_y&0WRHSfl zIlI~2Un2alyI7?f=&KuJM&Lw~6&fqjSR{JAzMbsZsx_H4w#U0QI%F(AT0Bs!S7D%B z?>FbNRzqd>(VTLI703H36Si;HVXf(>)~keO`CGZ%m6rz%cch^AjP+|`Eo%O?h2fV8 zWz+kF0ORO1vw1+3Mwj5(xR>zJbehoVj3L2;ojQRlCxjifyX4WT{y|N|c+Qy6$&TN^ zgC#$qD`#hk8Z6QYWSUL3@WhN_IicgRR)gy9=Av__qpl<#P2&x^Ufy^X)QCr;bOY~i z&5GSSbFK4Q9OWkY()OL0@!&Y2D~9z%vAG$~KohZg<}f0sQ-?(2_AnfocldbF-QnxC zX2&xem3R8_IKRU=>BT{=A7vE`PX=|3ti!P&^CCNA7j_U%ftTu=r7?RL%RV+ z&MF4bkJjiBihLoEL>bP8<{VRcJsQ2Vu`b*k?yXU0ngG{bbo;TteR`-w&!-rfy;{O1 zMsI60fUxWo{Ymz&=48gfe;}C2Ax{kSd2e*LeVg83!y-y3;ct3weP8aou_$Te%{EN7 zhWOGaXM@G9;JHeiyU6*k6(&t;Xf}?xxPLW#@_sl2)39nM><{zHKl{8zF$Gf)rMt1qKB$ElR#kA5;pkrytYwP$8Z??XBf5g9=)At9j-@Scx{N@Po$?5wKho{GH z-<+7FdCOIQ4o&a;54&F?6F#0*)XmvBn=4aGbbGI&4t3?hC06ixae1c)nyEnm-t8`* zF78edkjTDpnM1YL3v$XR^AY1>bwBjqcC9D}V3ojZW3An*By48;Tv(-;ETpS6!`^(2 z;#W2;H0;^Bh{kLVG1U9`_`R!a_=j7)btgIW3%k4nJ2wsn=l6OUP6;F@eaOEI4^CBf zxzg1NZF;jj;aMI23eE`5%cF)KGNb`^i7_qI?H406bwt2(2U)9tRU@#t6MmJIZYVJB zVCKvoaJH{qD-xdT8CqEbpR53qS4K)RLXNfA;6U{tbLmJ5JC1Sn1nAVSo!%{6X8S6` zfxnKutTI$1ntJh_3KZ=r1`=7nAG6w8EIPk4tL#d*+B7z4clV?l;>i3i+n;vof9q&U1LpJjgi`j?L_aSVdRyDDVuWfHQYxfzXvoR-n+`~+()Tl`}Zi#4}=DmZ`eMj>Q9`s z|6S5;Z);zhvA_{OGI4S(M|Uo{soGkUKs_G50E)8kiu@w&Q1fAq_cnKWS`&riht1*U z)!RcJRo@)GJ$ir0M|Sh^;QgE9H(WG0*9)th3hlJq^dYnlUkC6=y1H8q{{+*xxHx;d zz`0fyz8nREIE~pxOn2=zK;?^50+T{|Ox5lr_DUBLS$7=W_&fHA1ABCsD=cT_BQoGT ziiAYMke9Pp-0!{*bymJcK2QT?BUAiDI_V0BvR@G$b0lniW)_kN$zDqIHEvS3SJ!7{ zdlV=JiyMv1FMGg!Yy*sAyXSp)c`;b0f`e`v@RI}aeZ@}{ml2S6swAGeqn$kX<1*o) z5^RFCrct@rgSLsHp0J^6L}JmPz7B?Og7Dt9F-y2E@D@*B5JqcWq4JcUdl{i7@Z#tBr#;A_8i(R@DhM_Xtw*R;2m|P1!mUCps~W0= zjl3@qQ>sjg*@|o?A@`+XigQ7uDw{uSbheD-97W$KrlwIb&OYA_3=I_>~L9KJ|Y|IsMc9fBdf>aK`k=qD(HXId!uFKfQ6S-9V7&gCztIaYCm)0H`@^ zle}iuh^+!gkr&z3z}=T>QwJdytB817b}r7h9esTTi*eBbWHhx<6<;UkyhGXBNYagP z)dES42$yxNWN3&%afFlf)pDi*~$m64SIenP}I{#wlip*;n z@eD9700U8O<#ToZWrAEUAm?9*O*CbiAY@uXR!V;$%2wrc&KK^cY)+^m!*~8|sG~zZ z)qF_IuE3E=f?;Yshb;2^?%i?ob)vvXJai!CU=rt3ffsnm$0}R{`=DX;AN!_&yIM>Q z^-;n`=E<+A%O>{?O5#&F&M2jaS!Xl6ma{?8 zy8k{X6)=)v^|wl9fT6G1_YW0rtB^69aXa?<_Esh**fBi%T-703p(rM4s^mPr%SEGR z^wE+^ODw#?@H5vEA4iZsnl{4jA9r&{JFj5^UEi7RG0rMA5@)KRP{MC~UMz;orv+$9 zWN|tMZ#>$p`Mk(`|M_8qTh;)Bp7Ft*H_W~u2uWW78{g%yr zDgEZ_)wb-kY1GYEymA{mr^jzTV1g`}fuEed zefMq&#jc4ZXC^-S`>~9em4iShrw6AWP6jY1FRw9<4lorp!E88xyBa=U8sQ0~O^NnB zrC@fdf>zL#A|A}ZHQ3pwdeMUkfv*%BO>?p^-KX5|Y*;1)j<#h#3WkL)!`RtxgG7B| z#a`U?vneOUfQ}L+yVPJ*0ogZSrG2nwoAd<_gYobmdgjhPlyaG2r*6X|%PO1*zl#|* zw^E`}gMwGIT-wpj{SslHgj9z~K5Sbl)Gvf2LZ(Xe>$1BLU*s!WA2w)hAZ>xKz%(T$ z@M-kuNw|tLMQmqB*)O&aM?7My01j;AhM7}Qvv{ev6%DSU|H0)g*_d0!YpK?VGMYW3 z{0LXG;FW=zs`=H>uGvkEcBOFw)_uy3@E5Z9hC85)0v?*T_d<}IUGo$|D=mP`E`|ly zmKnj^T1Q02Y;GiF%)o%+m6>o1)H;GP))AWX-;lw4->$mo4qE=070zNMPet9E<#`6W zMZvV8xtW-p>=OsmL0|7>@zs|1-kcEv&FC47X^=_oxx1XJ17_RtOE;0_?!59J@V?wP~|jbz(@#nzM~a)oiN%Sw?z4JV3IS6|5=tmB33L5iQ=y7*P?wT z*tE31;uAat7D@0WR~67+_GAj|p1gRRZt@|)HVKolBcI9nw|#{w=iiVfgUqjN|NNiN zWd(~ZdryPJ8-n(N;cB%Zc)oP_KTiPv=Lz`UKSR)-P+YAZ*ykGv!SfA-;Q7*@Z=myk zp2IT@3@5zjXI^>%K0gEX(D+2TXW&;T_cQ=cGHe9-TION|61^w4dz0>|gd_LlRB$l) z`|Zh_=s(CUkA?oZ%2lK9i$Bf0k9`wBys9%7@EA(?#tHyuQ5ZpE*a^XDRNfr(kxBO6G=m*J>g|y{45QJwi9;HrJls zgHGtcm0FBW*iMYzNyLbWZM{6@WI$FJw)-n{^(VWW^H{yJ>!`RbI#uK04z;>}9Fj|% zbJjAi`h{E+J4@VfTTE(#jdcR8uMJXNQx|@@%pA@_va1JWga`|RT|)0~T4+aG34>me zq{F9Si`ONJpU*&rYdC&uZ*32j1~E;99wBX284&Rl=_=A*D_+HnR+P#xUngD7rbRiN z_tcy+SL{V<6H$7z=9{b&6{Yg9_V&?VLlzCL^q3h>l((Z1sEdw&fA%f<-W1v#Z7XNQ z>F~CqU(%xTLhTxE!7}n#H?Ff23O&8gJJlqzjrO2|SWKJ9u$VOoUz;?6Th5F?tWJ!; zS%a$keW~2)w1|9H%UKbal}YiF!eH&|@kFlHB$2C4NaSig6S?e_#4OiXVxDQjVqh}Q za)<}aIG@$YiB`M+Jj}t0Sh!(x4p4x7OBC=j( zv}D{dx`t?TKZ9Ob?49+>V(Ca4Wxg?3 zH_EM*vEKVfk)3X_-!F6R84qjD{y}Z%=dv%BR&Uc{s&~{vIuz8J>?fZ$XwMQOz-74|b+Y}uF*W^9$lW$oKOEjkIp`~6I1=E=XWm&)+#%V|W;t3j zm+70ZL@#E;NV1f%BYr7oNBoMk90^vHnUO>@dLfWU5_QBMkgSO2k;g)mjp&6qo6u__ z?Zi$g_9=S}yX?eZOYX$qMUH zUd-!U9mqwWn~i|O%q>)RH{9b?AjIl`?q5bLZy@DxzIdcnR5i6!c;Rj#EyLGIqPSJR z(0|A9vjXoA-)ED19#%ii<5eZB1WT;>fbe*1!<0BM_1*PO&<2YSXMc!2^WzllkD$vU zMq})Sa{XS|M0yQ%>QOIFcT9iaJNb7UR+8Qzes@z$ry1VTZcV69Tf5!FUIw0S*V^-| zc-?c&pnjo5ia?MJW;j?jayN0ti`A_>L#3g173uln{p$66Gg8gPfBOr!^Ek$2P~zrk zdo}i5Kt1YC_TK{Co|ztt9Uhgo*QTGrKXo_61%K|{_A}cBR`>e`Ye+u#o3$T9Ypmwi za6ePIcvN?92P_Pxi$Y-DUa4*cdAHj1@t?MmR0@{hY{l#T6mrWrA#2FG3B~#JO4m8h z$#-kYX;`ybE}HGxJ@CiAI_>Wg&%N3qtqS>E@r^ZpQGrDJYsRe#;b2mH;dMF56);TN z<|S`8cave98(W7K6O zHFgh$5wA)bzu<3SGMuFJKzUf!ae1xRsy5u@9UztvAHL0uQpCy#~P=-jQ=d02+A zAOmG_g^EtGM`NAQ>cg=Wl^pbV>l|9tzKmDCn{|)amLS(?p3gna16XmDB(HflM ziPn~~7g{~VmDRgPF4b~zLn5yyvqfkE?Ri$G86Zg(ldadK0+I+-qrbyy{^EXdpLRiAuYL8>u1FN089v(G{;gHc8_?FmDJ8{<1uxN%=(&}Ip)s9X_WcDE#g(o6fq8Cng@=Gm zHnh&tYnp4|^+D3xnrqakn0qkKj8i_ixyo>Lq~iI_wG4Z^PLFY}WmxYdZt$!Sv%0uD zzJiE{I#)0(YW71#5VRgg-t57|>zymyYS^JZkMx%33NdjZmg8Ix+*?(O`*G)53>zKz zd9C&3dPb*2fwsWRx~z-$;YwAi1!7rIyHTBBg+-z#n?72nKWaI?l*~kf^rz0m2&qq!WJs~-P^o-;L(o>QXi033nh@O-jAv`Nt z0J1I9-gH30iQ8?!?T2XX!$6#<*Jdn~*EKqar#VIBa)7Qb^K$ha_I*xdo<*`PU|8_D zZd90aoJ)hCLbTuRV%m~hz3l8oGh@2HR?WiJ>ycaZ7Eq2m%|RZ)M~B*T9j-RUF3t@Q zd(_yA6Vt{_lb|JfA8^^Qx2uDRibdRm%Ll#k?#!?d-}lspC$hNkU%Htq7W+Z?r|Z${ z=!Hfp@aFRK=icPbh07WxPX=BhWW7Hv7S9vfkv-nb?M{}xb#$JL&sert|9>^o9x+=oTW=g!PV^SnlH9kUGAy8KponfqASnHTVtr>aJp_F7d1W4#?7kg7N~GANbY8Pk5GBJxeB3e&n^ zOWC5hFc&3@2S7gKQ}cNY1SClXVuaBR8cnj@3^%*~0%NbnOx^W%XE{#yyaI z6!<+pgVMKUAG*A8QAx^E5%E~X9_+NjNZoJLikC zEN*qJjNl%wdg8C;U=Y)jr?bQIYYiShf<(5!qw8ZI?`SE3+u}(YT zISqKY{1VYVvqJuL&P$GU-G%*|t*OHYW5mo{aX`cIHA)*G6KPnzn+*@i5SdwAf3`-HoAxBi`W%eeKH72s9xxf`&C{ z{0@2#S^917Ly4K=&s>V`gQJg-zdA9rL6iyuo9%q3cPUPIm!d&}VjOt0BIDQKetnae zxAzCQ3H$IJ_2up!3EN_WwustQwkKBe2U)g;Qt;_jIAKyMTp^VSZ1ShRsYvEnAu3@5 zD=hLF!h#^LAqZ?-!4?{|1fE^sN|4ivd-s32^#77e_$Tj<4uA02nI864UpH55_>?V! zWL75o2wU{ae}}jSz^v36hEj(7HMp+UufZ)s0*R93|1^x*x^N2d{&@vve9P%dC?Gq}U!r;{?l$ED&m|H^suya-9qYg)BDv?=uLbtz2VXP$I zzMz=dew67et|;r60G{}X`J47<9^w&m%&;r-MSJ3^3Yfl(1KemU>1*R0i_Ekn8(DLfF2fW0$S9o2}W*C zWhbD=$65l{tE5N~GcD1Z79fjxHA7eW$Rb}&baZk?Q<^YLmOYpf+iJ>FFvEglfaGz< zMt-in$G)1_tSJBDpa@tKWrR?epdRIF0{Q{v1hiOJ6Aayb+_qD;N3NO(+d*IitD4a3 z@v8m}qU}6wG)M#~nzBkU`^yUKuM-So#LSQ*! zLe2t6sEP@eS5+pkhpCx?+C@yT8i!_yicmBwh=@kB#CSlO8Qx>k%$NvEGlL^C%>>pO zCF;lol{uAjkgEy23?Z{hkWpkNB-j2Ghh>6#K#&Qjd8L|-(O4?c7rBneC}mEf7G$u; zA7Lgf%Bfh{&nq*gUPI49D??)NC1|lZYF@q^SSMMYdhcrBnwX{W((k~|raAfe&kH4C z#%m}R;=EicKjVG4wb?ADFX;l@vn3MetOdnq_ihi`{GRvV{-Dq`JFn`Lm&Nws+ZB~^ z<8!XT8qJ^oh-kGfjT7NKm}isK+UmQ0v1=|ZZ^nEaZ}03Qd(SFSV5PV~Gn3UjC2ONM z<7K&ij>l@-_g@EDPG}1yiZ8D072LD2y=uwhxOV#y(VMy_r4J*RzBx`8tv#faWY-Da>nhWt-T% zN#Dgb{YE?ZMb7G`+&r0|rE<5^=SiME{SkgpAr^HFujc2O%tt({Tr}3tvvK$4RT{G) zcm(F*tJ+E`1acOBh6zSIWWhjSUp!2C1XOD-SC!zJIEv;u#n+oJ8Rj3X26@CAfvU9= ztAVRY>)n%%HA9ab8C-nlkN_22al&=80F&i!*tfb_V0TB9jGp|HCKVyJQL|-OW)C_; z{>1BM3)p|I!2bM~72uC+x&QJXE0llv+ZyoySpoi)ch=~lYy1;8JYDzc@}VBD?gMgI zVy|vYv~eakK|k4tq5|E2L4%WrvFb3QKH+h!7vdVYAANqa1Cccp=1vAiqq=(Vn;F;9 znYowfXI7bOf-lM2k;gJeqL!KR0A-mcFnhA(IqaT%fnH{=C(p~g1-r~zzB0?49a%GC z3mE5;0mdm~pkcZgq)rt)&2v6z>=qNGoQv0*b#T^cedNDprgd~?)&$6t^vqFUBUz4k zdM5;44 zK&`p~x}hUmJ%U@qH-Bs$H0974Xm=tav?}Zhoh~&@p zu=65CGZ~Dc!?Rbt<6|&+D!~S|CBOMCb!U-T0@y3t0Z~Q*JO{OB>|WbIfBb*h`xfx3 zsw@9}a}&5p0C^<5v`wOYB%n~0rya{pct}91LTo$jbZ#C5?j?bc2TDXG_~@Wf%e851 zZD)W!Ni40MKTJ)hEugJ~r4PkUr?#CM)Y>3z6(5+OnE&s$ALs0I?hQKq&)1Xh|Ap@h z_nfuYUVH7e*Is+=wI4?xd*?y`zgc8$-mt{shr33@pW@gKPl6*xX9q|+h-TKoQQT^6 zwK?<3+*6XLTR4>Tq}H^O4{q8??m}@G)AvTq)H0Zf zbrYHjq3jnoHR&!yoK-Ci8|5Ok>PB{UCZ$5H70QI#O(x06Zv`zz)K0cIK^~s2K*U>Z zv18Km+SclZs;1TD=D?DZNi73=SyXHGA8u$_LeI*ZcGW8Hdl>@${H#p*RbDujGdHMP z(tL2Ndau4(9UAeblr=Tf)o!>N_e^`?E~Qf5FpO1Xk38Mvm9=ZIesY#%m{4zC1|A?n ze1b0(p1%6!&7}z3pkfV8t=>GqA1uj{x}UkLdDSj98Z>P1($ey|QeJ-PO{&1r9(>rx z3tW8F5-(sSW_&>O0nI0%yx^-_F)D0WqCQh1*KWM&s2G$)-Eilx0N0zn*w=2TrqW!= zodVvJQnQ}z1+Qww*@DepSUGn51Ip3Hn@~|z?FFP05p(+pLjS$_0(ldi%M0IW4#?}dK6 zwy9xJ;<`ktUae9_!_$AzYjFD!yaO+h71;0VS8)|r^5T6|eIMGfC)Z+P;D;^3$7*ZU zvY!IJc?d|8KS-G-O&4rgeK&&_mymtM4=u~SxaHb?-G#2Ll6OS7<#F@0 z9DWlua`P7lXXQ-+)$*a#o8uqh)p0fCvt|>|+C51y*nzF)BqG1frQY0JNU~idE?`@@ z^3_4sZ!APLjRd4*H;$r{54Bqex?VR?a^qvog*ka`kXx_|wM%!QaGG#j#;vnI#UT&Y zO1aVn;Vbs^_9-QND;tiH;*?5SiYh4`$s3gBc@ zuPO&Nek!|-k7UrLx8Kd49l4D`?x|~rUf>+4O`0Fe^rgA3dAgjA`lTeg43em;n-Wp0 zztS89@zfcya4!l0Hb%{QPdZ-h)MjrgUhPyy7xivj<8r$o<8q_gUPqm$aJ&%t+4U+e z;>kn*mOk)%>~4Z12`U(qh@G06 zNKP|wzQ8{JMY8LS=i2Gs=_ zB!?rT-|}h-t2XA{6|R9e!sUajpiK74k&x>Wwb#qgl?k2_h>);^d1*_iBR`Ybk)fu) zK21&(3$QmUcW|ab#TGZh9bCD`oiS=|+TlKTEEcmQyL&qTr{)Uc5K*tHuju? zvU(3!q$|~fVMxGOtf<<6Z!E7?9&k+A3WBAVT+T3pg26L`+w8R2yE78)A1%wZ?Q)3^Uw*h(mMOOzpIs z4blZcQ|Rd`M5QPj8gORTvW*)WFkyFQ*=I>{$^lW_&j1U9;}kg5S5qgy0B+Xcc-V&5 zykKHxj^U_Rees68(gKDBcYR>t4zfzf?T)pa8zKOT_<;kvUQO{VD7LRahyd`uo*7sT zV|I8^>*b1F%M5(o4ExKiqP3BrQN%@7iJH24oV;AaS{nU#fldW6d&U`HOGXaBHS!L~ z=~@cnBjPlMjUWuWsrjqLEhl1i|UE2%2hws)UBEW za-^&v4ioa#E3OvqTelidzPlNi>a>bXbGo7ah>nA+-<@=&GG;ns=@6t>CKo=vQ<~;Y z*p}cH)?DAfL5q^yRBe}x-CgxqK=wn;RV_IF0_F9m%7I-awQQt-wcJqx_d^@ScPc|u z(6C5_0<*2hCKK*fkt{y^63hGFhB^!{%q5>IC zAoB{~mC7?Ee3BDz9E-qxHA>=`ovT;7>Tajf^>fwA089zy-P`9pP&0@)a+b~MRKx}I zY^>8+T(Elt(hRa`(g2dfrjw-GJhd3lsmT8ge0%I|~gA^m0{FVja59LLuXw$Xm0b`Ie!D6{Fj^TARtAKXaG1GWzk8?_t^!4QBb zTMU2BqhY3WRfQb1^!VkzDqexFk{wxF5Iv4L5Xb$%# zsbP9(_W->b<|X3MGi)jMxUrsI&bx1&cGO4anhn29BqTu~Bww{r z?yI?KBL^EH@e$?T>#K;$B{fvJ3?<(g<0=Frz5rvWr^ zFX32eQ&Sb@8Q4JODKJ)+XaS`(2@7#al3Xyh($M)G(=VURh{hLf?$ey2HENrh z(6FfqVUu`OGxvLYGI>tkI+?C+Ri|d<_bWL1#1@sWDlNNmu~Zs=+KTd3tI9uo1%p87 zAPwB7>Qu%N9(TV{+^%*)oQjeh-&UEE-%5&UQkcL)t@6GXQ;E01Gc_6v%{~PDb|fv_ zw971*^?MXMvW3cp5Wy6yf zY)Us!9!Itm#tZf%n?ud%NW*FLqm#DnOWMRO^y*Ex-YAEls>>AET*IRp8jV{SLYnkw$f_K|!?Is8S)#bhqU^XBbl>jDBYNs3(7 zN;wH`OKC79QxZ*_y;O%yJKUOMgXCFgy-w_9NCRCOW(@LBF+fGfy!j{@u!;a%YljxV z!Krq242Ruq1;(oyu%R}LOjY~BiUwe+4}C_zK%g11Wz$O-cHXdBhM!{_TNGFxMdZcK zJa-(!)pB(V(a8pg^S%lW(K8YaH7)ff5tPwwu&5ea)VkqH^j+@f1D+ZXR0`cA30hlY zjMEi0E6hk{fW{(u&gGjnwt=QnDM$4!WJt$7!*4R+JPUU27#7rady;il2-pLrxwJkqzOmKm(`Q5D{d!I5F`d)m z7AbjN-Uvb+o_FeH($J1Z3|MQ>CuEI?9f*-F0M1ni7LtKkXy$SR3rmAMNakt+51Iyg z5K#@w27!;7xCB{9&W#EdF$1&EoI4gQGy}8H%moV;mIhf!&NU1cmVsGl&czHCnt^%I z(#Qjd=>(#$Z?GuVV6P3Ybg(I^D-kRt#A0xu*n?s&c<^9pppBTS9Q6uhA(=}cELs|5 zA)(t^cRyIDo&+lcY*YFSo&+m{Qg*BY$~!Ww5hw|z9pUp+KBqD3cFkdvXI=%D=ahzXdycHSy*@mW}!JZTv%uZW}%ro zFDxt#vXIOr7#5NSSxC;U7#5a+S!j;sbMMKpGNh(jSqHsC!y+&k&fAcYw`{x(8RA%E zsQv054lADnv=GhJ92S}e`H*ILRhdWtSxEX$0*jD>SSaQ)4+}?wETq)iJuLK;L_4Fp z_`}AQ5DUe+2*g5jp%$vS9K^!YAPdR4EyThyFb^8m6ut6WUnfBpl68H6Ma_j;s2CR1 z%@r1+f!S!>jOi_QjRILnzI#Y4iry4&7WaMlO-VDxVCSG&{wvjzI zoY?4gf}O#=_{7F`pf;*|8H$bSKrK{`Uh0Ar3)2A_L^Wg}Achp)xrZkx6+CHw0;Vxc zOHD9WuD}a#M(=a(U$IJcp{7`%N?dh!F-LY-NUvg~OHave-PmH4r?R?fRyOx87YpA3 zT8Pf|E*74FS!lF66l%(aFIKj}a10ryCsuRM3%qeXQ6tS%2-?#Ntl-HXTyMS#>j*k0 zznF!-XrhWTvZR&`%vCWKh^KpeByn*cHurj%@iJ)Ub~cMP%wp1jJ!~3aT1M4chA+vT z;CQQ`kPR#qOV2kkJ%PSCXxId^THdl_HBm~UX&YZgtd{sZ7(1s*O_!Cj@~XF!PbHa5 zo(3_J@-&G7>id1n49L8iDXF>sN6E;%VM=LV24p0VKH2c3iby|$Y~Hk%A5h@tFE=h~ z_Q&b9FP&e{FS(jf<3yogaQJF31saeE4Qq^)m1cuy5)8Wr4!WRiN!_1dWpJ+cH{!H! z`*)_5Hc)e?ZbVZ33sY>ljmNyUiDImdX*)Xckgd~To%G9ob$sUNn!=*${!(Dj$T zwE~zoxxJ^U>U#68YHR@{f=;!#uf|~(*G}nl)8^#Nds&uY!cIx`$lPL`l4zSiO>=GD zBvbmukLomrPFGCnOuAQ0IA4j znmf<^XhtA|Vc>SOv!VDj%qJB`*;C-!p!(pR9%>k;0J!_i?1*h9grk?3U(*aj9es+)qZq4H?;u zwBoE(NpDlJ6f9FQ?glVDOAl2RMC$K`dgV_z9l`=g1VzJaCw4032kSa{!KO-HsP0Za zpjDV2JIq#Dmt{jwcAW~q2k%(ERPJW;^(zZQs+OCa*ieHQ8IRc4VxM60L+v0G|Ynkx$JI;KfCEYXK-;T3SkuS;>|ya;CGaj!enPO`b_ zPz{1LaU4(4DcCUPTyf}vfxs;h`zc|zo{$p91lLB&Q&N(4xra3oQ(FhhB`O)O0LGyKK+Kxv9-MMTep$=(7k$d zKW?wz@jZLziC;j~#~Tz3d-Hf6g}37=fGtF2;Vg)w1WpriA#4*qmWU-e%OOsmY}(gp z7VU=c3P#+y=iP~DkUV=3brY(5>cwHn+oT%BZe|D5<<8ENmVGaRsQ{o_Rh(kfd-@_| z+F;~$qDxw;ouSK@v_z3G2t}FVkfY{mVt7nT%IXPeZsat5Hoef&+~MgIt-6XXT)sHP zTU|$`y8s8r)14HS4RY|DPNs0otCQ|Bu9MQr%}F!tyS-J>b>3aVx&y0p-JP9Ow@0gV zZPUIfFrV<~hY+Hg3W8QYPcYi&E_pj$vEqiw$wB6k}bljfi`bBS*Crh1+c zv^J9iY}k>vm$GAf19x7qBjPIckr!n$9gB-yRxpkF72$1+5Ez3Lr{>k+ z(go;|)c~AaL)0*pRO)qusV7*!wr4bC{De3m@wu2I}kOn2>T!1?$6@xK233);8 z;Q5(+w#@eS|CEa29G$h!n3C+?tvhJ>4$9y>=*xEpCE+`Wl9mhhf2+5j1!r(RoZEW` z=ft2GB3g-+W~vuQFU_mgO7)telPl!Mkfb5C_cS^c@TQw`(;2gs{n^l9N1 zZaP-BPJt}|cEMw3q;D&Gno^aZJPAsJRGiS0;E2FtO68Y;G|A4`Vb?=tQ4lAOh2UgL zt*cWSK0k*|YB(`1tL)36#9-rku`ubC#vc=3OnI@5uxSRIFy1CpjpOrbox~?UvuMNR z9W!F_*%~VOrnLbxFU|=hf-G8{BuD`}R9pEyRfn#8b1AcqPO>RNAN4YM%*iin5H%pp z6YdCbc0Rh#Rw+)pDT3>fElmxrN+8S=<4|v_XBwcBTe2c=3^z=wAzpz@@3UZrQ8%OK zs&U6?q)#_S1Hb$TmCa>+(2OYf*FVrzSoo5+B3yztGUT%>Klx^?lKxt|gK56r?of9=I%_f{+$NrVN zwfg**+}|B*X~u=ytS2WC=8hAc?L95^*S&{}s!o0j;u5le;K-tAC6J0!X&(Q>J&KoR|hgezZDjawk91$YA?)t=PGz{~-9VQ}0I1sj3<3fn|j_HOf%rVU) zmQWGEz%KvQ%95(hLQS}tu8Q|zN<>U>YiiLLauM5pk*PSp!GT0ICdl#~_QW|&Y)U{9 z){AkPPVY^ZnH5B$Gb^X%&b2f6G6QsREn?T2eUt)xehsy$7BzQXP4?#6wTyZ5te%H& z=ui`?hyt*MkbXd74Yo_+bHV(2D)#8a@Bu@fMQEsA51Z0}8zQK5Aj1QtKA=ZiKvBsP z>rJh(jhkS>X2}0zYd7ICW-k*skFzmWwFzCWMY)ozaYN9I7JPWaPt%B4BG@nB2Ewhc zC0lsFat&?)@LlK=--J7Lbd7NU2-l!P95d=6BYtHR|B=-O=yG*^1N4x(T@AMh0Le#e zt@wxxb#H}m| z_aL7;1Uo=Au7L$KBEGC7-7^nWcK#)Bany~)>Mn*EP$C@D!sa?2l0cdgr47a*3y{Wy z0hc%7lp((9Nd1{1J1j0mI$JW7mxc29*s5CirL+Q;ox%9HhI*=0jW;a$Ak2?YC2Jv% zGC%*W8p+ed#9W4;n+w1Y8tns-yHlDeDZ37+yU+ z%YhMFgiud>G}IZ01{runY#|~+h|EncTB937d0|v#$M2U25qQzK^zomSxmiO+=6w=TIEEmNC1QLV*HrB!i3RnP&had%@Mvvy9AP2)r zK;po4g*^QludTda1o3+ z#QIj#u>&^179)RSQCwBM4j;usG|1dYAFw1GHiD7^Kk%&9nFE%D#YkYXkRSBbLEfOn z;o&7niB$29#-X7ikcrJrkWy(LG7>SI1SJi*_afLyj$|RY`ftR&3bg^-i<&CMMPO3E z2SA2Im*98EH6ww^0&DW7R|ecMEKUNG1};e$8k*rU5}Yjf?WD~^L>x9RK}m!=Pn(8> zJZw&ak_NxyJ|u);F%p<8A@RK7x`2 zsS79)Yl0=GL14OzI11SJceEg2HBuowwS7VkkAg7kH92RpQsrcdLb|M3fP8XPa>}M zz;_}8Hli*cLFt9O^Lt425u201q=6&+LqixYBSFdn-{l=L;&6EhN+SC6nnOY&US0y0 zNDc2~3D}fsfhbl2ln1U3kUM9C7l*@1P}0!%Rt*VxczO97OGF*npXuC?67)K~ykG){ zGn@a`lQ$y>^?MO6WC^&NSd0Xu6Pg2aT4!j;!{H_%p;R@mt`Arel7+yk-;D2z2fkAl zdovXqfr%k#^FRX?T;=(R?ZA5hzI+WX0u;ig4e~ODAs`6DNkGD=uE!;(>dL=>g<*3N zkT7a$ud51rh)_HPB>?%gzJL`$eGo7x>tHUE5BTJOzS2H0J-}^gn}Z%F^gW(|X#(yd zOyF!&tQluku@O4xZsBJqDBWmkXl}-b|7x2y1}+holYoRF@68N)=B=3sNCa!@8?Im5 zRJAc4ur|1S1SJUWtqocTl83+q&~QWT23~&|xD*^lf)d51mQ788D}!PpAQ7ys30Moj zKwwpmtxW_ykyu+JnFvY*wYV-DvEX3cXx#KFxd=`OdO8vGt&I?b!%2|B*x1^XSQ`&| zVj-nrSP4!X{Ky#ZJrBN@Uk$B1SAR>{}}?qhs#Gmf{0hG586&h76Pk& za~xkT2z9G2k;6>MICAYlF*3V4`6B zZHNfNVkIzfaMP>&RQ(W$)bfimHaCF^MO~whUCEnj@g0=FJC53%%$xlkmI4zG?~-p$ z)C4_AMJ(Mg5|AkBYu8rQ;KOE3RW;ba6|j!@meEduC5s)C% z7Hod>EO1llVI?4OU_)6QzfFVhvj*HpY)%3bMoWB1%ue{}Jk3Z@qQIwV<){0C)(VG@ zpajt>KXV$i7&I4w31KLlYueZv$dM*tt`2(Fh-4w4>f?hnEtufq zphO|>TEV4z)q#HySFLDhR)P{o>-wRvSD@Lj5tta7hs05~=2pW;K!RwA^HXyH51*Qe zphSShtlH|}Lz7%oQ+xy|h#_&ipA?1WBp_j6=V$QepEVN!iGWj_rkeFZAKr4<2vQ6! z4M7`8DF(6;q!{A0n*$yzq!`FXKw?+OWDl@BpTVm7wIYv7tG!c}S>-%}G$wXilu% zP*p!9#NlBjD0#@O>9s>5h~;4=FnQQcaIm}7V>T;+$wS>4HY7Ss%)?875~;6O_g0y; zh=BE^roqopP_n^&NgEo5gs#|}1SE}Eq5*eECx(VRTt0%7Mxvp*syXOcy=EdvIWXvy zXb5;JubBu^4%MwKwatMG!f+9&BsQ&CQ`=O#I(T8Yj07nUUXmHOEHo2A$^k2iIQkN} zBpfyZl7-+`lv^4a>W7BQ<>w|Ksl=L_YG(@k7w||z4gwN^h+#|6kO&7`j07eNwJ~T& zIN&i4FF{F!d!2`bI4nkjl0^)keZp8WB*fw6B`}HT&kO}@K4XTBz~oR>9rTr=F|rU? z{nu>TP&0JAi#F zl82xqVD{t>i2>EeOi(hx23+0?5U^etF8;<+Fo&?$H1U%3fMuYWfCz^F4NG8H0>cs* zmcXzCh9xj8fnf;@OJG<6!x9*lz_0{{B`_?3VF?UNU|0gf5*U`iumpxBFf4@FeM zSOUWm7?!}W1coIrEP-JO3`<~G0>cs*mcXzCh9xj8fnf;@OJG<6!x9*lz_0{{B`_?3 zVF?UNU|0gf5*U`iumpxBFf4@FeMSOUWm7?!~QzY_Sx=|8_UN{A3^I0AoT@wY1? z#O-1SL1GI2HfIPCi&ZTCScL?6|2sH4?RyrW{2QrLV=>;r=c4-Q_2j6uT|auSeBe8Z zb^m3GHur`6G`DQ3ZgxO^dTqZ@bastVD15i+MKnFsUH((_V)5E~+{XckpI+hb6}^Wv zJ-*xYL<)a3>Z(15zE^&~{*$8jwXtD|Vcs>mm$u{wccV4C0`&9OcBWWned2mmBfhge z2m2SpXN;~-Y*-yjY*^C(BtN~1O{!hTE>jfv?y0Yja4c3EkFCM?UTRf>pI-ccqPJ1! z0=HMrMZZSggJZ7vZh1Zm5rKY-t*l-a%6#(6j5w zejoM7ZFN;kmCKKxzk_!u{th=PDtx!;xjEI-)vYTxZQxyOI>AqG`x}?bl>4q$a^w5i z=)pe84}!+7t7@WE@zX23vP{yel>ZCCcbnb>4L3gyJzZ@-y*5qH$eZsry>W(+{&nb8 zH%p`Er?*|xo2>EqZqpl|LQfNN=u_`pq=TB?HdSq9_m^r**6@fV9-S^nYWix-uv-Y-O(q9fXj9;5m0z~f;7yC$yIc}9I+2>yKv9r)gV_Vy2r;{3c+ze0|? z4nRMgi(i&A=IifS-_UmX;RmYzdF`3@*+(w{tPp>ywJ=C!jg$42Ixy;8nbVL)duaY~ zl&HiXX~A4TIRAm3{5dgm6~290yME@CiRz}Rrq-EDXwoT}=9vo{nrfFcY}x>g#y8F^ znRydP4E4m{Jp38@8JkPd@*y#EQ*+ZyeEo`ls;C)dGgi0ajk$z)AO6Va=8A>lW7CBw z(eIQi|Gi7Uiz}`XlfNQC!~YFSU{DDRghNl9*%IzN^N2_m7l|E_Q1krl8DefBo`twH zSuEOCM)JhG-tpq`NdKkD;c z2H)h@zq<^+F1JwQMfI=9ROJ?G{-PQ`YWUT^vYzWhjm0^lLe{Z$Zb}^&yeb-tvPDIk z&cpZJ5m6zsR2ecI?}hrk7d$-zM;+M(hN}%wezFRE3LYf z;ytS0i(i6Xj24Yw7Fu4V^OJ>7#UEnXJ(@;j4{)v#jeEeCl0x zxDfji(3k9x=*9qgly!LZsvmZq*%InJvrr^o31@V@8V+?m@!N36&Ws5smVwU*@Gvaq zm9Rf%iDXAcc01GV1aH~#SLc-v49qEcml!`S``q!dP`I%QWtRi@wSj?2(?*{+KDJH4 z5`et~Sjo6|jbCsm+!zAycK~(*FqY91j&z;bQrh|IRS)kWU-5UL-&f5^icqxw82W6{ z=F5{`+%lpAxcB;Ty>$qo4x(#fb9P50QzQ#Q6HZipz3qN!8-96tvL~F^mFNj~REEU9 z36W@jL`3_yi@v$2+sTL!{Za7M6Q1DVWr8fz3(NUhMu#8I&&O8CaaV@eM}A&z8l0cS z{|o#)|J77}PJQ$TkSE%9OGf9JTSfA_k*%1Ywu%TVh ziiV+BiS9e{qy5>VMSnToi}OYQnJr}~qqOtX zM<0>xhWz9GFh3u!f{)k0$0_jf3d)RRq8*;9>WhH(Vd!XfDB8UslwVg!{Tq$;85r1K zIbQMlX4%M&%CO7pV>d@XlMjCL!0$TnTL*qiPTurneIn791AgxW%^dKX!22Nlu4LW> z^0Iz@-qY1*Ae`~U>9yg`zE~#eorU_3fQ(0CEDNCziLRcoNIw0D=%~zq?&A5Y|0+5t z?}8rD*oJ-+|4_8MAe7nImJ_|9GD}n}K>s>?dh3&w=a1}6l%by@U(VR<_G?kE3h-8f zewQc{k`{G;2k4O&?MCl}X!r5lXm=!(y*&S>=x26~5XpaeC8MKlw9>m{=S2IT3Fmix z4Ek3PpFNMX^Fw9b*M0qp&dST8{R=`9PkiOgfr>*fY$ZJ4Iyf@o@I?>_3OP3$7L29nhor*UL%@LfLg~ z=u?$wmr1{l_w}Lw?Hr-T7x?md#l#~$jeF>=fr|Xrf>p%d4ZXVsJQa=<`zl9>{_Cc; zbw8bvU-uKx`!3qO5P3r*+g8>ACl36_UcTu`ktpe7-bg&rw=_%a`xWFdkTLPZZqVH{ z73EBfcH4X$gUvQFTz8q0V?ijVZXN2Im>BJ!|5Uth3i?I~WV|3tTpWc?QqHF!*Li>y zj1(6O@KYFOTTkqwtWP&)cN9WS^B0Qm97DPDz-M2E=;6&c&$9W?} z2j*LO0&>VE-KmQ19?R~QBH#Y6WOM)r_TvilsU_%Ji_ymxb)H^J|1CrMY?!Td^kK~K z+Z2vnuW7p$d5_Y&-JnT(pEoe@`NDAD-0kS&cc4ziXj8wfVH+A-Lq7d>AbTA0ju+jL zEcQ>)Uzi4my1czwj;(KN1Jzh7x~?5dS!Hw;iUq&g1o{O+oa`OBb80~-udZj(&Z&Mr z($%|H*W1uK2Ky>PLx&!1iQ(;?*3%wK>66HDLbq!r+A4u|gdf(IEvUzNb;sC#(8D-n zX!{Y=!;ZHGK3^H?n;S>_`}0+zf1GpSFP6PiX1pnoku;_nwym+wY)ytC^(2*SIa7g+*-aMQWo%(19x{vW% z&y7qu>{p7S{u$G?A9r~~~T_B5~S=8f6(31_Lg zxPGY713%pM{X(#5Hc#o=;gvH3pQo)h{LBJBcVx&hrLhV&(zHVx^!g$2)h79(FEOF( z-IOujZ@H(eSiQZ5}n+=@z4h&S#_hw!BJ8&!YF${gngg$0rju1+kzIb@5c!{Qu+7cWY<$8 zIx43DALBOC9u%uTlss~AW(RzveWytG$xvq{@*b-Z$uiVGj559z4RySRwC(Um4(ss* zK1x69L_P|?oY8UEN;~YNP3)S2wEPib-!6`G-z=LS2^Y@AyyL;h?sJoQsMn{KfPd&a z_vI^V_ki9~jIWT{$vvQlI-{)ouJfP=eM7_-;8~I<|`A z{bOjC60}PR_+Jo;oHztIoY}G%ZMX=}&XepB~fwi86=$^xyQ4v!!9pA&=!git+?}N7W}LbX^EPg#G$q^y42{{rIzaS+H;E%QE(7u=I3e zMml*t`6kAJbJEBw8}X2Hyz;sad{>T9eKx)h<6ORItcQ)F{vXS2TloRVsR#8iyxHS~ z9OwRFfgBq+*7?VU*pd?X0PKsH2b~CE zt`WaM(XnOr@Wi(6AHBN`exMv%AAfX*kn)3lyEhAeb1;_Cu0$|?7`w6?eU$w6?#k%M zK|PtC&i?fv-QhP)-Kfu}*Zw>7JGI}P3TJh_9?nFpK+V_t;N$e8O+;SX$}GsZ4YrfI zwrA>yRmBr>yRkOZU+`u|X9PZcWFGur#G2lCF#~djO@~Yhp${R<*9HKKqko8y=&z*h zg>5?wJs{l|iGP{skLSVuf8mkKD{uLyzpF&MZOsw=vL2W#U4K62g5yR1<`0Q(&PBK0 zoYlGYBcn=M*5UcBNT(W`z5VI*+8?X9k}Nmce@gNd?SB=&#D5vT{yxS$n{FJDGPaB2 zXnzlUzH~PEHpm+`M*4=+(MEZYxvXnzOW#u{gSs5YJa%VBl`0|CJ=={48!#i-diYel`sSV{EC=rcO{9gF3=sd!<;rSH$+<|SPF%DW+ z7X9r0ouS+p3Zd7GQTzpI@z0gcFU}Nm+cuBrI0zYGJblT;@qPkW8|*9P!Fl5}_#Amp zt?PRLV^q%V(Y_esNuYCbH_F)xKVG)?=P<_v&&Bz<=pPfh9!8z`%RcED(ZO(1+O3yD zmfcdc3Nl1q0x{(5Qp65)T|(&35`R`k3jPG(57wVv4Ug>V3y(k_%EDYV6Maj?z&Kxf z2Jg=TzWD&!EL-)fFNDSZP56ty5A{boN7ca1UCBm zdo%kHYuG1_L|3p6h5q@G%f+JI8|3qDJfBze;ZRg;5a;b46ZyMQW3t8j-hF;3GL7?d zDR1;Io8~QN1}b_p(C0vR^O=GDwCPIz6T7~G{{0-<;SaF6FTzGe!6W^&f5bS)IbRRr zAs6GB{b4)W{omlrd_>z|j*G8C-@pBxu=E)ZX23>(&Ltnhx()oD!)QNa&kiF^`EwJy zzPU4_gMEZNeB*}#-AUyA;d=Ouat=1B3;vEy&%=Byy$$G#eIH|b2xGfD&w2&&KZSN+ zn=p>BATzV^80OzKpnG^kbpF!J$#Yrv7avyROceIa$h{2uOBsD0GCBn~c<&aYGe3;A zfCr1T{N=Mx{@IX!4&+}J%AU3~eD$11MlcqDF&1*bwxy$gKpnrJ9EFhm_LBA49q|m&o_{7bkMq1Z#`9zF%SgB2kg_}EPh2um z)h*QbZ^g(T!CYmJ5VH$)-M_2Tdq<*w!)`(Dv-V`1dr3iOsIdrk$j}6>qt87uvLh0$ ze76{T^Seb+<-4gvABVhPul9@Q#LQ4><-5oHW5{Fok6%!_-uQVDUHb3(&Il(@P_->pQOv&X)k+-`qQR`oJTcw`D@VF=yL? z*fe~8>WlO_4vm#-Dr*%VvyDv?uxZuQrH~*@#x4l^Bw(=Pvt{0@c{1uDa68l6PVKdwpWv zyt}eTx3`4~ew970tUDWRk8%2%oX1Mq%l`Y8?uBP=?~WWQX^&j9eSU9P$A@0ZO3{oGEi;W@GH z%4l~n;#Tj0OsSiYSIYc_KK>o>x9$MmzrkK^M;w&vGTWeg)Uzx5F)zhjX!{cME%;GP zXCE>#ImY13m_fVBxC_T8%7b$(=G%^bR}7uF1HPS%wM|j$B^cM~8;-jGYbKdrTUc`2 zjnU8G{o;~~cYgf6fOUfQaf}BU`EA{HInP5jpHgy3Tc118kCvm|7KCz7?1GI(*cFI^Ebl)Sr1ORR2zmPhEn1gQcBq{gpoUY53T$!K z1?ERDm0_R52Ywxvd3K>cFCp*mMcbf{AU^nD3D(q2OoDYjh&H5*@(2cCV@Ajh(10%%ABhsEQZBo|{koG#@Scm*Bd5)kyr(zkM z{dJ+v-j7N@V24X3WpvC&KcKEtKKH=R zQr8Xcc4yqp>)Hj}JxJT5`@tTh(GSDA#h@{h&mhlbkkwM~-HWmMHPn~B!%~cG^dadR z-w7OLYX@Je^sm*ie^3`Nt~BOg-$icaww3EbciulCv99m`AjX~Zv9|6Q(sE%}*Ja)L zn~G4Vow(W9%aeosT;-uV?$5_Qh6C7t179C}Oz8Rt_^6xUS7S~6vm%;rYaNE%4e7^$Euruu;G2w{OC&GT8YKL>zUn5q13 zL!180N6>Cu!#@n49BqzqEYv9Tf?hWKnFSYN%^7>mq@NN=^;6cNjAgK!rRXz0pJm6R z@L5<-GuGdT`Hx*T$5F$h_91rEYD@-e5qKqSxocfB75&pn-@V;5|2fe1BL!H&MxjIobvK1hoI z?)V@zkXiR2*)=zeC-PVV;}5R+HvS#zKFQ; zt%Ik3PNrl2&^I9S$NL7H`9i2~pyD2+`{f|{gFjq;dSDh}S=VGgHm&`9_`^FhGV1pB z4^%9Je{%tRW7+o5xgzRZD984bQ*`cWtZV#G`!CYZ-F8tjQYpF%kr#gDj-oenl20{` z$m@MKeTx}MQ8ZQh_};agP*(_hy9%L8%kRmOu@UaE!u$mLwcHq)ornFi40f3N5|*;< z5ziwH?l-y&G}vde3!|NRps^rZoP=?xh|qV+5>Ko{o9ANB)iUe}8-;S(L%HqivV^3; zH7JgicDaVP_kb?qi?C18e$usZY~ILI5qKky#XjC9kT;}JUkkuj9r(hW;Ajr`Y6o8z zg0H$necx!5@j&9jKJc52Ar@Z*p12-bJUY@IDH2aGj%4_H>+W|Zv)zyh{fZKljedUe z2>Ll?LU~|QeO^2iXRQ+JvAlYex0Cp&^Jw61fY0*t z*7bceL!)!YLIz`gGqZ0m^6m_cmU1Zp{LkReZV&LkFY=yfC-mZp!q#{nZ6WG8Ru*4`IFa9MRtfxngbQ!L;k7H6poiFJhlu zCxu`6zWI8c6wh(Y@xMG~QOW9wi%UMG*T{c3+Pk*q#CFhTX?#)472KGi!Tt38W~@(5 z+Xa6}>K^2K0&Prr6pRxmAI3A(+n0r+-LWU& zi;NQEqFHTI>Eo0_N66=3G3;01SHB9sntMqZD>Z9Ei0kYSm7|hRmt=NCp`(lg7h+z( zJ#jz4Ui^b-8^(j_V?G1__gVOe&%uxS1LmKc>)CSWS}WIH?i-VpcNn^E{JO&##{Zhw zH7!k>n0(~lwjZ<`@Q?R>2DDV4o6vPJ`V!{;C*xB~Pfvqf=npb>YSK%r^jxHGFB8e^ zs7P|1Vj23+wA)2rGkmUXKHFxOtM+(>)IMAIZz~{&O7tTrL-&Nt!R_5U;rIP#;}^cv zcJzO&p`5IyPNH7pfuA^a^SwFHwcL#&`KNGp*NXXDJFhBzc+Xzw!O!vcBL2og_ttlR zsHEZ0f|5Gm-UVIep3JQo*;0RUBH8WB0I$o)J`x$7-JT73U@p;JzF0g|2mLv_JXAZh zIPH+v_2UfH4%>A*kWa?$R6FE#{lH46ZKr)@JJ@56Y>&kBK8{&jSEFsWZP#GBtjCk? z$hFwN4?YfcF-gShca+?HS;{{CZ@{j!eJa{{>-a?_w@+PM^2{K*D@JAIF=moZ zuc@E!l+OD>XB*m*a}JjEGt9?tfsMNjHty@RfrFI468V_khP(!UFx*YR{Q~eXXziPe zInQ_TyBm4A&h$yhU-o6dILA8y-I|Oxn7>dYr@nI2lSOqm^cmj14&DxDOl=q0qJQ#8 z?z^3Qg8N^&ca-#75$`4ax%f5o7i;>vU^7U+4rAJ2^zRvjK4VoA!IP;c>rGoTSbf)` zzW)>aTY!JIe*Mw8*gwyHeWgIWJ-vTLKY=#L*8LHdZqo+&b^oo9+cyT)eT=u$&Z7HX zzEgSlgH=X49{$@(ACw2$!*|SsI%6Vu_5e09@>k04yB1&R`2Mz)J}BS+kFq;I?6yxj z9;RC9gYxh;vP-vC$^970PK7WAW35HYa{ru>vacS5F0$`3Hu4N?Pz14?gCB;Ug+7sP zUC@ZiK zj@E6)x&O{E_JN_zwjv+PxEy7C4tjGvbfh4x_Wpl2SL|C0ILpGk;pm0ni~UQyHn9JL zAs7BW&F>cwKb{RZ^~%(xz^cmw(1kCc4Dwh4xi14>>EwPu`%W1sd;WXGzVlG$8^?)# zU&QZa_=|?mmGz&4`d5w<`zNE!^Pq36i?MIV!{<#S{bkVE>7ht2Wk7vn8*J6>YU+8P zs<&*5%g`1dLm7(y$z2PC@;eGZdm7~Qci`zE#ImVhwl2&D9^?Adh1`6cHFhVu#f(6Lne}WbvPX({C~S zpJVY)`Lm5F|Hm+o@W|h?{{>n;l>eN`Vqc%5^OL*Y7|4|Ui1NtX6Ftp1^!?!byTDD` zpVH9%E$Dp|GVaMx?f9cRV0ZFR4&=u+oQ^ZU>GXIMsa=;qXJ}JcN49aHmRG{&&1ctGPui1_ zpl|9)n^B-?(Whs5UxaMF=qqmxWbvF;o=8_7WO1i(?Wie_@iOW<%c{_HZUg-mjGwpX zMEj}3SRX#RR*nPt@I`nwZW8AGQ!wA33_rkK^XrS1VZ15re6!)vJ(uQWNjdeM8rV4_jfb$#!`vqW?s1N-s1DguiLG)wF zOw~*6)uJE7cn0hHd>S9?t?VpJ`MvA%W>1#iKc_FU4LVjfOZhR_)8IXWguNf;JZ~?? z-)G^g9S1*GB2E;&E!tT&D%zj<*|N?N?~3-1ELmETTU1_Bf_2B8*ykOB9XgIP2q(TG zN?r(yZjR0L$GBcVdD>|Ud};RD_;V<8DatCptF&|RzxZ^q0aQbAgq4)U!Ho~`Kr(c^ihiu!($xu1bl!5^qX3CZqc=5#BvJr2?ItKG#JUm&2ew&MRtT@&QjK8?; zt;~+L(*sV7clv3>sZkeMC&WD%=cTRWe)1^R80t~)yI@1_2JICC1GDdfeYg_iEn+d_ zxL4O-|8#Pk1v&22HZ2Z%I}ta^z&szZOPtrlTtAH*X*0LOzG2Toh2eb$`bPm`YK-MP z0C^Bc($IX<2iS=`2N9dBLpk(o>%sSx0|T?_!1wg0rXjYb_-1^RZKd0C0~TMpoy3eK-VC$SdLy#RMX9An%KwzC9(%dih* z+3rXZ=WS&S4eLSjTmaXDGDa^-WackUJc>2=N8_WCSU2dP+|(ThhvdFZyYKCR|Hl23 z>CVZ04{Pp>KLB6$=X88wuHx`D4SS^wUv1#mE)zWN;MoNqkB>ik-smLu&3xX^<6tp1 z_EXLy^P|!J1JJQ{=+!noCfp2tDTLogyE_GSo(w(NF897qX`ckSaSr>{YBS%QBCZ90?v=!7{7@pe{&!+uNS_Pi9`1~^VCUQ+dER%228%xxvG){ z&x&qv>Lu5FkNybtlIyClf2v*+x?aRy*In3upyt4?4U2;pvvv^&F9*?f?p)c$W4=o8 zmoCk=11y*8F=89eCg3dpVNpEy5bxZ$aSZOxQS|0iXXi=S_eUo$1@D;C&ceF1+`klp z9zO#7n!}@=eM8rr!k%Ke7t!U%E)%v}?#&Ou=b(-hqI^kz`^YhxeQ@Jm+; zk;^sBBy8zP`jENc6KjCoJ873-|LV}U>hZS|V@MU>v4?0Y_Bx)xes_O<+RFlQ?g`qn zW7r4tLF_?#pB@hguY_%+fAr*=@U`^a1myDpl*_S$d`?5Z&IPY^;B^#uxf{G3&^GdJ z@bNADJsrwD!8y%d@Uk8EBpJv!tfJsHjIQn8$tXe8}XAI?Cs5k{*1yH5tjR~4>6vB zcIMftHxWlUjW%Z8Wc$LG>4zS$Eg`>^u(NUvk#oyyA-!dD^7IPPh`Log4cQ!m?Dj&&{5udDbt00#b81P}&Z*3A@>0Ipp!ooB zmP5uIk2i-Vx7+lKFm6Ln8ehQu1SO%|X~(fY=P>?Ee{k$T?_}5kc?NjpRj)}qa5RKi z0qwrjUFgcL0oJsh z(K$Kol;<~f%&8!B?uj% zQ5U{5ru^dQ(d{pS-xpsS*!PRpi{v^z^EE&h>EA62jc%u3#j*}zOpBl%y;wufg`F6K zKKFCCr>@bKQFf&J5NPg#&7{7({s~dSF`Til;u`oy zIEy|C_T~kY^*Z(h7`wxH$p_Dw*xrox$M`92#%}nohjAXSAT;^JI>eabz&G~f7-E%i z%wv0Vh18K1*cTZ`-fZyr2HJlC`xRvN2JF4jqwy0kXB;7B^S&AE>8#*+>`3c%eaypq zXqcxBb$A`RL%o~$Aoe@Jmw6NQP-FgiT`zwCYvm*R=2mkb!z8tjp$GUp6aM2WVz z=Xd~mPrM2JORZe~A>~?wbolr}Rq><|XfKz;nQ-5c{fG-O$AY0585gZKUMsd-;Y1N&VX-iy=VZA=3bY4YBe2KK5~7P1~+^422) zJ$nrDFKL{R{0YXVWjOP51n+gXPe_i!9OJI4S;?Q_eeXX{NRGk#&yQW2d=b9mi@Rqf z9|wHwuO=j)!0*NXIstw0oD(xMcHCb88?-m{Y5a~lQ5U)!zZl;_?f0k1x$m4*SrvNu zlRQV$z$((f;$Bz;K1MJ44f=3@Cw^I1?t2h-$ND(lM+$}9-!I4hM?x6;L(uCC=yw=; z?mdI`isj>R?C0Ke`gq(!^9FQ!H+&Js+`ot43jA_T-ak@wpMafNiWng0xC}@Mi{K2R{q=+s&^JX1Vig zffxwmA^!O_{c+B(7yK{Gucsjn62;uC3VVj4r!zZP{~qvKIZEuK9NI^z*fHyV9I_}W zRk08gQ^0(rVmaVeOkp;C7(1rGx|7y)+v717`h)g3*~{@cls~N)XRx(jv@(J5{x#YD)C20nl&=1f(Qd|)9Qnb9`s9}q zlQHs}c4`1Vs#mXA)@<-bzN)bI8FBKX>B@W+az725-h#fg9rM_!q4V0+c>SdO}J{;=}`ak7TKzLwx( zp}iS*FW4Iig_6tgS67614}7{_l*e^9>PQ5#mkMdS=DDRpy%Z{L& z0+bVnuSR^y-~10I?|f^(xuci9K@{UXV{vKefbR&-I_JSQ&=xF5d*(yVyP%8QFZ2V% zwn(D~{?GpNao;I$s6)Sn4-!G%;y2v9m@9koeoN;Sr@eW9%DjWr%ia&cF~t8q4e|UJ z;Cn3vzlgCsSW`JM$(Z*8)Dg&T8F;5o(AIGdUxK+Eb%VNm82FLf^AUFxjWuHX{Yx?S zn)3h{A6E9B9GGNi`qPdf&BPBm&xTCo7%2CCLuRm(m=_?niT%Kgqrqn0yBzXahdsy3 zQBECVhgIN-V!YRN5JFL96z*fUW>lZeK4FqXN&CiLhw%;_%!TRA!OQlL%eSq z{Ph^-YNe1NJaM&*EJZktFl26NFlk#;lxqg~`FCw!@l98ca0v?eizz&Z)nVsd(iG5ZY`E;>)5|7_g+2=9=|2+&zSZG(AWX{axy%o zOML3)y&3mx-P?2fg1yh&E%v?$_}Gk4^5XNAesj*(hP8%X2R)AKQJjw( zK)W14yRf|Zu*ApeMV&Er8_@uYy;!X$HF*Y3mLzh9qK5^6c;mA^UOI>?30ssJ;=LF`tQSiEbzyv zL#mzgyRy;FZP?#t-^a&2ux#hwVcp%{V+S5&9rsu<`#l+mDR2x0emY#zYI0P!GGd@S+tSt=Rch!*Bbuo#K7kP>x$x@93@XL z52StHOJ)r5rm>Fkw^Y1=ZNhjK>oZ}H`mlZdva{v(N$T9&%mH~mnQ{Kpdj9t&=6~OS zPXAj?SqXgGebdmF%3&Ld5ogF9m$7Oq*6n*>`?um8;WqTW!x_bMi?OzkadQ52jHiH~ zT#s1OT=c_OSe(2qH+p*M7{rao?fm#f?3*rrtHJ*>WXQSW9-TG`&(n7!wtS4Su&GVk zG0*nUN4c<<>2MsHE5PH#^f=w7+@As`_x8{=Tgye`g|MmZMMtLAm5cFpm!C6!HST1h zj&WU&XG}N;E`ux>54C-hGWZdTuwHr`b_Q!M4?gXtet`YQrW+mE<`*xzJ(=phx9j7uorqqWz{~*T&wFg(N zMR4DXd)J5G7vGO{M$Vf!PMr-;#u^sV4+_H%%7jm!g;>J~#MW>J`IZRQ88YOZiR=#% zo*gZ^B$n_86T3^oSly`zwies{|g#FGFHsqOnjVo#oj$9eRD7P zgw3KnddJ{C9r#O;pUrEhZ=3g@W!M`tp=)L)&cMQ#G4^j8>h}ohCjetQ*P`1|PEWqr ze^D*Y$080=44ini=&pub->yy@HII9+PRsV7Ea2x}vlQ)lX3J9O$`#O=CD5J4(4j?` z58`gng=##$PRsls>%rr>YOS652b1}=x~$$QV)ho~70|OYzs1-;1!ol@gJQrr4zXUW z=N+u4-go#q{Pj~8h;GKQ=tt78VLchgpNx8P?*Q|m&#l~oe1(7J+Kd`6p2dC#?19-| z54?W#$6vx{nzv<6A9*lkZ9pFG_j?`tF29s3lBZx3Uc($2pQ+l%_&oiKB5n7%U*LK0 z&A$95%5THGl;gn(z)oEd#hvydZ!`3obvlf7C(4z&Lb=AFE7v0pXJ95todBHjGCD;4 z*{$^_Tgz+dd15yCd}StegG{*wa14Bfuy2BO{W|Ei6^VV5-`M&j+w8mWMOl`VCumM3 zO|7Fp22IkVuX+%&Vt*&zzf!khzirvjKTW_lJ$PbZf9q=8g>qtGALVCs`eRaVO14X1 z8<29LuDpf5REYiEr28|JUHR(3zKpvTmaGOnb0^K!SP!BPP>K17p-23GhrBqC{{U#S z&Dn-r6QW(`8M7^DFXcDqb%nNKpFZZeGA4j=DuQ&zV7k^}-#q8F_^trjd0Ygsx1G?L z3*nPeUaKK5yPhnUy81ZyJ_s3@dCxr5z3171{fEE{^L+&Q46naiJEDW_Zu%$Xg8MDI zaaKUi#kjBE=w19zN;WLxyC|ava%7p?pT`|OuMX^g4f|c$9(~iJ-K|djCU!k`a~9T> zRQq#ou-sS26R=Ts9oa8T9jB+MBmFh*=WL)(T75uZKac6N+n_J^fX7O}q+GD(ekXax z_{;a%(4RIuJGKG%w=f;^7p7O?j*Od`U%!_CU*Or;OvOWf*Cz1bX@A%_=6?n@bRO(K z<$d}$THZ)&^U2$mJ>{H0|1O8!wACYnAzmU01|rLh0x<@7n| zfAS=v+4A&1p3EzC9VId{7l0Pq{yVzuZM*ZpO*kup zKK|FV`)JS|tlh8iwL8n- z-hnRc`KGqZ(6MVMJ6-OZV^n{%b+Vl4S_jG3V!V?V%K9bXbKEdCk$Rqux~8{p`CW66 z)`okmcz)fC5li>Dyv$%(x*eY)FL)*`mi5YCkOuw#Y&GuaL(I<9_Y&L(V`%k$P0=Es z=Ym!n=1I)^DEY*g-;24G!QKAVv-gK1D3AStdQBR*sIdbdqTc0Fu zIzQ;wD5Frz^;VQY`m}pd$b{=^>>uFc}p&Yyo)*tSsjI43E2Qf@z z*FK1Rrfm;lER459&<0mgBDkzAfi~z5k(g3by78sC(sqD8Hi$-=+I3 z-g_QZ?@`Et-+ZXVJ8AoEqp@*Ib({9yJ1{#A{}OwaKrKz>(0%Bn;=GOkFU zN5+8Uy%jjC0$w;5conoO(XP`ZeIflvtiv8fo^F0`M)`R8T^rH1h2ZZ1W3QHfg>NSH zFT=fEen0X6%EKB!MGw-CqAXAQfoJ-79|F(f`vd!`>F+{Mxew@vuV!|%B?tC@qiRG) zG->(KXs1uT3I7uGeh7M|%@?7~F9&?^J=%y#?@(=(y+fqT_y7CPy5C}75p{(7x6;j% z?K#flI!`b9I_E>26K)1i?C-Pz^lxYrDaZM!=TyWP*l#{}gW8|upF<%oRcCakThm^e zDQ26w>L;*Avj?`x*tYKjhkhdZ=>9y=r9aJb5$BV(=MH=mK&Hd)+H&XK@MBoNE|T-1 zysm2STnKwGAM+vd%X=crA$QC*l)c1!+|JMbvk7T(+=sk4NBIP3ycaweJ$ZghR!19b z63eHq*uMCkm~R~M`Qp?Q<%{QaEd?#RJnA-M1;0UkF^23vAH1ROd*)WTD4TrDM_#ED z;Q0XNU~Eg97U!?_d%C^wj6I!gFEjV1F~%0x@uLKE(jPx6*X_3_qT)LtfqSi@Mae?w z0ryrm{6Ws0X0iX%ex#!@Pt)kdotea=J&U6(%ALOY;Vdy5bFBx9#CZF@l7?vxVC8@^}w?j z1IFM^<*m`rB%rUw*yEc2L|IAvbD+ijhoD(}O4;tOR)HVfRc`!*xS8LhJw`xoh44M7 z$2a7n9*E1B`CS!k##_%J9WbVU`5L6df9BZ9_Y5CV{F{7 z{=Gj9e4cW!V*_ht?11-!@H`^pxQr7|Mx1y`*WTAMJ9=>T@ajtRahyHJ9*0S?t#`fO zY3u(0Pw<1#wwCtdvQFAb#V>B6hqR^D&r zxdh+8s(jJS)BBgyJQu8LTY0yY=QezE@8F-^JWKzq+M;+Q%GdBUsM|!;Q#@~tA(lO3 zop6^wbVS8}uwX82i_x>6RLiwej}Lu{G0Q(;pFHUH^bR;Sa*?E?bgj5o@$x<7M;vJX z~sGT8__`?5C?PGg7+R% z-i&jQw*+*VIR6E>w72)VHhZ`3@4o|0DNn@w$>SfkLf+bUCk=nTDxL4=I$y8lyI=P! z_yP3qXd?hObDiC&TL$Vs(p`Y&ic$#=6>HP(E z3O<0;k%vIf`01RxoXt-^(~9-_zcOAC15e&IcjFabp*$cjX@eo>9{3-oKat;u!LO8y z_EYG${s6EZ^jYK2Ujh1N9RC^SZZ{Lsg->S3RCYC)M&SM=J$V0hG{BFrCd2fbZr50ejTvQo!NQP#~!I|x0NX@iva zKdIX^qsMQz(+5kLo(@F?I6zK4;%IawB|_ot95>|1sFXOK}b~jZbnoPt3CI z9rc?2kKeyE_HLKv3+tJ3O^|I$x%^+|&OAQK>iYi^77b9fN){HC1h-JFD=4C^!=`bq zqPDIzh_wN61L{|{yfh; zGj|>)2?_1%`}>0znP<88+_T?v&OOgt?}s#K+%eRH!ttwIi{rz{Z>es>XT9FWbn(EI z=Y{b=?J?VW?@ITc;wHA2+T&Fh4@8G59!T7mdBL#nTvtE#5^hVsQe_I zvz6{RLj5t=qXuyg_P)*J%=cnUiwQQfhgZ*vCjL)zU*q??{Lp5zQJQCl*6nobeCE*j zhjOM&wL0Q^=~vCCIEb!G7lnJEzR7zoC*ML`Q12W;jg#i^_dz}RezWS4{hWkg);?%k z;PiEh*1eQx-^brOR=DzHP5Ug}9}Bz_fmikD<|Ra5bQ7zZC`WR%oM3leLVQz=xNOCJ(YsW3HPtv{`co zv|#LRS~qrFzkkKp!MN~D0zOi0i>?bl>yhy^XW?v*ARMjcTAXWoX6872RC0ti?q}T7 zS}IqCHl={MmUAujRrrkfVwv7|zh!Ti>OT93e0(vNd+9G*22+zVr_g;%q>=o86ZI(6 z(oP%qO4vhO^|fDDT$gi-K7TZlLlV9u6FPr6DI*holIhEk31SUe`vBFzgTq3eRUYya z;sSd|PiFqee!#~=&fm~SvQYR!NF&i1KYd1> z%M)&@VxPy~2D4~(x$ZmtCU`D!@YFb;MdMuvt_`-{z*fe3Y%d`Bu6w3sZr>)`E0!k5 z@{IP1*}Z|z5ZnGxeQWw9Py9FggQqxea~3rjPv!2LPGUacQFGTnne}0g2evY|7Om}Q z4|ehIXx(>f8OEMA1)R24(dS!kZI$b?JUo;$tgO3D*;>^D7Kf%F9o*>8e zPv*G*W)}++%p-X=?rdOpU`}HTOtu8~VY<&Xtz!moS7B34UL<=533gZSBiY-}&0T@N zDVw7AUOW!Irw+mN;1_4RI0^fDi=%zTdsSbw%Bhdve#n~oUXfE-N6d8{b?n&g zFoqV!Px=uvwS}(XlJ@rrr95j}~}G zd;5T<#n=}9_VKY+_Z>b?1|PzgkB`r}Z}<{ER`6RmuZK?zAHM+~(#?jC`yD=Nuxo~o zzY4C8bMf&S?{x$phk%ca9%}qrz)R9YKPqHh%UT-#VK_lQR(}}k#|jq<+W;@b(AC1( zE<6|D1N_X>`l*LAoLml$h`j~)62JUa_ucPa;3ww(7O&KEPc>K?OMHJfzhnHy=b5IM zIrD|_CjP&Sdu5*lKF_qM&lAW-pKRZkmxU!^9gZ(0 z+STOMNt^fMu7yOrW8M9l52?(fk1C1FNA;1;o=0O_wnr>=FcsoI+rDTx zvD=e`FVBVx-^U5xo}Q@`zWJRG-~IJI>kM>I#K#Qqeb)B1>Zxrp)50CxUW2(0sySoy_KEe#(6~3xp!34{IJZ?mooX=8aXVym-r1t7>Q6kKHxt|# z42tiGm$d#JHJfC%Ieu%Abe+%B%c}~8L$=|))7d(oaX^x$k&)|B7XNkjY1{dFfAAhfUf2BiQ|C0Fp z0cW(HU(|j&6@30LHWj<7L2D#c!ki=(9rn*04`8echdB0(^KneWdtk$>wWOz9+O*IwKo? zd*ap4=_T@RO9OrN1N$x53*XJc{e8g=3{kjm7Tk_UHXal5r13$6;D%2O?otQ0`~rjf zb@r)(+x9D(_i6l2vr9X%hV&a-wuZ-8L&mlgZXd|3=>Iyhl6tMB;TG1mHM;j*{G9;S z4(i^YqkDruwc~U$7jT_wRS%c}JJ?yXE?J zE4Y_}F1~Jv`gXe!_e@h4=j*x0!JpL+G^$^trvp{nBivN34S7Z|yvRId4u;XdpgD~< zM3*OZ-|3MH;T`D^yWg_w zf8jUhI_J)6Y55{**Qau?Ze7dZ3Y`ny+|Il(uBbSp|KDZ5T(!2Pq37xNb9^I9@gAK; z;JkFH@$?UniL%c(-)Dw0R}{$HH$Fpm;1@QZhVH<3@pZ=p@#z+vYtb3X8dqO%ZJzpq z1K^Ej@Kwke65GSnxOiO+&$oB};WGGk)m8DETDoMxPDBI%+miv!pW}+ZAQb zbj;Fu*Hd;5@bw0GO`$Uanv4&1m{0$sb>H!aXf&GNrb}k=d${hyAA(uFN4_;SV~-2D zubKgWZ9xr(e8}dO!Mb13+%hEJIOfBA#5jTe#D*$w;IHFeZyo!&b!bh3xexc!tYI*` zGyU9yYo~IS4q1A^-zS}@c%f?aCWL4HS8~S4_(soHA`7#5XV7*fwae+L!~1i_t=yTO z2g)}&JLlp#zRYQjH^3`Ctdj*R@dC@Gbp_ryzfCSyLcbK}{tf;ne#iNpPc9zjUe(52 zxu_W!#`uCYHmbi__^rND)+pNfH249qS)Jlx&l6MMi@q_U6}17{Q>^PBo3C?Ts(Vt+ zns8DGUmk=^)H&JG@5dNNbw_$f^@wLqu4wMhney?_X*px$qw83gcm1*Bj|$G1tmnME zbZjO2ZN*&u_cjpIvih8b?%lD*6Me$-JX&jj>-f&K<>0x@@opDz+#a8vU~okER6I8s zIySnPwT<6{@r6&-5NY1!)$Pxr{I~F16Pd$&`5;bzV{E=`EPaXspTy?-6k5lKcWbWa zn5&L{<(k{ak>SU1+t5x2OIuMeg0;)cT~?*6%iA z_JD%ED`tIW^=ti-4?IUbCAnkux)16hJy`eBTn<)xgR7>k!C>qmeDcr6?&0tz+3zcy z5g!lihTAV_{fdp44v-8-=j-LoH>H*Nda{=5Sj%z`C!5{|r(b4ecOAdW_>JutWAdxI zu|M+r8Scfu$d%pd-9p*Tf$^-8+6rQd!l7)jt<~0RxE%f=y%Ukcvh^l6B!$ zagM?sv6JTVe`o7!4#h_c{84bHI%};}XV2QJN!{DtW3OuYu9u%hKg&j;j~b~Xm;F#p zs?Nssr6yIi4>}8{>sFhpcQvQQ1(3OkrWCA=Hi^cfc`~k_+ zXx)bgeVQ%cT;5drIfm!*ijpbdOi_zh20Z?A(rM9p(*-=+pXaRJ^cZ+aI#qLawBGc7 z#)JoIR_oMqwfdwMa`vKoofE=qD^ z)J0#0`;uzSe#$#`Ui40fqeA4}@l4v``d0T$!tJK4lp#g{g=>M4aw;k3fyMBsC8)>P;Aox<;4!j=2|0)MBl zNrvBZ9DXaQSbG(u#so1X5k&%Yq4=KH)?M%{wp@0YAQ^?H6DY~UP8YdrWz#_0?XUI-7mxYL{w z6`?+u#rhBJLQLZ2mWI>8%YRN`pP$ag3%YV`Yx9$bx}37&tg3O8jh>867JcS(4n($E zeD2dJth;R|cPSmjKB)rT0xq3!CGktm3KVWNOxf5JYxF)aP)OsFG=Rb;w z+YTU}yU_VM-v-85VHgvu&l3~VdWMNl@M)xb^jrLVEqF3N2ICUsU(IHmB3>tcnLWc% zk{p3f*#W=Gx1Z;;9}eUB;eJK7aT&b5{|f4Jpi>ZY+9mdrukno><87Y@3(>*Eo~8|& zy0gWerYZI$7`2a`r8o!iPU#leKjm{8pqGu+crtQ>j`!`Z_K90V8|A;n*Nx84^mRrr z;P7=z`E`8f5&Vna{O8i}Nxm~fmJhuII?g1nIn~kd+1Ic`y{VZc-kCYa^JeJ#Hb(TI z)~d4ut?9v+@dE{aC3;Ztud&hvb$e#yV;%5TIT`x}=R{-3n9=?1{lna(*+0>C6*jAm zyiPT~lww|rmlVD^zF9p)oA~a4PtW(!Dcwq)PAMBws~&Y0n{RZvz8^4W%9~U1nvZ~~ z%;~YSbsydl3<2!>@0Wr7DV|GvvMoK9Gv^CK0^Xsw^7P^24aPBEQU4BurMe*W|EC^@ zUSdq&=i1|d(8lAh4i28*bIc&cLnho9n=d_aH1o?Y&361z$Ua*8tZSf&_;${IvFWBW z3ppdCYt(*BPhn3C&sy_rt=a7p${bEIc<25s4=2a903&NLAL9aKH;$j1Jwww6ou#~* zzMB#D#M%)VlwUwC$2xGvqXyHJK~Ymaj^^&rD_e^n4G3T$aWQ*y=K zW&}CeX^X25uD#yPDcKY6OHaSW|1DSRJ8T8)Rb#dE{GD4^O^mysVB$CEl_t6uR^fX) z8(k<~**1u82RcUm$)sayh{5>%%@B_ZJ=@&n)@(8d)}z(lML2bC&dAN zhD{@Oma%Eq@=UsWXww=uTArsk$nzAV7d2iInTUIOWH|oNE8wLLKG6N=&;fD&Hkq0U zpH-2A%gRh?aya~%J$F`;{Oj^iX4KE>0OTc29$-84#$@C^ST}hbjXjUC#qZ?c8g%bb z))C~a(FMvAn$9u&1TyF1F?VslBXy1EIGh(kQ;p->nY?w4;NeE_(9ya^`2^R9ul|c? zW%f6Iak`T4s^L$DdxXco!G4gvZtLp_ao*m#MUT%1p1wC1_KN7Mi$gxk(O0skzP`HJ?fs>%x}Vg#zWVxB>Z`5g ziG3qHF&w;p3C{BI#0c)a`ttvdCwgrqPYAw017CYQ@dnRylqbd_+q<>F6Q6M}YQv^R zc;Y`FXKh&G#Q%SJVm5x4uP4TW*9%(ViF3Jk;{T8*eg!OT`8CH-mpzjBjQKU6_R95Z z1YgA#@WjbHQ`NJ5zsBE_m7^!_0xwlgPaKOZ$2`Agd>)=Ci15VEJ)Y2>Og@X&Tkrgt z-$Z>W=A6o$rknPS=%(YCGsV8!_od1sbDrhqtXtjE@ZNXWd$0#!6Cch^d{6sp!BFGQ zgvqBexSEKs$`+g6N_-XiS+{w9mU=?8 z!5+}gc9kSw_$aHlwuDEQGN*K`@#w7)9{nS8MtO92WX`|4ImM$x9FO|`exu{fsf;au zzlz?T;!*ao8GrxR?eO7L?nisDw^wI>ZkE=W-p2H@i9wl}jFIB}9wBrkj*CE$^o z$o?Z zZbhTV|0?*F^57sIbHK)y8SkEeEsFHNF#o!KeJJmu={V-_{qjaTZ-;F>OR#xA-z2t)Q5PX{A0zyO3AU5Bp+Uu)hR#6 z_5^1iJ-bI-DQ8ac(IRio>mqahR{W4-_xdE2YxC#4%grgBa+Wt|p*v&tqsW}%!F#7m?6FKqcoa*MJ9;|`yz-881?eh5KMswCFnYh-Q^Tf!Ur!Z$Cr-rys zP`l*Md7hiIiaO$f-kgo@EZJb@OndZ{JYB$?(k;>*2Qgc&~E)q6M2?E{_@6la=(Gj9JRqW z2Z*P=?{b?9k-wS9R#jd-k^lW@?%^*lfOnTaYT7`ZvX_G>aeeY--#1ByoqeYkKRByn z@$5$ET84eMI<_k47RIAXf_QXq=%zTd@=boc@-g5a%KR^aL(|QTrkj~F&728rp6E?a z=vTe06aaIcJeX1~XPi#qUv{mz`T_3ZZxi>pKXJscVP^f+n_!JFZt5Sh>5 zI>LYL`5S^&w!Rv8QWi@?FE_dPoM<+ddueR;C*ZO9oJWwY0%WTTvW0vtinS|SI~soS z%2xJ!KF#MmUN5=Ims|b#dGOUOv|EC$I&$7X>!7FP^aMDy-0E2NP6rBh$8YQYlPfEd zqdNScte&IhGthIY4G7O?Z1-We=?U;M4V=d#Jop^=u=9S_i+~<4(_`RD*Tr|8)klw$ zSK1nVRPbB+!y?aHqmQlw=T(ODh(5B||H7jaW8P$*I%iAh89iM*Z!I4%QkU8jZL zs0wSi^bMGjH!tSWlq3WMAKP0Y4j`Ynd@$G}=mk@^onB`;+C2y)!t8kr&eUTC(%*oE*qK zYK}YQPxi;3T*db|1DnYn!uB3~>wKc^I}SF!X(cc83Fiww;9Dc%-n3}qZ;E_BGKB99 z@UqIw3+de25d6p^JU_B4Ylx927mr5sLT0O!7m9hjuoR!}1o5Pk$F;%{f197#7hb7? zS0s-GkFS(k0 z)Kcv!y?R8Oo4h1FLBhGMC+1KGLm7VMb;si8V6#s3V6omhoZre_KkL}uTmO^5Cj8al z7b%CQwM>T}4Ic&QG?wi+Y!O!dtQ31-*vP-iJB$zTT^MwLjXMCcO2RGsc(D zD(!H-i8&J<&WCeFFHT7Cag`Yqb5P`4npqz?@fKn zy;JDw(FS&fk9f}VUv(b+#X~=lta43b$HhbBQq9N8_N)l&hMxO?I$HMGuN;HUMNWL3 zt9qZ{JRR$9jQAOW9VC`mz1sC^a6aFz)IMqq-M@$T1;Yl`SH@X1*=gc8)1vih1B5qX z2Kx49zHb(`7qeMSzGh2kY~LdEb@##>$tj4wk@bc9{j9HI?*=?TPSWBwNA4KrQmr;{ zD)`@#_2@apf&!Z*JgJ6{YlYZV;pAI8Q8S1P2Jd0J6#FvVl)+1?(df!p(#`2jErVC{ zjQYuGJe|+b8Z?e_`;V~()t-!cwq?fi0S?>mOW4-gf>{oqqPc&zA$z8w{l0|LBXNj} zfh}Dc%20JH{@fdV!aBx$d~!9oxEWmFzhPs;7&_k~9x@&|sNjsKU@Jv#jwmS2)G}Pe zIx=;v*g?fovNkmP+z;G(3yZR678-y>dbtWY$|sYjxpz3vmigvaY$1K#I6o&k*V7+S z>tKw4PU4H}fj^;djzB-_L)bK>V79(ZUkYtAXRKX6iy_4L1VfBmxnd}5s9V+dn}*Rh z?d?g2X20{r*q1PNA8KRP($`<#6w{dchM#H=H}GwNwsg`SZY}GH-86EZ-1O2V;6UfY z@M{_}dcd9Q*&f(*FOF^Tbx{+&5AhpT%;H}#pxm_8;QIoTp>=qUr(g24^TPgc!pS+2Ght8ZJ5~4)e!s+XGH1d{k`Doc zKSwA#)Fol-{zFd1zZXXj3tl}Vy6pmP19=8Fy0(Jf^mxh9spWyphC1~h*f_l(r;qYg zM-zLcuY}~t?AtzpUMxx83`};dKYLz-!SuS`5wDl=d`I`QbF?P-umTyDKDMzXC;m4( zwg0*lfA1Ay4@j?Yaulq)!zO~ea?l4tAz(@JTiRiYBf~j@dEN*<$REt zJO>YF@Riy*_C+jxP_6s~eMeGzuM@CCY53wm@KqPtcPS=dbJV+-wCX|TF-Mv6V}8XP zY0u6v#|yEl!L{mNWA9pgLv<$g-n*9xK5U=a$OL=xSY5wbee1y9ZNk3ce^OiBz1H;e zFBv0&FDG1#K~~b_DD3%am%lg-TTtd**ZBqV5?{y$+BhG;JKy)l`a@rQHsXmkmU^m3 z-`NemJjr`!+kVXdMfRO){KL)OVQ()RVKAT1J8}A|+dPe~W^yX=!YZCK-0mm*;3InY z`65;~xOSSu&v^dtNZm~j$D4(Dd2=|ihR1@qfZ5oO@L|)|E6($K{JNjc_=X>or;>~` z5^I-jkc^mpP=03>I@JH}<=gK08hkf{tsFWO3#ZO^GuahSJV8CDt}Esf9ozTso-jC^ zZcS>R;H^_~RHz;m?yT`IsP(;u^8@60<}AKsV6cy#x4LDsG@yFGAds0iQ>lWjZ?tD&q#GNBMTKDe;gLQS3H;;YWI2C#-zPCYSZ{o{V7=Kh9g5rZNnXbKchmX{ zV+~_izu=Ki{ukz_w`nHFRBwGskcIoWSB0EC2>%+ss<+9HuX=D0#h3rRms1?Bnj*aM zTg{P&Hx|GfX~!FaRk*rZuyW1tvp4uj;eQx@RG%x_-%ZaX9~VPe`-ewyJ{vwUd$Oa$ zK{@NZka6o+r}k#H&U)9MSNDIw{TR7DpPm7qcs%HTr`zIoEmzCW?8f=h?wm8-hB)E2 z$S&XCo!o=E;4Zb|1I2}!whzChySz&*b6zyu4;3Z10dM*yY2)@sJ}7@vXH=THgnOGN zo)6D09nH9vjDHmK9Lap6InO$Z^Q>Khxcp7XZVdd@J<3_;p|QD*yx)kADL>(>y~17- zy^&}2&sU77@8rXpC*wn1%X`bYulXeRf^R@U?}-N667nL!Sck-h+|09rWjMLmzQR{< zF0&};wOGt=`E|PgI(uQAzYKFLMM1yC?Q}mlZ&{SQhW$|uc#RK<%~c0OALH~yLpGNNw4A*ixu%^nxc#X!8ZWB#rcI~~QU{lK}V?Vp%WqqspbiuWE zZ0^PDr@SnfmcnP`LFd<;%iP}#$6iS9o~Iex@bsHJcv__U4o|}zo?`oicoH7+;p$Si zhKh=iM#9ssz!Tpq#8dTNt>Z~&TMXtc!Pl8?t{V0UhOb+IS>N*2@9luOu6O(R+D`D{ z)9=8yISo(syN6?nzos%~fV%-%++D%7ssVhbs})`y>|kr!#f`HHT+(}4e7KrkDdG|T z-D3E~=k?v)`_=tpLrk8Y`6qPk=lG3p?kc7xI;eNc;f~KvbF!p&{P71A6ldgUJ2!S^ z;6KA>(5RC2q|jHAQQ@u_c;n&k+4^0`JCYOeTn#>J3O`TJPU*Vyim~(sm>PWlg74b^ zqk4Vc;rhhrjDpXrH^GNfUGI>}vGkOHK9ajBk^O^uN?ae=KTOH&ANnPe%;Uoo(4Tdb zI9hEOH*&Ug%zFCNtft3>_J13%j?D)D?Ei|AuaN8V-;c3RjDbV*(Sp7c$jCcSA%9=z z+pC_v*ZVpzakcsbjViAlModR^P4$X3+yoE%u0CrCf8Ykt}1M(I%YIsQ1}8UJ^n z7l<1*abBzunXh-U^B{Uty)UJAyECSZcfB{B=GiHDrcZL?BiUzu!7~-WWApUj8GB#v zygWMFcTq6fbCSQNy@+SQTk6{)cxr-u59etazc*u=j9mnM1OE?sjmlV0$r$@ce~+G( zG2#S_#rFq^8TLs&=fQmnaBtw7ob7#gt#Dds$Mb!|ZzXvE`TF(v82Mvbo1gvMc+uiu zAEF+rrx4E~o{)(xEoekvsjo9**0d7Ox=}U`JSY}maxR$<&R?NBmOhCNB!;E)D;lTL z#Rjk8y)<&G_o~r>vU~n_)Gd}g&#j5`+Ckn)w(lJ97N=fTsI*fVc7wEeK z>btKzRa;}%8NS?}L^}Iz;4MQ(%U?Yc7^RaX6B@_%Jp;P-U$GSZJT}nJrO7eCBbz=M zc?fcZ=x6_V#W%(Vx`qD#=b#&qFO4}MqOaQR|Ia-BxaL#;1(*X|xY+p>=+_v%olDc! z+d1qnaV6`m^729F1Jm$;R(8I&H26l^5$Q0t!+yA7TjZsV9t(bKha3?6TbkU}@vnLW z-p#(mhfU9m=I8M2*5)D)c64e)9^tK=I8QI=-9nt$YF5gxr#~coTZatz@T9SOnf38AKI*Ms~}TS5fT2DZag;Pe;kpq$9m_A7w^j6c@#X&o>RPJd&!9bPxncV z2L`+LIr~i?9@|$otqAiQ6TqwTe8^Ogo7cB=^o;mXum|T_;m1<==xoMU&V0S(p_BDo zmpD2Xy0e*@L%#H1;P*iO;rReYPgg~IGg+ON-qn6(Chu0c9*P_2OB~~G>4ZzD^_8!R z|L}rhGDYmmi%%OhzO-ue_*+rHA`eEr!d>wsgaPTrN#^J0HJQyLd2i7VujF`BE*2a^=`u;0$q-iHQb zz+c^eK_>p{a90iPqPC$m-uLZA!SuwK^Wlf82<}6Bv1K)mKVvO1cb+&}<7jr`OlVhy z&uleBsvAi$uVP=K#dygfe~V59>ZuSrIMbKlZt*L*RXz7ho>LAWT2CUn+1dOv-t8tm zzAnZ-r4*W^@Hc#2r|(#pE~|F+=&F~Ed+?Rx3*E}R(vzC^?q>9XgHOMQbAOudqa&j5 zUe5J2_|$W!Yh5|@#bND*5AP2hyzowgbb-NE_)451#UQWGZ97D;lGB)fX^3Z@=U(xVMmb>+%Zj0QLzjbt z??m}}VnD&p6U`4^O@2Z;z6L%p-yUBhb2k1PePcro?h~7W@T^+Pef}0a#=m^eKBzPH;d_#6#=A+uM;%nQ z#z%cH`ntNI5WWWuKH~4nrA>DGoF-Sli`@_6-3AwReSyqJ@$x6;jk&%lHwbt5JnAz? z9|&Ty;_<%81UwM+c?@UlrGfo+`^x|r3 zoLZ~C-0w&}uh_|7wcCRzu4?%r&Psp z{ukgE|A?2hUfF_a=-dQrnmC-AWb)`S=xy|S4_aAmhQ$wr^Dod-$ZEi=Uu+7;6u)as z@oAIp%Wm*nxirmlDf6h#@*{6dtFzRYZ%g+%ogtejd}yyDcm%`4yywsHJkQrT817V_(6}1U&H#$$k1!T=4dB%o$AA{-Uz=|@&-`8Ux!(W3 zV7@dxnk{D?oo`R(qjzKQZTGE-D}C4Tg?d=qH*ku;xB6Bq4(8je=$XNz+`IHx&D0Qm zK96{b`!;kveWa8Nl)S4~x^g^<;mn(KaPw>1#A+vF&;0QR6j*MjcXEF>cD)zBnJD@> z{k4K~fhlMspG#wyTrTO-H^}XjyYEZC4?Nnl9!mU1uqe0VKQBFWDSTwSpnUBT-q{m4 z!+mc_a>AL!-QgR}wPc&z?>Z)_+gTBb2~vmRdN~&-pJ6P2KJn{RXg!p*XwD|r+e&`U z`{?*ytebT;?8f|pg-?4b0V7MLp#lU3{>vS;n2Bs>< z?}F!T@_y_u8m^3Eo7rdha=Q#X>bK^9pTD=(FPqC;T90(Fa;R6a{%D_O!({JP9*5WoZ-23$&{~jTJar~=(kS3p^+0*F1D*O=5ajfv?e3Di8 zVx_>W{H1Ce2gB>ogUjbSK-{#d^k|(>a9)sfNkZ<9gGl)kzzdzbHTJ>g8zFm;v+mht2 zdHB|N^jzW1lR3$x&qq^PLqHdN>hN2lCCQ#1A5UZ7V(**WisnHa*&A1RqxRx@Tg!JP zjt90RzA&74&r6E}n=shmS3O#|pKN8XU(3cx@V6TdJfijZE&lfA zXSEi>n??_-w~ErEt+QI^f{R+{qTX&>qMuZAQtiHnG@kD;n4Pouz^CMVB;WN$8~0t0 zYMyORKjzE*rGPE5ciXwYr7O@+$hGWWHS+~FG!JZx9c=PJ^jx6NdCqczHLgFyvy2y~ zK33OX059@2W7yPj4d?}GU9>*c>57i4#uW_Wyuf_r{S-%$Jr%w!_ZNJZL^a_aTz))d zmcc|Vh|Y~k&ddkUbF-ZPFvFgsHbgQtmRhox;6by$b--K(4)pyN-7g1@X5=K;FBiue z4uN-4rLl$y!0zh!gMOYrV~vX0h?bgfp_^~An@`VHmd1uusP3O_4!-N=(>LTb-z?^<^>A=b1P4>W z!90h9)ON9kHQz#hcFd21p45;;=NsncYjkG>rn2Y#nK$3a$b4g&?{+s|yl1T8E#|9Z z-n{E0{}!EZS6d%BIIV9X>pR_>Z?DLF3z=_AD`sD)pAZeC}SVTlQX~`zFL!?p_+ZVed7${XjW!QSljiE_08$gE3Eb_wc)d zeS&XCH0QrRK|f;GjBkgtreoZiV(3brPyD|JbS+x3l<(zC4eH`blQ+!`ec|cU#Yrwz z$3IEe%)+T+bl>8h zaO&R+V|4oVPQT=bzl#rA#vbk?a+7ngGpUza8ukTWoOa6DJ538}L`svRfyw50nmyJW zu6HDE^+Q)1P-u1my<#}cjZdle6WK=AZj6@Ng*#O_7^e19oh5w z`18k)p{E0T*~j&W35%SKtPm~4*KY?b36h1$q$ykyc1aE8_NFpx-eQZ_5^U15$~oiYmxt)_P9|S_c+h02a?&i z?|he-4SSo;*towjmOr0hR@`bA)*yX@-x0*R4`e>oc-_PEW`Fi(-|D}s=jE$6@!buL z^L^Hy0xmxuwk_idR^5M%zsW`A)TKR5uE@8Q+C!Ja^Y)Fp4}n2F3T~6FyU6S`x>ztOKM4yks0|xTFPQG!vw7hoaq+Ng7le2ZlP%|^QpyswyshcS|Yt;BY z=ZzlUNS#VLsFjwl5cUfR^H^b>(nsvquWAZwW(KiN-*0d0dk>whC*s?H0nMxP%5nbv zxWAvDO3(gMXe2nQ1NXL{kBi5={k-@# zSD3r5SMwoFUVp8&zPr5~Ubp?O=~3J7z2#sD>#@nDf&XIgFF7{ZUhq*!1Ig7w z?r*32&S!j(dnt4vwPTsSPmj62jprjLi>K{gtM?Xx-;1Dy&*wfLSRp58~wCbZ*SXu6JixHTFA<9b*kX+~a_E-2NfFiX}_vY)No4~2Yt>ypD@W2%g?;YWRX#RB!e2}pCSS$8aYn>&zbM(3hI#ltu;qd~| z(mTtn{DhCkxvzAaUdCCvm~ap|$NaLxfq1#e)vay%5MCkYD%?EH{f?gVKG@;K@;#>90#JP8T(c`d2qAl zm8@(0Zj7%n^?NAeOMjn1-s&~-R@2E_t;Wum;pdj}zUER7p3vthO73(@_vrzDLbI89 z@~clr@~bm5d8*>%CBUaXFE)oi?#7eDajTeDxzzDIYktM&_}kPu;X4#3$9dP6b6vHI zTN1Zz>%2z7qo?$U&rj{eY}E%f+JEHaN04b(w-r6FQT!?2dxAHkI)AB)JD%-ek&NlN zOQ3=1^d>dV`W)xJAf^rO6+|FTfl4 z-YpS6RDJv2!0Dg;5zO?$I7R1uUIJd9#=>uS#=CE_1pN8&Vd-Y^d%iO<|HcLhrxkqb z-Nrj1pjV&deC9CzJpw+p`=%!pqtqT_ysK$BFW~Rq$*VZmSw-GVdkVp|LO7#eYRNm{ z8IpII)99x-*Ujv+g~vMZe$~)i8y>E!Z}L5!(Rh01XOU;DZcQ<X;~xN;_rkAi+dMdU`-v92QuiYA(@pUe1$izhidEFCSm z7AymJZlROu(;OTcuZCEB1GL~LEOKc4U6BwTHfV7IZ&Mw`xv zyZ59URL3Em(exK`J#N2V$aUX7T>^cpoc$QAZ|`{aNp^`I(krya@LX1LawTKMIj62Y zzQ$2ak>(MM(hF6LSLXBrXR-o*QO%KJEz$w9d+M>MYuaCiI-n$Z(U|T*j|cHrM{9jv z1SXS7i!ocxM6vJzu1!``tk3)v!8=&+a?Nm3ON_q`J+YcIxIDK`>-vhkr$0u5+`tZj zZYWMZz}%)AhO)o(`O5$MT4)BXPZF(VE5$2MI(=cVsix-)CnFaDhvux}jI!M~9B&KE zY0i#o9d6u!hk6D))N|rg$7}y|aBHqXw|5q4GeGjBh zWTSfUFR)KKcaGjteq&94dRKK<@2WvLH9Jr6ZeVY)J9>6GdM}N>ZQ85r><#p1XiH8m zb#OwDV9lI23HU&^PiwVxtG-%mzD96TW9`$li8I^F2gKJQw=0&?w`x6bhP|t(XJ*a1 zr?swSEirPi2e20Z{WTLu0%v@_GCgA0Q?j3&vv}p6!G7|ZSmMTC^6v^@Tn~=5zSV!u^894> zE4C($DgG9n#mkMagfXlhAHc89?{AAHJ35-w(|g9o^vA1wDID)BXdzo}a;&}bh>$)R zIbQibcFXCZk3YrU@OREST|bmyt?pa8BUz*17W_@mg>&5|UroQ=IZ*Ly41V?J-i>Qj z)YwQ~3SzN2E!o4!?<;ivN)KcvYR69?M=Ctm zn2kW!?o8hg`4zGY(LIA~wBU-n_rw>4yfYJ?*7fc2-2!_;9}D45@8_F$fA@Y9w!r*{ zH|{6i@A?y}|C7&?=Yf+dN2}G?tQdbwXUWdz^B>+}tSW3lYyQKDj92F5b}8d&tS#{$ z&N-1lb6*C$Rh;|@W0()Lmc51e zPWaM4^L4JpkBzR={EwU5I_0wp_v4^@6|@wdHCFV!v5wb&>E5g7JMe~|Zvu;GA^bG) zZBw6D=d%{$)nm4RR}Ww;^%ZE1SMOmwz?q>me6&FJanD+r`G8@ z(xa<-DYd7A9%ihz=(?Xr*L5AB>$kUpu64lV)6S>shvZ`Xdv(vZG=%lt#mO6a&t$Jp zD|9V{hVl_a-ydPWr3>V9N{+L8u+rrAz@J99NXDaa82OyhzCYPGOiA*`dEuAO*(W(S z0)HI)?fVAJ*y(0sJn6=khWKFO-{^nAYwOazIB+W-`(5VI?+^K{|1&(x8Mr2QZ3zE& zG#>s_!HCX~-Bg@Zv1rA^MTfELbiR{1Ea39#kS`Xkc(ug=6c5r^tMCaVBYxb;WaJb# zZw)bZ^^(+luPq7ZOGM^lPm*&kUHg*nKZs7F|BHIzT93vi=Jnwe41!DjP&NJ@X>3GG z=-Wic{3AU)k7i7Aw?jVX`Of5A2DmjQUEJ$(=$3Z=zQOS?;E)b6+x`>inR2ocl{51dCK-;r_^x6_CNqur5C!TH z5Z|*F-4nz*ZfBmfJ3o9Hb0k>1`F`T5dvqT-a`3^v5!^;U=N`?)To@+YG*J z&Uo75!}qM6;o$4Pg7@G{qx*7bJcxP=;iz16&hD3|EoQ%bt-z&+|_jPVV??&^7`C#mfj{C^vEjz2@{@H-< zNUsxL$LTC@wfCJ>({UUA(=sEYW1NnAKzM-nd>vOHJb)YF;QseQJeiJrhI{#RTyIZ* zHM-og`0O)uaGm3$-)k)Xwz=jr7QF*9XFY`HFn*xgkfP)%&$X^E71yp?)6#I{f#f%+ zE6}^97nC2+Z>{xy{_YI#B#bV^^-Q;|Kp&^5Q8AgbI7cCDZrMp9^KgW_TCjf3s}>U@)6jBwpIV!Q6KP2@=~q&fax{= zJ0I|6H?Qvlp8D>V`+)DFOFHTU-p%-J`GAd#X+GfkA3jX~7=pn#6n7EuQ_o)P;H-(rxB3}qPR&*5&QlF|2Ut08lIEV}y)^e9m|HTY@s4+MS1_K{ zP%7UyhlKYr1%FF7W&3mJtb_Wr>HEv!H|I`zhWbr%v0v?v zPs!ZAF7?NY)(x)z;S)iB%4NJq%~8fLTgaL^BJX=RytOB@ChreuO&yf=vD+rb91CvC z+L85^k?JYll^);S;MMN*{N9G%-`mntoW9~+yHE#1PjCKJyPo3XyF_EI#mO%pX_-+E zy|u>>E~~qskDwX$A~;`zbz1lSA7jMJi<1SloDYLk`S|98 z-yJb1uu&fDvw}TSaq=+-d&R)mkoh}>dEW{55!)+|&DEN!%fo)w;yd+&us+N`pB(n} z)H_;-ji2oaQJnmf8@sS1Hl&{C=yMyusb^=y&wAG2sB_QO@T_`_b3mUxZE;d`d=q>n zI9DCiaknzpG@}9j|08Z4Ls>_fo{m~aA=iVN7WNry&ny_!pY7LB(kF9miVl9`lmbGUNAGD!sJm>+hb*b;7?yDB% zeflMQMJ;nsYr+}2xAvnx3w@;i3CaPky0^=8d*9Y@Ir}^x58|^VIGoMeD%{#uknj8x zYx@MeN(O!2+0kh4aDFdxUxjX5>fjm%z6DPlSc7@!NhI0aNN?!@^!J{%-1>X>Pd)~G z>f?L|bqdPqs^^j3(OzO*X?#BCii_@HO+F25Ox;&J#nz?Ywl1U5eAb{d1>%t!^o8j3 zSLRfXH>6vi^4bf9|_`4Tsec;dRLX^*53u0>hlT(??*19b;)HeqGx#zN0>AsLR=qZlwJLCa$ zrN^_6G1dp@zO~@FGyAC<$!%7H%W7~LjlZ2o4^8d&;_zR!n^XRG7=PQmj$3|hGzRw- za0R-J_oNHfz~_EU0vKhhYECehwWH#H<>r zAJE!t4TAGo;Ii*#{hFL^u+BXGfPCI-fu)LbbN0S)@CfhAU$_Ar`Pa36jX%i67Z!XF z`javCUb_C5U|w{jaPE8?ecM{|Q>WaZZ`O9!?;GIoA-M?bC^S0>xv)M*4*;v=PVgQZ zT+gMK-WkpHD854*!~WiA#aZ8c{^Uo0!=762NOEV@icM`-6nwkh{K<0gIYjsb*TUay z)*j<;^C#b07W$I5e;&^BgJh@S1wG%)-+JEq9az5^J7ZJ$FKX>Pe%+Dv$dAz#oeaY@eQQ(H`x>P21 z@eT5@M#oi-Zwd;+y;qT=f%Lxk{hN%d{et*MKJr4B6ZmotbGUCz1B2tA!JF|<99Uxb zN`mF#ukg=3nHD~W>b}G0w%`*x>3wrrd#teMa!mMOO-3`(@NjhEt>7mH%>}D$rsUN4 zLA)owL2GyQq5(fnfKTH@9q;kBcB4i7u;$Zi21QomZUBxMq8eSA>@y&JO*Jn$Y;W zEe*P+e4Svq0{v$=lzwBcm&whDW={im!u9aGP4wfw_Qk1f;+l zYG3G-^7gizy&%T6b>BA~?{HD?=;_0}X>!}&HdRm9OCmjC4;S6GYr7weS=6*iE ztN2asBXb_D%MBxf+{ckRk9J8#P**nKt(F;2?}J^V*2UyyC^BMWtEOD~vyA&b+&0f~ z%p?9%Y}#z`#pL95t%7TcpXk{;+_f6`O!`pQ#5;!zZt@zkeY(~Y{)uzOtnluUgC@W` zpXeOKUa=s?l&yi|`y}YdW$bfwe)MB}#nU*)M9->*TUkq-9v{B^U*-8yO|tDC{`H(_ z@H6k3LRSZL$rs`Go2m0_xQY9MPq^Lzm}OV=dm;JQUi>cOcdNMGe^9NynJir$$fC;; zXsnI!n2j|S`_#qwm!Ja6xSpOkYgB#u-?FBBioyLj^yy7PyE`4Pr5o%bNQ z;xu>+=Nz1wb5^*H!R64Fv&;>f&0VoiP@|c_uj`?$@$VMAPN!lo0)HW(8!~by_cHUn zFf=pYFWr3InXioV7@N)4v`?*S5^cVkPs6;n=Bwe|IQC0^y5_l>IW@oKLM5A1ct(66 zo2oI+Vl4Afu0Y=6;9yPHg4wIS7v{?jBgg9FGX7>u!x-Mt7<#{k-oeJ3)r?)`>?c0f zbhD+JcdX6p`0run(irL~2F|IA?Uup8D4s2Y&X4bnJzbIq2Q}ZUy~cx~dRZ2RqXdJq z@zm^2kGa1EL)^ho>Fmwt4u(d@dy;`e^uD9nc6<{(#@}Nj-xnVVuD5kC-VTguaIzVl zy6szgrUzqXIt$~jyqj7Q){64orRi1fZ^2mVU~GIZeExg-E<1RtnzJykE!#X-lV%MajolvpIlS6V+_s}R8s)zQxA}`C z3^R2)(v>N2C3>2Ch+h-%d)9|9N>G5kL|$EWWX^i94B9D;upW7fep`!cScZ$5d%pbgY| zDQBs@k>VF)gMCa%a_s2voP=zC^xROs-c(C6X9r7@iV zeVvclCwZp$hxppf-++Hui_bs3fKltYpRtXn4rE{N&!gvcKF+_^p8wdHnA$(FlYw5z zE90BT%`U@7jh=nK>Cdc{S}ctd?LBU>l&SP4eIGteIGsA{_{5m^#JBGEwXcOfh}odo z@M;~tdDm$p2mQd&(e_=pFCwSKSs8t+&g@@>i%)5uM#j~?Otjklvv7SiZttk))d$?> z`5p6AQKyh^p7G2>9ah8c&`@bQSvF+Z;-H6@B$&JN; zCq{jM4^J+i_`2EodwJ=beNMPqxRLScFVI%Lyd!Jg)2-R`uyUD}=aY^5KI@Zi{jb1| zUOz^3H(Mh8k1o`@r29s4FGb8USR40rPFwfnqaH3e{)_8wA}8V7pPY3AXW4&o-CEn% zT3NT&*451x}9pvoFD%T*U|Hv`|*YQW&HRO z;xB3FM&Af{rvtpqyo)tHdOGlzQrVilOSoP~tfJ97)5iW`&bYg?^ER^wETebE9)r-| z=!Y$lH9gao>~yAn=TwJp_KcbO9pUtM!YOvee3(PT1IQA;gZj4b@ZSHTe&>J=(qH^} z9UewX)%xk%!Rh<__HnwN+}f7nw7occ;k3~I>M@PDSLA%` z8_Xm9QIBlMm+|#ud;Lc2jLRi6$tUBNnN2o6Ir%@x6M1IEN#vtxeD%iHxgYsx&BQWp z#z!mV8{byDawPBQdG!l9l)fPwiFK@^#zeMzCf_m~8~A5@j~w6aLgrPxWdpuY3fd|E z_EWBzpVN##tvS_?Mq^~p78EDfjtF~#q!@QWq{qW`oGpm<8d;F>(~6R(Gly)l`d9d4 zzVF6NI9R^p!SX7w%;ufW@X$q$Mp3z(eSfZ8o)qDs@g3lyj_BoM9XwmAmnD~10c&UE z^2fZ_o?Ldu7wzZPVE)3f^6&Ean`@Kc*nIBI7(PjUTaX(A=!_hk=J058@Pk(5Ub(mLr`BjYV&hmvZEzir+pD4%IuJyovAa z`KiGCJz&N`BZ`BKU{P*;XG?EZNH`$ku1=>8Tyr`A)Mcdxd&Oy|q<&6$l3X=g947;y`{V>r3^#Zdl) z|9o^F>*)M|gRc?zd>UAuj~bD|g5UPy4^ZPOpIG-*!yi&rb*z1O{eC%;c#eG7da=O@9u5M8T+>UuuI)~3wI8C_2k3NQiq#~ z?pevKp1T=7)p|>mbK-Z|PND8;E#`Knd%ync*`6p}@9Z)?MJ=RoN(?QhC(7@@lWd#j z*hCC1#^3V0*75BHo!zwW9SuVlF6h!P=X*!p7+0~d_3nE|e+Sll-#fZgv_LL3$A`?J z@wfDQN9*VtKN-4*F}UJnB2MpIYVAbpsBf3AS4q~l;~VOCY#xKNv-f)nZ=NhFM<{ru zLyiRgI(*%HbTgjbMBYsJt>(LtX0tv*9^#xulZ_f4>1{KPaeFc@anzjs<1Yp#=3g^# z^q_05h~K1~cGoN8HwCuq>jwq4t2_Nsmc7(6qjnE$$LHC4YJ=Ts)#cyc%X-be?Zf`l zp0QlH;MMb$?mGq#Nq(Jv8w-4e;tlt^fH+Gxey5?M+1wX_qbiTB3*f!vfB;_W>7p20 zP?N-*W?%0Te$2Kq-%9Bm=F|8E%HdS)nAzjM%suAL#g%VYk2^4!?=E0E2HeP}vbD>; z26KD#ZSS0UaQ+wkiT`v~$b5t955joQMG;*66Zm{w%@5(t;ObXdT;-f+1Xt4*M{rf+ z&DXRfobP1jOSrs_XfuoPWBhiwnpS>dQ3h8v+$(#pMYzhD%lRPF7CT)1hcrZ@f&&x z1u@>X;wf9R$8K@?wfau%vDIHiIg#6MM?bgH({nHI7kB#k<`!fCd6DjuU(!}j&pR12 z+&{P7({l&L*O=0ES2DiF-qN0)yByK^o}N>HuL1tc*VA)bH*Qt1*QWm`&l*px$7i;l zoeOn+bcLdd(O?<9AN>O&nUeEmrG(SOFzvL#C%fXDIs z2Eos1bdb-_Tbl3dh)ka2;NMc2ly7t+Yv|~HU3Tyq-itw#wq&Uzu#RL z3+J7>&fc^rR;#m4ZTY|daBFE~-(`I#?gWl9^qOP~-zcZo#0U7Ai|*sTI}bma{?@{$ z)tyMrULz-j?B&`xof~JbUqcOc({8cZfo(nfh`=wnmGz9$dLn*7P&c20&+Pt)cwVi} zP<6I8{c^W%(=Df>Tk`F-PQ4f3p-0>M@2Q;GzZ;yi$2VuXIh!K;Z|NcJp9TX%P%}-P zUL((lFSNI?{HNu*_HngxacX^|`_zChUEWJN@had#F9bX`=y`l)c*gc(M~mN}U7rs} z4qC%lnr|}kIqeavygK5rR@lxRTD@@iU4{7%h4HFa2DTTk%KhenojvSKT(*b9V%edbr&z(0WIGfkw zik${UWBzY5ey|UT!hQZugIcTQ&-Y!IIrp#*cdnrk7_0M~Yna5oJb?^n;w@tmV>ZCc z=1=@o_np5Yx-aGaSGwDVNE&{h;q+n$K?fTu*iJ_&(I%#a%36P$XZs(mh{Iz0_p4H<*5Fmz-~{+d6*OlW{noAw9dASdI1q z+7l>mrSrCygPTv^ty1s%)2H*E-cb%te*S9mYs#MqM+>^_oRfpQfw?7{8>vlBxx7~` z*H*J9-VZxsJkjL7SvZsP7;$8CZ|-SKJ*U05@`KqJPT%AXhlk%c85AV)>errDQ?;p4y=y-Tf*9y3Hr*IIN+xjI1 zbDwxPR7<)g|7DcQGTc0T#EVpnsKY#?}6&s?fzDe@H)c*&s~{kexpG! z|L((T_x9&s8p3`ri=^)-*tg5>nGt?JLD$u9((L5k&^zVg ztgBWO%wD%&D8G_j#astF`Bf}+1M)kR?;&VR!Lu{(N+uhe{HkVA--}N{ix$2|ALh{I zM-?aUV1C7CS7qe4Bsq&~>wCx7t=lg?|6pWO@2*-g92i1b)fsoy3x@I5{>j}B<9nRw z8TsB*BJ!$u>!0uo{O=`9$;fL-@>k3yoJIBA0}fXe?3)Z%XYeez4$eSv&U#3?7w7rG zi`KkXAu{%j@GQUZB|WE_P{Ar(HT8s6t^M(fRzRZ)R23E8!2Uxd-#-(zZDH4Xzn&E16?`*TUpw%yGIm z$1BXC_xeyL`xhr*_vprY!bd%5#gI`tt`C}ZrNPVe+3VSewFlkSjL#*3&jt023BXt^_{tg z@!54IeIUAa#1)4HHe9;#KhFgFriOM6$8IcWj;PzIaRcm)+Od z&(+}MVCeqfq(d`3?6>D#pSM=Qf08%pm?b%Ozcl$<;1WOkcK;@aGx3*Xs}FdS&R~DY zncdiY_Kk2s^80O`m(JAnO3v_@{C*Ajr~(e* z%5W>W6~Czd{O7=Iyz@GH5b>m+GY<62XQ6E?#Mg>3htY3@(G-@7{;tRC~(=XNr0bpw5`@Bx(+W^#tZxk4}}Ymro|15stDl zTbi7GD7`<3Lu>6V)J>()tH*jY=vm!*U)Ej@|CU>ld~V~`ThI9zgITc~ttb5UN}uF& zz#Nl5JRv@Rz%H?$+`zY~1+&h&`Zm81c^QOU54!TO+U3M{cH{4HD|ZfLTs<%E(mwnB zmWG9_Q@tZTzB!cfQ~8}w*WQTk_vOKKtz<&y1!TvD2lZ&7zI~GMq&L^Q^8$mwq40Aa z=SmI7_wUNtL;5Lx#Wm?i;W?@oPXx#E^*W;$9{>hlKM2QvhF`@)razjXslK!QQgGh2 zIJpz+H{45KhPYQxC-k^*&sn3ZfIIa@mS2`5;}r$5`3o6iYxi*T$QcU08uXj>qtLgG z^7Rh&&mqrt?^U}RAnD7KSbrJ%Pvh0|eRY$o*V&7voL*eRUP$tqPbYpi(22t`-!yxY z_lyT7vlo(%s)PRe_C!=C9?jgLPVArA3!T6<Po(D!Nh zZ0HrlEL+=?o}34-8>Z*S>(ox-RcB_m6t7<~cNDM9Tr(VAl?Sgs&x6-`&LWF`QM@i= zEMI1XN8$GS$c5RSi9@?jk8!?O{3P3RP6utzGm$wYm)e&O{R44M=v?<@xWCcf?I5nD zIfp6TZ}T6^{BeAx&dz^-EA#hp^Xps+G4?s-v7IwHV$~mfG7Eb_K3n}?r8AFn|0|ES zH966T$SDRg3g1fq`S{<`y5sM%rYdlvadZ~QWc?jtQ5~&2ex7$M=Fwi=@pqV4yzAE; zpTafc$G6H_uRDJ8kj~c~AI2Q{>W&|GV|VY zx}iJynQdloy1Jm<{LBfCUX88Nt8HCl@wNf-Pw{u`oY5%8)t* z)=62raJ}1OYab@Num=4c+J)j|HbxfaDi$%fcylBB@Kivfl4K*-Y>g*CBgMgdyKpqu z%r5-Q*@b#=uX!wHrr4TfrGc@cG9;X-mvX2-ij#-IBMI!5)}2p(DX#W(#COitMHMCQ zU=CkK6O1jJq`piY&51sYA10ZtbT-Q$S7UCPoSUyS-nm$`3iBkv-cGu*sSf{y7_-)^ zG3~5XHP4ngzZ$(ZEvnb%@?M;C;nMYbcM0p*8h!RFwh zqqyDGX>7?kivG+S)n{c~Gyc4ny@J-1?;OQF2X|hdZOa__^w~5wrs=ayH)dhE8d#*y z+RS}TYyG^-&W=viZZCZ{@@;*<-d4<(+GWYAcrvPAY_HhMjZr~Q606VoJ21xGcV4O^ z-+4I#UaNAk+sBwA=6rkMbQt@RCDcqVjm1tG{`nOz%f`-QtU7ek8QwPyHIIA-@%-M5 zC*IcYzc5~4x7;^yw2#)f@*DM?BKei(Lkt72X>>qm_7!&kQ?8t5ze$uPCnsGc*l+Y` z)dyPn?`W?X)bD~@^HW>PH+Ce~b|3Rg_O-w9=Zog6gs)dQcbc}Gl=Ou=xA}AY(K5T9 z179{*wKe)d`ES9vHTt0+xXq^@J{8|~P(P%NZ?IqO`8&OtH>w}{cyzvtyA3DN6rH(d*=x*_7dpsl=JZ5IcbF~L^whiB=&DyA~ z;jv}pEVq`&rh?0SJa$Sac~2x&+>sD{Mkb@ zd4+d)N6%YcL4IZoTcNnv0>06f%^8&@cVJ%GNPP=F<^0(q4?nkoANdN38=CJb-K;TX zm&|Y7mUk43GavOvhjY!FFTUHJkNVZLF4O^pj=YhN@TRuIb!<7r_qkhqxmF?%{f{K!VU~bWOz4Cwo&5D!v=^FbE^?K2J`rG1> z*<5@{av$ho`OSQJnzmx@zhw^TQ;WHq5A_f^Tj8OCT&Vne?a|H^e%!a@Ro|esX`TCH zn-lm$imeJi!i#cyvN@u06TP>?oJMJoFPlH2NI4CyL)R*?A8Q%kavG}T)oeh%yq#`A5JaHW{iAMXruS%H5jTQ!s4 zWqo4}J(ycQ+8}Q|e`P)X7=eH0{FKdYVcUCrjT7~mXW`chu5UYfH<6nY|BBup{f_T= zmW24L;JV4f1^8&4k%#Z|-j>S4d(0h`hYxfOT3rvG+LDKA=oWK1;f~6~Q_PW19@gCL zd|3L)n>^el{E+(#-c4;K)t>a0Al-|3J%Ob3RjJp7((CJzIgJPZeC9hHY)GmhlQ z2Vj& z5S%~aw_+hCGm`UrSO;rt2?EwF_gFfg9O${r(=m>(G%JJ0HG&z&zL( z4`0PWe*GwLMqO{iSEb~*sD~2{j87C_(Qm=_4u5y%%<4BCUZiI=mQU+^=VC9*bDqEJ z?a;Mr+x??jLVgHhWx_`}`jd58kJokT@tT__W8eFC`Zv+nXD(}}uTjq0Ut_(hkA9^S zyzs>zot@0P=3H7@oNOUBV4&6je+d3(T`#8~My8t0O)Y~hp4!8Wo86D+j@g<%f6Cx; z=ioJGcku;$BR(onAI%@{lF22k1n(*4s`vWfsP;_f&8X3uvv}38AWu7w?{SS2{{Xx3 zPL$SK$D`n~BYV8N9K3~j@tED?ThFKhqI( z;#Tr^?3~0miS@-?Zb&fvkl(TyCMSVDz&5u=V_%0%2X^_78Yk3+p=_UsKbvMv8%sDJ z5jlgm99n2T%~Rp(4GV#x44E;VGQz=B!~NFu%6FJMPE7V?#@muwJ=Gkw)jz&Gf-~7D z#nFQP!(Y$zYR~kURz6<&<%P~?+0nh;TM&li#bt5;z`9tcN{PyL>tC^g$_?p85xmmubWrpev zZ2TJLjmk|>cjCd)UagYJ!dQ5Ed*G#0<0F_IW%9Wv}czZAM& z0RN=1HG<9L`*p5s?ZU;X+gQKD#ewWe6YlS``Mb>ht>-@BIq|9SS4#IIc*@Z)$9=0- z`+V_fv=*nr^$ORxuP|<$bMS)asdd1@nzhGni`Ks;hiX2W?alZ54SN~B8=&jt^E19} z7v#Wd|ENP)w~lWYX+LAN2*ODd-!`%Ozqft3@7@f9Uo!RCe6Lt*mj1d498^&oB;2;O?xWqhD|gK0 z@loJeFli2Q+d-d9<<&G-=$UaZF zZrVQN`_TbU6(>LAS>v-y`ffAb=SMv+nW%8*r$zr$M1RL;!o`XFPQh1g;bB{chemwJ zyyL$U;&vT=Rr-S#_g$l~Hc_=U$Fetyf6&r!Pci59x$nzH5$iCXx{b9|;U5d`M)aiR zFfW8B>WBe}FMNJd%*XgC8uyuu9u&R5zZpLjB{hfQKH?|k0K@%pn9H074C0F{Kb0hJ z_Hf)E9Ewk}b0{wj-j&XzYPY+Xb;9pO@)6(z&bw=U$pk$YH z-lsJA0Ao&ueima=&75LPn%|EzT?l-)1@nhF!g|N+V>x&E25_YD+tiOgM=sKF{qs(*m3FRWQDNlxP0*2Eac z3XkwgJwA_OCAlz_kY^oD4ZtXB0Y*|2FoN2E;nW8$uGe`+O z@0jk=xstYGjBA)zeCEd(H*n2(YAXA(Er~IH#yftD@#oN1bd4e7ory8N#dsEDeBFcR zY~WFhv7>%nGj>umGQW;}9Xgrc`016@fr)0V`QXdlyQ*_D|3o~!8$69Y3~boF;JnKH zy%7Djv-mx428{+@qP==>MWw=H9qxjC+5KIu!d zB{A;B-S4Z#Gx!Af4cWQf*%yE8`bZvcFXq*Fnrr2)*|lBdtxdXm8TYg{J^KmrmS}68 zHQx@_c{}SoignU=vq5z5eS^R@x^E+B?q?a__Ed}3f>+L_N>>NZK_~fmVIPXzJyb{b zDVI2!7H;7_WfpMw`ONm-GrHWyTFTnlqil`t8DYHH3Eg9TCEvR)e=h28;-e1cJMZQl z#g(?C9^!T8m7enJyWZiN>7H}hpSG6o9J_C*UnGAEI@nio5p(3rMIGnHOa%U0QF6Wq z%MrlR(R}CIGee!z9xgXp*}-kP((iRF-)-59P`~(gF1H3CwEyj` z+jPx~j3=Mjd}KS>WhQ0UNYuanCwe~vb?2NGfl>gJ#XA=xp3!j4mn=ibkO)>lC zQI!c3k?o8O5{Sr35-cJ^DXe&;1 zKQOtp(p;>c`^!JHw6$aCRoPv7M{DZNz$?1Kb3Q%n8mH&tqbSck?MZYtV{dQfCq2AL zmPcIPD&<|yW;~ETKT@_nIGeH1J)1H5uHajbb$rKQD!eBC5`Wsh2KY8WW?~j|vG+WD z3GTdF`>nphc}GE>;g0q%GVABYH_p?yxq4s|_e6esA-}zmU%uTuI}Q0w@$+T%ZHQv? z{laPZcG5y;wM)RQJuh0%dC>-NHoAYoqj`Irke~KLZ27WD?fb-g2n`@y+ z=iGlsAhRxgD!C_{$Hled_gMIXIj275>BdEU!D~D>z^Qyu{{^Q9@n7G^E9P(7E?#g> z-N2;0SJxkQtbr>J*%`(A;(-;wMu{viCUoET8i8Uy1KiJO(HKgAM9)I6VpMigb``l~be9M+Ij>zA(ORQmk@H7gX z2{?i;LiF-sw z&g$7D=A-*5oQD#x>GyPsdVW%xxz2z&6W>d9 z1~?PH4c~*6eaj1iXTGgh!EdY6tZw=lu`qu@=evup1mv=t9% zjkWsVgB!?oHQ!gQMNe#|kF7@bHP2tcTUuWvqZ>bpR7qDzpG&^vGj;WW&Z%zm{iV%k z;ZLQ#+UhL4zWK9-oF$!SuY-ot2aPTKTbYS}0gwEp8=Le&R^mUpCw(yWi2Sk0f`1+zr`#DAclF@yWM9U!5_i*=#<03#5BA1_ z#qx*77z1CF8oTRJ_)v9Y+oSzcz^=AB2XEm%m$7oq+2%rHcWs&4GhZ-MLmD`|h8lZL z9@-1`7JhQG4#-#ep7E30bMpJrUUXMJo9Mn7y2~dmpOxqy_LKh{SX$COGcj5B4BZd) z=^pj@>)lz+{FTKxHowU7m++}`%IkgpO7qtnowK*+<;T&lPb1(D_H;uPvkT74!&mZM zil@XwE?>R0Cv|O&{Tb$|WIpp|p2|$@#hBqWWE-$cmh;lRQKG5%xu4GmnTcH9*R{(F ze;kyY7ix`9)AEUQ$g93zb5PS=q&YL*)PcFW9PPrc|G1A zJBssiRz~Dsblbc22A0rXe%+K%y@54P;Ew>mUn6U|>@n}9&pK+HsL$dQulg_a8P+Su zK>zr^8+~0ErvFQv-|53Q$=o^{&GgSo{N?%`=|9WhjJ?|^@wv_g=Rvz`ocXNw<2TJ` zv1c%!I_PQ7V*B#JJT@|qPc}E7%f=RHT6dzX(`nAR?9|Y?>@oNVy-khFwV&7g)mJGv zuzgPkHy+>D)HB^b2lzVUH&{aK(zhEr=u?}*H*em!t=ZRi_2bwAJJJL~(s z(!f;+T+(eV<+Js3P$l3YA^5Bv!uPxG<=W#~@-SSv7hX)WaKsq1Jr6^jG~^>rFn4>@Uqt_?0i=Zsw+X4JVg1E_yK}pPUh2rrJum z)b0B9gTcPRp8re`qY})npH6rUU;BEI+&lMvXLP_Hh~suv2dsov!j0y5)nnkX13I89 zJaxH&t={?WmUPgAjGqf`>>76lFjNHc;Kxa4(oVL5&+qN=VHaw$o@n6GK2S8-*&i#| z_Y1!HA@~jm!FM$6Td!xlV|~o_{H5*X`~1+rYwZ!O^|D*F=j{XRt}K?!k560;ug1~6 z?t6hOw(b|Ygq*@9DbX1v##i(CLgcZ3kWW~Qtd?FAyKNdd+j&V`|tMzE0-Mfp2?8`Hqq1RgTVR(oK9HLH%itUqGW8 z;MVo;G+$><_u4+N9W}1rd4zXV8%N*qsDlow8LPbhHQ40RPe1;1k8Ag-@@f`p4B1mmS&T|XA#%XY@w|cXldr#Q%CeDOUITv=Kj<&eXqR< zfA!7dRnVt&h~{`SJf0fo2eZEK8di>DXqOZGt=-cH}qc;09J7JH5E0?}jm-%>haAMD^ zGrz!h+{t-v!Ojt{v^LLuoOxce^81-tg?pAC-)B$ST3*P%f7tcBkV6nWL)r_vb$^9~i^ck=?2L^CUKh=99;KWLLTU zS{rKfsn7cPr#4r35%|spe!HHRpqn=Q2Hj+ATKRT9;#&RUH$Bk(&dw9qk9FkeaK6po zKS{S28vk(#{mQgTnto)D2tK{9vk6**lIh5McprbrC~GgTVUMtcF;(Aue|Xvp zeS6?J`sz+j-T4N8-O-(C&@-9tytxrvnb^CHx9ePjY6b-7&v*P*GrZ8@oVpao4eQR{ z+_SQ9GyAF5bmvXGcU^aW7Ei7_FE@Q!-MNnUEG*N3MY^*)v`Xm)t+dDS;PXEKljJsB z-(fe=iuF(URE$6|G5O=#s_#Jk^A6`;lNjdfEjRc2E(brmfuD}#Uf)6+#YSvi{ZNB* z4|(oN?)7Z?v$@w-IPiSO9!9y>o$&`QCO$5mQ7<27i@jX4Ki}>(U)T=5opXTyS2crX z8W_7H?|s2jGI_7)LOqw;I#JK17vqNIy^lk)GHBMCye}Nlb$S14PI7slZThtGUe9}0 z-Y)ZqUlEDQUozY)!cfymxj@xrH{ue@AKtr7*5+Eq6`n?cnET@Y9hsW!p6^ z*OcoF&bzv%d`N$GOqEvyRjZ+C;3*w~w8gLB9v4WHp0^e~WJz z8$hzsnVLa^Xs0$EsTp)TV~f6S&7j4)hc65NeMVa~QgWb6S8E29FoxFTaQ@T%7C%nS zpp%84|Hn0hCICa=r?NSu*@+XlXL;#u_5#A$0pP5&HBt_xAGc=Ei^JK^;pY|&WkbzL z;*V-87kp3pbL}1LkGf+4Ym?biX|1}IYqw_5FlRn@Gat7PKeyWKQ$6fZ_gQ;2$n|b( zc?bI$db>4)-n}|`&7famqjg0dj;CEmU#&d6aU=UB=vsuVMM5=$h#j?3 zGl=+V6CPeqYbi&P9m$ev26d%Aj^c^pheGmn^!-lF&Z9o&=-Q)(p7cO)K0Z-3X|H!%`yM2 zlb`ebJQ{OX!AM^g#?gWi-;9M(zL^UQOx8D}G1h}8*)qxKb1?6ReKU&V?ke~>@BKP$ zyIMoIkHK@X@e>`+ypw&iwZ0U*_HO%|t?Pi(V;$E#lIg-JCePqAVt~SJWoW;ub1`l_ zes}t-0C&RcKOPKpTM_Yi`3RE5<1IeLcLV85?LMH7I_RNqY}Pcz!n4gcS@d0y%)}{6 zgYT_g0UyK}&*cMGo?5H#+ZF!4-{8RFUAan@&*i_W0gsl4?)@~tSFz#4@b_umd@IX~ zmfs{3Z_IBg6R&aY~&H!e>?{icQYxS-=VpHo-dEz*@_5 z3xjz6K{IBQ`-ab7ck7r-56$Hr{EUts%JlOU&ITrORG0so@xPB+I>&`@e}myW-S!JTXUtOP3_3Xg4@_OxvnlVe9KUXyHAOJl{GkcV*N&(9-gdk~`iqmJ zuIo>!C0u;J#J1_1b9aoc-^tx_V#R--`>>Q`S`)cMR)Xo z_c$MDb#d^G`T#%0n}d81;bR#6E6-Sb))vm+AU^2hc34ZCSHMpe4|%MAl6zO)rDI&! z+p95T@wgdXsdY)$uPIh!ev_Z$`~U5GpYUFVvsU~<@qrLMTi}SgKYuea=;k2_&RX+r zP4Ug!8lQ708b@`1;{2A(wS}Yk21m8&&EJ{WZ#Lij&@j>JAC8^{(f6#JW*@M3A+9$p7 zBLka@cjoTriGCEy;fnvKaruLsWAN8R@u~UFs`Aq^=%S+AqpR}>^(_ZbFQyEuub$wO8;GX5pHQ4tZ@l_p98#n&( z-VXwwqj;(-@sFRIZao~9hc;u_<4!ut42EA-v##dJ+_XEGG_(>;Yi#29n-Vs0W z2F4X_-Mox1xM%5g8Te@})^MqzNewhfb}sj2>|ggxje9Ql9mYuJ2QD&wT0iis4lE}D zOLzUiihp-kwr&6>t#9Gj;#s1VS*JQGTPM?|qp}re+^}q2=isML2W9ID+PJcn+D+Ly zoBph9O>yA)2%BEA)!DN>a}AB`UZpd2oqlcU8>;Jc|Mktb?TO&L$gEAWHSgt_)<4%) zY+-Afx=xe-%C}llI#$=Ij6QSC7zZ+5jamC-N8ZS@n7RJ3c!oV-i?KUd*Xc56ZbO~9 zX{-y)+_diYW8Kvn++wWebIl81Fm;`N$UIj@u!%cR*XdOH*B(~=PuK!pJ6PALvpn%F z@juCJUQ*vk%bHPkpOhv$0~%O6L--gecn$8gPuzoR^&8HA*{*!TR`OrI#tsq9Y`^L! z)AVC~0&e~bK9(K!o@=jzCqnrzs~A)HFBgOR?>qnHeuKZR*c5h+I{J#_Yt;MSfU8cf zQU9Qg?BkBCQR5jmyha_xJ-bG|%KojjHR_dJx*n_iF=HfKqyA?4v}@Gv4lD^^>Fyde zz8kc%_TPUmPrgRY6sMfFm8B_dY^liR%d~qj@W1_VXdp89-Bbrnf?U=vNb2B)1a$wqPCtWIC<)I_w8{6^BMDrNk zv0E$6Ji4P34hNS-@RM|?n@{}Cw$AH>muS;bop1=_hIPVthpx5k`&!cpe;?X)osiEM z$#lX)rcbLAavWIx1T4}Coyn0Y=p>Jwx2bD9_N!~#=dsSfJ;=aqZ8x1ux4B^Q6-{6~ zt)1>(+dY?R&tY{$MzrT1O@9?uMzoHbZ_*8CtbKXLUZ_p^>54D?J>t8*&0t~}s&A1j zhVi$#*c!dsj$u43d|;2X7sGhcj9DLwVR-mE6n{{juJpzf^u|~7d|vQvvV!M;;k!mZ z=I!EK?>=V6ZYx$X^3EVuacm>8bLgh=tS)!^OBNI8%6Z;-A>1lPWAork$ftdrxyg36 zw%1bbJ;J?;z#j8`HnZr%o;T~r`QFa(_ZbGh_W0BCykPzf@G0*AJMaO;Ai$yj{giw7 zKSi+P3&tjYAR0NOEE0(|;8R~XwMXwJpZe4ImBh!NdV#b3HD# z`ONjLCFuK|wvNu5(|p!CbLIGaKNiJVFMBplwJikuN6ewM9FyM~m@451yXRT~-ro?e z3=bR$&SMTgyv(y2XxtV*q=G+>x=1c>EC1idPU_QI<{kS!V)4h8z)vg~9%P&%;!vXX z4}rnsw{)zfeU+ZW8@fLB^MFred+7QOVvOPwotfA5MdFK%jmrkF<6Jb?tEq={4s+Le zi6Zv9Rv+rzv;4EGsjsf{((CX;f57?a52>AW+HF0`i@s`H{>``W_*X6c(ZpY~?HuyH zY@S0L7;_EoHdY3BbLVh{o`XxlG>kdapabn3ernDq7eiCgQT_j#arCb6GmW;2W!e7T zr~e|Z^;~Pn6g_9ox|VGGlItR_lgY-uJd1zb*g`gHUD;R|ZPH~o-2gv)*|@wKJk)*J zd}iq;V3R$k@iHWr>x1*;E>72gON-YY;8W-QRO_cJx@`UYmTUM4W}T57)KcR`ycg#C z0?sZ9zV}SqS|cMapB`e?;nm=HXYf+t=pW&=5BEI7cfxCL;jWdn;XPy(IckB|7CPtJ zv?jbB1YWfUy0EA&_+;=L=f369x4@V5h#Sw7eyTUJBe>TvZVbMn?$W~X@t~fqU>_n_ z=}S1^y#JyiJk6OO7dvTV%{d&IF7WuC?-M~~&OwQKwTRMsSA8;pMh;VeU z@MV6#vfl6;e#vCK#kUrH-a5?mTN$$Rc7v8SS7kMPb0y={Knp9s2Rsz?U&%K-tS)hB zTxseVi|3}RZJ>jj&i1bz;C(UGS(ERUpG>h>oj@Q$CenA%bYD>qYo6*V>A zg^Lr+IKo8(zl#{t>ZekJ4`it6TO7Z#I*VKd=`8hm9b>A!`a4*CVE@=Tuj88UPx!dL z#NyX{L+M)6SG~y_5&!O`_S7p=f5Jna+H=kfo#vn6Wy~hK>>GGRxgo4m3$0ydb()W> zE7F@}Pd?C^&5g^i-A>$hOS4XU6xbC<)_59!C&t6S=a2sYc`Nu=msy?nj-H|OqJIo( zZ=8>R^na+a_*D`(tJnB0s(^;E7rbb2m z9$x-h^r-5yeZX4vA#2n}tW{s#(xW^^y!0gI;DzF)yVFl+{k3HVregS5XTz0mWNk+A z?~CBK!swD~$-xl(#n?7_H>^*Bdc!S!yw;`@P9Bk5v&XpvAIk{fS05hNR_A>R{Edf2 zR&G8u1-+As-l3LwYWsSp$jkw~(`4TW_Qi}R*|RWAGVm7yzi*>BGUMiO0fVoXY+PNi z-#}kQz`6-~(w|SyV;J{yVD4&;-Tn^lB}cym_f|)Jp>rkF*cR-`^pMS&8*ci@OKYz6 z{o=*si<|EyE04#{ql9^!ta%t)`W?oQT`j(q59TM}Y*ot84Xep%D){`WHclP`ypU*^_}F_*81Me`q~FP3ie9g zv%K|V_Qh@+;oH}bt??(a90~TLijQ!!#_lgeEx61V4()YwR==+~J z&Genz0s5ZY4t-ywKTF>UouKc(GP_RSpR_^WYaIIS>(KWR_N4#U^c~*@eUYmU$?twi z==<)>*5&schrS;XH)~IR|3hDG$?u5{ecz>OQH|YBeFuAmH<+qnZ-$!}R%I~57 z59s@njX4_mO>^{f0d`IbxRZQad$*(dMDrbfJpR9Huq||sA;})b>h~%G1K&yV^D*BO zUvU;PE(~i2gP2YexOnhbX_KI0A+;!m}z+%^h6&=tUM~SbnnOj>I9;ZL6H}3C* z-gqekyeoDj~|Eo+IhAGU+DAAHX^>rPzzE8<%2`svC? zTi&n~SYf}R zU2|VCaMiPRs@A@T4!-0<&K$BI^Ys?@r889jQ}sv`JDvT_oHuo^Vb++fgZW;I+O;)? z;)&`@`AoiEXN=FT!XAMCb^SYFjq_W62^TLpsk>}gy}fbL6n}q~oj3=$a)~)9-`#yr zHTADx@9X0iS+2v^eKzmPKNXxS9Gv)kU{GscW8{SL-#@0-`p8hN^_-^s_w2-p^yQ9c z=kO$R(3m>MV)ci{K7#kHUVHhQ(3;Bo@*&lmHS_1py#^b=`j50O-bcT=X5V@lGEl*q znO$f7{8@<^;8T81JBDha4u>|%F%Nvv*}jkeC-|dlJ|XveEB;p2P{C;16tON^|5&N1 zXF3{KVyvUOe;Us<&r>u$-wt-iUqkHRRA7ifi&ebWUY+0Q!hrwM7J5zJAF=$m7ybBj z>ud}Oo)diOz+8h~mCn(%bnU6aANO?q&ci$p^lb1A`!9x-<@&f9l=!K55Pmt!kCEv6 zL79o3<@oS9Pk1c6P_ z1HH$y3geHDsLp#)ZWDZicn{uypEH0xK5;vFq%r1IJk0w-^ z&#J>$^WgyRffwqA`+h)s#xtmQ8}P)N;7jq#Yqnr3Av2aAW`(X@ez(3`>qosGn2W%v z@CICOJPM!1h$Bs-4=)r)QVd1yZ{&YxV%ql_9NKlp&DoHQ{1+Vv?UuQ4b~R@sLVqtw zrzXkSn8LGXc~;X-&PHeEc40enyYG9R+ih*k?WPXQt*btv14Hxdiv6tkw`9q+pIXsUpzp zzI}YR>BqH+UHf@4&;S2mKVM|vOop@KZ##yw$sNSm?IE0Hgm89pJ2*S``^H(S;vEs< z9n=e-P0WM(+WL+}TlT^3A$*+x?<;20k(hX!>*uoKDu15b7hmaIwV zAIUw>iHVQrI*wjh{axc1;e4q~wI?R-ugfN1%ErWr%e_7|BcmxUHxoZvMQGhpOnmXC z&c(z9_YW91h77D>3^yh|Nw6}8=JNQ5fvqTg5RPHF`EfQ+sXKd|YT|{`2bI`zim|x( z?&ul8lg~?@Bi@Mbs1AB4Hrdg0OkdGP?{}o0)p3j~8`3=^coO%letj1kx+6K_N77~m zwob6`$V{y4-@P+}`_rGz5#PswXF2e6_l)4N-vhnY&qz+MC922TNqXH%n~u_J4daIC z^%3_hz0U6-z22jZORsafNv{{^&(iBz2cDx1y*gtjen7lY@)S+FH)_tSw0WJY(FudE z#8&NOUcYonI_*4b|K8f1U*X!+-O&vXnYnaDH`ud2$AQlxcuF{N^ZMt0z+Rw}XMHZE zjqeNPdxB&8cxBtMr}W)dkNwpW{0>vTYn-Hg*J|<+j$&N#rF$OrXAW)OVBgbPUjNE| zUC--3fH9Kg^*>?yw0Zsc4lI8KmhPVQIjS495--Y!w03%Oy>PS6sdZ8>#A(w}z3@Kc zhV{Z~?peL?EAZ11J^mJLT)i;a;9UICm9suI^k?pCy{MR^~sPmR#olw`-BE zV%)IIuj8JT`RU-NBQpOEZCsf@%iz4LGXE_7S(&eK;5ia_e3|cJ+-emuJ;{9@d7Cy~ zRr`mI?Hyk?ZQI*#_qx30e*1s8cK6#an0{K@Z$HIz;z;bh0%ds*P?wQ+$H{t)=F1$VeFJIB*aUwn^ylsiB1ihM!JA-DIH zJKN;{w|Ul#TWZGDx^Vzw*0H}73~i13Q!{R{)4%YlaWzKi#vs10d0pi6uYLA;T-O-? z+RkeOzp|b4Xn3v$f3nVkDd%3iB!9EM{dN_+<-?DEzVyq+Q5vhzoKs-$Tket1ujki; zd(A~-pU7Aq`K`8pjsG+5DL+>4l;C48%3&ycyl(x;`B*4v+Q zU+b&-SjTUzF-62@RHILLw>jK4XSvGBC7w)QvrQ~RedW_4m5zn`?jVt|uO& zwR?7wevdZu*SxZ5r|;(3c@5;chP;eq^ZEdOuKNres)m~JUpRTi4@|AyxygS~fIl>j z4P^O9bl%(GSmSP$Y?yKHT0_5#sdZFvJS&*^zMSYu67aIs#4UR>movVk<|la@R$nV; zLv*(1EZj2|8*l1Sp1Y=T`Ej(VTir6IC4WO7+IH2SIUn4LkBXD-w+_c|br?AY<2f(T z97nhMSNv7Y+;g#QHCLT0UCy=oD>eQn>AMXESHJi@^Z<|6Mk@h#Rcg;YwLgdYMv@E7 zDI90A^8QN$Z!~oFNMmZOdh=~b!FH?Dw_y8?fvwQwrjG$0@twv#1NrgsVDi)@7jt<( z&UrZ7chu1tvw2o$+UniQxh@jy&Nrj+gYhlk-c5Y;SA10ZM)XghzrPL$?~b03jx9nC zEiTW}80IX{>B=+U_YVEX2R8M;Nc|I&QViJ5!#II{G*6p{A%2zY+B}S%!Kvgc*_u`F z$k(B?tKsaC3&Y%ghfgE^w(y1L2KaE;Z*6V{w|9Sme~-K-=`hRZ#p2a2_(WF`7Ze@p zLw5fVGdIgqE6m)i-TyA_I%@ZK#!vCMfhU?&Zg%ujh(|uV1pIZ@Pl1fo(XKr|MR(%S zrDiUrN$1k>GmXFeHM(w4%QKDkTu(GfJh`nijZ+OwwKkrNJpTba#GLbklIh=Zufph` z!|&p`d?jt@k7G^0VOtQRttmHOYtlUWmCV>RX{6yRyCxk*KjJGt-UMH|HX%0ZDAx~c zW662uTi()5GX%HMADYLn%y^Rhfy|=@`Lt^`-;)e<6ZEn1`P#37^}p17XEy#Fb4T{| zd?7Ms;nwp_1DyA1A|(<2P`1oPM*fi zpA&Bns}N8X`OzWxz?Gv z{$zPen?d%BaHsVn&#bL`F6MpCUhCdJp@ltvHAnoz*{^VJO`Q1^bs)cI{EgT`)Whln zz3Z@H-L>U$#_38Oi9&cpSCzjei|{a@)$gC<@#W7 zQNcO7)P;xTpX2A_=*+TW-h6`%ey<@XXXR(Cp`5LA=lL(@Y1isfW3Sw(z74)r7rZNY z=w*4#*lwHy^m9X#=~KIxYry94*JbkD?71@dq`bn|d9Hj*r-+yKf|qK{na0-aytSs^ zT64ZJ1}uu@*?q-)&U=R2TA1E4ZRIPlFr7(UOg2I;>xYHO?oBLQy@0C-oGaJP+D|Xw zhn3wFGrC&vZ->^Jv#ay9mv!a9eP(k2Ep49%J}<>v{&Q$sL%%L<6|eVWmh@i_KZaq| zyF2<2cH~jb>0vYHIP#)Cb^fk1I&rSSV@GvjPsJ-cY2VyPn^-$Bn9iPgR4iEZDK>np z+%Fq18VhfF;N0R>K7sIe8>PQ3pQRa{V0k6{ZfiVvfQ7-4iznfwTxaao`n2?C59R05 z6@VkVwph3YV{7fZx)QW~H5yo5Ds3F}jdS)X3Hh_xrx=uy^^Qr53&=+e9^i??RJ8|3-QUfKm2tTFq>{h?_Q zzpc&lAR=QPrj`E=-SU>83nY_W}vp(%vUO|3?D}T=-BmVj=`7`@Hjn~M$ zkXhe`l08;o^uf!5gFTzo;p)qdb&DA*&bs!2={Nj+`V??BmO1O&@}1@L#n@0TpAYwS zN37bn%`V!#>{*>9AJbgtrkpu|vr*CwmjkzOCY>1Zya$HY^(X^&-|zDf@5P~^-jmK6 z&;5z44e;*ry}=p!y#>x%ukq9JtZ--Ncb1u7UQ&K++4p7e(OdA!D#z9lUULmEMX5&> zUXxdlLoyuvXrBGRN6gUo6n<-6?oobNzVeJk(+Gby*LXkZTERN;@h8}vp|x2#veM78 zc{-zO_XyF_&HY>r|4oJ_!n>9KKySJG%)s~9p04(33Oy&#Uxn4X(v_xO*9yiuTzt|_ z?q_$uDYk+5oXfj2;9Xl+;ac`G%HtPrYQA9|JH_aV_e>wkUo*nCcY`+j+p{f1R6+857L)XHja=)XkldR_3Pc9UF+qTEyxpL*r zS{~7!?mFm)j$9^u-39%mBkj6!f@B7HmtN35S-L@ZvwC6VeDne~____~1=b(o%i{7M z=mXzZfbYJTdKTjSJbabO_{BQ*%{9H z!IYg2pVlMeh-ojdCcJP$wy*R0{;qLRHLyyrSUANCP3vEh974_EF6N@~wV(0$4uFN_ zAi;v4f%RwM@R}brttacCMa{Rt_g((I2%O@7Xce|60@yzMZR4U_fh~rf_0L;$ARZQ7 z80d<$h29RauzwI&arMoe%=0SNjB?HyEpg5n{pAAIjDZ2)aK5a?nvwY_HEQ7fus&LC z==F#*hTfa$%hjO70`R2k3eEzH*TU_sKD*bn&*LnxjV~W}7J1*!w*jr+rT{(t9(b)V z`s`xHi1Aysvc5Uh%h&g>rC+4iL|f|PG}L2<;R`T&Z7^&5ki@a{{|#+6@w^B-MLDA1 zkP|d(_UNsa=QP&SjAixOsf?v@mZy_PbQrn~y|y)VmxO2Zn#L3#+56v|8p{_?1$r$z z@nTQp16ZX`8+&gOAy-hwLNUSFmQctuNd2+OQQqwX z?5@4O^t$-OmGC=s9p%0k*z2wPeeK>TpKlh4N5s!AELMMgMeIv5SE|}2$l8I(+Biqn zR-TV8h#Fag=Zk%xNv40MFUy?iYt&hFbeVK;M0RS?kDK&LR63q`fc38yvfmd!Oe3c< z=IHG;(m(hcn(3BpcqTLP&GkLXgKw62%Um3+MIL?zzHHyc=wS8zcr|t+d~WaCdQK~T z7N58oT-GqI-g}-gbIH%MW7ZHC@+yXw1-zP>NVy>xw+K7yG4d9eIv`9(4#zLP)K zj+fUM#Fdva-h0wj#@47}yb8v)<9VEy^6CyKTj#Vb#4qK`3vFL^+AbD;;Mo>!i$;~n zhPAY|av+$d86V$4=z$`}_wncNse=8&-SAZpXlv&ozMnx~c3mknXYaOe2Y$z2Q2KEI zA7^IDStEjavG9-m#?fN#W0yDGkD6~Ez0LhP)`_P6>w|s{*M8f%U;0sSe=z%L!Hm9J zCOW@iV3TZUo$iXwGTQKZM{Sm5KE%G@%(HvnR(yz;gELpJjTGI@US)-`NyIbOCg}yA zVY4iMdVTV}iuKQSWzO4(9Z0^rGw0XO1O9gA{1Ec&89NOf@cQt&eoZ={xA@rXY3un7 zA2jiCpq~SOY6Lm=z{Azxp(bRTiT=Wwa3T74cAxsF!Gruws(F=(-mreh)vUc=K-U`C zW2{ZBt^N0zK5Eg$uH1CA4wsF|@BVG$BHzzx#i!3Qt`6J@CW?cp^8wZQFe~b6G5TG5*}v@Oq-fE3~nAwX}YZIoh0-pCMPW z6=Fu8YA-jJ{$2fdwCq82nf$!E@7wc^y>YbBuLZRIHErYgcqJd=t4f~hw%rgQRoS2o8*JX;-lwubd0$Tu3=RL|Ac$yL6WomcS} zfqu}uo)p~X`;apQH*>VSD!7*$xa&>aUT{AkxXoPWh<>57{dvHqy+AU!$0vb1fO&}d zmaDDrn@tVH!HE*!)|{tMlm1r5RW6;btB|uIehXHYc6uhbZ!mD`@^*d&_k6hl%-?CXqYg zBdkBI4Ii;Q4?S&6>^1Bs;n9O}L9BP-NBAg`#CoMG#iPZoJnPxpsg36O2=}Z`yN)@;sG-qZt2;aKV{ByUpcsA-wRsHQlD>+YYvJHX z-jQuyqq=D!{#Zl3Z_68!^^e%|Uv6-An86t`zWi?v&I-v*cIRhtR`@}n(^Q{JYmL=m zn)|iPBWCFJ5<0F9o4}p>ReEmhgbeWjYq|ByNS9nzMCU-bp*@ z3_XvUISe#&poaHy)v335Euy~~d}g}dhj-$u8kY^Jx3y6QC;r9yEWE}IU!DzK<$R7rZ09iasu0h4VG|Zkq8r1iTJS3}<|6J80bF4Xx0pp|vGD@viAR?mR0CwI63- zierPj{R*}hP5YShOmUR1*q{F-b|V^hXHW9yX_E1_?a$|-LoRl-mCZ_HL$8MZ8_~Bl zhJPOCy&{Ldo`#l1#)mBbaU6aNd;&oooAhg_Pmk?#(udUU3E3{Mf)nwK#*|*@Onm7U zgO_O1HN}l11+k13%;Oo&!`Yv=*H(O@`7fiLXZP=pee9mA>?CcI*`TAKZCzU1 zwB@|LA5XSALAaPBT$nvoc&(gb{J#eo_-aEnx&3{D)+v*#qncsTFSdW->{s+(VRXuG z_1w`p`@=I84d$m#;?hq;;$dz*9`3`lw()LeZgjB`WfzZg|;6NTj{RcK3R<1 z8h>K494yU0Ogn4m{N0R?&i2={SHX>FWbt?cc+{TF#i4Z6H0JL?D?5MD!@eUql|RAV zLu$XE`_qh_`FEaMx%m*@tYJ)D9~t7o2jLH$*|0I`u-@2y6?%i(=SKifF8K(8!@_hw zW9VArCivYMy-{NE(m}m32fTR>-rmQ4FG7dp2rgnnE?gE*!ilRJd_P_*dZRP2PwXV@ zCxl>s)4=}4y6*?}?(PeAWj?O|e)tWn9q>H-=lkK;65sK83EAC^XV3r2*C{RRpE^Gm zr|mt&kk95$+(sXk4pwGzB12|aUH1*~6v?aB1ljCHwoaS|EvIuofvx%r^wVtiBbTxt zndA8V-vln}-^pu=u?2pA<@lJs2BeC;Ypt=;e-ZE!>?^YqyP*REUqV*mLDpm0O>uHxE`SfD>vX=t>hyZm zKyi3gxR{Nch4HZ`@q-b_h5Ul#7R-2+_>+9kF1=0%FWb<$v5k$RZZmq}W?+==Cg*y& z&eZ9A7iV8iyqVutzU^4PY?*IF+|Wrmzro;EK1}r!&Odn?K9im6&UFWwHTE9jAb|xbZ8Vzd6vmny-~(>kD@A*j=5}K>R^^!1_%@_sftE)vqvo>C3S_o4VTA zN*hc&@tfW|mp0-JV&>(#j+y))t9xvFtAGA&+SfX{Kl6T`QeJ23Uq`ub?W+>(tN!4o z$n1wsV+@bq(gPcjK{xkj6ukL#N=A#^pKIw?{;7@aS3j zq&IBtkM|wt9gJ_Gv$;QK0k3dq>1}n4?7Dk}H}gz7EzQS!R^nvZSbg$u_8#^f^&uYe z^^Vak?VTO&s-O8>hbJ`V&A=v~lX9u^h%w7f$Y5<67s+Tk&u}_ztbJA0KUfzm&or>N z%yHg5&h#Jc7t~BI&Wcql9!-AjB;jc9bCG+#$tHfTWL>lUT0BbU&o_12`;r?Z{t}*Y z$t67#Sc?_Ees!!LzqbDDeR)H_qj$!-Pe)JJ+jS6a}Ke&dt zAwC1q!}5pn<83^;(!|9#Js994&fe8Nt2MT?V&nS&Z_N0BzvDN)ttMNxLa}OM;}OQt z*$3@C?#G@Lem!#67Xm{CzHU3dg;(^jv=Mx=Z|$?drc552Xj*fOzka>JMa`DR<*Gx` z1i#tSE7sl!Z{!-;eogRm#@E{7#M&QFtX=0WY+L)iqt&$ig0>Z=zWdX{1HW6eCDyJQ z44qli?j#Om?Jv!}<-C*c=U)SkuI%S)XxH9;zOymY83z8mr2C4NxxKQP+R_21(U+Cg z_1K119whrq&3bdZ8Bci}HdgxXrXW^Y2VGtKNye@rcc2J+O)_Hj=c(!gITFuRz~{;Z zvN6<3ldFFUyrlSR99zJ?t8;?(w`isOe#^Jv^90>pk2B3YJG&k$jxK%*ugA}U2f^On zdc1|0h}ygB@siV8Uynz^Q$=Py{xf5Eomh`6=(i*5@j%9i8=1Y8F}kxJ58K}L_4pd# zwe)Y+u|aLqXM{JyQ^4A^9?ztW)puLici4BtH{zkrtjAqF52EC+Fs*;iI@UCQ?5xB&=+S=OGFP_K{q;S)={(33gCEJa)?Pcl z>;TDk#H`(?nz7YaF*+sB*ea*^YaZ)@cpIBgvOGq7fv@>^Uw)fy3)vMx&Ns0g`m;Jk zz8c~EVBQapzryI3(RS|Spa}-qEx_R0Eb7<3x3_t(6g_3*X@A=o=nU;mEuAf%*h81c zx$o+s1Jws(Xdmdmhn|wo(cEO~P6Ds;U2)H^pD~#CmGAAZkKn=Ts*y(j6|vWH$94O* z`b~4n2M5}d*MeX7egC|Y;4wIF?W~XBBd1n5U%rhjSo49EeV~7RAC>gh7Ghq)mpjHiW(?Un;;)?@xb6Th)phTzowJ|Cqw%W@ zflf9zEDPS3jbUl5vp45Js~TgEv__j@4xhPm(z>vtEVi_ztnIV->%jiEV_8|Vw$3Bi z12y2`!BzPEkxBJ!X;cp$tX_y38+kDF_xBUD`8UrSQ&U!Mzc7Vw?4?pWrUx}-dQwY< z@668bO%3D-wI{uV>L3^Q3+h)*OYuTE`@<4z@W+0`p1ZjJk&o6I{1vAdJ;VEbz-429 z&L2+oknv%O$Tjhazn_Xek$!UCtLv}xhet8~k-%{T@Ei_YhgEIAaC{YT`sWz8(mrFv zGtODWVTr1zi}HjsDYu5`OW97*^TVkkG^u+)`Q4Z_G#tJA+S4#B_3oB zrL>Q-CN3H=KEI*GdHi9Cg^W?xck5`qQ<~`=SW2JKzC-*yWZKg4`RhldkQX&9u>iiP zgI8qt=vsTg_n52nysocXz;pOU@pR2S49^sQof?+78F-4x39sinyDpA&FPj|kT7M5Z zEHSlrklWyn_msv%{xse+jmOv;&mW)nHHTv68N|wmC9W0BtnbQoC>>;TJ%*5vG?bWg zb^>4N#C6%@^Ao=ge5}u)ug8xWS~eNFT6pUH{r0d#CH?2(6SD9OijsT8xd@HFqD3u= zVTosvqw~cF%u%on?;W3b3)en;*Z>y3UkE<@MQIg><=5{K@$sy9_}te6UcLdC>&P(> zylV%I&;KyHAiw@%;w-(r+=ux0kAI`6k~lFmXJKp)VT0Y9NM%- zlRQI{ysT!LNZv$`Y0$-&O?ayco58}qH?Vu?+Lo{nNsI@lAE6(LYz`QGSlnB@k1%-u zXqSTg2`=tyhWK){g6A7VUwqvzk4Se}xn5AD>2FVdoUdR!5%KBCo=q&Yq?q(=(?8I20aAZ}X~mqEC$_ zSc+FEk7HQkvb&ixYnsK+2crLfgFMOWd^$Gg{Exqs{6NN$kNHaI7$;uZq~GZGqwf@x z8aPylR}fBbkV{PPIB6DOxJ$BdER+{ChylUj(xxI z?H$LshcW)>v{}kIi(KNowoT<*0bV2H;uC9luLfQdP9#TlZ#FJVx#_U{Ykj;1>-s=& zN-QQDUaPL>Jf+^Pd>9@@M_3+mdHHB^mX789MT6kaMc7QAk{<)kYW=*NVTlXCt!hQp za~?5jXr1Th?+;6SvlKkD&K&6AG4CHc&N1~^>g+gk{IAZEeA+z6(pPtEGp{f{@l2;p z4*5St)Sa<-segILHY3JUXU}PK9BpdWH@7K#DZph3xICZtV&Ze~b1=A!zqlhV-@K$p zxxPhY$1JQ3+ApR3FP-*#sr}z~Z2u1J3*GiF>6P#Ly2Qp??eZL0h&PbNa_*@Zl?j87O!{_rA=XUsALu@3F)j^44UJAx5HRH(+%x6p+Gm!31QG1hjegAygvu~08tG-|5 zSp{oha~@WJEL+o_^&hPHIm_9xG8{79!6(Zm{?SQ zLQPJ4{*#^tmQ6`HevM3|VXL-?vrtu#*|@x9IwRxmR?rkR{E@C z|9ltU^4m__PqO~6S);dVOwCoY*OR`j&bW@g)vwO6vIknOGp!m!{#@PDc~HAQ&Dg^E zBJ2;nAKstptbQNhNxnbLN?Zn9F24zuz+W*q@tAPKKHawgZ}qAJ`+HDAeDof&SmWFO zgAzX%9{7!~r0JWnbAK~_+PymOeaWt6djqrf+GjA9-N&tFZzsB_??U*;{cYnId7=D< z+00q;;lA5mJkavd|44TmcuTN#5?sqZaA8il$-o@T@%5ptCwbQV#zpmhU*~tM zkIv#p@TGA+G0dZu$B#9<7TpWKhR%PpA6w$o4B2Zk`fX3MzTo#PR!lGSok_{WY~g-q zZ`sk{k9BZ>@E7)7?r&%(81vZ|wFXn3fyv6vX-00upKZy_P}9zpn`b7rlpDL=iMNjv z%tmg;8M%>dtM6P2r#d4pxyiw2BR^;$H`$5j=+l)O^{MY*x^gp`zOCHk(YN0(z9=g< z8bfjud^^+1&EUk5n*+Jg`#GKbMr9>%xv~++O>h?c6XI-oCV3Gan|!6n)_;Mu4!%pa z-n`A492@E_|MkC#Ir3kAHGSXmX2!C7H>ef4v2rvWdK;g%@1GSJqiEL{F5`5q5o zjxpuk14l7BTzErI`n6HyXO#YvzLf4$o3{G@wdr5+HX93AjZJkwut`V4D@{JcLK7!0 z=@p;&C-YqPfU9Gq%ZKw_RIAH#fHiJ(x!{y8aCt#~FsqyI-^4i*&M$ODH}_A%W8~nK zBPZ1r?1?nC)o+&pyXWtd@N>&Q0qC!6tY^or^k3_^zGHw$vlf?6|c z*&D3u6RWm%qH^&@8vVWD#1wyQ%ZnGWe|7O>^)|f7zBu5A6M!pj;2MN%=7!)d)N`X3 z76WNR`{u0U3Ta~xTTkD#lC*F&b|FKLE%Fm~;b#1D`m*{v3?%h*pZd5=5-?pe6i z*3wJzaX#;Kb?@*m;yFIgCbiv?=Kv(j4Zr`F(661^m`ky3wAMx#5Cac?^XnH(dR%qyGv+uZKk&&Pz4r3xKyEPa-%kun+ceoE(Xx zz;6tHjqqx5{1h@_;{dW3UQ@ruCchH6#hcK?uh}lX39qFu8l5Hh{z6~+uWxRMuWkk| z^1_?o3jF&zOA^49CcB+;ERxHv>_?^=d=)08>5jI3vc1Y!=$YHjIgSW;DFrV@hX1!C zA0EF&Pkbz23_sxq#>X-!aUSpGVh?Hl$1;DN<4CrK{QZ1rLTqEryFq-(rO9jH!;iyp zCaBQV0g9S)sEKsOhJJefTo>_{`90um!!NWx25U{SJbKN4zrO}DVD(=b_^7~-mJA=~ ziWi8t{sDXtcWuF=wwCGJ%(u((PaMUUf5Wdwp(~Tg_j2Y{(T49p^BRsXr-%5#$lqVD z3v_yW^8GghLnSa+y{6c#_PJIDWrKYRPg)uLEq#Y&Q1ftOt#;2W*;8MF@qd7?2AyMd zLRj|ZTo~+`#|z)cyUTwrY_0hZx)TGvG(?NrfjQat+$V|_{ag3rXr3$3g-gL#3_H6m z-FlkEJ+_S6#lTODxI=q1JI1stCB`t@*g#($PyE%?TdHM0YS(Yk?iygRdSVa8ke;yi zv+N_;&8vyCSi5;MeR;$ewBJ-evY9oGU{rt8rJtaqt_RVdwV7+oUemRiXG8zMo*A6D z@@s5V?3u3E%>M=^mj^U<;GY_j$PqqR!|Yxv?$`+fgj24woo})qgRar~Vb`0W&Sp?= z!^YW1!;5k1AT0S8x{x)~<;8wJKW8T%0VdnW!R+x|7~J1#tGpNYURyEs?(p%m#8+IM z(i$IEoY6iXuZE95hu_=d<9p4Rm4=UhBi`=-AOF_0bNM*d1|PoyES8TiWsLUt`0#f4 z_)+?^d_0BzI?Bg?|ElYJoZki?pD%p0!pD<^(-0s37QSzfkAHtbz{j7y(>fpbaQOH} z_Kz+M?(fd>ac6T5G7LZ9yJ@O_y&C;=oI|HCh_}_SHf%&MNe4vGM@RC!0(tgx2(%Z) z_EP;B7k1@EgmV_v{#njZtFH>qO{o3XtmmDD`$OUxuFR>9j@>)TAHOT`Y26b%t=ZZC zG<{S8y9>8)zN5djWp0Gc%h>i89}oUGRu_K7e46lL>b#tOCw3C^)w!Im+AdWF-csOA z{{7(O`xn_1+Or>dTuOPaa(SRvl(ST#fpUXJL+`=l$mtxi41iw)*`!_9-ubFSo7s9+$$4nuF{ewb_q0Pw-x_=4B?H_%g@`uY>;K^AO7ac{!B- z(_9Oc{2%(#xkvT8iv!D2VEH5WI};~3#NsFEzGTNZ!LQ&Y@rccrini0vm!-w%sCME5 zot3Tr2JT|;E14EwSbl$tc(M3HI^3m;@D-MID+AgW2-Xj@{?X2!lU4q~-_bw5E?^Ez z-|kti@t9B3-e2E+vHetio`dnt6k%t%IC0NTb%v%(>Ho8zvzKR1nqL9^*MoLc(2CzAxd~}XW-RY#k&W14~!p^>-*1_a{r2X@F3?04}}&L z_!6WGtvt3jH}TR8>1SK+)@z`T`lFkxz2mTdG9Lcy;4&XX$9|H;k>t+`Cjb2SNOTX3-r3cd2cEG72Ee5TgBzC z&gdn@<^46F9sOe0(}F*DUN8Ngdcp1KrS|HVMi&NaciO@oePkaJd(#|hGn(xd^g($Y z`z+}b@r~#@3_Qk+zvk~H%mW$7;|x)B%0Xqy5x(Qh!>9fB+#{w*e`OMnr+ou)u-9K$ zHq@7ia4xX?tS`-NTy)t#dzRO+*R-;6t*;~5ZvaysF;R^_>dwGdYT+pXo~@?`FzES6 z;EfxZ6s%wJOlzf{-36@Dl@`_ru&pcC`^=bMP?7~My0y;YLP@jLIPlKb^Mb8k99(bW5fc;Eh zPiLG8YR(LG#;G^4gs-R{UF7tQ54!1leG96fVL%6ej4;oXQftBR%mXjr|NAv^>aSNV z9oz5U+_`a^48CS8uZ_xYlwfXA=_pIK(lRdu1d>I_65BZ$z zK4kG{!9JvhemlDl*?vs&@0?#}`ivV`zT!O#%N4+)m`iuo)t$RQE5`Hl;_W{3FTfNx zXX|DAix=H}reeb#*-= z+H+1JCT#bdi-A%4!|r$A2XAgW?K3SM^9;`G=&Q4IypeHKA5(mDgF~ynhE}>?;@t1e z{kywK!zBi9osqXN4Sxzu-vpp=YjALn- z<`XGm8Bz4`GYhy2r0H26mEi^!)LW zzr&%OWK7qe@*6mu^M{#;fXn) zsI@zf|BAh}hO4gn>YgG7qPfY3qH&a?oXifp6L{OoQ5Ie=0Pmi$bqwrD^9GihF)Q1M zE9yHi@4!p=Zhe}?!MWDLA}6*lxLb=WW-t%I^jq5HqIVTntih(coc?6nDQ^q={*80V zWw!DCN!Uv@^q&v?mP;n=I#q)GGK=RvuR|Nz3*t+iebf69o?py!Y~-dI;I{tXz4Vo9`da#3 zypKAH@yw_DZ`h*ya z`sJI@)IJGp!SX_K42>VVkUF(t`=Yac>^IFAwdf&hBWkbH7ySA2M|b(LM9t61KkI3p zd(hq0y|Oh599v@!@RG~m+m6@s+v0C0_N4MFx@}$mcCEiB$w*vD8{yr3PjURP&ayfE z)^6Fhq3dhjFBntb1Cf1lx&!kn_Gj`jc9ou27+jYcy{I{zC*25b_1msRHYaMSS&tO| z_W8@yIDZ2E(zlL8`(*9xI`#`Yp1vz%_@@W+sZc!}=qdk&UC$(^3nlMHX6|7O$&d7- z@UL&Zt>Rm6tAVM&&lAr~MCr?8|M7F;_Uh+vvkq!;p86{Kll)4aZlOPa-$7hOdkNXW z>Q_4RZ9mpxZO*L30%#XAW3LK*_b8F%dv2?mzI&9J`1Gh`ar>Z##D2mDcvh?m9ksj< zW9z(m9c?UMo(qlbJ6ap44I+Gs zUb}X0qYauEaAeb^*O%3EQNPY!yi$@{#Iucn|!|QjPH*}+bI3l zAn$JfCJ%k#3!yypnyVWZo%cGqj3IwU>vL?zb$I?=mAAVLe%rG{t~{xIJLFR4?sdQp znPbLm&kk8Wso4%WlfJuRhg?Rxj@lvnpBLC6y`f20?2zu(+ZpT7LcW!2;6JT5;)k%_ zla3M3?d7!5d*}P|Iw8kql}^cyIT9M;A8T&fl<5@-ka+z zO>`2l9jlH{;Uqoe6v}H zT74;+`*s9$v-h;Vws$6`Gx}6HMxD{8OPR}?$bL;H2(+;1OU3A2>CB&HPi0fRh z^G*Bi=C1<*omD?BiyAN4d_!VzV$xNOi}bx7%}4vwZ(nPfhu#pncKIW`7TUdbSLgp@ zGk^Fi$-3Aw&!cH9&g85y-`8GU9-sKZM1L(D<-*yPU*HnXlIVO>iP1e9PXyOJO>S>1 z-`9SRv;Wc;l0RR5u$#w;pA3!a`CY_s$#|r(@e4ObFoI{$Y?RvdK%P`XAY5PfENE-% z>%LpuLuZQ`JZdW30WE53=x__|yAmt93tLC}pfD*Pb!-oOG2`d9lH+Y_S6(1mqSI||hwyL$ zYfl_IYb3NHzo!MQw1=>J)r({URO-3$T__h-;~c~|F;nx{ z_G$OQ+MC}=n_NTh{@(@ou=@|aFW--3TjwgQmwZ>)DT$>%&#Fd7w*MU@`QO^AadS!U)QtMCy@x6jYrbk^UqP*zNgGppB(%S& z@0GnE(lF;u$=xUC5}(cRmZ>&R^+oK*_`Ntad%qKb}N%^EleFVdOh;;J7P0=nckSKscFDEBrz^^=!Wq-d6P<0V`Fn>MrN)c7IPQx z=-q>OZwb%mrt5jl*u3u=4=Ua%K9MtoS624Beq!|AdoRw5c-4b<@ygU*xkC+{k5Zf6 z@D&!O4trVG`LwO_wjMN=ep$1=Ea7{x4V<+a&U4jTNMUZj**CSkjv6wmJrvDlpXlX{ zzB7k>0p_9o*q-#K+NSgG@yc#o>y_n1hF*L|Wd36NyiX6lQ#&B#B)%Uz6CR$FljhBw zLjAeoJz`hXvli(*m*~;>OtgIPNUx0j->};_TQM_npn5cZ9#!C@V9jih=nucKy?a3a2$J~q|& z>x`1DQ+s7qiudL2gJat&{52!fKhv`ny_U<^#e6@vmh=CDp*Y2Bn35XUwCguU$_Hx> zdhR*T&APLi=e2rf;IF0a*T}l|$_3!^bHUt7+c#*d_X7V&+jX2;-%~}fVexzQh&80b z*YL7`E`6vM8yn5!%=C(V%c57#dKB7TTn9~wJ5D73eq#MD@rg&LM$^ZoMP}A8mvKi& zW_rLo?&QeKBCbWZF}(NKuCX!Ly$5b$9%Ie*Y2P)D8q4401>VdRyem6IeX4KWQ~SwF zyqU=Iq(|@-XnqTzd35{aH%p-f`_b2)Y;#_-g<(4fS z7N0nh>&oeMVr)Qt7-Ge%{4@LTwPq@Py?4Hl%WSVgS#EAj8V2%LGn#*EI(jEy0Ne_#pE?D>;b$z@nIwzf;knq-TsO}1R(?A> zQuXa&URfo7Ix9UV!+UUQk9muq=Kr61T({V_MJtAv-N*B7_z`6@)6S2hHl{{aZay_a z4YCw!pruj+%`4l8E|>mYJ3_RNpgU50J+;#XUb*ydo&4{_e3traV<3lo^QF8F`O>=b z?d;~Yp8oxDT9cs&GBn7Sq2%q_iZ4gY16zaI2NQJ`I@y^E8*ALm95yi*!9NDsD)iVF zU70g5=gU9_)JM+e$P&52Ia?w#=VCn;rzH#|$d zZ^5s9LJx4!lfNGv&G~b5QYr6n4sW#J^YttGY3bI+NqplzLv0Ry#n1a6b;PSZ%P%|9 zYjF8TutOss_Ib$VRA84MQ1JTKz$<#8Zzui_z72mY#$>F4cB}$lk7pzneH|&k4}Q}# z>GRh28a>cwsR@g3-&XJKRr$F4I#jaL63*90lr09%3gE0{eQF$`x}`&*(_r8oVq`vx{ahyJi!=B>8TEUxspMk~ zbjgmnCYB%D_wTd~^Ai^qRJ8^7dB7dRj(+08NV_n%$b1HGINe>&Bj5*@Ua-+&Vwf=jFbv`!_}U-g#5W-esSr_DTHakZY=5i$q^uc*GS| zJEufn{!K~F*3Y=!N53Op!@?)WR^1dyU3q_+xAK1c1(PFvHcWw+m1mQNe5BLgo{{uB zkDJ7h3_T<-z)9G_xzlyevy6)Zdq|on{Ct;wD*0ACxx)ima`C$ub%q`$lqbDMGOPIt~=Zl9#4C(a*xP1XJMe__ED zRiE?!d}#10|NEuz8(LmiJr>%euDl6a{snxEi=;QvG72rz=r8TqG#^*!ow7amzNYFJ z+V4p})Ab)(N*{@q@?j}Y_W1(hT#C!3X1pBrq6><4^Qxj=)&goNH$=V61!-RPf=2Ac z^$*WqT>PU{o(*1*lj?n0|8VKz;^{pb3Tc-{JK?Eb?_AKcLHKx?`HsZCXmh?R=2Z3d z`YyQO$t$b+dHojb?Crduzt?}k`2~koU2w>lrn$ai<|-R&XK-B4{;PPrSFQ7f{=Av1 z_&9oO`khg5nSTGAs&p@XK_9Qrg7m!)t%|}Y@bJo`;gei+bh7o$=B|bF0qt7nVOI{T ziTdl6=w3X%^3kV1^k(jjef;#t-b}9-|372z(-WH!STc{zzq8`0BN}3??U#XL;rk^1 zS3K3TA-~7X37b+qYyW6jaX)^ir;uB+%Z3tYQ9M3Yy@}etIr-kq)qS}B%@KayjTagB zHha2Jejo7dS*e-q8#DD?+KKx-6)pFu{pPQ!wfp*OdH*c0e0DnDZ0Y4SsK1}VYg*&| zv$ULryOrxg_&m*fV4!NG&jVkTd`DP(S-`V2)rshrQvEmV>C5S(3j2E8r;(Wj@JS=E zE*%rVDmaI0j~RmVa^`xu4`()TX8UmV1kT(LoF8NcaKcLiRrC1L-rmYf8E+c)&eJJr z8}2#Tn`Fmc&2QB+LKaR`jhY^`i6NEy-5k?H(9mf`CUlg(VtGJ);{`W<|~^E(_r8-@KX=Y z@1XCuU)q=b_bwaQtNJt(9<9J$sj>4f0;kt$y|p;x&g{icC*Me)1R}+@6>RPAvZJ zre3YSy*PVk;z3UxWv6+owYgYr$bhLQ7!J ziR8~H;kWoxV~ZYIyQG^%m)cx!6t%@CVhL7@Eh{ssEkliDy6`@u}tuAH6;tnfj?iA7Uy4*E4_Va>1AbeNr_a zBR_gRfM@zI8BOE2__G*!(*ATBbAAhc)3ZR{(-JwSdoz0sIdRrz?rF~z&jJ@WOsKAB zPb>bePtDsi`|6yNmh|%WTM92E=u>>D>$(iyHT*h-XG`|iEry>( zU!8}tcp|^SAJgLMHlA7Bykm6D+u&x^L4iCqiiQqcCGf5b7kwG_eYN$ltLF{Aj%BxCzyz=xyHfc~trcJ-K1TemwJe zl)OcLYo0Ej>ig=t=eOU`c;Kp^pffi#qBAo$EJY5R@Vl|)JmQ;^&*M=uk4pNry5h(1 zqSgW{k15EU{AAiQ-qGJH*BoMN8z*T_kuMu3Wz%-rnXxK67tLc$L*t}V(1VsPXMNo` z$?E*|hDXtFddvUrl3Fbyh$JPuCG7&9pD7nGg?=M* zGtdhY&vDU$!DFpp-;8O3uwak;F+s*brgLx4mhXw zYt{!^+cq(lbhG$K>)Kf_Hcr}%42S!*G+qOYS->8>2fGKoE?$k^hYp0#Wk2L&XUJyE zKX%VM^G}>mJuM}rTKat)>)&d8+4b!0eciS5D1Qy?gG>q!(hv1US6kTc1a|4Za%5S$ z$HF9gDsF7RO^3<`%uKw&|2Q^U9knlSH#T5tlMR@em`@*}_|nVZsV%WQwV$wu(?u3&tBkXL>Qy5wx|Ri91#n|(+V?!nU%?%Q#O4+xDz z9q?p&YYpSn_41ZW@1g7cwWi4y0)JLNaqc@K&**OC$EQO*yxxNUceeZwfAU+lNtoVi zsv9TG68x4fgAerS@+aojWSfBBvCyL4><@hUNM?|`1Gq0)wJ<*GtT*x(3O~d6e;NM^ z`ES=P^>Gtp=>B-_TN$r1GG1k5{A1+fm`L`XlaY_r*fHW&$@kNe?=;6g;t z!_$%|O3Prl#@@ie7x{p*Q}j zDE_K6{8j1rtNP%7O~L=lKAwF=I{S)Yxn9}O7_lQSQdU3GYZx3GS++hyK1JdJ`$o&^ zM|ce*zdfuvT3=9|Gc2$n)1oQLLm#za53hPP`;U)vh}CC%4a6#ZAHVeUl8+%E0$I?(G;druQ@9ZM9kB z$a7S3#@YH&@ZQHG_#Op)jEfAKG5%$5lH{r|;#F6|i>0*ndFN_xCiUbe<@}KN1ONK~ zV>*91`*|~S`A$nwZ!aUKggpn(repJsCPeQ#N7_jvEI3_w=rdzA z`gnf+(baqM{>Qw}+B~CzwW)tEFXLG7&iXcBa#>{NOZDEQ1-zF-o4za9g8}D)&kD2- z4p{J6r258Fyy_e2_vq942IML6>iOwu3-a>Qs)dK2@x2+z^#*XZ;H*g5d8bc*bX;Vo z8R=Z#L?1V?#@$38j5SmJ@cn{G!Z|*jJ#Rc_&jk}Ktm}X^eWwNaA$Uuk@Fv~PzP6P0 zvXs4SDSa0I!aGpB@HKqX0Nuq$!;wE^u39+K8oQKvx_so}Z)uH>E_*ECBNy+dfcHh< zeGzyUjg(uN=jg~Ln>@v<9>_Dnvk3a>UHM+5SLU;}OBc?k59vbD@J6HertTAI+7~Y6 zcOJUq0Pyk+zTd6;cnwRKv*uL#y|>@?l3=X~(R%?G607F>e4WpHWBXF1Y?pZs{+ZTKhwcn%pbMs%#cSs#hdEn}Lm`Q7s! z)`ltYdv=s}t`KKf7and32H%l;`1{kLTbqqtBrOjZg4t4K33g2_Jf|yE403d-vy& ze~%A#JGS2HG3V<3kQp->v({$J|6$I%ZB|k5Y+?m%*pD^eMu#%awp=S(V;A)<;rE^S zvx%`{!y>!BI)3gA+kr{EJ^9$sO!rw6e5dl*0}EH|!tUn#1Z+RGy@cP7()Nlsu<7+Y z;5>f-+B46$<7e>ugptnkz3{eqeh)H`-zSWAo+~H8JnwPVyG|&Iw+}pD_gjT;kQ3pb zX3a>@VWZX9j!nM@+tDgVPkzguU(#ST-U^NH`Pgp!jJ|JS&6)3xVZ8gA)z}7n^543~ zBmIkupH&%o!%#o)Ui8PjpY zgfW4ff(qz;#s|z>32Wr?W!$neDJPz5;C;{Mh%50uflmo*=b9gtbK4V5NQOA&3MzWk z9&7DtPyHHwLEizj=bKQ`z!?!2^C=n6eBq0$jNm$*&->7SO^zcEJL2@;1&qaOj`H_<&u;)%>IsUBVd>`-%SErLh zIhDFzKD;&FH}?Bhtv|XlM>NrW5@%Q}A64!0r{X6=@#h|598KpzXFmsq&p~^~S!1w= zcFG)vUO+>5X2}l6&o8;pnLCZaDxe+4&$!j(st)nurhGHw@iJoGL<`O7d;-_*A>8mbjF6 zj+>52(tP^-{(MV9-)#rXIR?QI%! z59jVYMcncO=1DSNeM%p?^Dln!=Q;c>-6{V54fNgdtTkUeuK0-TvO46M-d***4HH~i zmMnK^c_q5cJ5I%D?xQc!@_5^&dC0^4^vGbp=-CtgaU z-|O&6tNbYNTJ{&mCK6tQ;8pnSsm6Z|D30vl@mYMQ*IA4IR8Fd#crfmN_b?Yhwadg?qpmpKX~z1`^LaRW4q$_dgrT_c!rn8n?`1zuYZ4LFfTtsoX+Lt zMet%oak6Kv8BNey8ToI})b2Y^%xSi6a`M1l_*_nN{T+SJv|{g;5Ua{x&D>24ZLJ{R zZ&3glwuxLV#$L;J;F(}`8|_pz)X)64JahoKDaVefyP&T+a0T?td|j7@^GWj@-b%-L z2%KLT=QGWtv6bO7&GUQM3P%1AU+zREdS!j4_D=H1950S-;-dz~pH9VbS6wQO>(9@Q z92WU^{MIft;v?2fcJxN^Dg=Q#Lyx2wvRwo6>BBVICTkzLkGoM?b@jtuTDqvx^)* zrj9Ypzz&t}uRx#rDT{x|8pv3)w&C)Po*7*Zyu)e7?RN!h8>RT$E6zrS#Gq5g@ea6# zUZ<6QS@GP0{9gRUMbc%ITcjLZ#{CZP$et(x4=edE{tK9P$Hr=CV{sZT>OKBrx<38O z(+(b5(s1y?kx3d+PKk7A3-sQAT_&4J>u1VS)EvaHn<~JCbf;@4$wtyRRZnu!*oQ^X z5%b!EFY#^KDn~~(VDo5wPB=tP%_8o!%v-i(hO^#b?1uPQDQA2mJ8hiqoEOnn`ZynB zoE}@**ba9wM#1OuLScNI@|VMm(~T)=oGK?gyMCh9xb)1-EAy>6znC%UnHLAL6ZK5` zSoR$}V#eyyz`4{3@;*Ymse8IPN3%+C63Oe{9}z!AM%BsJT5HXaUoC!>ueldpq_|oy z_Tgv$Ixtqg<6p7!ZhY?4sBqPFk>gj$rzrbEDsR+ZoRk+A!6RP#c?o#3oVDnLeKi|A zMUbx%bR=iTjA_ND41Y1arTfBBRm9?ytFhp2d~n7$L;6rODm}A;xfGvjeBF$_`zyqd z;PvleGlbA_o98%pQaJXF?pZ4$N3=M0U#?ZS{Wz;Y&(|Fy=l@)*Qo71Q#<*pF$z2{T z*iY{N)zlHcU&UveufW7qyn3k%I8x+8njfKhOFZ$pQt%)j0zW!|2g`#8#l5_8J?G?9 zJ&_|CqRj}jD4aRDwnecg7<0)V!O>LmO5%3d>WQH?=wp}gOPs6s(ua^Q@Ir|_W7$T2 zs~^{1=(rp^bhXvkicQYC^xE?6pNi%eSfeIiAHHs0VECGMkjuT$Ovo;IZO^mF#ZeB< zrg7(=|GEidz>d>$zr>4@ug0gAZ5T4JiBSk&*5p-^EYWdU-Gw$+}>^2 zx{I$Rhx#Ub1bEMjZ(DN?4Z6I!G7aD4Bc#aVbbLSml!I?)K8s@yk4(~BAdYL%Tdzk0{HG0mp$geKLe^v+n@GW58_mt23nlW|gJvpddZjPq`I>u%;=YqF9P z!5nxc9{YU{dqV55I^WEF*BXDfk$351j`W>G&S+umD&`W}U0c>SDS9G2s%KvrhTpcu zYD7+KlAH+Do7~r!^-b=Uqs*QkqkrP`Qwk3DJb>(-1mBEVwY8)yr*T=S$sbu;cJY+x zE_8HQau_+a3|j2Lo-F6SI@zFItTmawJElbcopLVR8Equie~x2~z{^Vy(x?2Hbel^y z#(B(Rw)S479mz)%OF?JW`iX@jd+tT%$kq!2uj-b3!Pj^vIYdF`R5?lh`Q`VQQ!c>z zW$~^lv+`#R-#T_ie4e-6iq36lm|26rExRgk=J2il zC#FQLzZ`K2boY^=3uOBer z^sn$>Y*6e5*=J4QZjgPp(qo_T+bd_X`7*bzNcu9{`R%P!kp0BHJ`f&x4L>~;AGa9!KL~Rz;9oLCcX6ahyKC5^%T72%IvddJ2Jaz z_W2kc)ov@eE8MK z2eYp7C*nM(Gk?4B+3+b7&p*oBDx1d8EpzG0jWx`z=2Op+chGZj?A_Ab=2CRUp7)*H zeAy9U_Dz_%yu`5|?lm!o;@CsAne2zLvDLuGo<6PfuPvK$YV^nWu*hz+XNtb&dwJ&p zXm+tjwq}x1oqrlwcnW0{FY@Bv#L=)_BgpQ^<;1sGvp4t{22RL3F#aVnrv`d`6#SdK zg!%dRSL}KVJ2!us&9m}Zqtd*M`HwDr4qy{jy%+K-Ht z4AgVQmu7-D=l3|X=V1o_H8(+zJ~{+n{HyS#Jx+^fnmtZ$Y|GOf@0A_E(Se`D@DOcg(8Uh+bj5(l?L_$~jDIow*p z`bYQJfrZjFHlH+ zRhhNmQFXPh?%E)-C0Cj;6viU)_rVV4HegMgb2|G~nV*aJ?7^pLhhH?eC9IS0CARFs z+7XBKRbXwKP%`Fy?4_FR#J|y-TAT3NYb%NSdHsOUEUQv|6hi~*XRj}r?^yCAJE*YL zgiqK0Z6eR^2ehg2d@0L#wxa`N8(+w0o3FT6>rW{#;464x=$w-D$5iK8k00{!&m6y1 z@oIPM&l1OT$L`M4M#diO1aD>5v1@|Z5exe%czcie$FEo`ze04d1>SUNLG&sx8d8A z!Jij^FXa%HrRia<8+&nV;qQ6%ujz1MScHypp@p%cycCws?_JpDf73c7P`jWWJWh&oj~SAF(nC}*fruo{21 z99kg`uXoqQ$6#>O8jMb+PPsoG^S!?Qy1D#si2pyE-=Da~6!Pq{{ z$^q1P^xx)xx=fu-Kj+hTU4VGekya&f?ybxDAA7)xKDt+H>l2nY*mtg1oLg&`gPwy6 z#icSl-{NC!ei3o>JK-nk1^nvWSAHhPoRyYM_gwsj-TZrVro-6S=t((-j=DX1sym^l z#>UR0>@}R{5y2;G!|%mTToXYzWox^Z^0EsrKMuPPJLvr{T5ZM-y81M7zMvKKi|Z$9 zObPzN?h_90=3YpHOK8iRWBbvK=aN%4kKD4k78e&PJ2gL(j zzK-WMC2aJYY1fqxZtOuZv5q*+-VH4pID;odwKfC&$LZ_%=xqKQf0X&F!`2Pr^Z5C$ zVIDQtF1&m30e}7>Ib8YqYy5wjy;Xjw)~Z*+WAC37$3yUx=>M?Bpn9ye?b^UvtXqE- zbnV5cKGQsU^8~+loO*Rg5^Q0O?WfU`ld$zKzoAM{D&WkDdXbdkGwO_c&etX+K-qW_=^zx+6N|-a= z8r`bA@wgF8RIj%# z(|*pvS3+$Y(Eqi_tMF`WLu}`b`kl6)}Ux|8ECh~2^X z!^ovDGRZ=>r|)}H{;NAiWdE&*r+u?I} zOl9cl^f6uY2PaS5YcDR(Fs22bG1X`u7(>rDOHNZxWte!X3+HCwyxNh)v$XEA5ZdC+wX|Yy8zLC}{v_@fg@7>eT2L-VW=!{a%IKP9rGS4k% zpW=NyujgKL{6sz9S=K(@l$VZeA)o3-o?lD;k$l9B;uBX65Et~)D!8juIqhrn`gsrk zbg&$_o%JPG4qWQOGtPnM8v5-d&+W_Z^HI+8D|l`V$F7dY*&5>OI+7)tr(1!?nWq`c zwhK1+5Z*KUXt0&{`#A^0wnP1_sr4^G?#@2mX}1O%rrjBmVUl$lJ^Z+l{YmL#%p~hB z%P_{z#K$NfS+KZr?NaE;m20=h`PY3XT65niN6?iWu8g~$@-A=ei1YUj_@LrGd;TJ1 z%4BF~Y1xYtCYRo}V4giZ|15G}6*mrz-Y~(tKVcGb=0)l)LPjl?%z=MG+%2|^{HhUe z4J?#x?dD|pkQM2;o+LRFUqf3gS>nO9@N4KRj^BLn0FP&-Y5AiTI=Gd5FXegpy9XBP zJmz$sibV$V@54OHezuVnyPA1!#uqO7bExfo^!{tlo*Eq+_lvbgEW0y+ZrMjpSnybD z%uAQB?#lCXhmWc%vB&p@n2!d=Moz@C=NRX8#CjyJ0{BonE@{}(^YPef<(IfT(Is4@ z>BejR;^>iyp1sqZKXLK`oV60p+cUe+X>qL;t#iO(fU;}d+Iw@u`iSS zym#1lA1qXi(45BzO{eOd4$ceM!C3%>cHpIU_ONZ>tTSS!ianFVz*z;%-6GSX4WGY_H#)3^_avnJ$|%U{F~-YvSFiwC3k)ib^vp_a5(=fD7T0>a{cIqA9S<- zW-{gU{T6exjke{Z3a-33T>3u>c;1bV|LS6^KOG06!}Mp_dDJ<7>{|F#F{`5PP@C4r zw_-~uH|Y@g#@{yksUvZ{BY6|?>;sbCxo2Of?H=^bY!8ne0qv>{%h0d<{o>f0tlPTz zDBy9-2fSAJ^>)+Vb_d&mUm(O#3_pnAIe2b1F$Vrov1g!>{OSP}{$QZOC-%+;Q zA?8ebg96u27*n2S&(GhET)WwB4By(>9$8UUOI>Vyyx{Q|GJcqeMMx!6{m7$2WOF%j3X}Z$Hvpz zt;HIyWj|gA-TFg3Ki=vuxh=218{5Tx_|qTRLF=QEi><8%-S$@hrX!$d>aA=#qwCEh zuCR0Mk4i@Qww43~Tm79C(UP^f{UsgwI^+3FYs;!LtzWJ>v!p4n-+F%4nFXb+`L;}n z2H;^U+;)a#TaR0|&Byn6%6YvR&K{G`W7Rw7k6g$Y>X&m42DI+CLjA3*lY!d4=n)V}}_BFp@>UMKaMfgPZZ9OF#e3d$S9v&Fj zTn}A@s5?b)e#?QmT))RS&rjsHglJDb~el|>FdmCKeK7}kIvZOW1lH>BAt+a)>`0HU!jG3 z%rquoHD@6`)M*!%6k7eVoBg9?7tP)pJl-mwbi7@D{3vVd3E$V5QNEb_K4@867wva) z{uhm4ZA-E|NxM&J-iYbgyWog}9v6L|*nO;N7P+Kx=dTDxC#1DjJ?Zp4^F6 z|FsvE@ZaKGy|K|9KF-JB_q<*C#1X9nb)z{C=sS7+S92zY{O0+{ENlo9%hlb2uOhGN zmvD{@@9W^L@Xr;0O2vEMqUVhdqUYqh-OD=a?rdc;jZNe57dq#Tl!4nw+>aA4d*|2f zNAx&%JpRT=@_VtT;nM@9c4U1W&-|k~N0VnuSZlM0FV!Oh;(CkqGAG`!hcRi7sdUNB z;O!OS?2DJ2t^DK75#(Dpu{z=6XOvT2{l1EFMMrUd5B8A-?S7X3o!m*Pb~di!T*1dV zs|S8?&jD>^E+kXchaaBN+6U)i><&-R`KIwR3~2WmdiXcnSDLbtZ zRnc9)9~QT(l4mKp^RKoa5=?1hmOKj3{?!XC6R*(Neh7XdoTq8d#bVyX6RQ79&zQ!F~AW^Au~IVZqzhsV7HmzRS)(nX_bBPrCBt zsN!t5L(lN>42}QnT*q#GjJec&haa%o)CMuiN~3e&g{#pm3*ny?*XH$4Qn}MYTkD|{ z+qTZt+1X3r!#{IIW)5_{y%%0Pg7e7Y^zF!yg4h7(VjB7;AFG=)GaIPCl>XR*z}aK@ zy_%O6e0u)@Yy{{igfD1lr-^%IgkG;|1S^VV9UFKX)?vF3x++g|?{i|)8 zy@9HGnd-4OTd?lsxz<@?kK*sd`>&wyrSx0V5S;14t9mN;ava`z;D~tU5E_clVPUM0 zIc#_!)Fz+5iE?|6#NPn^8rikTuK;w`K>MsV5U#at*CexQIgHHt~g860E%LJ#Zy9H+_^pH-M?m47-9?n2}?t8WQ zYue0KUp)27e>*hnrCqoF)yNl>*@kQp4dg(7mqLGfCVf%{4R&HLhmp77;Hi2ej|yVH z!H){{a<5ff&UBJHm#O_s&vZs=`k9wH|82qKBbu8y6WPR+h~d=4oO9qTXnQ&5gSYc7 zzLNg@!_>I`WbMkUKd(lAuDB(sKcy>YP_LCa^kXN_hOgo8t=Fu}?H|XSNXBcd-m~i5 zGcSePTj^Kt3xH*)vPKSe&xl^RAGl~6owIqx#NnI)GTY?J{RTR7aV2{My&rvvw!yjK zfwj<-o^d{dk&~=5G_FC;s_%E({OEM-HFWv~%#($#SkL&S%i58_(uFE_Ht$@$CD<3n zVb46a!q|V)uFB1$+z#YvHlJ%FGDUWbaL>9_?A3|SwoR~g7K$C4MxP~|FWmk64HG!m z@TL2f;zv%l8pq}~t?%<)dHQ7c+H7E&Kxv;7GZR&upM3sfrD?-{+?T`w(dBuP@dd7 zKl7S;AB5|hSjQuOuwu&iu6xX1sPpss7Ui=3n8!NgFwV9(g0n5`sOVC7R{6)lm&V_O z9DSYN$jK*=Z{{3J7Y8;t(E6xsmoGvyD$^M-zSmBxuuAJTJIhL|qF*f<*35HrH$>~v z%H67rb{}o^hjpH^&UT&T!v-Wi!&%2+>i9=bkG{`&uBLuvRdo6-&K+{y9+}sjka=Tc zzyFin{Iulzv78lKc5>8T8;aW73z>`J*q2_ljSbS_soRmLTO8}4E_USRCVZKDmSay{LFF4sGJJ`ZTRGt2+wHeS7HPGO+79;dPwUjh93sciJpgtuv2snlZ*c! z2>;xDsW!h$o5Er1ekTV~IIP|8=soE&$%==-Www5`KKA}aK4dm$!QaRk+Br7o5jkh4 zOIG7!Zt~~JS7HwcXA9N;)#1%{?9zb&i?~6tkvYzNtOc>N#CPAy>#v7iR@}n(DtHjS zvrawAvC*53a%}YWql}II1Io8Ee^;+MyMOU5IwRKc%a7u@Yyk1c){7ilSmPmo%*11R zpv8UABKB6{x!|8OHlpVeA6$V=x{|nC#r45H;(7<_(T72B+lPJ@Jnv%@zfT|AS=%+X z8gPiFB{QC;&lYkF1P3v2 z=OO=#w7e-pz`RACTL{Pd>$BM=2P>YNl$bDM>ah% z)EsOCcmIqz_|Yev1MY+vbeF_KbIg4#W3VA~-fFXR&a3DCh&eva-OnY*EDu|67;*zU z??yjz!x#03@Xyc221Uo|exUb|BceCwPKn%@{Vp~vaUIP=z0P@s*5LP-W@~L2J=9U0 zWA5FO+|inIEp+|rn9$Y%esA^NJK;L&V83lDBVM9AZob5L)rQ|5_mcL?gG2hYVjajs zSC4f-$4)GQ`<(ud-K>7y{&Yvqqx7l%L?2;d!=m?|H+^mI{U5un`w{ex=;NW&bw*qN zmm7vPqZ1sxXKcWVHKEGTMQuFm@*If{7SR9r*k- zcs&RFo=pzlS#1Mz9J|arSKZ)M=TWyYS3SffG-qAl`*rN~?-P$qpR+pJ_lNKS;CuMI zU+=|J=`_y{YI0V{6FX>(&o=$74oE6(pP ze==Zf}kB+v}=Mv`QQs%>ZPsZm@%{92J z*IgO$c$4rMVyy-^QesoCy^{&=d;VZItBF*GGH9jP^VjL&Z>t4K!1TXEv31iAM z-Uo+(No@teLnnIY6!0KgH+X2RrvHN2``l}mt=(_au1mj+IU`QeWw#?2Y~u@;qIaGt zckIvlxb8P+m(y?mkNwRXmQJ53oTkg$Zgf}cY-g`e`ny!RcKpwaT3!FZ(e?6?9{(%y zh(1MkW5?w*i#9dR6uL6@sN{W8cO_+f@|j?q2QD1lkbIsg{;&H;y!WM?3T%ab$F{y2 zTwu?dI8BdY^T5KHLnThrQo|BpHXYW z^~jczU*$AvEkNz6Ovzh5liQd0|Dn&U379w&vT_pRX{QZ~Z?)Hsjn(#@?=0By*u%>e zj|q?q8sKiZF=qUJv)0PU}73wgEn19uIVKo=F(nCB2N| zg_-Zk@eQ)?>pF;uGk1sZDI(z4=6a!+9msYI5=ay zaQD73tijcu866&On7Ql(YyOG`oyWtul;qEy*RX8nU4fBnn(UI-ur*nS4)kt^MytV% z>dMBw6S}Ohtu^zGwW7=3`u2h~QyyRb8}gTb%O2#%$t^w^IIp1WcdgEYqKiGgQN0h+ zzS@&-pf)s*qpZN1(fIz;e8cDY@RXCdG4_x24Ws%=nzLDqCp0;+?yvV*Z z&NJOrwrhQj@2GuUj7w)-)#Q?=!d*+!xdG0JEa#lad~&~)s}f{?@$j-2*RQYx`&#JF zLPnNRUb!Vdpsvx=ybmo;RI|u)~})Ynk)Yx=*oYwX(;%6`i1R8n?=6ElmCEe(99* z(na%ZDld_4M+eqWqZ5=`+LAo5}tD@KQVK8KRjHKUjB2GKQVLpAmxusFaLSU zS7a_y%XZR zj$^fdpkjyLs?>AVyyo@rJpYl~6Z;C_`O5AmLw&2K-nD!6$&Vl0@%Re|%ZGJ}hI?7V zS{VGscXoF_{_sKn5&wR$^~5(1(oP@kzqs%9P~W3@ckCYi$d3XY25wXdE0si>d6k(HY@9`;PU*h610(pSZgA6^bz zFY=5trK|%_kNMtu;nUPxSIzoi{5NeVFCL!)y~2GXC+Y0<;@A}I9{Dli`zv|Y4!qJ& zE+0Snki*Ay(3xbkbPi=V%MTe%UE(H{LB0ER{?_n`nQi$SX?MlP*z(xUUR&OY7dw7U z+#X(A=ARk;A#par_zmh=w0$FcW4fV-FuLbDXAjNVGW=+j*^it-ZdFP*3MT2acK%<3 zZo16usVRzmk#-u)?}FHW6JO2P@8;_0USwL%gZ}1$=j5w$XW^|n8yopWzVg3-N9EdD zp^7znRtIfG25PEGZq8{WubX>Oa~dZ}2T&%zu4m?=JbT)C=zvP3mZIrD3?d^AyemO zU!z|(kmvnfYMYo!O`emNI6PFo=CT8OW^Mq!$Ed3{&?ee%=-M;0hG!#q=8loO0cVub zmUKKgG5WTL7=QWVs%WWAOla*{{S_8I?4zvZIClKnvZk5Qsm!0|&0BA%d&r#l3VAA% ztepj2=deCz$Eul!3&%tI#Exl<7@8ADx`5~H{62+mt?_Z5>h9I#J{?2dFCJ^{zj4yZ z(YoR6!^`20GV)f)k9)Z;U_I5v`j+hGM^1#MSZm>)LbFy>%=%X3&2#W$tj!JdwRBFc zxgVkyoM^4%Umq}QW?MyTPx0G{L5{^IhW>$}lYFGF@O-=#GG#=D07q16f;y99EwrnFry8`DDD3ZSp0HVxI#J*-sjmz90XYWMyIOuO~S3 z?TyR!EvhB1^Mc7A6Yjh)incSsXk$NW53jp#M*Uk_FM__2O=e9Vd?ohAq|dR%9Q$V~ zEPevtv_*T(<$SPKef=mpZ)_gh!@jV8FFVM z@uK`$%5||e*YdxNZ};BWQmf>(tT0i|z{EE&t#j)rK2?tISx#H{znlH!zU?69R?ga& z`VFmqItJnwWoGz|0%Us2Mwq_Ki}f1ufWH~SGW3}5l?#K1#Y}Aoz{w={|?1#p&gsH zRPXEHgEi7h{oagBszZKgoj>sS-3x5?aI3Fh--zrcUakJp+f>ZBkak;%KbtjrpJ$EU z$cLgVYxK@Oc*UP)H#%!at?14$_j2l7O7$z7$-BmW&hlhAH#P;`^pgv=uoC#{baqYc zY0(Yr0d7&QzF>NM_N<0ntJ=#mqV?_^6Wd!`)_z7*F~10X`~AuF*NwC(815y@^1lo_?A>>vJrv^OD!$*rG;%+;nF2ugKOy(_T^Ra>`fs4LtP@Txg?xVvbfaXK%I zQP1Sil#*xD1?~l#7p{lZF0@i^&#cZO3(2djiOT;aw`Ql`E{<{zW^X%loZy+QpBBT<^(E|C_v8i@OP-yM%#iMYZc6z!^S*MtnfLb|%WG~jv|k*%nco;En%m0vm+p)VJg5K#rr5^vsxb-yNbopt48*+S@ zGhgfhBTM7DpE;17Hz^S6e~@p@mjgqRhw7QDY`E{xyn*`&-wq7PdV(V#n%So~5qOx4 z%zTt`%We<#FXJ2BnjAU5u?=kWuRm6Vondkh@gp3$IT)U4&_bqp+4rcy3wTI{VO~+F z|3$_e%s^kR44dQ7z@WOBXwuaAb4|1=OPxOhN6R6}BXd5)x^#TnS!7ZRye2&@nkfcv zS>m^j1i!K84}P<9`<`Jl(i)YOK6U(~!91sVOz<4@{ZHgM@HUut zhQi&Oo7}k?TrbnyUX_^J!R6Cw9r?LA-A+iQ@d9J#dFf;*8gGr$cz6gJf6+tZYvMG1 zZWbE<68tY3Z%@#8s%>y;7WzIdfrC#@-)j>1POY11j*MJvwW7CVsWSyQ+6{dV*0C*2b) zi(K@iK9W4oG={qvL#DEtvrBio_GGee$v6M}zu~h!XJh~8VgHlU&iZDe4r7+S5HF%1 z$Y~@FjSPgJrs2CRd=b>GZ*vr9TaQ9A#xaOYSGT?700k7&e_Jrac+y`!Pb`)aY-%rOTg<<6Sh`EgA*y zt#KNi7^i8A^`s7uPh@1wSMBJBkGNw^?iX-#`?JjlYc7Tl)R!}tgX?C(>pcm)W+;DA z$iXXdVDV2@yykfD3g5LF`^AZUv{G*|v@E<|oWSegzP#~2&J{Gd0*kC%bC($TY-_C# z?dbLyO$(Me@iyo!nLFvy_YTHB2|VA*xBI@{DtT=vI{a0p_DUJAgGUoztI4&^{d_g! z?8Z`ZFl$C|76~~6%KPgeUpt?Dl$;a4*?&BDzYzOAo|r&j1ZPQ&!w$ar=9gL9T(gFc zWQKAmR^J@BpZN0pd1cnFWqcI-|1JLeWx&1x-)%T;pU3ZQtlhSd*Pyep)K{38l=f@} z`3}(6RQh_JxY7u8Wi zKKt0im0h3xH$HFj8CBKwS?jhpE}wndUoOA&wl^=o?Y8}w-&JNE*a%)iw{?EDo=+1W zYs-PJ47a}iqeZNV$me6t`la%b`D-d}50S!a9a#428lAs?U?pQ%!JKw-PKMF1=mX0_ z9-k00=Y0>SZvMtOZ4uV8>Zm*UwoqTa?Z01mR$bK*?#sBp7c zckjmo&x~;XuX)$VDD6M6(Q~Zr-pC$==d7q~hY&Fx%gTw?Dz4*8J7bdLIF#a*Ri zzP{IIVu`Y`-&^7ALwJFhlJr=JXVUpq<#w~$>VVJLr(UJCIqZXVWqfO$Qor@ijYW3& zTp3UtyJ#nSxZo|x2sb7o8PN$IDuE-y^KSAjg}VsPSMpqa&ZVBC0|(n(k}b8ouOu%% zTbWGxg36^%#L3~W65H2X{KTsD%K06T4^OP833!w@{(v<&Xvu4zy199g6PvbL z2X21(l9FU>J8~j<+tB?QXw&AM;GB2AzuB)fxF^O$1ALc1F*-Uh!EV(0ZG?ErYe#mh z=YB25Q4|ZStt|bmqO9Qh7BH#aRqR!4qQ6xW^t>q6Np8UV?1gxZb1*ap7nXCO5FgKXrkv;^d~!weJwM(KZX5^ox|DY zz4`2SN2e20J>A5Q9G=dNzV$Hc%+==1|IBtWV^F)s4yv|{?dkF=IEd?O_P_rQK4)J{ z0lsf08`g!-wWq?+Su6XbHFs*K7JHpFjzaYBS~srj+JOdE?7%+}^AfCCZTbwbx^hE( zbTZ%B=0Ico6l2KtzUT9fE!;^T+sWPc!SgN3IRNka|FQNdbDm&#wZq$&9tS@%FOq%l zao@r=^yu5C18<$1YA0l~5k^Ayu5L`X5q<~X3GT(fy%V_W`#C#fI zh*f}R!T4Al#+U;ma(6J_?B%@Xvl-h$&c^CyP9$%0!RtQeLHEbO`}3zDCzdU}tnV`o zm-Wd8T49gqm7G{{LwR2fwimK(VGiS5ikw)=GvTd=IjW(p;n48DpU!O~-*&Td#3e5! zE3pX@`dGS4_S$#&wA&-^m)v|Cd3hwVjsHeo_EJ}}@*8|4Q(gT|vdb>bk>GxmJeZzG z&x*@tr>}I`+{Afzu58|zmz2#@>1$&`HWwsh^UA!WY<>zF3EvdDdjocCEifBdEE+@> z*CBT+us!N-PTC&Q>yo!;QC6~cu7!QWCwO~F-?_Ih>I+lW%H>Qj%WAwVF00*Kigsk> z?dq~CRZR5N`;#kSCXfF|d`r5LV zsnG|T^9ui&@d4zN}HL0!G*tf_Wo$S;m6Vq*wEK8zD)Hr7ME{3(NiV|>QpDT7GN!>2iQst ztvNjE(4F%;P)l4X?Y)1l>=W|yO>T&vz4mnjm{28cdW z{T3&e#dj2UzOs*$ybN;KPBZJ?;sX~y?z{xRbq{;kBx3{QO{j13Ce|u%q8c1TM5FP! z(3<~?(91k>SVGj(-o&}gP5F3#6q(R(?3CxHM4xoxxVzK)%Cyg0dtbB<$z6j!KMm$~ z1M}cL#Y4dz0Pa>`-m{851IRsi3LXOo#0bjxFaEQDA9y#FMUITVfh`i$S;3TP!jD-! z#CWl1RBvY);~WnCw~;I1wbxWvcoJ?BW#6iZUY@|o;IU+#!y}s(kaz3A_6g^(l<{Z| z|Lr$}=P(A$X>+)A1QhuKT30BC}abKP>uP?U9$r3n$l&HR>MhIOSg{r$9PHF$b>< z3=v;-`LgpRhc8Y3DzO-^jLpcO*QAc`k}TuP6uWWbHa0$bFs`eL=Pv21M^=?scJFp% ztn63vX?DBMEXL)Jm-SPYdoOzr%p9m!az3 zLES3gdu_G@pW8+fuHxRs@3+hH@@$zmEz+((d2hxh$fClJj0teuJb&+G<*v9c$)J;u3T@;UgZm_hmOd3HRiBHYze^s(*CyXm@R*#9EPcx+^y*wFtxk`o!VFdV4CYQ$H!J$2BeZ%|8h1w+4|b=e+#@U9Z-%wt1fbMMeg{}2iwsNh%O#~0jyd-P4Qjub7~Uw<>Y<5 zf6-ac(H!;=Y5$+&-%kYo*)0>I#*T&NzDhf1Vbk8W6Pxy!rUg0pqlOM|&2|nzE`DJ0 z90Zf&0_{}O?jiIq`gpVK5PW^+qbQLNQeurYwnh5>HTN8VZgjhATXajOqifvpu3)@w zTUxVvf>^NH+lXB;RJ}&(wK4~qQ_YX&CSA`Yd_VB_zs_0){F%DP&V|w7>5t&)Xz+y3 z_l%3XZk|ox8NSue+-L9dY#h(-qLp5ZSj55trzjUMb~e1NI=}WdpYHEgO*dp4m6*+MR!TCuw(jR$;me|R#vhl7 zTE7x+A@|LGEbVu3>^mpd_5F*UGy6WX=q!WtS>PNwzUk7-0>tkku4c)L)y1}KhboiPK?IvUJL%}u%*xdG#FuK0B)5Z(H=FO2Rh0g_-XtDuZm5m>~ zHu~m5 zCiWk?d{V`jwf5tz$)x7(hvREd><{#;L8X@Q!X??Bkmr9M9=!wDvbEi#^|6&lCiZ(9 zcrG5v{nkwj8jsFxZuyY&^RYF|J+tv#4(U$8`R2dbS=;r>&h^9&Sids)&t@*bZ(rI) z@#v4d^Eo&#*`*gB>+s>kn&sef;-jFk5jp!-b3~4q>FNB(DZMD2FfB-Zv;^1rOJCOVG3t)n=<7kg>@NNaOF zdqytLfKTuF?g7vF?ybz5>#i|f5$P#dl;i=Fn!N?+mhs-^Nx6YSol%AQ1Bf^-B&18;?oyTKC&Ym{-2-zua>-=99_)x#?YKlXXkk-C6C{+lr#+ z5z9PXZIeUOMP6KGHRnpl<&MR<(kp>Y{hc=@Ier)Kk~I$A3u8}c{NzJ@7yH_g9U1Vz z`#X4l9R0~x?3rYLBmIo;CiID9n%2VG!$ZW7y1C=s$nfT|hCVIm zlk?(dMDjx)iAMcL^d<6XHm3* zIIFDwIL+HCVCekoz*AOj{c+wnw+q9^FI$B!9{u3af}ZNZNv5*zP}Z6E!DAWwio;(o z06#I2q)!Ci&3gMQ#nDF}aL#-PA4>9;eaPXh3Baw~E3bYehkt%BH&Re?tkqZ!y$8!W zCX^R&_NN`l&*iRLXn3Lg56&~cw;g#c`q28t*N#upu^S5z9k&>rn!1-Olg@N?iv`^n z*y|@m>+ko@Wm3P2PI{kr)$M`J3kZ$*f z4sQ?mI@ebaodx3OM3mE>{O7p5*p%kyt}SDqc`fsV?U+&@oa}VZhJcUE9`N7&U~svt z?Q*8gTbCV)!bH@4iX7D3jn1S3YBp52m>h$3!1;@I#CwIX)9BBhM*)k48%xj)Le3 zAA7m?CUBI@saO8W;ovDaEHj>p!Ba&XPd#xwId+mAJGRVD+2bGGsg4E}U(&fmh{%ak7ye-9lKT?qb^FDQBBU2E6)v*9rWzRZ3+zNKS~ z%!1}P8+h}?GACZDyar!f7bzZ;-uB_(w)Ke2xZQ?Km2a32y)DfPR!eV_kG5Glyn<&h z=JE`9R%6HM-CVxoanVhRi;5-{U+#b&9Q-?bMP(n9;hzfs-5&cfz6M}u@)mIF))7r_ zI^@JZH5WtGyYg?%1+;u15!*?n!))`=nMThY;NN$Gga3b&t|P3$W#oTw&jr1P|K|>K z_}`DL(OHZCT56lS5JbaM z$^34|9v!5wUtjOFVFuHtWXG0g9lpo}oASNVWpO9?(YPf$iouW81$N+11o+navWue& zz!CnS@ryfnuf8NN-MF>nPpbz{tVg(rVWbo4)nr~4c{jmb7gqMyq@A)XjZ3LVW5 z9f1egVlIwG#BpTk$l%Dyi9tT?{-@H?Z%U#a#MS;0S~~x4;;1lo!Y9O$&Le0-2D$V! zS7!#rbK;v=CkiM>etU_NBhMPXXb3~KxoNb6Tm6?0p2vNR$}j39PNTM}FJ`X{ZP#_?0poUEmC1c3j=kJ z-bT)T=Oo>QQW*Q?m&k4SXrS`^!{F7{;hE)g-+e>tb7YFizgH{^c}f2LVBIWvlIi){ zJlou5l`cmTXL}*r6_ZsAtW|sGxbMtayDN@WGw-bVRVv@$c3|Acr-j(9@WH0tI1Y+p zH-dvs&btsGJ9E0FEe#<$lt-v0sj zXzF<;d%E?c=+2Z_XsS)^^|3WRKjU!a3u}hRqf{R`olbQ2WP~%|I@nJpI*IU|N+*S} z$Ds@HfadqF-&c-bYMWjd>XCusQwttE;$vqoOUQQM5I-%l96MWc?dnm@wM7g%z1?(J zE$V2$iJ$faYX{@Y;`0yEmtz@2rm~tp7Y@;MJvL9Ka&NRlr)lHX|2;gz;F`);}&zi^Z5(@)f18_so`NL}r7 z5}aoeH?=%-)AErsH|@~B-fM392CU|g>~i6mb2zoHRdcfuKA4mN4#l1~6PIg#;OOW| z@Thhsf@g48>HgQb##^A7B#s>Vb=R=7J=eVWJ$$9MRaP=#6*!N0<}Jd!wM$-6#^o!w zebMZ-iMboxx7w-uc%WMM%PGI^!z*lZqB7^$wV*5B2cL`i*4;y*^EZjx{Mbuloahe#x!lqsrH2KP2a^j_qy9pMArPyl?g$vnE|n zsU6G2PscG&#j)A6_rX)PIdj}k-gSp7Gm%Y;4IakDW-;df3iMUaf^WG4t+5uJtA19J zD^>=5l$}}@)jnN#Y-rkIk19ULAljP4oHDj`%tzsq(7;vDKs~r@rsZ6r!bU;enQ97_3-CJ&_ z#4Xo)tC1 zbfBx@Z~U*pcdw~_ws)E4`b2P$t-S7yy<|RiDB}}fM#zuVUIN-#>$jcrMpsh59eELP zWS8OJI`)f*pVhAFarb88Jcq^c`@jD3YvFe={OLH}ZfHk2*ba_=x06^xf_|KQSNX`l z%|b(^iC99ap2~(}+4SPIZulD7i2Jyybu;1d6=Ynt@)~E%jCZguO^ zHaxgBwu8$TervE^rVSIrjHdPBK2PsMvdg7S(IkB=oC;0K2MmGl>Bu?dt_zkwoNqS| z1qbcf zx6N!c5su4vXd2>8?WSc{;e}isg9mUyuuJ68!Y{|4i z`eDyKMh_;+X1l9TYXpjWDA%^@Qk}QMdBjK5{!I4>e7D|GY{lpZjl=7wAjjYx&Ojo! zxD=Tt+_p+ydSdd9?a7@g;8k$n@qv^3(T=^Wexz6SeCXWAt@-eCw!1qY8+C31IMMy& zTBlFPjeLz~kmZN4GrQEHLRzk1l8~)A$94&75S~HyebGb2kokF}% z^xPmD2wOqV@bwn@iQNQ`7*!4bt~GahEOhVmD2nY^;%g?3Y2uCHs?gQ|=k7FASzGId zb6pk=_I?VeH(Q2G$Iui6!9Q*Arv0d^VKKaFycC%~<(V=WD(U$12 zme_=7@mb2IuY0)raAzQAv%NF?+n;0F7Jr-Z^^dJefggSJH1X;^!>j}6(%&;ntmt0g z5dSDf@CZ7qlUU%PiB^=e*36kl#9J4LZ^F7uAg+HRCP&{{7x1n>2+lo}#m?VZ7CzPR z<)`-L%Fdp#7h2M|z4*#D7H|E@)USVcpfVe7uLWPgh<%j0R^;N$rF##JZSvleARZfv z#@u^|)9I=n8j?Ngr7PkBhOW8;9=clM<{TEqrbAbyBOJPl#OZ1^bklvLOIHQ4uR>R% zSG^ZqMTVfOYQ}!|k)o@D*a>mE3NxQ|@w-|iv%267y`M4!U9IpH^)@k{AUqMVW>$qI zZ}oe`%xW_iU)BEVg4iRRbzzaOC7;4OZrN?7+t_75r79#HJrS!++Hk(X`dCl$q3 z^rg~k`2Dd}Uc3Z3*CsQ)I{JpaPxoR&4Wd`=PZ^3=6cbIQ<;-yY%%$aa(Q;ud(&Nzb z|B2JGcaE~rpTSGK{&m!E-=Ce9pZmqow44o}w=MQLXDDY__jAu}k*w65cKhOUI&PX7 z(`n3ACpoSOIrvf3b5BcA>@S;=c6TZEgXF}e)N$=EKl~F$*PjBeTA+&(?uTxI9#rlt zi&|Q!>*K(6~_26~RY%p#2z|@4jEqc^G8ujbSzE*2yHEl02@F8b)4xM0{ z1x#Mpz5Yxm^|QhGCFUmEJ8z7^-Dl(CTl^G>^HVU#%TI-|msu0Dd`@0yc77^|u_x8| zwyvG!o|9$6N7w^n-2d)6l58>e*+=!hl(V`%34D(pCVU&S!1rI^{BObcD)5;(V{JpR zE7ot!SvQKAyZa;3{SuWAuveu=@g{uaHog;UKEypFzs!5|RXO=aTKic_yYAXgE%xqe z#p&bs#JOufhF5PZk1ivIAUWC{*UyrpD~*0Gi2dQ`c5{GnsgAdecpP+RS!Xc%Me0L) zyB&H-^*_v5f!+84z}5kb?wDnpxMK!y&Ylo>I`#Z0?r9m1kHEP7#M-*C^<8}Iz(<(` zT(|PA`?v#?6Mo7mr@bKCk@1RAxO^xctS2TJkiEp-<{FFpb;SdBSZ#idF+L|Q?s8c- zv*jybf4jWtuMI`5+VW@@z8P^z^3nGnl)rJ+m$|D5yuttGysb>|)MA@^VG;dmeM|M~ zIt7Z*j`T_;~!c^#L758Xp> zH~0|W2p>UvRJG{ewPi*Bj_*?tn*bc5?PAJzc*=An$`r>&Q|2mo@|)P21K5$<;hlQU z^?e^aNI#UZPLZvBA9ba>72ms;cz?EXeOryLGI?m_gU{XanEniz}IX&OPP~X7SSzTkS&keL234?mx|+7F|$b=dT$)Kgylk!`Dc6 zmfClk^69cxd~`MKHZQ4+zDr#0S>zQlrk&P@)1e<_IWY1K1t3xTZ@8Gvl4tY^$t=XCtwWIW!1C;8u$ zsjo~a?3oVOVKagk`v_4C|}Y>FE~2G>7x|coZhGM zjSc=5&ocY_Rx-A7o=Lt-c6i(Ku_hCu4O1Tas9~Nh&M$Q7q;#}HBcG^E){VSvigtR~ z$EddVvBt@r=JS>^=6TQ|dbct3_w;dQY9DGlchq3GS0ZC-a*;2L8#y{_bs@IH_EV$5 z>%&{>eB+Sm_8M%8UiKR;yt5FPc*odT3#p8P6V@B2b4Flj*16X&+p@+US7mXBFZrkk z7Q@>*`&9hH9Iq7}Bz`mB`rXah!ETxDaX7k?aBOnn;4Iwbi_vo~ECGK1Em&4irwN!{ zcqD7wzW!l&0)GcQ)cHr?2`~@PLT>=u0T~f<#{iwI6`hm>LI)Q!UY!p!LN-m#@Ysg! z_Q5Wm4d-m)71%{{!GVeAfaBqI`>f%PZD!&*IoJS+`H9a}C-)=hSq2(O%uSt7djFHq z$f&=YMi$3u1Ucl=Y61>yLE;zwitljOy$jD=Lo-baplMSsA3CkLe(9D9+h0A8^3Zi- zUEYQXE{)g@ja1xB8wS5|I_=CUskn}3L-$`|`oH|J`nRg*<=LOl*8i6?^nWqW67vpR zHfsjr+gjnmHhi1Fh2c;5vcxV~Zdt31P72tfAAc`)@pBi=KmK8-V?3}kf zS9d8CzQkIl;2Yug1KleQ_cnB`+>$B4F_N+U_TwX}f6MsPo?EsInEa+}Al8fB@mRxU zGretTeZ+;im$3zD%Yh*`8f*y9^wVb@W3zbY!d5|ubPNuC9$lSM)q0CFQ#`M<5M^zufmJwWD9jd!x%FTTifnJ+D7uSE4 zUbIU&-#SSAf;EWNG1gk&`1UhJXKnm0J+}Q!eNQTDKhtNgeB3-c!Fe{Zy#34^+jgE! zjhCCIaz5wTjCi?ODwpFtJ2PIcR^@V?XJ^OD%~iQP=h=DAv$FXrH_Ul+%%?u=tV7sYCT_y-U;G(c7#m6FgURpf%o!(JZ^5%~4BQ*awJNdS*I`%} z`my)iGd;A=x13mw%G$tj&R!??x0LvNiIsa`BHu0V95eHQf46qcq%GNvV`xMF^}CN8 zb@>FVJ?D9N{Ps;{ubdve8C}_0t3B9?&AE+y zsrR0Ztncu=+vBqijD6yJ>nZm}C?n=`7z+P;J^KSJwmzuT7V%o9}^gMa*`Wd!=&BY_Es!M6h|KXyU zC3e{|i#aZ_ihCn`zXAPkAfM|c+PjqXf_nPVJ)^n6pt;;g+)cK9H*FQ!)|$S6Ri)hJ zcfLce)VrL2lujQbPLCe*Z3idkP;L%u8Y{4emvJ`#Qri9>=JKWY7R}V%2XB?Vw0=K0 z7EkVKxN>G^*{<~?tPwFQpZiRF!*XtmkvBi zx&J+|Xy$iM_}%&eJ9MzoTD$&#bEd`o_EC?%fbXb$c;T$v>`^aPPWZY2`mqLlHoZGw z>?X;m#q^`L-{X9@?^_nfp<2qPUU!{kRd+(SpN5Vde{n9fUk49-nsd|6;ocLUvGKfo z#F@YMijSas-8Jxp#yAMyTj0mLTz*XQ+06xZq1#p-@jC5u&&HF>)5?xJ%zhup(C;GJ z%EsT~?RS~)L(qWo9$nsk{&i=s`Zp82J=XB{OXB%_YX;}{CHSfce0D3=hVRmVPB%Qx zcPIE3kDu4&@OV9I5aRJAe7iheO*`Ui<>$COt~-oceZ?7gwYYZ&yc+SmgYORbpJ-lR zhF$Ow{4xo6>$x{5mmExRya30^@QT&GVg0cMP7M3^KC7yX{)Unvm))JmdA25Qx%;Si zy|LWOAl=J7)a&Gnl;*Bn?~lKGhO-PrOPj%4K4nJ1i=F?Mwl|NDy1MuOKc5)_GYLx| z3n8FMK-vWND@&-Q8E}iBwPLJRdz%1NC&Z1qQf!lmOJD>UjN53N#HCFJb43M__TCF< zmtb5#)LOfcfJrawLQDE=;y%K_hsddG}D+nf_V=# z->*W6u}J;;_Nq_phCG$G5_R*+V9M{#uq5z% z5cn-zH=~DvRnYN;)FA(hx3!UnvK^ci+;&61-vbWs14n|#YT4_j<|3~d+%@9ftC^Tz z(TxMG`vN-*d|ULZg7>q*|0URuZbQd;boXiDTlvmfFgZMb$xpl7{u28dM_*;wp4x!> zWkWd6LR+O?Uo3>ICfuuqwksC93R&R~tQ&Hab)T1Iv%}`wMV?7ZCV1ua@Ncn)x%oET zeihfyzg<<}Oj&3iqP;z@~a^BddaW^#q!vn=u&cjWA3O<;=sA{#(9KPmGc-Qm5FlXd9J43)F<*PGyRGxoKXNbIz z^G}&`B=*g^?8+>o^KtqNp`(<4IcrBjl0PK)NDe6S7sqCeuwmHFw+ox4jA=OIDK@+z zAN^nLGqwvh`+!qSV)K7rg>)(L z^+g^dl(+Eu!n1?G(imLP0AB}|*o9JKGwIh$yEz`@dghz-Nqh=p3fGx~Vr}dnt3Ss6 zA@J(ocPP?MxojdX3?$Q@iwqECO?98xGGvqFuSyF`O@Bo-eHmt2YvQ|FuQ|Mk<0xVr=Q6iFtRMZX zo&>IyBBPYC_LB2m8HLDXRlIiY(jc3$5#l6#T44B&?R zVdXAf%>Grb;s89)=S>e~fq$DlS)m3`R;%XmOX^^!53Al5@KN+nbsLvn-fvDO?Mi0( zYRP$wdk*8D%{IP{0y`O*m{0}(%NAvGH?*hZydNuTDHhXtA zdzXD5VqbPvu%|?0u0{Sng}vCxI(_UN8Xcb*DD;khF>;+Tg7a3%6|b5rTpDNX<$|oP z4Wj*;t7wAirjCC(vd>J7UjL6-JG7TQ@Rw5u2c~yU+#V_NAYXgxB9|H?!Pl(V9O&^P zGb=P+_)q)V%d(YwjjYg*gYydqm(MS(bM`X!5B964doPz7L#@3$(ML=Mu#bDvV_ z5AvSosX1Q9ypoyMNPed>ueB4mMRJ(e^`3Af)teg1vSGZu}r^vs;jR&vBi4%Gh`V_3L_)4S>zIQeFXqqV*IV7i@(m2RsAA zN%nZjvtPI01tVK#8WTKPi^WDc*W z;C})Bx)TTA6B%ya6Nx<+iuj*h7J2H)dn3MQRz_CP#wPA3oWuCAmA)~IkNOf%*IkFQ z1>U=GU*TGOfU6enFMP)8CndIscH4%mpr7HPxS3kfmR1!BjilefDXS8!Wo}s>$=?!+ z+&tcFs%9;1eI+wG2p*EdnsuH%LZ4?Xae@S-*FOc(eL(U9)D;OGSuvh!0O<_NwR-#M}Bxl zvVrTLbk8Iny5xW1A!gH@!kJCy1p>rTq=ts^zI-6F*BasC{J_QzA9o4j)0i~@JBK&5 zb);u_Yo$3d7TgkM-=wr+9}n;HrnKe*Gq0K2`UKw{*hZS!L(Pog?DA_0hna&}V}I=Z zX?58kq3FN(oBk7x#iBtP9rsz%$)8nzp^lmPuxhW zXkZWiLGq1futmo=87Z-sIgfu=`4xpj`0O->SaREwyrXtzGH2x~Z01gG^*{a?qvT1( z^<=unb%o@-*u>3u(HD2tdhd)hn@Nmec<6oa$mk!wh_BQBEH(y*8o_tq!nwVw)oRC! zO$wToeqk!MPtWk!$uF*qXGMyQ zA>D0T&kV+2{t7bIvjrZGrdwim|p>b2VeL!Lz%u zU8nPr{ut-FOu_3z=xdRYX5E!tTYgpH4*I+azVjLN>O2{iO|RJ;8Hy8w5##=v+VXjY z8GJsp^rAsgy|ab$N0pw`*h1Dr?bVjwKs#yu+Ia=uqqbh<`vdV%_{3-6btN*wnpC6Y zO=Q=De5^L%VIMLEttYaq6~B9%wN@iS|3m#oa|EBpM&PS4+yzY2`0NA+=g|&2{TolRSDplxmEcera5*PrNZK@9Nvf%U|4xF|Er%GtY zFm#Ypn6o>#MBM3gaL4BfcjHbw@4Iu8%piRY{ESXO);Lc68iTBU@h>BL5i8~NtC$4A zvzfIKUM@vPRG$BQ`d$OxR)Dv2fK#(Y)BUlJ=$r8^N-^)r#y>E*61#ZEJT<*^L4~AY1K~~51@AZUbFZmpK)xGOMc0t`c&mFeSZA*>jHgDC8V#j`xZ)RaX zQ5=!<2#;ku+Om_FTzps9xkeQ*x0&RvEDji9(cX6KNWL?Sutz>#PkOhVFOE&V1Dm|$ z#buUFzUP^2@;+?x7vt~Ef#;vVp2P>*T8iA+%Dg9;9)9~`#an73qAklk9_;POv5#2e z0^Td)J^TSBvJFE{I>m9_Nhax1@nsru)i4OZvFBC zBfT%b&ojF=D9*~Y59Tq(M85FsJxS?}iUT3HxWU{_ozZUmc6iF&iS|G{&ZV1=B=q@< z$87uMX8Z{Uh`YKU{E@Bh(>VDS;AQpL=$0{1M`4Q!PAvznF>dp3oA2ZDxXTe#zo5i1E!Ecj)fx!{+c?_GOro^SrKxw&P>&Y`?~ z_(h?Y8B+zH%5M-mdg^j~H_0L4aOL20W86zoa+9}fgJNHRJ#fj0-pg8SW*wy4)?m9U zMn9=0udia!HNX3S_g3IhFmGD85}YnDt0G0^rxgw~Z^h-Uradb@jTpG`*o|pp)IjfU zq0KyCESrbt)cYdxKdrmXS6juJBaEru+y^f6G~M@ovuWqTf%}v0o~W-2m$mPyySn3a zWTiCD5iB*s^6_nD&#=Fzw6l*TyQ%DVlvNQ!UW1L(y&I=Sv4q$q%lX!sE#-B!)~sqq z_&)5H?7=s5|GVU;#K zcd$3_WxwJRV9OJui0?%6*!*RDo%TZ&-|gIoy^FdPz)1UI55Eo5AF}Qir@bpEm(H1J z=d@tq;9-i3hlzXn+eP77;NhX`2V46tz#cdO*aw-r+0Z|xtM6VAo*U5A!V-^le&+%3 zXB~UEMevXB`&2Z2&u2e>wt#PBmd^ZVY9c$6Yho+hv2a(M=nD4VRpKu>jK#JY_1+IY zUuMV{V}#%Phe_<2u} zPjsf3-?DGbX5Y54F2}>iDt|#N82r0(88%$L^?nn)aW6DwEBs;&G)=$H%`ghfk+tE& zQ~YP$GZ*{W;&X?=L;S|{<%~57Y?m|Eoya#Y({>^Kz04k%&Aw7u2>Wn|yLawMxp(gQ z#5FhP<%C!Ad-&jA{p8-z%DJmrSIiC1Svj|A6!iSB$Axt+;CR!Ro|j}yFF@{L%+}c_ z^tO_jjJxPjbQ1a@?{BI%IInP)&l^(w+ev2`FDM6a(e>sc1HE(nm*$0~RpzP1&;#sO ziyvb>CVYA3j#N383Gp*HRjM@+WE%u$r`W$wBv*}vj1M2FM3p62&v z`fNYLwD^{2#s>Cv8LgCKO_|u$G zIezk=fUlaDPr2Ir&THskYhHW2gRHX__Pl!Rd~QDnp$qW&Zkl$l#>bd%WPELm`@fmP z*NyWKzA|?_vL`ARB6BXO9BwT7Y&1SN+E_yyZS>J(eWyi79aJ8W{$pu7USkOyRvV8! z`#@yI5?`%ogxZKWZ9K&HjlkEEONgoJ@TN^#22L0JY-0H3gYnekk;P~GQ$hhV=j~z( zCa0mB;DdRl3ZF{N zcRz~e+jH!>BVZ=u)ExmM;054{)_1=Vm=yjycPMv=mmy<-^W<)^V$M&U1#K!PmsA>g z@cc84?YU0QpJd|N1DvJM_iWCY%zpB_hv#7XFE@?DL#s=>u-B~)nJLla6N{S8P2!w} zC4cqocjBa18CBWg_LspP{>?#Eu9j4qLaE`iN|$uMGwWcTN8 zg)Ha{{raGPjZ3pR@XGzW(C}iu)6LPLsbzMIn7$8SgO86gI(LhoEH$lo@-vzL9c4xA zOZfsuN4<;#+s520`3&Lnm-X;n`uQ9>!L3zV{XMjB}ckX-9NOx!<-9$(`2Z z$&7C0Jgnlk^Ha$YK%5h2a@I9kao_G8uIbU_KimF#1KWzu!EPScwc#!D=c|3mdxdJB zJooC?_YGnh;BlvLzDwhIi86QWLHg`9_FG4U@r$pTv9ft3$D!6cTcoQ;c9T8)diE{&`0Q*tV5jy*APtMal&5FcR0BXrB6)*6>(h5x+N z$}2mnap`690c~@AVX{-3*s<(bp!31u^T6df;Ph;8``o54ufq?t)b;~CbSM0PGq;Jb z-9=e|ILkfAUE+72y$hYU_?^v9Zs$(FFaE;%lDFmnGNuco-+oD1YS%Qac?)f7%@t=R z{MriMyLsd|Gh9;OioNT9UO0S(dvwm9y+~${q$b)5(p6 zV`P8r@Nb3RMNYbG!89vZR=Fkb`9hhUIp`o6QPoqOTw*D0d>9?QEy=We2AiQV+GC0_ zVeghG=b4XjUd+6!h;_+@SLuvQHSj&1XNRz@b|kEONB6pqjwZA2zfCr#1-~(~Np?=1 zIYXu^nTLLaF1SwP()tNTHvpe{qigE9{NLlvj$*qFp&LxM_Q;X=`eN?@6z1( z4tq}j#aPbZ`Ge@df?E){+zO1P%f7(avcLz)%@yy(Oa4s1(|3EqZL}qP$}z`S`J6TO z!-E`LK(-Mckmugor^aZb(9IVx6FImban8VW%PqcI&6AinD?X-puYEs;XzCYV0LMM? zsbhKe;vM9!*&Scs2maggh?^S4^APRy<)8lC%BJLlKVOZGaCj0trZ_3^9CGquUsY)r z{AP7dZc&plbl}`Y_28V=)Ag&5j3%Wo09J`*Ln(9P_SBAWO0g|E_hi6Z%aD`Zcv|Gj zx$bYbj`+3e8PG02JUAJiSA?#Ld{wd+K9!7}M6pwTV37m=_8C32(r4Ib5WmBi^t_E& z2)F$x>n45Yc=k^UvOuxo(Veqh`5C^D|DL<%`q60<>-2`5?VEDskF|++6d`}CmHe^q zLU@7BP=PbrmsQ}5;-eI^=fdptJR{x3@4n9_^Q;YgvgP_7xx%#-_0@qzUy6wN$tPYf zO>n|Kie6UYC+4oe-x8_B57rFa5^Y3(y*nxW#-IBhkxVc8lMOzJ7Pg3<0^b)IGcs@I z6WM_yTJL)FeZ9Avd3<_`&b=#VL~otxFdF_7u$L=}bLzi$K(`#Bb!6slWdl+ra&F!{@^>0tP zJ4|q59(X9*;)a7gbafrS6*GC@g2Bk0*s)(Skt1#UmCeU&8`W57D>B4ni@tE~TlNx{ zp7ya(ZOg+(wHLilHY%GQ*s+WBV~zVpU@JS7AKOzMcsUF_5dA(48E+ak-LIDPe&588 zt#&pYvG|$A?}MyokTpordQtZ{>K?7XM&RTFP6q9`cBI4qJ{i*q7jS{9KB+fOH1_4O$C=@)Y+S(pD!BIe3S2)y z1Nbl#xv8G{9zKlSfZys*dsXztjVs;Z*dqm>#;{ak`F!4EVJyuFhY_uRTWs2kucx5|99 z*Mf|yvH7scyJG{!iZ>ZGj_<9sU0{xB-I|Gf=Jfv}ZB)@e@61&@Pup{pUX6GW0kdN9r6Qi5~ik=5oxrWHpdHJoqqcV~ z1-BNckId)`Q@GOvJ=?-9VC_CXLb-5Cd|{I(E!IZg^~|$awwr`|J6)N0(goZXF~pes z1mpW1HlD|Ui*k|#2X#Ha=ki%iJCOyF!O01XVP!SAIMi6Ld-f!cX-+pIk7b&fmOQr8 zmB+{>4vn4Lws2~p;$Nx~@a|&%-$pxC$pgz_=kwg<3mQkq7x4`~@N1Vf7LVl7eN9XPBplyfd~&%*pd;iGhI7hkjv;$=~67|5Jc zEFLMFyeD^>i~r)`Q;Ln+TwrP0sx6to_D5gg@Vy%5R?HsvF_s$m9`<(lUV1dC$*dLq zOr#sun$~;5=?Qau5xH{L<({T|#)^%tTOa??KWsmrWT|q8M^w;ujpXhgfAL!Jh)XLi zxz6Efz0X0o`Mep&HrJ-~-bI$*a$DXD-f)n$e4Kkf7oZ;q-i-(1&)-hjjm-HVFzjG` zql|GGv1u6>`ybg0z3uS&S~XS+*6^)E*f6`8v!9r-h2TWYJ0&`Y*bbkWK|DlqZ2YOA zNC!M%GauPU&b$eG7ky>$oSb~yiNoApNNybU=f61p5#bg5BGv?tXeUlBm!reesH1Y^ zPU3vhqIuAYwA*shUSh0T=Pi6E>Vwkn-e=!SCiJrBIe)NjKDa#$c=mzew!Ffm@DN}K z9UA58f%5O8H*J&NWZ#j){g?D}3NknE%?+|9ta&(?ZIElPM;DZDpYrWKXr|hbuKa8g zXV$#Ea~@gv^dnDg6|_ZTlujx+RXQoYq&He#@zmCcKFPK@?DX&+;_uMCo3N8^Gkn9s zvj6LO#|2K=M?=FmOdZ^sUOer;cDm9S3)N$}^}V zdyOCX`9|8jWCy`&1L>6F`GTjdOZuWq4Tt_RM!{Azcs_V~KQNXaun9Uf&)rLopP9Y6 zE$@57!s1~ijJ2(Mto?Pj#JxnlwX)~j@^hD;_J6;@(H(E(zOgc7#~wQ3JOG1+Zr3$k4h`6aQP z6TvyfI{2Tgi9|iV7CP$U$v|z~OdIZVTXr8E-Eo7jR^upU4I1g&zy~&8IL7~Z{Qo`Aa~Ll&c*#Sw zk347LyZat-2;I2&8|U5D&bT!JZ-} z4;=FLqPFMc!?bNviME%S33K`mzXzf*!h7j`+GnC69hF9th5y46@c%#${x1OkS3e6) zARb^HcrLt)fiv~sN&5sNJTw`cWpC^pZgjFoiSggRS~`MoZYFTk8cLt4=f8aT2JhFK z#^m=#1e)}Y$^LcMK{oi`vWEwv8N!=^%9U^X&?R2vWOA!5K~_dbNaPLpI9Ito&W_Q> z;WNN1;dUlGy8{^%UUV2g=Gr^z?VOvEmBc&b$2^;l{FqJum1N7JtPk{b{aogAi1*Ub z7xle~xj)8UyovcP1x7lT8`Pde4)Y~hKEZ9qP@j#f_%o%K%Aa{#tEbksMaV{D%VTH! z(Nim#4b02|cw#~&G zz2&dS;p{(+=e8Sr{EH?uL%eeyv9B8QTdKpl%lEgCI&I8ZH2gZ%Vcq5XYoN}}*e63jpV^9t>#kN+c{uQfP3>(Y7Q`8&@X9na_b|2;fE zoAKVjh1W;yOSRnsy!HXF=Yh@J*cdbpbldgVK(@&SqOr{9 z-44!sjwU9~T5oVhXSNQowi%33XL%L>kxR@%kT}B}XACWwM&V)F_KkQmGNwKKk=s3E zS})~Xo$LfA@>2}@*FtQ1CUS<`hHmITLF{9}+{2t znZ@_R)C+QVn$ez9=p)v^jVJNJSLdy1Y4 z)G~NI@2|~!Dm8qT{BE@U*^WTdKrna?7}W57(8>QU8;gmZM>dwHc&2-#55xjZ8lPKV zbFyKW9etd4+Qc{Ew`!-wxx+*4%wrwYj^c&%-A>Mo6v2~wS9;@Zdh}sz-l{J;t#x$! zvf8oMi})Y)#oVR89iukE6CX6bk+=xK+Gp7Q@1N^E)^MO_xA5$8^iSC--1;>M^~<0U zLB`>h1(`=aU+>C(9%P<6L-l`_1FrY=k^|l* zR?9ewy!*W&|DGIhChrd*2dtI;DtY%y?%5qkuC?LNUw7_n2iXlh%6DYV7Soai*BWnl97@H*DC(3<;g^!X^(wEb_?kOQ{Z9icPZ8}Bi62%So!PnY@V(=2my*WtT#s4csXXJ1VQ$7}g6 z#qTOPV*)f*I?5L0oJ{IT{&mapC>u#xF0j9uyLGgmkef<&154GRez)%PDYT>v{ZDJk z-bwc&W9S`6_vyxkXIlqb_Qb6TxgZq(CYj5{5#VIW!~b=y_*nnD#Qz2TZY>^(UihB< zHTYgT_}|0#8s7gpd>{4kzlZMw&C%6gW%q*~%I>$;ctvyaL}#&PXYhF+oozFAjCyFy zNaC?`2idw!9&05zwIzY}w1Btu;CCH%m^QxarP~tE@%R@GzeA3cJRqL8i{Cf1cG8{Y zCum1DMgH5CApfnE{Y__!BnwPoAE;f)p4Wp1xmK>@s?}~E%bh;7Z-P7rM=d;Y*E=yL zV<0{iS`4iMuLgR5i)F7%i`IN<+v_Zuk@k^~Tss7OZ(4XOGF1`woC0$2$!}di?ye$} z9B!QLOGBP6qn#H${#M0|+Je<$a$0Wlzso-r;xRST-fp`|m#W9!hw2Kfk}c?l@Ghxb)CKOV^hyW)>XGb{QYxTKNbQ`+kPL17F71>zyv}_h@ZZ(N-?}LcZ1itTk&TKUN)Mtjif|*#1?{ zqIOXK;7goK$6nUTo_UBE%o_HUVzWDt3C}frQzb8Do5*&^5X9)OEvQCULpQ79eaUT( zEoN@ocKr0o#^iB~%i04@jF9R{#{H7~TGl-BM}>D|L)G}%MCp28GG9LQ0DiGi`$V$Q zE$H4FGkbkKf_OSIm+tei;`NcaHWn{6!i@`!rXL{pY)mG8k@_|4dBMFMnMrff-93A0 z^V>Xg+nwjMTTc!uA9ZVp|IL=~X+mIQk@w8bK}~_5Du;r`(txZQho>FHCRIm!Z}aXP z&Wy`eV*-=0#3Tv^yS!tgzlPQ$XLknh2VUkK8`3)&)jF>u7%4YeX7rc5bD1|Y^jp@y z!Bg7h)_uq-9~)Xf%M4Gajd|!nLFP>Ehq)V>lRK|6bU%$n^MRgmcc(9GFb)f@ccg_E z-D<=2KdIY=@9YKIyZ?40Y`x#Tt{Kr~tgB*LeAM*~8%Ms9{_6{WaMst(P5Q_-)_1ru zMPm}&q=UF|C$IAERYzGPUj?>H$)+hruR2$wUn|B!F<|oheuTY2`CTi${#YLK9D^M? z3p?TZ@!+R-T+Bol)>?iEtmV6N*Yjg+k;0Su&iMLV#_${VjAFD0T2J07d3*!(J7G;9 zpxzqBZ>`r%bY612J>P46GNY$B>!$UQo{CIRqV`#%X>HgJ9;Ho<>1ccL7Y*SrH z-Qg$M>sEBlTG|7SRxaQU_Mv=5$RNNyBl^*Pv)1wZZI|D#(R*1}BCV3lF%v#0-3@w% z52yECdPlCBi9G%XE1snv?;DpEz6n`eW6t3Fj;npO1KkhzHU5{i#+UwX`9!?@)2EUw zA6^x(I~KoXJv31|^hw-vD8Af5xvNKXz{_(PyL>8Te9K<_GT-S5{+DaeyA+es<7erS zv)#MNm%%T|=&d&%R!d@o1NwtX*U z=pC-_#YDE~>w8(jT;zMngjb))?=ARMgs-!}Rl%a_ux%%5frrSKBLBrMe$V6g{nyz3 z4QQR^i^yj@*lHa=OK%vQwBPcvSZiU?0Ncm1Rz8;XkJ+{@+eg*Ao@D%b_KEbHMA<-a z9YdQuTcu}~Uj;qC!8s#+tur?61zwL|WtHR-`9~6cBNe=Jv_6mKQ~Yw@zwA@A#+Bex zw9amSsJm1xeWk~zsQAW#^D_+SlU`+&$L3g^q`4n(M?x8ZiMAIa*$!0in82Lik zbE+d>{Xu>|!2S~qN3-{26E9=T^NF8R9RvHHbOqtaE@_$wO6s@u96*B zW4naC7Ze`$oUvJz_wDrXPi{`CJ(hOdF@DqO9~scfyYbhssk27C;_EoWeb{~e=0MMh ze>?%1A{RZmhIJfBX8oYftku|==V4#M{ooBwzKg%}{Aly)YbQzc2@1EIc#&1cL%sLr zCBiNAM(BR$9A|G<6O&uT8j8M#yKMcjkukYErxBiGAhXuND*}Aqq%~Kpl@s%?|2OfU zxvXA?59JBod5nB2*YGVqEPs6~@;$tCts4{7o(f+eCMpfsE9OCT?=j}9KBO!D?Utj* zp;-L`SGT_>vAfbX>)L(J0e^pb_{*DI-LbblsNcJ{rH4C@@~(7AL$U9`W->8q@d{rp zaU$EbpZ0!&F2gtdmnbK-|?&*cq=|Nb`*H)+{InMw#~K+ckcyj zJ+KQu-3^BxzUSIxkSABIXD>Bc`ExR?{GvY5(s9P9diEseeXYEu_2fZ<2Xl@EISabm zf6rxv@Bf;9)E2Tq_;&XA$QGf`n(kSOs=8guFBPI=y-~mG2kt2sqpkSXFw~{qq4s& z;B#j*fkrR2X>`M@2{if)o4-9u8FHFUqo+AEnfL$r3UfjJ4O%oC8q9y2MqkKSzsHy_ zVC>&z4(B6_p2r!`L6%*t4qyC2=plOFYUQF=Tq#Zj%O4|p+yD+?{D_LCxHJda>DbxH zckxSn75FGNGp{c4kCedslz(wKZOS$nK(5stAD^FQ^Tk8xIuCPJ<6-PNUGRm^*{}8Z zzT5ci$~uC}yV$+d{~swIgYBpg8TJr(yMwmpp-bjSR!46+fF6hrH~pYz^Yri2mrHYn z%Q>udF3)@XN9obuIql{iid!*LHIr=qQi6{E05QmQ_~TChb#0{PNZ<|Mu)mP2F*8OS zq)lsje3q;7)@FpeZnSO0zhsQoczACzy6hpwa zXc4jRV>lDH0(~NHN0!xpncM#!dp+<+uDco9^gMmIyjE+v1Q=t3StT2cbd6j1pZGkn zPgfTBPxXoa4PI1&UC8kvrbo|k`ZPYU`wW63Kc&wb=<~Pqu>_s94c#`eO?Mu}&OF93 zkMp6Y7M}S3%9%c2?4wW6doD_|<~7ObqivVnhcDY$x0pV*(Z@{SoJY*H_Qu)FLwn{% z_N`#8c&9{I&TyW;nQp`TS3Gy&;Myk@Go*U%{#gueWf_?v>2f+>V#`UH(Rr+YWeR1C z`v~jOf#281nOEtp?mL(AP8N0%aL3ZEb*2;EJ>6#*(^Yp4`@Dm?d#LO88q=G2=Fc$- zRR^*jk{` z%h-bj!`@{N`eQ>m(>wDb`+VdMr>^miUAG3xOn@t(_cNX7VTX}`#obH6Wv$t zt9{!uCUid^e9+q~na4f!X}4+1#XkfV>wrZq`-Ma3;Y+&v6HG=&-=PiKUnenm0PP>)lnwuvXs^SQ*=lgc zeJpr1mG*L9CO!(di$2}%5#7s(KF51yTjT5Wj^e|2qVElb-=9sp8)#hqD|d(p}QcvCOgeo_67VQ3AZh!^?;rxzU>q z%ypN-SlZ5xuBPqjlzjo5l;fzUP4}Jj=rZ0J%UE5w{}A}uV{~Db8Li?S(feBN|8U1B zop!NzG~;vW`k3hTyjR8gXgp(#(Xlqx*IpypFULf$<#{dZ|2bppU_5qx^mQ#B2AWCnO%qZP(X)E%(s|P0NegE~cD^v9Nn_VCC0chBB$PUjz$JVnK zZ$@5!85uzHzn}9plJiu?=7%1MPuue5bmn2um%SI#qJJe1gy@3c8^pH$9`mSY&j^>^ zN_bX-?)7zZwDiP2xgHbeIQuAbyyMyqTE zgP4=zP8-Sbd;>D4y>4mIClkis$lMf1RSRsiN7dHLtg-y_I$K|g&8qmx<&jck#tQoI zeKqqwKXJvg@h{EhoWb$LBAv(Q1kOawIY=xCw09nRWwZPY#34vm9Y{y`XZ}uP)BVPI zDafXFJhx=izyBJ&=P3UDOXGw7t$5b+cptjcE1tCq7`XoZJ>0vMsCT=%f_TP2<^Sh7 z{sQq?w=-D3YnfX;IztsQeB{j@dvNr? zzitoCOt1&P>ez$Pmyc>E5iNU>bA;FhEPL=*H=uw2oA%&L@LPU=odHn%VLr4ZUpjwp zd$5(`;pUmPJ$Q41J$N2+pX|Yj?R-o-vIl2i4_?9V2FD)!zkBU7p|S_d$CHl^T*V%@ zd00j?E9k3Lc`@ZRl(X0ESa<%*R(w2TYdDH+_}BPAyVpf_3T(r>_?B(>q+cY}ejOa$ zy^)CfvJJ1MP4}5Q#(h`WWAs5AYuHovIeUAYyNJ)MrcCEPcJiKRQr|X3Gmdut!?o3Y z-)GcTF=x@}`+z+g3+R0p}63VzbfNuy0xCOUJDk!2X4O z&V8Of&~xl#t_*Y$YgL6kEGV1;<~888?z$EYtU)(5Sy#<(Jou-0D#166?+2K_Y5;crJSE4_le^(r#o zf3fHE?mT$TO3qsBqpfY_*A*_}lj9j_-66D(HsZ8#9&Nl%|Ce;e*XiyG#ms(!46%<- z9DCpzczrYXfSf<^RdSvOJ{{p*$=FVge(o8zMmDzFs2hJtdDr~dC6cjEq+q8QioJrI zYfFZ6hS$!!MqJZcH?B!}*AnBJ8Xq@_A21Fdhi&zaD)-D@|G1_*@WIID=EgNmVXOni zHN68)WIdi8R(#V`BXIcpd@H`Gj5Ss4((E1BMzCEdE*D*X^&#M+-)~dz?Z>jidS@o@ zz~k0w&s_K!cen5@9Chs{!cjX;F+I9CV%7pH>rTscKf#Vh+iF)f$@{T+NUu@sOdS34 z^Zy`MDr;8HSaj}JxFdOO^j74up|(v(`M~f^u1!1(vE^j#2gQ(m7ucQ;jL!qsbAb75 zY(eJ|Lv7pdU0I}We+{fv{6E-R#IYL_AB>#-Cp(s{o*c9gT8IOAns=zLa}GhUr{ zy_xt1_4V7o8MXBX;!{N@iVq~*XK&r(NUj+AksswzaJ&n>{zwkEB)x}y^_wBafVAhw z*C*A!#$2+X8;S7V`L+#j^4(f+Ze(wr2|d*ua&x64`hfG|Lhih&z^7AEz__J{9(Kkp z-|aGVgN$UXRhpwH`9 z(|_W8);ROQ=YgHM>J9b>JR&=`2D~oC#z3N-k~n9*Z=xQy{%0irx^2FxHnE*Zhtb$y z;T|>@545gYAK7tCbT5seMgGW7&q@25Zth?Q`FJy;Zk9|#dortD>Oz!

      UqxnG~e~EU~DHv*L#LqH1(Uj|CZ(dLLc^IhqQ-G_Rw9x!Ekc9DA#n+ zi9LHLb8$hJ&cE7wC^PzZ_IC?-T{YO4qIWx-IOG=gQ8oA_x-*Bh*E7Xu?E!{y*_xP# zY&?RU)>E{xbHU7}y_`9aP3Rzasx{F*ozHlxppmktxZ{zGr?t^|kiR%9VehrJzj7Ae z?6UTnyQhQQdpa$e&senA+MtO^e~dr42_4*>%Nl1c267?3NJ~c0JQ^&0Ix{+ky2`Wd z(vLdc7yW?7PR?&n$U)a8{W~K%jQ70>@89RVkB?*Q^_4|B7MNj27Fl~o)pY2OonH?g z-7Cg=Uj4r&i~I>Ve~wJy##-Z}=p~DMlQ_SCBa37}ca?KivdEj%t94|NV|l0E*=Hwp z+WMaMw!4pni?%G18T~%^Bz;YLJPa>tv)Zm&y_j`)7#b}C&XV=*PqIkqX|601iDbRi zBa8e79|>@HB(~vI7@EkS!`iN;nhnjUJySx4>?7&?GU_H_RTHW zdyWUkjAL#2Z&QM-lD>FKf~=Ary#qd2!&h{CwgC@Ya%xiD5;L*_NQkY*P%vh1Vw4%H}S)%$h&vs4fO3$T{5IaZ1<^EG#+4 z*Bch!q0R%?^b=vc=}jBPo3XPOA;Y8~dkD_#RqIURCDciL|2gOVK$@{Gf^Ui(t8a|6 z-X$-JMc+^F(%GpR@<5G4$0+rVja88sHq$#Ul;<6Xz09^7?}iS!Hrl=1DO;7&wL!A9 zt21r?09uDEAReNa-vW!K+h>DM1h&F+V<=Rxk~>Rf~)?DTafcIE9${T z*^zZlOgQ`&?P#3s;2#Gxt-NjSSci4PB|Z8f`$ag1EIp;hfs1f1&w@*O^kU%hciQ>_ zco@!l+(LV8^1nK8ZlP~?9fPc+_%!y;beHG8MjwK`#X}vvT(I8)ECu_N?swCpFS+9( zhQy^wiF@Ew#uKD1_gS!ef22hx@yz1;(4Qf{k3aYxd=k5G_gd!xH}#jxd(xBb@uf$9 z<@DJGuX5W>>@(fzv*XWpTk5m=&uS|zI?U;FD}5F3x1XzS`#wD<{}0cl*XDQjJlnG0 ze)f+C%-W?qOPLQ}UaFi`{o~>7Sc2YsMmcx-o=ryIU3*8_=?;(Se>S=0mpx~bF9qHf zKKD7BEV_?vWUge)TqAJ!kJw#=GgbbsX*#okpT>%}7eD{s9S#kE#_ojnaB-FuBPYLO z4tpq>|I+uQ%jy3lWcWSc@m}(Fl@=I_a#{OQ&Y0?3GNa;*^T69K)@KhN*=Y(XR~((b z)rR~Bdy!vfb0^~Q+!djAZZ#j$nTtgQe7E6q)2C~zbqNwmE%rijT^z6D()U0 zNG^MXwUAtjASRpfc_8jV=X7^yv+*WS|*y1Acu-K z%fBNTWXJE|3r-BEbl=aAId5>{J>TT{25|dN*bU{UiVK%%PcfVgR=lU~?@o`dVvi!r z{?mBR&+z@o_oX)7cu)LY+vM;14f@|>+PVoVX)7{1I zYJMv|4%@M{o^JeZHUDKBF6zEVtS5f=Xnl3Q_y5+{e(oi)_eW1(UtTwG9?tj~Y1_s7 zu>~f`-($ONfoVG9NQ`W^{2iFlOa7k7y1V&Fs;l<2VKaO1o=l!@5_>9MoBjjM8-)zDMF|#!+X&|7xEkbx^f!zmKkr$4F9geiBqTVd*~Y< z0`E)F5|y)9IKt#z^#xuh!@;}eNlIcCRZ%9ax@}aTjwZlrj1Ln@fbq_&7Ki6 zn+HANJNeEhQcu3)iPYw>JnBwx>h8};Z6;@K^JjBLHSZph(foc| zI^#H#ah&!4G>%#HQR2+`Ci;J#@vXPUH`Zea`ytToMH-p4k#kEou}nNmID!y(l(_Is;m?8>R0abRrq zj88{b&-g5@ddBXPt7m+EeD#cj->jZ-XhQXjQe^ho#IgMme68RtCM$#&T_PT3-rrPyURIc1Ag zHqUb=?6TiGWm{F2X_vj~lxZv@zEieGW!ZMw$4*(N%EsDd2c5FRDjR2)edUyyTPQomE=$^CudiQa$J%AX zoU)NB%dyKcoU$>Lfk*A&lZ6Y%IOTbigJ;4wt9+tUUO+i`)(*Z|Y}ec|=RxqR~YjDI1OJA>Nc6Q$-*?sPIr zW}8D>E4aV*Big_oJnCBL?25%Fy+8~|X9M!HMSs;l&p(0>>_z4tMBn5A+FpmR+&qvR{MvoiT_A7Vh#VpQ z6x|Yk5L-KEM2zsS`K^1!oBEu^&!c^{4gcnRQ*WQ?m)HH?IurNDAN9TuLpq4g8jH8R zv+G}$G1f{xO^|2SN}hRDd0s6Uyhq09d)C2{m$21cM9g#I z-2Ue{^Jt@w-+<=>j;<@VRPM)VqiBTZeyX=LQeZ<0lJ9n0w7ubbW zV!dBd@9X?5udR0ME%dWyv%9Z)x0|RdOftOIJspgDbz-hu_nZpxqwDV+V@xhbzLxJN zk2}#f`M5(58|TbuWKB*l{w-G=`zZYEdwJ*eb|S|!Di*IUIR|Q2K~Qw;%kwe#6?_h+{@Tbi3(2KFTdta_VzmPHfQ8FJ43)F z<*PGyRGxoKXJ{yA;7*xyB=$}2&CW79$!%PM?mDIX%UL@Ll5|IoY@fbpk-s=Li?i>7 zVLRV0Y?d-6#c329-jI*}ul5<+1)F`qDW>tkC!WdM7CFf?JeuS2RfKx{n$O5qv)A9X zK{zP>c8$jyQY^{Is-M>qdCeRVmF*^#c;0>3YhIuDdL+)=t~2T)ZDwjH$4HJ1#YXhB zX@vFzOSLb3D3!Jr5l@}B@cP2DgTT@lT+sl0fF(KjQ?2tpmW>H}k;#02|8aZ@ye(X3 z4vMuwgRTA;`-i}*f8U`)uT)FJ~M@jN@G9 zwukkjpVgCqPpO$#QO4TKR;Iqx{>jWm&lBsrzZWttjnVzDdAh$R@Qk}5dd&+v0`#WG z4$}b+=zOX8RU!{>T6%2Pt_kw*_`of1^a9hUwg1bHn-+bI|BXw3)Q|6L4Zm7q+b>+3 z#j8J*KhldW=xF}6LGuH3scEQ%_LOMMwaLczQ`n20tkcKH znd3R1;T`{C#pt@Spazm&Gf+f{IH#L-H(H!Om&Agtujbv^`p5%&Z=4Ov&MC?^(EE;F&nK_-U*ofGa>G~gI z3@e#aQ1lI6k%zBGve|(6Ku*6U)H{H^e8A`U!xYD&^~nIHQw>Rd6qk zy&rX!1o@x;KHe8Tr;n_A*J*oOVmw$GzCfK1QGH@xdewiI|Ee3{9l=fK${yy-PKS3| zlzT`*I@?zd&iRZqa+PF<>OI-`JhQF6gnd)~_wK#)ZTf&uTR0|sf{u}&G%)=sCwAp( z@X3d6qx>1I?9Z#=t1E%sPGBc|a&ZIs+0v<0-+e#IbLA5ge1nY3N4t#^TR1Be_%ukn zHPF>`-Y+ukGY3K1);n4kt*7X?U@JU1;29WB^Q`?Yxw^lv+THJhk!VI2aWCndB_9ah zI=iv*a$jwKy~Cz+qPc-VMpF^??=|4JV3xvX61XgUK7mgGpA`!~F1%JSTKGxfy=F>i zKl4k)-?vEfgg>5Y)*BB7D=J9uSe%gE)(0>eVD^6q11a%+xfM8&ZBx=2OC?U9pywK6iPetG0| zp2z9;c>0y^N%K|znxpz;jbfQwmPhipgd#VOH=C+iOX)W{P>%a)&!$upEtF2q-S_*r8zPd+!AKrq*!s0ySyo_`M}I;rnWx8 zcZYXaw3$8B%oxrl26&h`m^Jpt-k(;Ny%V_IY22Cp{y*ZAH>Deks&ftIj1S*L9^}1B zGbwiEmOCRmjZ`aM;_mV*3)A?-jkJme_TV2R-*^UFbbOPM5__4POm~%EQ8`-_YDcvGTHx4h4!8Or&z-bSGOj1nHLfcp=fx&&zKgz$Melp>j5M1`jA3}_eecNV zAHImM)BY?r28SBKci^IX^;T;hUi3i4>s^>i44Y?o?Bo|$M)Ex=A>_%J$r|aM7ttd= z0bVLwfuCM5T0k4eF}8`Gs<~D!RAWeY+p04@i=6t5&j;L!xo^CgepUVfa05pcH5zwi zqZ>@lISV})-uElU+G5SsjLinm?k=w=Oy?v19miZLczp1*I; zbON%*aq8C?Wc8azpQj>^AUj$8%10%5HnTRu%cbau4>N{*`d$OxR)Dv2fK#(Y)5+mQ z-;8fjig{0V3V2%y-b#OR`zGeD-`cAEzU%E9s`yXhbjh#g$0nzEY|%`E^D{>zwXq&u zeCr%mzkH-l9t(fhqjQzRV(Y#^wTc@FVzW@LqK;o8d)eVF<76AL^DnqQ z|XW63Th6@x9?k96OkPF&Xt^tVs3r)CTonE zGjmgH3uo$9*>|(_*ckfq@|m8l4X*xFPk)u{E6EQvtgCERF9VC&%IQ&1@QDBZ<#RKD zhwOQM`9e_Vo3?x-Y>)?zGbyX`I1XuDwLt*1Jwl0_)vNzY*T? zo`Nxa+a%=>3=7WrR=Ki5-akWCzVxehl&q`UV+?_1m8p*oaPQ<^J>M85=c+ z<;0B$cbe-*0z~7nRSULEc4F2ZlO|tMd-NM`cwq`##b+l*o!1Q6@&;}eO>$iW58h+r)cxR86?pR)v{3rWDHh)J?>`Z?%Yg0I=N$EK*SYG(Ed1Ntwe4fCHIi?X z9F}BW4qdo zQD5bAXj}EG;9sTmAK-h^F@e>4f4cC6(j?<2viInHy<;-AY}zb1#u!z!$6N$Hl@vW= zE^44}#mtr;6DTZt%UopH_QU3)c8wQUOW!#JFH|hpK<}v!^aM*6(tDEAr8B5r%sVyu z5pf9>=%h=KNxlHit>jC&dWCsm-Non&^no2Ab@-C2Z*BGu57nDFZ+8$&%N`8xVco%j zjX7U=7j=vW=h0zxrr`);0*dKTf?xxYRnz}j{g?1PET}preCQIp{!X`knz8=Z z{p%m@+rL%+p<}`yP`~k|OAB-6nb;!n=d|138q>?P=|S#j;J0YR0>-_a_kHaD#^ zD}U}Q*nt#Vcscn?^k4R;9$GUt`a!BqYlQDNq~eQ(1}SH+a#p+#uHE3tUNiIWwtU|Q z#|EBb;W6R=bjEnLJ4VK%9JOwa*%Ofeb+2YNIb%zSlkYvI?C2I}Oh*{g4q~Qld=hOO z6Wwf$Y0R1i;%Wb7xc~T=aG^7%JQwcxC=r1*$x=(&r2N_zG}YYHTFO7yb1gCCS<$b@WkiqjQt>Ex`?%~ z*I2oZ)1y}d&v~BoHB}B?Jjh&zsXfM4%)5zW+rv37cWm?YK4bfH$gI^n%4v(ux!1W- z@sapa|JUZTedqhwV{*wAt$TtEqgj53M43Dv`sd@hc&PZjZvgT@&NZ2c|v){tQg@Ok;Qb8|rg1x@X;BUne$5=4JcA z1fOGp9dsaiBXWG-Is>(HKkyi+e4rc*()AUuEnl*iv#E-Y_c5n(@FWKv?L_8uC39+F zPC=dv&cq2=c%nJEYY~8#>Y1ziD2Kh9S9dEuWbOqD#j)>Mcmdzh`7Gt|`EZ1Np65@@ zO?RnDUUcPa(fN90@qyYrT3>?C#ST6UR4@LLfsSVqyX)a>HabCWU}Fn0i+-)C;g1QY z$k{IaU~&iL+=;po%_*Ee$e8TPXS5Ms@Gdz{c&4?TG}xFt3B8Q(bp;uL!=J!Y({ck% zpTS44^Bpci-Y)|_YAZ;)THAVZ8gC}PHwav7fTIuG2m;r7{B%A3ZdE|F(s@24ihQA4Tux{8i7KwI2e&T=V;IId{!2 zHMW1Xg!MUteC&KWfMEmQGrm&1_Do`jZCHG*Z0t?hj$GVx-X6L5_8)7%dZS0c^)JA6 z;klJRh&;6U?C;%=7#lktcjV-AkdwXKb&Q-m54c{wplbs(v-8{q+LsysbEb*Sli6HY0;KApa5586CnN^BI{|48jfEXC;}* z&c%@y9n7;@_TM{vmUz=zbrx3rzBivcgwUxZ!|M!c{B+~6&OrEbxPz;K9F(l5CEqLO zAaegZ$wqidim`n^ICaZa#=6b?FCSrS7u=P*tLbvt9sE)MXyR{^j0=mNG!`X~T%KJ- zTg4eQ+2x8!zz*~ZK93G>Zq($A(DpBgGr!EHR~hWnVq)0cc&}pQRvYiLqjSMaJ113U z^vJsSgOW`cd-uC79`{}D_u}0Mc%pTa-o*G;cd&McE0UV78D*?$?nJM-z}U$7sJSG|nfo!{$egQ{S3vp!^OM<^^s~(9+Mw@to;{Mwz3P`TKVrXipJmODjH$obWy@&z)lL;`zXi{)zr)pkZOb3!b;=mKW=?#|+s#J&QA}H!_DmCvnFBn9oWJ^PRi~KHkY6nmVaQaNv#w%6|YHs?OFzpetu}v3juqhGmi-{RYnos)&>H(XM^DWME*U=y z+*iyzQjjD3nEBaf-WBzFRc-2_c@;z{twSXUoMMsHYT~#qXBfJbfc;VvUtp)z%P%irjThB8M z$n^2S;3wZTLvlvtPIY2HBv*}#;^!Z=8(E&SnQwdm&1>}7wEW-& zfsLO}2pm2PZv21jy?cCA)w##L_e=tlgnO<8BnhZZg47$AV6_Zj+W=}cqPF%zg7!24 zJr=J;swARqFlreZt3`VV+SV{iixn*N^wc1|M9~(!*4lGOkhT+|t;j7wZQk#1?Y%QQ zlL=DWzMuE~eEP?HW@hcR*X3EydhY94wZH4x{4?ww)yOX^$&FId9zgd?>ug6RGX3#w z`r~`;-~wZpm~n-@qzyWLd+>x&vw?N-x9p3|m|x3@boj>X??>YgQnwjAnDL0cWF;|D zQ|<5Mo4psbrfJMS`ftvM&E~A%LI?K6_!s)Xe?-$ejBOux2ZG0$(OtycRnXqv?K<1x z%-P8aX>ysGIWK0;O=m$v$$7gC`&1?M>lnA{J9TrSlQMz^-#^VWm0Pz!Poej1W$X*d zPQl`7_E>V2@VpW@=}ziaJ8zoDvkLH2(C+-FKFVGyvL@e*%{-s;u8Ix)D({FEX#Xz; z->Mjco?q*0t2n^@)|5#X-v(SOZwpV?SkjuvOW0;~@oQ%iJC~2ldfCvfsTs6)70*Qr zg|nB?F8s9j?&~JT!q`@cpAsb2*o5rnwNDJ`{A$L9-Fo^|+R%K{o_2Uf}gTrqy3}!o?Z(m{B^byBNB7 zD&Oq~oHc*D&5eU7Q_L&($WI41p0cM4ciU)7uxfwGj>um=6nWq*zLE2?$V*k$&7Spe zG{8C0AUw{$m*R3zX7s_goV{Z`)wB6+-mh}cVO1yOsy_f6au4)OQ@^obZs`K_(95}N z((7Mm#Gib6&6?%#`tr<6j|3-ufo%+9^3FlXGv-og>hO`9;C<&fY6$zbD&!vPHeg`^BtVeZZPtoD!a1 z6w)0?*7Qbbe=G4#$T8*~kIRvVUS+;_)7IAl+T&S_Q@Iv~8vK%NP_~Dol?sl2s3qRzY5IOkdx3Rd zO__3e3Riyu{T<923NHGOF22c;7e;r^%Ll&Dik2VspxYwD|HwHX972XK`Vp}%-{8Kf z_wnbsa4N>Xmkdtcm@4sK4g{;0*tdpmk#p#oNdc43U3@n-CfuEgjY6_X+V^Ko@38Zx zhE719TU6auZ}dm*UWKMZ--+X@eL*tu9^Nx;0V|bVG{JK7>x(X${8Of`c)@2*bmW}Y z0c6CVGsiP05Vs7i)4f(D(7Jblm)igAX3ic!CcE5}6+eSui~ z*`j~erk>fB(bM45MmNcx3>+Hb9#hGs|h|jqRpQ8U=@=)yz*`<-)KS$;P zH+JvAPr^5640e`GqI{vfBm{4+VXu@7b$sRQ;ckO(l_ilIz+3TgiOi(0YTD7dgxs7F)##V& z3|~Tq`??Jq=nG%bkv{FD6h}^V;i7SmrO!gE@FktC=$K$%J>NknC%_{5pWh~)GF&;%8gc75tEh6E#`EkK&0P(f{OegP+l7BlSC&SGFqV%q=2poD zLEC=bWdY3*U#$uo+pV!?ha0b9wEB#$Oq3u8`S3aXtNR?s+cYP zZ{ok`ShD-tJ0{G$+B<{dw-b+dZNjpj&cP-uU12Em&0)U6uP`Sn0Yz=+3zqXZ1b*7xbHj3+8F^nla(LSjy5}O*CA|Xe|B+6G68nA z_}O*rYQ~0!uel8T=t}T2=U_hr*EU^7TnX~o{u*H6_$!?J?FWK`qhDqoiU|{MKZ3l| zmQ6l){K&$KHLS;iU{+@}`1%9Z5AL2|eAmw)N9m5N z9^|EmbXOzxlr-WaXDq=N44%ptXkl+j!`4w+f~{w(y`-G-T7$jT839=7G?fA+mMxVGvjq;*eOdUP!fCpJ1_EkJmvY+$)G~YktdpqAcmo}Pl&j{vs23VsQbE;lkT~>mBzlI!`oOxO@{yU$( z8T;M*L)dW#XGk6zge*2#{Ax#Q2(u8t=>{#kG=Lt;5%yuT7TilpCv~_?>t=j26KrG#%{{I z68lj56Iio1sZ%^Ml%YCWi<|lH;qyN3SWhN@Y{Q=4GyB;7Cqsk%vRHXhWcBA9-&{R3 zLpbmG<~qoCHW`%m2vo8czonr&?ouY zS~wUCM9zKuk<&-D0;bRNdu5jghP3!FYiCBhe-W24bIzEfMV(V?aN z>QrKbDYUF^_OtNLHOy@jO7>bhx38OFg_t`NW*aUX%A;dsu;^}Y2Q2lxz3#bwELa^ z)ZG-1kxO1@vt+OG&VR0@k4J%@&R@XW5YS4BcEp67f|;0N!CRLHxma%-w|x74>9i3 z(*q5Kfr3|L9}Y3b9{6$_&;RniebMe)?9=~q%Gx#ZpqLa@J_@;{4lW76`#-_cr&bxsr z^lPV2XV_S@b3&xh!S@%uy>a-m?Is4@vdD8sEYga*1G*>6*iwt_;%RBvQp>Ub7Teg5 zh_9QHYE2iM?xcO4MN0G8J?F6I$?DF7-_`)jJK=K;^X{p*YscLccQ@QqaZkoKD~972 z{A*Ex;Ro!e=_6<#`*=j~Yown_*5fqbUEs#{7hG#EX#r0Qrdmr18ACxS{s7=xa5A)> z@1ZAIUzPuA2;cHwW$-Qk)yTiu7o9$i*ty#ROR&q#A7)!i_uJep{kL;pJbh7B*~m0& zy8e$C7G8ZC=VnI?WgH`|i1PN0Ah*LG_(u1io(MM^7#v$>b?#yp9a!nh42o<|y6KKS$sSU)H@sPF|_CkCT@o#hR?V zl7=t1_61Mpe3$#&&DwCE`!$u$T)s#D#lCymi-Y)u7*G9wSnJD>SME=@%suVmLxP)4 zpBifsGS_>-^r&)RTlA-U=00(-=RWDA=wO@gq1|+z-Oqd8yJ2wrAn~z!hkd*%8FdAN{N|rh~)7-M8|-=AmW(+1|0qGoWi+I*-}K?onDg?qdgU*W#n7q>k(h^}Fmw=?i`u6~BWWeRKA)?_lr8Yq*2` zGH9mYU(EM}^FxjAUGp=}JlUMlBi3nIko%X3=Lx2f8;-jippCt8<15DY>hai@x3*8T zwu)BDzZbJknl@V>ny20n=&KLtFhsQ(GxzwsgcxAr&x;NCSQ;55G8t!ZJt*(V*W zTM@Q|^~9~rz#sGwc%eHtj#B-b9 zJq6QLKLBsk8KdPhttI;X9B0|itGTLdE&s>!{}uc+4I?u$CT3Y>s{b&0-vq`-E|tfx zV(lKrPK!>RmBn3FPYoKeKaH_S2UMKiCIWO!y)h4 z(&{aONjdw#doGwL|NIHmQCr?zw{!oB`ug;SnF zlj7}|t~U60bs~Q?yeBhy=!Z@YO`T`%x6kCuVxKx=iRZG>Jvhqgv;+8f`qH|q>ng5< zzb>K-8nBghI(-i~jQ+XxODd!PmC|{)6&U{BLjTW*-@EYwis>`HqVz(e_ila)Uq1JL z%bq6R9emc?m?>qvCJdTsy6JpV@2J+vHzw0GE$IKW2G-v1g?p-S`gtg?2Sw z?eR`%fO2wQw-9;#<{P_YSDgA-&wYxCDI_jIzUJ|K*W**P>dZZe?CqRRorf2F%%lAn zeR^Yi;E-ce5FOd^`P9bYd?O>Q^88l+3GWS~n+eX~=c*(+`>LWVPl{BrMv9$u*Sk-? zfNgGE#6asUJw>oFaAj<{&>r!3?NiNLaJd(|k78y7w*usiboicRt(>J_?P~SORjuHK zayAPtZ$IkTt$E%nyYbw$TjWHewNAeJN?`v~03SWy1?2j86j^N#d)b5039MZUG)1<$ z*FOUv#ja;y6xXj;6`giUB;~TyM&VKGk$CRrDtNZ==$rJlh4*(HkOVy~lYeU>@Il8_4}GJURqCwRSphQNudaa(-kO zIIlgYXGf5u4->1P`R)C=k(o_Qws284JP!x;{0}^ro)bon^6+i`2jJT<58s%R!8g8z zZ_1xw@XZ}_9pi1GU4#3KX%B0C4&z1k-0aP31M;qXsMC&tPnFmGLZ@^Qq7j`F$ z|<*S5--7U`)m6 zRn4k%33r!cgJ|4ycBI~Fn^q%w$$KSsA@@)j-FH<{lQY(p8Y_9Xy!Yy@mT6u;%rRd7 zv{TL8ZlOMS>&`9CyS*6yCg`#iKBEs`_nti!$n0cq%=gA!1dV$LxEnf3PMvkgUCqO0 zmDTV;XIZSgXTAPA=!;^{l`BK~^4ffB$W&t+12H@rO!&&adb>M^7Pb>Y@;%kTnvr6Z1hOuPp=*XSem?m=0e{NbvL)hl5 zT|RwQO^$T%UDAFgd9sjkAFn5GTYq?jzya>1U(&(2>Fe3VIye0ie}mW8t`F{O2y_3x zURzTC{><1IlNlRhH1}!^Ft)_Hvh5|#&Ah)Y`P>rg8aS*w&bs7t8wh4e+Z|vGh4{q% zd(_)6<=FL++g8cWU9_&Q;xK*`t%Yon-u@H4FmypU+jdf9@iNgUVuZ+@&A#fcftMrG zn)BiKEVpJ3g=WpPcD0NnW`|h&bogPIxFUVeP2=(1k@1u5umspxKlpk;&6 z-Ry{~xApR>SOM`w=xGnpMmgVE_`j!Aa(@)-sc+q-(?c#+o$rpVP<{)mJB2ylZt2bi zowLa`@lfPXsrU~*gZV7}x^v$B2=W54q??W)?{9*3Tu&e5GTI*|$JN8ol^}O0RJ$~) z7`fKKJmusF_L5aaTZTnuG6v$0%sn>bwu#o$j$fuDc4SrPe{&MOiZZooe z%}euBIkQaOLEkxloyiU{Zk^#@j!qUvpPWqp_lkzBk=;Q4{A}`|&oJu>o!TVYUdQJl zWT=e;-!= zE)1Ge5@7Jv;gP4A+pN&=$e)%wa%r-D+K}_g=7bvCuTXxvV06?bVp73F@%3EvA)TpH zzJMZVR}b))4Nq{DtSnhNS({T7ScWSc=nmqYH&!!yW zFzQ_%(>$VZntz?ldR~|t(K%sL?w2?7hDWMdFU1Zed#1bTBzNv7W;oe6E$&p?MxD(G zxM9WuFEhANl^1yyIL-xE3hXQ2QLOJxywi&xoNwW7IQ%kM(WfS0O9wABPj9bEb`@S^ z@!iZE{V{{hy)lE_aRyBL#|-K$3^{IjcJ62|X3#0~>MCZCxJV=0HB0VxajO~Ja`fTs z=;O>k>uvJUs(<+L`i=tm9+T@a#1Wke%@Uqg|0OQN+kbIn`2V6U$+^kkS-Y=i{?)+d z#Y>PY-y{#M*I%G;TIh6iOV&AbhtcadmCH9re3OkVCfNO|*^zZEZ~~eACz4k#_-oI7 zIpCR|J7SSkJ#vX2p6Yr=pvvt--|VNveA!Hu$*cf0|(G+Spr|hxFdzQ{q<(tVrMyf%CTwhL)Hdfll`y|%oRfg58=!LAAZL^Vy$1N zv$D14M7F@gH5O#+&APj(n%`OQkQlMNvbQSE=W6DYhR!QE+vJ549l{obyw){M^+S}Q zS4WgjcMtD92>p`uvd$iT?E{pFOkz*%$f_KDWS*(aINKYz_`YywWkM_pf6 zF}T-P+`pZ}tp5$*v)U34D0Y9{*G2C#qrZCICdS#&_D$nxQ)8*8UN*cv4cqk$Y!dkR zR;R(&lZ|mRwvJ*qPYt?U=QG%E*e~!O=iIYdOY+o|T%6h{KJW$B33}w5x8sbZ;?nEA zdAfSInWxdiGou^aF(vDJcObhH$Mt-F{~ZJLpGNXhnVco&-e+KS5^af}iWVMti#tB(vxqXm z`UcwnBKjXN9+hl98pAxT2Wut&%Lk7kH~NS>hC_@YhMiZrc&K%@fUnkDvG#45YcEeWuG48p>%ee#`BOD=W#yPxd&NyuC!uj zkPf(ywVunm>)ZrmncqP>&+zO{o^|pJMJS@X0V{b{Dt|WhM1x|`YsCO?KUD+k`@;3C zy=2fra@$=md^nR>X!;RNmrv$q;8x3ed35PU{wtQK+O>@>B<~&Tv{mu~>tpPwSJ02- z7{#2iXSV9MWCFizFPMLgxT6=5>u9T2e$$%Q^1ffLcVspv$JL9=?5w`+Skbh?rsj$6_8xaDC)=N@ed+HPfqyLC=V>!!9o32wE?7D5ir>^f^# z_4x4C>j#k|CumJ6QTxPa$p>^9XXB4>CzdycA29}t@d+nG$UGW{_^a$&HQbYn4ry{| zK!4}!S+aR<4&?6e`fC-O7`FwFN>(>a|IYno+0nJ13NA=4#r~hQez`k1j@0|YDeEjYI&guW}oc_)7nL4yDo_EsY*P^L^PfmYq zG#iah1${l`_`On zblv04>7V#+7+QJ%2h87})8GHT=Kb%S{{R2Z>F-}p;Zisur+>fa#64WczE!N@Kbq5@ zwpV%kS$%Vs`UD!T_Z^_H)p9rTav)}*zoc@XJD5w8-X8${<|34$A{}yPd{9ymi z>HqJX{{PPDAHN&m-#PvNozwqclGESyyVhHI(`t!%QS6EQ9ec1(g|OG??oG+#`0gqW zb#mtz|MfhXO-uHy8Q8LlTh^{oKF=B0C>}*mNVnczJvXg&jqIjFu)$BhCG>#&Gx9f8 zV>>mm7T8i0XRjE~wO_X$e;ONVEjI6aer-2~u|3J=Vd5I77fLa9_nrOi?%C0OH#m0p zO(y?*ma%ys3i@&{! zIz7*f9^m;+oVU|GS+dU@!1gn6e@=YFI^B1`dKB2)PfA}pHz&L2%CY3)^4UFgFN0@C z1rEgME5(2MEOxcI_)qWT zdkXz*UYHwMhuuwhcH=t7r>Quz7VLco2jL%M&E$uPDlWaf%-G+Ce8?IitIDij-aM!d-+I)j}Jn#7i%IR}|1~F0csVZKegXgW} zf|-H+v5s<`-4NbZ>9^w#*y;HLwlP)@51vM@jN?H(&d$5v^PCIt-(s)Tytqf}(G=>- z76)8-kNc~VtW73sz;M)CN~{&nkFbCb^!|Jt$I)SPFU@!+#y&l&sf zpXC?r-==3b{y5JIiI2c`_kzyN?E{7r$=&H{C!ZX- z>xrp=-UJQ3k)1yjJrSC7$s_U~#dDd8CW*Gl7mSZ{rrxwAhFOzqS=ZBv(Z#lJe10>3lQE zZ6*$8wccAy*$VKwQapkDbHsp6trpz?7urRufqfQd8ohR}0&l0&E_As!FI)@t+WD`% za9LvljcTuUF!p%2og(&5HGTtsJKX6+{s(OQ-^a%h2&K=(fArbZmE6xbdIz~u_GfQj zyJiO8)A+Vt4KJC!Pj#pFU>z}-Pn6>{l@F#^f zMISX!t+#mO!^BDZd6;)EPZQ7EgI45sv{8v)ZZC1lI?L+VE93mqtKYLi^9kZ>O~D_W zia*#Ue?@$MRQt|U#d59g+2FtMCx`WpUE##v?aj9~-X5NWtuP)(r1-l}@=^Rcf?V%7cZ|Si_ChkWhp*+^9G_ z#gHgQ0Vfu|JtyCpU~=-kfyPqznQ+}}qnTKtK5Y=k1|Dow9NT2@Ksn&OxUw%t;Ys*+ zguhq8-@Ul9bJrTmRGhS$zbm<`vhxoE`IOX_`Pi-|9xo&w%iYgcdM+8XZ6xE;oUCc_6EYc zdB=fwqd4btEWA7Gc=2w#&3&^0@~M-<`LYz|4DKx>E|fVRF!*Oh`{3Si?*CJKjQGuL zAKn$7$~uTgnb-u*^w(CL?Bd;9#K5u_qR_$3I@6>W!y<5QIr~j_pCRu(S_RBA$(f_G zV}n|06HN?Z4QrFCBA_8%jT;ZM}hK-Q>DwKi+K z^^6y}W7MnAP>p#OG};@hq_k5m2eoo{8=?I0;*GW9z zJ;hq`i_vp$u7eiVxMMhvxu{*;1*miKk~Q>y3h?)0F3zWKBfrMw_>Dzv!z07l2im`q z?GpFFO!$&$iFfAZ@MY(MC$pjHv(|e#s#we3K864nFP_8tqbsv2HwJO)Av?P?_TJ!W z_W~FE*h}7Gy>;&70P7@v!r538SI#*kC;zuQ_h!yTb!$$;UtBY~J@bKufzdlY!~L!D z-`eo=qwGoD2bB$9^x9}57NnJPngz5WAB5Uy<-XqnV3z{yx(46BM(feeGvy(==HnlF zUvIR&66&+BU%z$WeSOI*AIwjN{Os8K`dr#L9)9AN+umSb7Q1x3*>-90?JgakKeCqw zzj(c$7sur{$!DUm#IaTcIA}4=RsY3|=68$MC_z(_MNL&^dNPk32s3 z%*_rx60Z^;91Z^Ie2fiE()WTP4j!*F|k4yM} zO+x)k6P};J|713tW9TUxt@qM;;W!(7c>Na6lMbXK>yq)Cqr{zm5OWQ}*RLdWyxJBA%YI z4*O7|p0WXam!6W%eV6C+dmTE6aJTji;+Kf4lKhs-8v1pNZ$NJob&Gn+q+94*x~p4k z^y00XXxGs#;&QXjVtx4yqgR+UFmj!vS8SAC(R7`kmi2wluT#9ioE^H8tj@r8D?fb| zJ@oYASswqJ)?%3L2FHVeS^2_@Rxa+!CXE`Mu9LqLzOf+Yfa16Z!oppZ(G~_mL zN^=l>_QyMYX^53|8?x`LrhI5&|L0%exucKtjc4i!2BEv@$blK04GNgJROftZ$_DrV zp8y}5kF`PLv>1bt>&rFHKy()4&|b)6oR!3lRWiPI^clsmPHuAISSzJt1uau{DrIfd zGqI_sqAviuHtJu#mbg^pc=MmSm-63Pt9i(&b2%^L#G|UN+IkBZ3--EqBE)@?(zkk6 z1dwl2ky{2K-wx)z5c5hyzY4%BoOoL^w-wBXT$63V+H=&F>~0!wNaOX!<{QhIy<>6W zJq};?Df;*%ve75d7Xn6KI7AFRIhHnk8#%D+%i;Bvw6}Dyb00wyafJ6F3u#|F=O6OO z`<~sKS8OqP7z$Imexf@}oH}{YNB0ne$T_3pguFFNxraMMz7px`+XA5->r^j?Sok@> z|7g#qYTzF_>hNLo=k9gLM}p({C3d6oH1^Yv&d!Rg{8Vb=cAnL{c3jzn>e0Qg*EuJ0 z7kT!ww3?bN#3G))kmu>x&(dm2x9G0RbmZqnjBB9hies;4jE|Z%O4;?^HA8^iP+&NW zbsEk(jbNQdvQ8sRc?1>}?y4eTNw`X%098^|;FUAMA_u<7-lOKF=FxA7E$18V=bz_(km)ZpR~VzYnG z-59?|=F#40E61kR)wB6Eena+Gmw~HC$Q^Nj_Gc1{Av=)GnY?Mimg!rOr(ZVs>YVM9 z>@*xXBwR>NRjms&U+@mN{T3eX*>t0+@7>3h6-}c)c)FtnJVoZ3ehKZjao%6Cl@@mo zaBs>Eog3^vo1C5Gs#cxN+;#I5=l6!72R+C*Z{nQET5@Jy{z&5*-8UB+`ujBn=uC@? ziTk`b_W?7Gc4zL^J3X6TVGQCOpXFYIJPRKII_Jb9o!@cp2-{0v3%D01<0RmV4)QK} zf{wB`%7eKL&!96{cVJt^PV3eG9rZ5{<~1nyj`RoB%R>$xO@1!HOZlM$uS8h=g7?~T ztWC0)Y-PR|GoIyvoX$e-Vwc{c`Hv4e^WUoZ_w;Pu4!)Q+xkr9FZT`-{GY@*9Tt->Z zA5pJztkdQg?#A=l409K!*XBag=IH46+%^x=rp9)CrtYHATFM?c8rqW=-AjHX>Fwu{ zGlO`8{kiz8CXs)({e?UO*9I4^;Xn6m`YCfzoc_Cv{ZiJ{X-obXr!6l(;&ip8+#T8E z{{T;(3`lo#>{GHs-p;smzrf3Ufa$K~!0;~g1hx4fV|~@kSu`>}POt6pzP8`>;b4`w z{(Jm5m}_8GO@FTj#xMr8DICa)UO^f6UhJ=J>zV&L^E${FtH^PxaVE|u)$4P&?w2)Z zJlr_pyy!)=)5^Pz;J5D4SP&#PBXju+XU<+{9xsIi^D%wq;=%l{Ra@WJVy#EIKGLaV5 zn*1`^(f?)ciO-s_-E4!731?nO_MG`U&&Nc6!*ks|Q5VR;B+VVXZO+~Qw^AX6RiA`Xkyf z5xF-8UW*>21+D4pd6rf{z83a=NIoHGlXS?$dBShtvw6`6lgzOep5V+eH+rw0yL|Qv z$|VO^nKGSO$%%fE-`vyn!fn_-oP5POQThJN{l?J8mC(VGp|3y($q7!M*m=;+d;PVm ziZ*6P?)^k+BRQjUw^f7;9^LQ4v8~mC;~#)yBK~|ASScrsAAcsnhi(k!x#JKW%8A}h zy;|TcT*JEAJFCUY*rUJge^c zPLCzGt@$o|9J{;txO9rc@IUR78^F8W$j!|UU3yeLj&|(w8ms#JB7L?X>s2T4RjrkW zL*PVKwYyf>2aG>L_PbheY8^N_%Z007Zf$IKsNJRcYUypB7e)V zZEIK4hH&NseKpvnK7{XSm33v``RrUe@Oew_39J8d4TtlIcIr04w? z^C)y}9?$+DZu9v4uRfg3L;SB8oEDGnzB+F6nEXj%1juRhkJvm;qFrnrI}>akJ7x3O zkm=Yw+Q@n1**xl!*gWor26{FR(L>MXF?+Z6dEDmV$QYt6+0hHnLjGePdUlXc@;|}e zvFd~D9TRsOdxwEP_KsCWj=f`*>>XEL^RKmc{G)pGROo|ftI?}`dUVwT9&H?0k3ItJ zeihwBIaQCkdh{c~xE`$>Q;W&9aWC{e25mnN8N3}|&zxX*dNcA^ft}r1!~gX67nChf zZXWnGe$ySVqtr7TX3;CM!0$CDf&-P(3_ z>v`bqFX46Q)~kHJ$5ln>)<2$|+Nk>uI^l;kZvO2%i=H9>c5d`P-Td48>~uH(cG}{Y zUEe4Fb`JC1i$7-`GTmLbT9FO#o*&}Z+Rfam;Q#m7ISqfMt(`U3lr7;?5EyClZ~v7X z-aU--Jm#-+u&=HoN^?!VV^LzDvYy_U(kA2>h8+{*pKz*V;0a$*GvGlVY_}bu(xIVUp#J09e z#-@#)?Lq7aY3ShT=;9gZv1e`Q(rbX9e5LXq=-cxjECjx1;y+kQ{M_`1^CQ>s zUw#C5*!)6#2Ft%sj0QQ+HUMPO*+r9hPl0$Y3+P)`)NkUegIu4hOD=eeN|FN+}*O8EzekaQ`5jv z(bgE}+fD&b&jJ=5;N{1_TiH5S2GSZzZV6AnllmRJKewk~Y7H`KhC#18_675% zE|Q*$Zul;FjkOnbr|(Vama*Z!^&{?fv%02M)2|oLB)Y=gHSK6rl~_&<+*Fc(|Y9DKEoos<|o);c@-9nBw|PV+AyM|eGYo-_ZlF6Bu7 zEOgVqri0xz<(8*Stcf6baUAZd-UQKU^&OteUGw+n%^qmvL0Qr z5ZK#x{*I;Uf6NEN|8@`l1bR9hnPxwFbvbY-nb5kX6FgJg-d&3qmra`R+?w@v zTJ&n}hFoih7Dvf#yBM5Z4t|E1E4GEsE7>y^Z9NL#xC*+gdZNpx@c%8^x<@pA@zrI! z?cs(l6Q5x2RuHUYBfM#-wP^_B5nX;09C?cm``Xau#n9!6C+%3X9J+jU@GizSDS9N3 zVd%1Qh1{0`Pa|){(cp+^3_FMTmTbaffq5l&qiW5S7rvQwdK>=ZtovDA!+6)j`;%R` zSB|o#s7}nygCX1(ZP6L^ZvlHf8v*_o$bN=S--UhgFnp&680_y1uTMYh>|eF}4eASj zF9g55eulXH$j4M4b9kuwD2hpc%!%I2J0GXM?nvr_&aPx%Kg+)M;!6wREs7z~{vjUk z@x{Pc`&&5P_6KMgw8z`yZ!$h_kIT;YRrcFt=3Jk^k5mVLFR`_?6{<6lI>m3q$F^;c zGq#I0AI5fsaef8*d=Pl6U)e9W(Kq%y)Aw5F%U#H`9q3J>E%nUd8Rp>0dXG;jJ4XOAOHJ93;(f0KRlWx`r+`1%;-t(It*nLcY0p=d_R_SJHSF*-a$QnO2vPQ1SxuCdm z;fDNbXMlSaI^#e*O}>nkQ?SkV((yHGzVwJg$HS*sn{Fl-n{4UgL-)gH--XXEL$>$> z6MArkc=Bj-r%!0{O=Z=~s<$*FTL?dAAUjtu<;htb<)#%Qq5@b~N*bMFgKsciYG~&ui}87unG%z}$&* z%I|C^XS-w$hZm3TT*Mk*+E4Dd$;cgZxntNrfAN_IfZHMX+F|59$^Es^(;V&sNha&v z5l(G9z&l02uN_({+aveVBSZI>N325b&|%;H1UspJ{SN)WT|aylGmtHJKo_-!qT%rE z7rspU{`wtm{g!-d)4Lhm*~gicvDDN37=pX#WA4(kyRdCXs)IQVW4KphL2zs*u$!-V z(Oi2>Ls3w6ZrO#i&Ar;5?;w->b1ftK`d2SzjnM5j$xpEs9+_tBn34r^qgAX+jCDcY znNrU^Y0~#%;#KHFYX7%2cB5n`i#(Y#X{QPLueBDhrJmtE*-OtdYpuD?WBi)OfAC#D z01whS-#7q_+py!8(Vs(Wv!l~pyr~^UP8*kB`|;)x##hbw>-Rciuh!W2YV4WOCZ3I> zEx}XxsD4AhRClKr1V?x71Fz&Cd6aMcU&Q{YS^QPxz1+o3;Ja+ZGlF?$Ux}_%g7eaq zdwvfO&WPju&|Y|EM~AxOEliKYQ{#2unH^o`!t-zvzTd*06y6k(Cw(5UReyWwtJclW zsQslF&OY-w2Arotj|6Akf%G1D{T_WL@@e%c+!J0|E?)gw^JASoe0h#K9!}N+6XEDU zYwPiBd_Gyu8sHwPsF1S(#qJ%i;12olBqQWTGkWW0NB@Vq&D3q;j`?KkJ<(ln z@0r%ylL1cTndojC^w_?Sy9JZ%;Wqkgf|q;mYi*qOi5KVnf$*~G1qY|zUlz|B*0o?R z{BaJtNI8CSM;8gXx$88)bw<9(jsC6LZu~KLSnu9BtUimlb6E1x5uWMZVdaA#C|=o# z6EHgdDo@9cC5cx?zu$SgrCdwmwI<)9;k918^0u$UFR7 z&P@$ZpU6F2YUgHq%^LjaOG@}|1<%>ThG#8;XDvW~E~H=aEaG@~3|XeSSf}SiOUNfF8mVWt!QY(d*Lfy*Ic;S|htL-DnOskM z9-h@x-@&u2=*`sk#U}U3=TKzYJa%mI(lb9?TrYCuM(g&z@%n!xo(#K9(sLpUc6_k! z;h7&F+g5)8ZGdYZ=zBPxm@&rBnbjeE}u{X65aFi^+=W;sEw-!Xrnku8v~s+>zSRoOYtzo5BJiBW^&AU z_CFIpOstzLi|@R>t*nnMeiCr<;)l0lYj^B_S>)ZbHlGJhd-22NoHx>M#UkAXzdKCq zkm!T#e!^?vvt+i(*!JYVY`INwXYp7j#W96=rkwmC?&7RA=Q;CDe5S?TJVbk5PROcn zBWI*qQxxCRJPUq?a2I}lO3zip01nf*s)lvr02+lBZ`@;r{6s0>hEvw@7(@4Yk328zDmEJ zg?6ol?tYJXOP>z$i7u)so48o#FVoEV%jMiz8A@HdMl@CDSZ!#k=wh{_r|{OS%a*Dv%_+OZEvr*mx>I(CTeebV8BW>VZdpWSL!7dE z-LmhfY^YQAUAJtV%7!^*-*?N_t8BPaw!tlXTxBDivdwPUR+Wu(%KpbK+orNnPT4Qr zvS(D5>6AV1mhDnmmQ(h!TlSjDvYoR3b<5gSmgAKD(JkvxS*}y|mRq)8WqD57A-Aks zWuu+4_uVpk8)f-US?V@tebZDn#wi=>mW@=|Sf?!8EgP+}6P&UW+_EB-jdRLQa?46o zR^XIP;&-6V^kbc_a`*QXey6*?r}KN5`}-Vzk8*#{b{95r~uwm|xZU!|vQC>%VCam+rhaTL+U>9koyn-#Qw z@ef9vTJZyoZ;0tX&^x}24OjZcw+no%;@t`EyF14X-SBi^#D*8=4&SgH-1_CHk&NS9 z#_@@NXdJWXW4=4*8|eQ@#<$swFU!n7*gL+=4ZFa>o#V1Myp*2DIC3{^59Dun<m$1sj@jN^n2PlHDwo{Az`n~*~TJ3aJQ-#Yh( zygRi9x{ZyvHwQr_`k{D01LLxZfoYonKZ_xg;DcU(epBt!y{n0D4#BHqI~^T4WMS{# z*)#ulU$Pr-lUCul0N;?e64xZ#&O8XOzpS|JrGx#(`v-vR9MKMI9UZ%SFlJ zGYl_6fB8@1kUd+&tv`?76;SW90U*N*29G1Z&aZ+;-^clP?u?q>LtO2_r`O82JipF8 zw=s%wHDNcG?ZT`r>the9tx&va!5PFy5g+NrFl6&zxi+LXOGmp0IH;d?Y$DH`!}%0s z38QBkIj{fu3S^|};$QgvCVTKV{3fQLQ+ww}++%so(rdPSn!7Ha!RB!aeM(-GE_;X=GsV}b zzb5+WVZX^2qv!VGrNBaQwmH!irxTZn9xxr-h-{_OU%Sy=uV)_l_{-kq_d)z)CJq=o z(+>Kbx%m3t_pjr9i@4~vpcQ#>b+z@_{(`=$$p}eO{d(i6(jOr(GVs`O^QG zbB>R*w~ehUgzU@R5kJw`b%rdov3`x>NS`?ye*klGbjA3YPBTW$Rrrd{t&&((i}Oi- zJuums#)F(c?al2_7VaKTzs>mYW#_5pyBxag(Y$i#a+ozI_GV{j+sWo0l6%1wXj=De z$~W-f>5(y7D~*Hq%h475bvIMqTlbXHBD%XBKaTV6-qX;9GNbQ(EVWVoJkCNzFTB!j z^uPb|dp(zAKl>VJDiYNLEQs_(6X=$W?`{(LUzpwZfK=mgvcrTprJv}99Vo@A;#m~eWSghyKmML+YmZ|_2BLsV7f_g zvYE5y9pt0>^=Fa$gl92mh{oQmZ`w-asqbFV7pC;xyLQq=X8}*e&3LvXuMh0|y*@g| zA6e#G=VJD=f1P^UWR2C%H&{~#U!C)Cdf)N!$>wN7F9OhwAoL@iqazkfF=vzH=lg0` zc(uvr1T4~1p|8MV>7tsht<3Qd_}dDeDu?40T4)P03nK@b*Gzvfx_nyK_dm z?e~G}Vfdm4H|N}k?k|hyyXaal3%aP>L3U)Kfw9J*aXR-EdE@Zf@X7~jV~F}2Z|&Oi zW82sck&Sw7gYCvAkP}_bxZb4RKy4U0iCsi^RzqGkt&=GO##VK8mwpdq`|8sA zGsE4lfq#cswr=I8X^*MOt+#EN%+ z@0tMk6=Xm4zlTn~lKpvS#8!?`BupZ*m>33LNm$P4xf%aD-JI-al z%(KH=iRC$cJo{vxZEZbb_DODZYuIx9CA{z5V|4hkPcZ&-na6D82l8PAoim?3_#4`< z@aI<>9ewQ`bKmJ?+5VRe%V`*EJyancIo2L~XU*cXx)SR@PkoKeB5t7rxvE%nn!Aun z8Q)ySCpol~@!c87Z?n>DUuDxMso_s|8`JM%BRnEVq!s*#M z4-kMa1mTtNhM;mcIcJMSb83)rN~%(gZICsU4Yn8lhQ`2y;rY&5d_{KWtmxk9lGoz& z!ON4U^*Cvs-B<_@5kKAouBl9UcW%6leUQ>Mtqpm)4Zr^AO7;Q2ll6Dtx7PaJKEI~* z&x-zKtKF!(z>C-;l9760RXrtg3-fU3cRatI@^>9uMhI}e z(vE(WvDd>#BnQmlTQrJT?(Qn)BbmUH1)lsHzBlx6(ZfJ+=8yMY7Dk@;WP$8xtu^Bn z@u_B?EHDuomnaL=f^P%K0uKRG?ML;kw&S!rxhzm?6}%!o{`N-O_?|s}(abtk8D5ti zy_+`UydcNr1yZo}FJ~@E7a)smuzg+Q)ds2u?wkA7x-`}p`z*zDHv6q1v9bS^MLEN@bp&8npO;5JePg62R%sZ_x7rktPpeXmvvI+wJjR2T)QrB?$`E1 z;J)a*oi)-&r*^a#O-Px3RZHS2X4v zaLB>$ZOzw#)81H*cbxSDjPvq@KGm1xBCoG5$sh@|(z7E<{_yMO^}V`zRy0vJuRc!Q zJSzbo;bD?pTzt%oehz$ebaU}5C%#5wP1MaBfzd#C*W0GSJ7UzPC8v!&v!zc2k;7Av z$5YYI2O)=Xr}Z-OydaYwU~Rgx8kvJCvY5xeB>d~5%m@Uk%b z9NrsIey^5yZh3LkkC3_8tK!F2p%v+d=h;_~H}$|RFJ62KXZwr{CR*$0>U*KN@4V~S zqI<|!QEB*NZnTJYlyfq1@62RRiiW$NUx6JB z5Sv*}?r>}zliO%dvdlW@P~l%V8;UMwWL5cGh=W)MEUJ+u)1a#*?9ZCC5!0Gox>*x) zY)HC4ImCOOY%Bcn>_<(UkC5zBPHdr}&3w1go+ppAvNn!9k`t{VF3V3lS$`j{W<@um z^IXXqH?R0YSK^x3+*jk!RPoJEvM!%sUAU)vyB#@^y#j~PlJCr@Dgn_ z`RQMfydz%h%|mc(KH77i;1^>(I5)9>5qgzkz=PeM9Aokjy?{@qPrV(;mx^DJ{@jSa zPVcWJ#yg$z%A2q667Nd9<2X%malp!hlPd%D!l`#XT>kQdsSd2XvE7L;DF!|%4~Avp z1T&)-{?KmRK%4f5#C7hgBzLM0*FVI5A@;U!8^Qi(!gWRgy+JyN;ZJ^9wVJhJ&$C{k zXwIdM-AQ}I+mq4Hqq`ArroHL$b;(xw^s9ZS{ZpLMHFW}OalClg3T(B0YR}{UejBu( zM@o+I={>7vz3u3wA9veO|MjlDh`H!4QnOc*wJW;zjW61b1NEEC-haHX`}HOLVfVQK zV7CL=^25Sz=|2H>f1TpM|L=ue*}n*OKTHCbhVAu2^Vb}46e+}L> zVQZ1C*uQ80=X1&T?4*AHcCWkh9%%0z&z`;LL&9#&hk%_YcY1V8G1fN$mrDFr4lQ$J zLea86qn{+B7ydcbC#6G~(Xq@aQBU-AnSX?yJTbrjx_)Yab^QtB|FC=FOaFv*eSPwW zqbDaGYhAHrc5xoIzdbXEza)UoA-T?#3GeSgmTZA9>_PT>>@#-bLF9v%kPBm+1IJIl zq=P)r`;LZJhd49)^aUjiD_t2zXQCy;tVD)cY3w!F4UK*$n@zT{*;FHIRbum${9a5Q z$$c^SXR}Z4Ywnf%vZI~QG335gp3clVbsL$?=**eXGtjBV_sTpDPRc%VO?S_I>cflm ziMc#3WI1PFU#8sv@5vV6{9e!0eaJTb z^*JL)Y?Mz}^&|@m=8eFjijQC~xQkAl59}pB2~L80d$4hh*^j_r59QuIEJfxQ{qpAO z@pH|!37O8(NBY{Lv<}E{4*Z#8JZ`3MJwNP$`%Xs|&Wt|7dM=wZoZff3Nd9Y1nT%D3eV`XPxkoZkFCxiX41! zg%!zQeKpT!cb?UJOMd@6<tJl9jAb8VE@3PyZ!Yc%nb_c*&WZS-n%N)H-8FGri684AWaR2_0&N7xUZfC!0O`KeL^2gM^@PjT_F924O|67di zniX9HTrzoQzpL-a?>Nvt=s15Z2pm#evN!ucQd@1>jJ^T)H7E<-N=e|s;z1k487OOL{{ zlJ2EGx=w$%$UoxoZqW(Zhzb*QoxX8Fw(KFhI-~u4ZnfwH(z6bJ`srrrv(9*&|0_Oc zXIa?$RG#P$Y-3M3K0%w9A95*krq?PwJCgUA)JEFelzpMSzTmvT`hu^?-{#Pr!HJS7iKkGyiaCoA-=>)Gcjp%)?SWb1jir08tpr_VK%M;U8;P2;f3r2lV` zUq-QF?X=g*$2q?iisms6#xvyrd_(t{6=DZ6Z5MtlB0sP<&t&5WGY)_M=DoI$MOOC0 zEI$8M`q%uuIsV=4{_O0?bpy4V^$)bW@tnvP25NW2@wJP5+8+-0e?0Oj+J#<^lAi9( zTe#2+EVgM~!4W%z{_A_*51zF%B2$vIb1e8Jj;BufzRIk~ge2{F<1u3y(swL>cOO}H zB>jW>$odES2n8bhPa7DnW*#Gw_t6H-W6*>&_G^^=I+y*b`%x0{*ud-UK;%{WVIPn3 z)=qxcXIMMV4{i$Z(HYCqp$od6<+t{`ohF*%;JkkwO?z#@$o7QxJid|+-3-Hr^*xt9 z=6?Tz?s>?lHRKW*Qn#S%uGH}A20J5~K554KIjNS;hxX}9F$BrvZt<>DibIXrvbkxD?6Hbx!ou^^yfvkA3ju zYINbOf!dX<@g%%lv=89Ybf6t2U{0Q{%-JU7RQ_K6SLPhCjT-frRaXpq2 zsd2|89#sa69T}tl7{sp%tgKF(^RCLR?WglvlblOa8>@31yRh1lZ06^C*It&ICHcgQ zsT4h5$=)t08U)|5_7{`u&HNudC^8rRHMi=_$Q*m+nvS5ozQc*}TxCrj6xnuD0DHae z;c;RVgZR>BvyPQk0Wl7>6&j~KmN*IiCytSP3ahN9K;&G;s=XvQJ;A#*oP{7B%ETAd z5a*tmW_72{w03=19Cv79oQHX|NW737IIBw51)P`|XfLs=tE|TcMT!R3Ry1KRVh+TR zIr~uet2Qw{^qxNV6MD~&r`@VhZN;5VyS=nPe7xA#X0gTj5Bd^47k^CycUPkSDMpO= z^6uIMnLzWq2z(X1y|E<1I<0W|`t(D$uAamDrO<=&)bJCeZsfMJ38JlYSjO-hire;l{KR-VGA7y>;iMFJ#7~cwUD;*D8UK}|2M+ZmFOu(Bq z_JDzX*5Jq~3C}#ZYJ6>sPq7!$%Z1aG!~%G8_RrsYM|kDE$5~jT+xqp(+5}kkptJhh z5q*dL;5ChT2ujFhvemliBux{N|lAC!ZJX2it1n_$ybqa|k z)43@lk3&BuUvk{^1A22hF!=j;q(eUv>>OOidDi07Y3z;mzdUj3jdy_Y7MHTp~_ zQWUJM_*}2OGfoq|{dYWVRB>0@+{89~vb-OD++l!x;lwYRwXRH$Y@P3}HT=F{q}9FB z$17ICD>#7E-H(3^g@0J=r@9f5wCrA9@(Y320u$F`#_0L$WM|8&;Vx75&S%kCZ{xhnW?-b)yO2Hl(I#T>^N2+* z$hP*+RUQxYW(&K{5x(KcS+Cx+pldv_1;0nmsdsHU&)AMlNAVb<*RtCw=cMeNqOXq6 z*0D>BLLim&!{q%XnCUZ7I@x`9K#pJl)URlM= zn{m21k0kpDmPhf6ORkUGL*nwdXJ-$k_U&g1{e*)~KW&`DGI!{~&q~tLA{{R}G0%o} zj7W>TeZ7-IT4Pc^RE?q4&F!TzR1tgd8e?$g-oNi-jmu9@wSKajJbK8ve^={r=zJTR zmG!LhR+exMR&u}Y+^|Nj{k@;}B-+M2|5`TkkMyNK9%he`uR_0Va$?si{+r*@d;a@9 zo*~=Ih9>?JTFLzQzmUD})N%9^jjtJf%#+WW*{4>5{ok{%Y3yp-Z+9DujHGkG4xIYh z*y1qiTdw|Z>xFIKXZ`2w#JOr7lJ6|&gT_!voGJK<9NPDN>3_haw~p1*GsTfD`_@bB zr+kEU5why(dmLHQ$drj~YYdW2kr%NurW@I`?HKj7UY@Lata`F{HUZl@KC_@T2j`&& zr&vq2(RMTQS;?n>v$(P`%H9}euNaxtC-*_KmXv}=A@oJ=)?E_TZ&$y08hsU<-kLZc z;DVmj7cSmAv*=szNLK2L&vw+Czs`KJ9`hA%$!$=M9iV-t8EYl)i)Z!9n;UiKWFVTo z5E+XcXFB^mgZtwI7qcgMuDQ?Vv$D#>jZMD(H#5;+vZ8;w7+gk1eNk~{ZcZG<1nF*G zPexf)@&7Fu#mJYOA&?Ek$d^}TM9w@VxvbK!?wc8r;sNURT?^MfZe>R$*py#)>dpdqrWci$*qa=I36CS{SSWj(kjvECh*74pGIGtnzfkN z7Jpe5Wr_>%-zVEEbGu^~-}mH7jr~@}?)`5+r?%o|{>SNA-?P+)#xu5BY-r{1K$9OI z-ehw&TRiZabK$w7&EkLBE278B@x*<+z5FkMPoKpc`tUFJ%#In;{2`I>b#eYx`L4si zirw=$g3C7Kypmox^d0X&^ALPbKG^?^RwCc|)S)=vxx((tcTRZs{~f+_>v(NQEC!f9@xW?caiT1~O^webK{&`C8g}0eCO2XTAmQ0zQ zjJNHyo^yEH7c1dgB_vFP|e3uf@0jXD?M@~E9f@TfaWlk=!#GJnXC`FBd@PcyQ3T7%$zAM#5WIw!gq z+VVh!^3admoYHs@8rFu5$-v|*X^|m&lAm)FenUrh8ajI8YC}hFn`dVwEB_kh-rkiy z@4?2?-}POBPp0&a%{}Ss#nyKpZ>)= zDkjz}Dyz0brNuR+WggG-GUX|=w41KD8 zuCReP{OMcXhlb91Wg(TFh~C8d59Qqr)Vn%m z#8kT&`b*g)__)fRSBwrgHVM2fu!nZeM1LB}v!USC2KT)Ufx@Xnd44tWnO8PcW#H%Y zz|zj4--P%|oUumc4qiCFaN1$1s2Zu(+v(}61tdS*ldg;o5HSM8HYnS%2>_D=8z)u>Z z+ZSw!asO~eS|D@C(3Fc~kAzFGcV~cS^Fp`Wl~G`)PrMR2O8DVlS3_sq`(sRhCk``b zYxCO*HI;^D~~Z^RNAlU7vqy>dO3$ zqX%7_7D%IP%(bnQb=WKO=ceA7e;4@OzNB-pZ7f3HzJ&jwp=k{{Gp)$|#46@p z@v%rN<*g$f{421@sZB0(M_12@Uht)W?wi@gdH7wg{;lW9+Hvq?;PLYe?u;1$|38^{ zvE%Hcd04!UncOey^)V%(kM~9mY7CvmUK(yqmXEo96l10j`~8_OI{a!}B4YPaE*crN4T<@z)uf z{2PV3_b?|~JY;ZJz3iNBd9X-%ByysmZ&Hr#>6MGt;NRQYt#^ipy5v9qd3yjEQFp}V zMgP0^_vq*re%I#%kKmXs%wucu?6F(;-`m#1+$YoeN$3@8PzHRwGH-0HQ?X0m_RF(dX014zbGp6HXVXsF*<*+44l1*!$#>Mt%l|Mk za$m6%SLgV%jMS~8oq zm!EDesi)tNy*B^6;F|p9ldL6k`9GKaJ}-Ee{Bc>tU`$_>ZH<~}pEflkIHut_o?o3E zF8d*6zbSey|5<3=U8Aj$SNBYtHg9RcsPk;=4DzKdx$BOG%NN+zwTtY#@+b1n0^444 z1$`>lSh{@4+18oqH51G3yk*eEEwee-Zrs8up`cN z^ruQ6OoZDa&N=-QT9Xa^Zx%gp^}^-=Hc4Qlz4`?48TU;} zZCpt`;cg<%-S(!*N4GT*?-qLH3Ai`QD^I|`36xj4eXL~9wdPpl%Sy`#on(#t{rI$! zKU|t#61up)B8Ge?oPGV|j1uVRWbIdtYxhE{`_=Kmh?DC$Wy9{v!Eb1Y&Dsapx7uUD zaon2>jC2;QlQh&Avs8$`)J_Ski)jg*!P$&SC${26hT?E(OM-C88;!EruTK z?wL|-ej_&|p$iLlJ1|K`8)muBlF^3=JnQC+t@wb+`Nf)rz;))ZOSpahOYD`sJyUd- z#^${}o9@lGy2;;=yAK?A_NUfX?Y&Qcj+j@8|!biFWyY*QwkK*YXsze; zb_}RBAy}b;B%sar{aJhO%$~^vvF&-iet-P_nAgm#`+C-MU(Z@=CHQxJ-;i0t3CUN@ zLwiMSfA5=h=yK`RrRguBQ~izg>L@`5b+|r(j?8_QJDAI4aOZ8thker07&Uy^;} zFSPNO6mquqIL@FR&so&roCz2~Eayn#qe`3Kd8#1wIP-mC!`Plbfv1mhruAOF>)9XH zT{TgA=d5PlgX*G>PI$1=>aCr#qOShc$ysMlciHh#>>~DEGd_un=w~VYT}ZzlrvD2# z1N$NF*eNvkaUBj0Aud$+ZaH@#^kB2SdI4~rZM8Nq?_O}Ji*vow`J=(IlCG}@n|b@K zq;s0pJ02X;yVql0LuLiX^)#ZNiRbCv;ftQ+?n~wqku3YKVD(qN5W8Eje{+h}+KtQ( zQEnsaT?~H=fqxGV3vGIEn1wzZ+JxRT7uz%Sl6;b^)3lotJr6y4bMrOO1otSOem}a# zHPC}%G&N8Bx@8BkQN=5S!-q?(-k$MR>%1Y>+7f)4y1!}ey4c-^uC!A3sZYvP|7zx@ zv*<6hW9FtXJSa?`dV7PraYpD}ju^Cao$G&=H^vF z=T4%D_!CwIt=9iyex0u^Xoi;89=d!%br0+D#s#s~2L->+$L{U|Ppa#f&v5Bhz>ql^ z7&0fpP;;rS;*2Z2z!Ds>75s4I9##WK;rM|I&aK|Z*#Cq31E$i?a_(HeA70VPTU_Je zwN1gxdZZ7D=W0zFH`vb!7IV9aH7V(t-S~j>|BB!8b_nk_sC;_L2bv#T9BX~}hYOm& zH$K+;2<`s$(Zc4vv#s8}%wz9$=n3=CYc^P|dtMGTzwto0S@7z-guU0_JPXNRN{a*6h%`tBY9^c|D$DWrQ1ShII-DQtdcflX{mQTi{z!t|@qzW;uv#($4J z+&pbT^Meawtq(nVE^AfL+wSK zWSjTis@^^oop#ZFDchavpc~}d@8BmgKLWU?3A40&N%rS#7AcFt@Y5^U!6fw zn#y$Y&gAjr<)(Xg*ma_B>@xbsnDo7@hx`p*-4MFV(e#r|lrKddBK<3Kruh2bxrJEXr>s;RzEQ=l zh0nzYgx*mNPbfJz*18Z_?wJy3?s(NYmHnu9puv&dz@IleTX#*;zI7o{{JD`gg=@y`NiZ(udQyhO`8$RdS~izVhU+D8nU?FF*#CW%k?+PW=s^tS}X0c z)kEP^!X;uT8sg5rrSXq=XDEQDDK`v%hsHaVk9chf|F6cMxQRP^??MiVSFFb7xaQzX zbGYC6Io{5h^{W%Ckq@Ioe-9n{C3I-{NuNN6UV{Go1iJG{=(>70;+k-5?yt~~k3(nv zHF)|T=*#=~KYZe^#|;Y%oBC_?$3R@R~3$3f+G3#~(*CtQja#_6CGV^+feM;RI#y)ed zZ#oMOA`N{yrk_R3dolA~=h_a^>6h?X&iwCW z{>z!abo~*`pLH_vvn77pf%kKMN&29+1F$gmLgA*%@HMrrvWrWK8B>Wn$3@Jsn6VWX z#9EQ%ttG&8HSkcmMPX}1aRK8WYT-KycVEf66pw0~a|dvXxMK<77t=bghG!QOOQ8Fj zxeM^QV(LuW|I(aIlwHmG=GsW`_mL;_k*)MF^OTLW37cAH)x3G0#27cRzDrnd&GCFb zAL5PD-;nkOHd41;Vr(SvDD@%M{c7gAj&#50{_Z}1<=#2?S)Th9 zV@floMP}WL&ANw}dvw?GIhCw?0+@t=i8n{_`rP|f--O@41;1Ckmfls_QTUJ3GWR;( z+l5Xl+idDPFU@&|@hxI}(0i{RKZ58{CBWf8VJmkAyR_Sr@Y&&$1Rv_?(Q7 z%duIXH8$&NXb>2u&X?Wl;ohiCm*pKFvG3KivCL|1v}w&9q>9QE=zCZ zm8Q|l8ahj3W~^G9d}CDHdYJyh;GgJgA@o%OZfmVQoGyu4)l;jj3zv_w)-v~H-N>xf z_Nl2miNRfiZ~D&guuVz3^2K6s2%lp~HD$x#Q5c-422aA!oZ2UrdG12}ALjhWhMJq; zzv#S}GNJ+ewR6>uXbju1wfOS|7cCqXo~nAGVb)0Fqjc+d?G~$D;JgYrQzrEca}^Di z@b1(BR+HBFZ&Yo(`7rL-r0&MX$j9gUp?6_Kd`C50`l|vazF=MG@EVYGq zT&B5)fT1@Qa57cGT&8MmG)LOs6D%?9|C07skuSKdA^$=0S3~FEhoSRs#xYED#jmS5 zEq2?IpC&U_r!B#3r90NE$rm444cropRWR#z$13|mFo{xDFxI$gH7;NejTqQ#t*7~5 zUr!t8x&5$L8-n3L8S2CZ!6UQc0?<9pn*#P$`57`Xy*d-Ig7_L1ZkD_=+(&YW%U7vZ%;!$ufo6P@$FUk z2nOTZPa(75CwckyXoqhmpO@zCUn(xdoE@+${P8rK zE%tbJJeFMg`~JNVCk`C`^1MwvayZVJ8f>kojh)FE(AUBJ=rDVe_OT@Ap}k&j4^VY- z(+0mgJ9BRudm7sm$1ggQ-)SrFwKPFP{_*O(h4ST-@BHjfuAZ~>FW@&!(nf@LXD5T(26me3Pm)W&)j!uv?4{0v9scCco5TZTi|7t$ z8-Ia(Y;9l1J|q4{HdQZuM|qRxx7`yYcvv2YM&ERH)iSRA@<5WG-*!Q!%H>ubCI6?oAGUiAHAu)wzT!{YiuU@u={bx*An55 zz#B<>iF?Bz=hnKJC-g@km2X9Bm`o%PpXVPtZKR)ec4;IFe$N z9q`--Z_i1$1N)&*$_H}F2lmq+<#W>Q;C^@|<%8Mfk)OJsZ;>7Q0e0V*{#q(|W0@~P;zd_9VVnT5SE z8l5e~e#>lpG@n66m#;2O-N5&DcfX~b{gy)$@sHy_f6Lu(xsm;rPGnYuesssW9$-ro?+RGRdd*#JIByq> zN*9WD;2Rx-_+hsyE|vYb!ScVReB{Pp`6=ZiX9mmPsC@3G87zOj^4~vr{>{ptKY0FH z<$rMSe8on_IgdS9|8?XGH{0>eTJV#>%3b1?v%sgp%6!NxgM1yV%m=(Otkqy;&ZbP9 zF@5E0jBQcoOi%Ndf(_SShK>QABw5oKYkC)DlB}P8-=W{kRlomTzp*#;`!@Y19znm? z^ILSc&V0)z%GPa!pJTqx-k<-BI=&0+%(bBrTP_RF(V1vs;u!xT;+_@}zZ^cBxp2<7 zD+oTDbKGUAv5D;S>BW@knq)Wc2^xD~GiaO|o>S&%vcjT%w8or?_o=q%O)0zC|qyOuN^Z)()=VS8qe>(s9n0)k*rVsL;kIC16V7rkI|GU={ z$DuV^jBOu+SDTm^*66EzZe|Q2^pP%XinF9E@TU3%zP&iBPq9|xCRp4nUyc#UQC zri}@kbPqt(*G4U8-_NEE)!WKh&2_;EtLyl#r;iZ(jiH5~odaH%j0RWQ!4nhr!x>Wf zv51mfPL!#LZs; zEog4_j;!CWxy5PA0uL@GPq27~dFa31Sm@gjB$grsU4)5gC?>X{gcygR#8M1nZ!^d} z<#w9B_lXX2Z0UaC4@rjq};@awqOQ8somjVb=baDeIL9 z1UOg4=M2h4##l4NJ3qG7c`p>0p56wZi38_LNE2NuEvYnMwv;sSQKiL{hFm$HH1ScT zSxQ5`)RHDVFzv~gGLbt;NJHs!%CYzT*%K+J7!hPgC|Ew*8()p?9Jq6GYCiEV^9xQ) zy&N2u{t`I-Xr!>AafG$~_rS1)-!Xpwk>B6vcgJvR`=9y!J$@(o{Sv<)g%z|sfqMCKQWxX#;32NuWzXRP3Q;M1&ARb1#7KbVu_Ihi^I*vrlcv$`YT8{K$bs)^^xeOf;q=ypo{!>uXlx0zwiudQ1nn&(j;NM>|Df3;UcS)U z|0KMmm_8oda9K~+w1VcBC&`b;zQ`H)uO6|RiRm!+M=CbtZTxu-zjod;eHj{mg+1t3 zgJX$H7?*wxJepEyHSE?LmhzsMJKkyUjLC*WJTu;VD9e5F#2*A1X943S*5Q^S-dnWI zdy6wT>)3GrICw%?H|HKXt1%;0Fue9~5}uYQLKcZPxW2+LWvh1uQUxOx9(LZGI?Mdl z+4zKKTLV+X_I~5 zcS4bP#V+cHtbhAfQ=sQZZ*p#1y5%hLHSW40R)fkYAAS6A*LS&dh5u3a{~rDeHuKmo zT~EKOxVOa2iL+6YG;ZdgyPIwR&m@l<{)|pcoU6uweq-LQmF;yCzTgh*tFN+e*uni- z^|G;uzmom+L}0XezxIF&k8A(OZjfDCk4%UjbmHymkqJ8v@a{D-{=D<-h6m_#5&HvX zEOj%?9i)P19C$9LzW+Nwl?y(V|f&J zg>!&|2Fo4 zd;~N2UtVXWZU#T+5`+H}bfH_GIxY1v@b?=p2U3@je%Vu%#@8x*u^A8Y<=)0{&urrH z_n!+ckGkcio`XZI-X`#_(jMF02HsWL6S|Z5S1XBG-@&))e)l%BN7N#D%3VCIyGpGT z@e%hXL+oo0!T&`}sC?NMu_o*#^-8z0ZkgR3%29yNkChcCja{ zHG2DZ0dxQ96Zjh%i8Bi^mg{=@`ul66P1ehKN0B)eV@s^QeAQ#bS$tYChRZ*1ueJF8 z5#`2UH+24e9r2gZskyj*_>=SD&750td64G89gF6EIL)KRz;AT=2Iir+-YqNHYV;9! z(y8CH%CHf3>K);MdxOqBHnGpe?z!(z*aYBlz3WS#hHN_)U-};K^-g5A=S$yWm#&I1 zr#q4Px&HJ3{a{^bISFpC*ikNat7nOdK1X&Fg#na#;dShqWHVQ zk)Vl5vW8mk6h|$yPaTS6?@8qC&zffX`vU#J080nBdVtU&QV8sWk zqr?JsO)74Vo<~gP7OVB_-_$f$Pdcx;^Shzu=#<*#t_OxRM~Ox4Jj?3+EbUy*9UAPr zwsaCd#ya(W8(DT+V<9v!4%>P>ak_f z@+AX=|8XxLeiMW5D<7%Y&_O(^@{?XZxE^D^%Ky0XFLLr5y?o?tjCfb&U#xs!X7qU8 zz%k>81}@>wn?v~3JK=HW4BfEu+34CktryNo8U6jM<9zzvnDiFgS(oF1-EclV$bhe4 zXMLIbSq^X(zVi~~hvIoIVm&#d*SUq56Jli#6Tkb$8CLHYojsu*>s;2P^J;D!s_ET&Md;<1Cp|yQ0G&rD4du3`0Wg001pWfa`nQ!tt&hPK!EC0EOc`v+y zGBMr?|8~AIWmPG~RBfURbh%x!en7u1RlMhImEB4i3m$uazB1=dOr^&=@w3u7t9^G< z=`N?bsm{K{JGWd0om>jNd=$F51p2uc{`nF3XOZE7E9s--oxbfU`q27yyxF&G!K7I4 z2K=0!E}tkEp1pprjO*8B6t7Dy_65s zHX9pe??eX=B9l^`ygyI9-bL>(YDgltj=($mPPKY94IXEF5Bu!%! zuGUV0CMoOL5Y@S3oHM?EjCwP>h;dGY<~3HEy`uH(*B@c59rQ(eEq?%?yP#q1{}j`Y z-T+pNgblhjcIcC42^YF1A`a(EY{h#!^SNhrxgRhKr^VKU!q9EQANizS&r0 z;J3}i|D9F!W^6kho3c3llKQ#a?T2{xUhKI`O=94G?hx+7i(2_Z9a}sspD&zrdC~TkSpf z)4IZ_}O^V=Pz;b{Y$3zP8IpsXV25W3))udicliChK{Km~WN!%C+_OZ9iI^@LJ|H z4!&LM^Ci^+FGoKbmtIN!?_WhGLZpED1^GLD|G5IAgPjGoVY6*hlXo8OoqzPW9_ zYx7@7n_aBGM;8{nebHISa@z20%Eh^D^kmwoV?KM%%hXR&fAKtGgQv<>h8XCwM z!?`E;#!!+L5A9w6pXXcnp|$B+Z1rkxUvlRb1E-cyW(hjgU9@Y?L1Xi0&8^XG*Z6dX zLWi05_8^PZ-e+lVFJ~&&0k2)?b6$VS-}}fAQ)Vq?&Sy>!x#M4w+mBV@jNkM#EZz8l z!iGnv^E&d~-(L3uXAW18xBoca3J7N331jva%kjg}PsoNB9gn>N4_VIn;~K_hbc6-Y zJ(;(mkKLBkJ(=q>3@W z_z&oEtPM14bh#(#2e`LNCqINNNRnsKw(f!nGq!5RR?XNX4{B)3dqc;IQID%_bnO`J z@+RkYot62K=K8Mol9g^}PNDV3ne!gV*_~B8C*jvgE^YW~u%T^y&+N~jPiibSd~?Wl zW6SiSd$&mE9OdeqE%>~j2$Xf-&skCAw>k3*?JvEKx^GoF=YB#v&fHYaIg<%rwC47} zlRKeByntl0R)0QED(|-vM@yh3$ z<4~2y9(MY5<`~u)FU@gC!Rbx#3iU63V#Z}{cE%M9j4Bu&a_IdEB|vxf&=sM@k?fz`iyTtef$!d zhp8Vd7?|IcS(jfh-iXfFG2R7?S7%o1)@sxy$N5}}zTd;A5&PzLV#{L%(y_R=3w{QTHAq)$!&lXae$`0c=SiCk zOwgaV`E>rBRhv&VI`)9{$P~q44lMu6DJHgOK>6#Vsprc5=S`OYhsD5S5pY=ud}`69 z&*Lp8$4`9ce{(+%GN5A`V@5BE!H@BOHfY_XtGGUd=MQiAK(p4cy`X27^sFyXPkwai zlXoH`n#>yP(hA@WhwV`(A-B zzKZVm7kJTY@X9xXL(^mT_uadP-(BFpWS06+-<_Q4l76dk74zw$U8P4||C{h?2Y7V= z9(NFZuL}IyL%Ut{c^~tV9_5|?k{-2-va*4_@}qp^7g9co916K@M{V8*Fy+IP=bXGL zTbAB)fIHDB*L1+qziKI0WBj7UX`3=zpo_s`ePjpg?kT}!D)7`?Y6Mex!)zISlv$6C)R`>eR<7x$7T4mFF`}1U$X7H2rLi;q#g zRWr%&l8bS>3Vf#T|cT zXs99ToNI2y&w8rO$BP#}w|qs#f}!VD1`5utoX_t_@+z(-S<&CtRpnP!tO%W3Ini?R zt=rDc%76Wg$JcNf#G0;2fi>QlyaeM|$mb+JC44lGI>sETidR(et^P}fUsDmUiC0L! z>6$d3Hfq+qe#XzP7F-gP)A;N8R?Kk;^W4$EAWvlv-tfh(iV-4S2U9UJ?e(v7psi$dnxIQ!*vxk zlu_IH#@{vRr@+Ey@7GEN+wf2`|Ipu^b-L>MD=Q|FR#jGK(h69+bFaV3*%P6R#s4_v zrAMlc{>S*QacQkX{I^WMHNfpj1Fs6k#C~_H%IC|!knx9N@rp9aSyhROf1_<{hchNy z?M1*x+E*L7ZP$8ulhbF{r2o6-zy-|lmH@syD;1^vFdvKZe@;36MA37-bWZk-LIqZ@ zeut~)_us7^t`1<^m!{{&?1q&S?KKWPIro)zO?t}A&AY!;|DT^wSa!62pUCcar?20g z`T8AyjQzIc=~r{J;5p36^rLcEq(5>}MX=e+QYdyC0gG zszNX8XyDFl_Fu%)y>Y?++0%6Rzsvi#Rqd-z{Tct7%6a4R^Zq4_OY+wb_r9l`cUp3B z^WAVH4ShFTVdv=~S1+UAPOB-_uM{3px-@HAbkmc+F9VD)6u=*!yK8!ic*gLrU zTkZXVIf>^CR!4eA?mgzhc?){8kw3d%8*=UZo{noKPKaLr1r=k!{-3!jrI_ifF8chy6xoDPp)w8B+xm+|G;-Z%)2@Fub81t z?tir--_pOk|D{_U`4aTbczVru_PeHv36;$C?+6(cE{gm@5C?n0yn`5AyBf?!pJ7xWSp|c-!YsPZ4K*`U-r--W!41 zOA(*F7ur5_Kk*0Fm@Ga!8{BK;jBfjhHEWXM1rN=i+sXZQoyNW(e!=C-yZB!fpOTtJ z`FL3Sux064;Ez=mujtgfE_~~K7h*Mwb-#8OZ@%d6K?^tTE_H^-374 zWOx`F_ysz(##qC>EM{z1&PX){9R2oI)~boULit}+?}h&ZjZjDO!ipp+xaW1*rDKS@ zdaJKR_@jO6T>De{n73Cem>QVVE_Wa8+|C;4+{Eu+0jJ=nPX4H@HF=&q@!Dij+c_P< zK^K2N&d0O_6< zME5KJw+gZGim>&Dpp%5Kd9~MP8~X{r+D^}}rn`f5x90;fv>G{FU3E&T_|DsPCS;S!&Vp9jfpG(SM#PTnRE*8KK)Bncf5q19pdE0@ zv0b1GaH;iTwTX?>Ss0n!K)?0ECH_alk=a^vi+u>~>&U)}u}{*d{L_%5qv5>^W4&Lc zpYjJnscQP8TUQ(;Qaa6KIHI zSBn?zT41Fv<2{F6_!x{#-&w8o+V-8zXA?)KcT!5zpI=dA_Fd~Gw_TgHUi|?_(fY^V zZ#RT!dqAHbo}T)7nfpHN7~_NO#})Zt*Ao}4@#MZq+coK2Y?cLUythAY8(ql0F6R`{ z$+U;4IbV;gbLb-*PQ}0}79v(CfE=6~uLv-%h47QaeX@m1)5sp9TZyk|Uv5jleS^v# zvnpimb8LbWkloRh73~3gjc7r1ocxS)=gb)Tg&*|mF9zZB=idfj>Qz{vxvJCiYsjkE*p<%D6532*TIr7?WhW#$SKP(T6quszc5= z_MT%mDBeUkJ!n6Br<;CO)6XUQIX^>Nq5YY*w(fJ<`aNykN?YE%8~FWlDAdqB?I-XQ zdrhwHpg3M58=-5D7gk!?yzd_1&_+yJJv0z!jJf%nl#jexc}mS13tQ=KWO5SuFZmj( zURklQdUeI90?X*U`D~WIo{i3XqGu~*d=FidYQV>zyEfCn^bKPR%d|FLy* z7h!x_mup=75Kf3UYd-HLUoTR9&SD9VKklxj?DwBjUu~ZD9jig@dGcs0`quVQ?7hQ_ zT1=VJ^c2ddj&waMva(_aH2e@{lE^ISH#;bI2KvHv=nDx??tvc(c%$xClnha9fbi(M zeE&1+S@|yOIVNX4EBxy@m-U=`^!5DgKe(R9ALDwyu{*P#hnG0?{$AGeCDnJ=a}V_e zQ~!EC{_TP5S(CG#Kcr0Vdd~SL*7Nlu%%R)7^*`ZT=TG_8xsCdw+xdCc`9G1H zqT5GI8T>eT*7>KD={V@n?GuzM<-CudZs)sn`xtqm+i&nK98>(v(bqY1cY*AKub|(* zXx4hPr<0hqJe7GR;m6I`rs98#cq|H?i zot!$1te!u_@wYW$3v5N7j@5jkqGkv7Bmbi%okl)SEQnXEWG}9kwDsuzqPd~ioNd%^ zbopqs(D32B>tSnLL&Zl&rH8ufA^TUc&6^1p*i&(o_`qF&0#*O@5O4@3Cy-D)VpnOwRtWxFwt0>fPHNM_eDnt9ZxH}QuP%`Hx z@`SSq<|#N|!*?rnqpt5%bDd9_&S2_c1_rV<)TY`F(4Kr6^OwXcChR>JaT0Pil*@?55)(32lE|E{aVWHB7LK8{K5~-LHDNx%2}&|`IYKtLA0*o>hgF+ zkTtIvT2mP!e0fo?McCx%XP$4}^I!V^9~wPy97acl*EY~sgLo}*6pUqA+_m#HzW>>T zZR5(yvZKJ_>~|T9r`Js+#!58yZsUEH@%r~&tb&>~$GZ1Y#U7%!*P^`_*0TS<_FgQP zPPDi3RH1{v!oM2oO#~NzN}Bdgy#1FS`^r=SAJNr5;am*-Zi`p^fPC%4czsU30s5ei zTHpr_wWfXbk*~(rB!8Ord#+gs?o(!~uZ#_h2H^0{Q&Pu+!xs9oSJ&XH_8OQ|9Quer zJ0?xOWzstEdFlT#>dSd`tBX3I1#H{FbgRY6$NwhX>Ql@?bBVyyqVNH0$x8O)*z4qX z)sofd{&f|_z&OI#_7JzI{jV@<5QSIOdGm+X!MA0?y?NlCMU1EL^k_QSH|IM0P4J8| z&AW=W&!@ep3xDG;gLl>X`mm8P1Ng~|Q&T@0?&lK&?JmKyUtSLxTwWKtaFZ+@z9^%o zOSg)<@;*^Cc>RMf0atWZ(TPQUPfwTq6B)a@qUz*WWuQ7%xe)#x+ZwM7@jcu>KkoOC zuINAa?b(zEMirLD$Fer;fzC%Zstvr-rj5P=mmb7(i9>#rHZ+GHaW+&k!?W|&LkDM# zG=9hJpEYGl(+^X|Zx?I@*QZk^d9ZK$&6LTNx4ZEXiWex3TeKv3t9eS^=DznRKc2w@ zd~)+XXEisvFpN6B;k-K6w*^CE>x@c2vJl@e^pOl$?|6LCdnZ#m(H9uI@@%8;u&2-1 zgPI@rIqB{X>W<8J$H|yW28v>F8d-?7QUbbQD=9ziPX4j(4-Q@6=S4&N43> z;l!z%nBLO#+h=-w*3lEZd*9?M>X>Au{=O{GaFxy@^4r@dkT3a>n~O}$Xa{Sqyyq|0 zy&BnVD1G`R0hf$j2aCM|}|@-^t-5HW9k#OFk?k2;C>tbCun_D*b#%7?ABl0B8%t+iF$_2Kk0#`Njq z7c?*aE@81Iy zeIM(aox+0i-1VXd@aT0!6tbN)~jkU`X0cS5rasnCQ>cttoL*=A% zG|`XZ;1(9nneFT=jW=--D_M_b=H#7MSPqQ3f*bEs3`G}v%?5{FIV)A>;gI%_&`yenwOn|toOr!((-@SVl_ zyu{wfFlbDC?jY+l5ggF|$xOx86gc}wTW_^ePeOaT|9Bm56=_}SwZGuvTRpNiV)kdV z?@aPwX=n^Mgxvj%eDEt~EQ|d(_K0(?-N3W`9J3#B-n+m+dQ;16$-?~O$UV=XJF_*H zTd}va2dMRaI(TgBy$X11y|nIoxVwqigMA^rqwe8A)4bGp#%lq~+%pJu?0L^XHhO(- ze0$z3;kL$q5$D+B>{)v_-B}cxEm@aY+ss?FkC)pH|2kG20|#^Qt48*EyOr7}e^j2a zdTVE~c1OeEsldU*+pY&4{$SSb8}Cp3evr1aaW*rr+nLut!(~8X7@+zw} z^so07qlyOMIhpy2-yAEPkA+u!9(ZSXMRq^=_<;DUw>M`)hjAZ|eFQi}z{mAwZl%O% z42*wylsWpxUq1-1+vxJTRqw*<&Uf$y{eK{z`={~Zp+Kq?eNy_lC$IA21#%}JUaSTl zjmVq?@CYC$1C+Bz3|#k^Rrz9mS(CjUP4YYKIMw*r-Yb0>{5vi9FPAm1m%exW@$5z6 zPtu1!mB6bFIug8sVeX_u_X@c1QXEX~8pna#KMj+&|Mf6w0w(as{~ercFG!W;;w1J| z&+-8FNDzCZ0DHuF=SMtiHZbl(Zr_E>ean^GGmzVYyZG3*KFiq|vj;sYU4_lO8y$Yh zuUQAqtjdmA$y!7uYqxTaEM(1|MJ($xqDkc6Dl0nc8QQpm_!B=(N8$gS=zIp}t}04h z<>E*adVu1z=Di1fXHZ#zoc~wpO=g@QEli!6h0Bip_tqr~u=Sw-4UVpNC3kj-Zwnt4 z4{-G?nWn_}8E5D4coOv5On}4DE zwGNsm+sf5V{#lvOj;$I(Kgl;v$+Vv3Hnb9eR(RLw7U(4?+uhmAj`IFP*M<0oiA}70 z$6mV^n~?aN3-z9JJNs!|n6mBAt#<0^5yX$x*{M5tgJT+Z0WJ!cY>L^HFPi+n6{bdk z2bFeUZ5#C~!-2IO=DT>U_ApJEyT_TcR_6DoN0|Ez%$!dLH8CeT|2{WXu;m7_t`Cic}ua@Y;^jbpYe9xaaM1VGEaOc z(EKQGCybzMiqFy}h&-R=(E8eGfIEve0&w&b02Em0AO=GqH^s8La!| zJ)J(+Untu_@m3M{z4{P%Cpu9){IZ_d-5Tp|Xzb-8Vm`3}GwnNmGtW2J$lXi$7@n*B zC3-x*K+#NsJ1WDh*UDMo8fWI(;a@s~9ECO-8M}02^(D9gr~bGt;N+flFH3)qd8-}P zeMEwG1Pjkc=k?9}w^i+(fvr)RzTnD&hPJo+W~jZU!w!wBy&BHAidWo6dxOnku)A6h zm^T@1&JPZR(7GExHbb1V*X}@zzg-Kd**ZpbyhxS=Q8ja zl^z0o!2g-}jLcfp(_foe3+af?dg#7GwIP@{(TDJ?7M#@nqx#YRd}jm}0NVy)>;(JT zo($}FnHaXR^jYLTK8VkHFdY0yKMsyc&j+q;;Go4Aa&bU7;^7)&^Ub+5{Y+g!L!5iT zJp2oRpUK-}J@I_bh)L9%aL$IP>GazovIOMLYR$q70n4xF07*r-c)x zF8w%TcX;tzm((E7erE1^t#`-2QEQqtesGrY#~8o2W}WZ!wKOt*+4hd?bMEj~8=6Bs zZFshfzYoc^+<8d!s-}XFyj5R|dA9p^4J;e8IQ3Z>H`N`)6Qu-@Cx*rDE<|csCdo#hS$vj|DzU zfKOu{__Tu;Z+iZWhEVD?_UZ0kcOt8vlfA3>Xu(qaC_K~XT_eIX^V3GITohes zE;AW-9ACfH@jfHx*Z#NNARQB30y$rrzF|6XxybN#pPX+;&fjR{{HXNTo+O?dIS=i$ ztXs+%bK~R6mYrIgde{H3hoJ6xY(c3IW$qR+wdbLSx+NIiGbdUQU^n@{W%GoN#E z=2Ju4+Zk(> zS!UjS|CPOt!FO55DgO)Wc+*klk&njY_w-~=|2j6#GxK@Yoe#3z;N@>lw;LX19XoyN z*vUHHP=4LTf#&PcKONl6@Jf#kwLZ{aKYy(QKUMa;tnm-57t%iBUFb5L z_wZsY@H95{m1OC?0)_GNaA_5^#9fyg@#{*X2e=6pSITS z1$G;mYxP*(@UX1Si}s(w9r4B8aeM;EuM4H)CgEY?7a?f1$+tIDL)|^BE9cP$&EHMF z^xV5nh3ETpnw1yhL#EBjFWYM$bl1;2tM=2=?K1DT>_@Gw^dc|q5%RPAcav+HL!($* zd<$kjMZR?Z-cmtv>em-!`|A9#(VAQMJ-)HCut9K&Gv9CVJ7kqTgWj9}ES+y(`(@}L zWYsi>8N+1PAF_)0hNs|3tH3$WAF?XM_(=2X4pG-1V(mKeT4C)$m@`Bp&HDnhm6cyjzT!i3(>ZV5Tg^x3tK!swewOO|m-Y{<`6yjy0+)w4 z2gvs#paW6^^oji6*VOg=EugqTT4@vXKTnNU@-PvPpDozbGbdbR<;m5S7U8e8f zOcLEafzQKAy_Y>#l^r_8Y2%t}2l}hDZ_9bV{_|X2$2({Lbj}Z4+CGnazamZZ53h#D zb}n$v`d!5u-)2oWXZ`&5ef@Bbx%;t2{s8fX(zOG5bt5`0yt@BPx%Sos10(z4)#n}O z@aitkFYaMni|_#~f)1C1Z?@Tg9O%O`Iu|_r!!9mGj?TlmC--z>T;H4T>`& zU*7))Pith3Ngtn!qpvqIFMk^624^-h7k^rWH0-tk{LrHn@fNGhfluWq%iIy< zXY$1xOUq-uKV;tMO|r*Lxdggb1iqa9y=`P3{Cl6bfAl70U*PlRMaHh(S=CdP`s}d6 z2HpR3fOKS}LrV>#QrDCITWDB$hQ20`PF+-lZp~QfFRz~V=TndVF8%Mw2R{8i6;F?n ze>U4M>%?;i{(k<_yrH5e%pL8;#E~xNo`r?>#`~z&nAV^Zecf%T&~$AX>B7&?Jx6nLFNKa$7)mww~yrR3AA8XOobok3X(zk5>Uy!%56 z8jH8Nk&RV}BcRdG`uNmu< z-&NjU{-r|qEji}f!TRSLZ{l6nH15o2WYdO^_xRUJdVylbJfEcJ7w!YzI=@?YcnJ4L z2Jp)djH&a^mHXT4s&r(_{fu+abLC~(=gN(&iOuLgSAIKqp>yTsvz>G0Rw=p>u+_X1 zv|EL|N?^ciq0%%_--{Gp?v?HBdlggv_ZAaPOi z`0gS0XF1=8f_K~}{c}*8m-h3)KLmWm;~!IgFoV0HAa6V#XAQb;hfi^Me_q>clMtLouZ2gq0a{z3HT zemc0(xkqO=I)nUk$3qJd?ngYp`E<3@NIMO*8D%XK^bw}M;IF>g;Z2?`(;i@aoTXBp z`GSq^9+URRl zJF)Td_=iUgkM-Wbnl|~?qlxu!_F*zMzt^U0JJ}QU!awvpb6*2-#J~sn>iBPwTidG2 z&rE%%z}c@_C%iZNIs@AiZT8RcMu!h?e;+&;eNeWe@iE{t=*-v0&NEYY(nr1I;@g@1 zh&r?1Tb3RJd^>=v;x`W9FEz0GU+-z|y1-aTJ4<1|Gh6&27GT&23f0YffNngU#<)=MKroXc*6fN!Z%;K@MOC1BqvR{@=eln^?Gk_U1x{6LucRi ziADYA#OwH9h0PTKPr%I?4d6)J;E!|HgO^|K=3hs?6MrFl*wKNtC;R4dc$LpzAK zc}Ru}HeDWW?JYJjqCYJbY_jcS(RP>Y%DTx$HZZ1Tm#pa<^Qm8%>3g=k3iKDtp54)N1s5=?vY-ud8dU)L!BpyGn`4sIr{<&l^ip8kckTbtpXv z7@o@~Fqim#9QKer-Vguf3Q0k2DOZzcHu2&TVKtPDMWN#t)+XM*W}0|CinWDx}rtf$jJv*vE&TTeo! zKu40_{&h)^=E*-7_qSC&HZo;__reK(S=}3!@6ND8CJw>b0}!v?{t@n#Bi>7Lu+y|Z zE_DOr(z{0Mp%ulb&%^gV3R~z#()GTwNk`r(eKhGek>2N}W3MZH4CyP;mAp35xo7mZ zi4LkVA=y`b#O}OgHM4(g_`tVz_T785SdO!R%?*nEfTsWt;#ko6+FNOW*62S3Mlje)nYoI4!dI8meb#L7~i44@xUF01Vv9LVx@ zFt)A0p&A)c?c!lIGQtKA+ejB2{Q7PZIDk{gO2_~4=V{sgk6eG3c<4FkRNQ%YdJ_Ea z2v{>^+stv(I^bcf$xQjI&LFK;d-3>#7ixb7|8OO5jz+O_RlfuKO7l8!!ILJg!NYCu ze~da-#~Fq;ytLf$9G=3vHS|9ijWshLjb*U>t;z>a^TCEXgZjtrq252_A4A_2?i|(U zpW_R&@cB39_`<-Oyne4-87>;Le#ssT@-ehleb0L_Y2x9nbR#s+U0HXFu85Ie_QT8O zH@}EIWs$b2-g%>`5!;5?vzD#Um*TrFTJHEol%7CWR_sxY?!*9x66pHz7i*eteBN#r zo+Z%#MuXehf3D#BM%s+vkI`Ovlltb2SyOSQ9b5NpD0VBSom{>-1K2l7Pj~6LDd5F` zjY^+Pp6-T@9b9Chk*vYqi9EuD*47&uZd6SJ}nsl~d<6M@`&kei($flinLc99kZ1 zUW3i$`Kiua>iu`gK{L|xo+WRv_6AGO)tP-hq;36o6CR)6hg1aosyVyae?KAe+1yVE zzlCS_8b4B7QU9LB2Z6QxNVgM%D_V>}lOf4+#?Y9!+DK9Q%Z1b9 zq<6g4HxoUgU$2rLV*1-VK9$A?W96Bz#_F#F-|Br6n<`fZU3#J;gWjtQ2|y!*$q-Mb zYwugK>sZcL=8j9}G`0qM9+iB&7X44{Bpkl`Tmru9m%a6ZP2Ct1Gq)0*gSj~H+7&fv zSCJM&w_6=7YzXnTj_S*P4na49-8%f3=w7`mvD48z_J`p`jo_>U*Nlu;Z1>NqjgDdT z*nD!`qYq%ux!rk2??YxTyPv)iUvYha>ybU~-n91~xbexnFqZStKH$=xz0avf>UC{T-v}=L8TMx(X z9<1*X8lU=h>CMmUf70K7Hvjj>RTSfolT6p$k=Pk6-g!JTj-Iip8y}U8oH_p_TQ;lA z@Nua%Ic4(mD`%deuV&&gHD}JOxBL#Dr+jgrx>9e_IOk4IxYcTigB$2~-*1D5$p_uU z9GiS`>NTvT>dglaBrDoKiB19ju*TabF?a6mb$r+4?QruN;gg-N-O{P^d92^kHtBZg zwer1scJJofbp~J)xZ|#AHs26UUulEO+!^{9I4%80xO@ZS)L6db^~e3$37-s4^vm$l zbQ$B$$gqL!=hC5QIL;bPyQ=SA!G+(;M2EyHg4^Nljz=?k@X5DZWgcC&t{aGlejL!+ z3kUQLNzVFiwjQ65I{2e(9FQCYKQ>!0Oi2ATCogx*@@u5m_rJ6Geeiji_(+7ldROR< z@}5US$lER0gY`eCzmNAwz8~7UA9tR*JD5Gp8l1=@>!u1 z_`fRA69SjC*0T2{=VbG%eC|E{6+g?^sPbh>mlcoe;{7F$$LX#FZ@yn5##ZmfX`Iq2 zytWHye=KhuX-?ApJo~F2oJy+xApY#fkfDvd$*J~Iz&yekJN^C|zYTr4b8os&{L6Wl zS@TdoapJz~iEV9SJ;39BI~6=`{UNkASf7UHy1sYGCSQEU=Bm9DQrd6K*vkWPUvO2d z@nG$1FCMudU8{dgA=ig#13ORd5&PT{1-Dm%1J%1uF+ROU`CHtzH+%2!7me4tVS!}% z=BniTQeXdjK?688(z9o?^534Ex+f=J{`CR2a+%c|rGK;5@GWnxJD^+I?zfdyx0AV4 zQeI^@Vvl%blaB1`FDtoM1YG>}tqFs}LVkv7`U+e2T$Qs=$Zx;L=tn&5jVX4S{1St~ zR_!T&Fh79T&Y#te_)4DjamJMGSFrHU+QW`MwsyBojWai%LbU$q+(3h&VPNjPC;!Kv zIx)Ao^b!FFuA`h;*QYSE`aa6!%hNqLhd*g^9%JCyO`Y51juUKLhlgpLHsiFwWp8igqF-U-v9|&)JpZYy zu!)a%_EYr#YW`c;+k!`*-gtsP=p0Qi?aX~(oH=9m_fK$d!*M;c%ZFI0zCd}m#o4rW zc(Z-;XL{yYW4mMAb;fzP-e&ndfRFSfy_FILUz_nGcxgMZ2cqCsGw+~#X;n%CPnxm! zRZlT~mA3Wi`sZuQi)7`xtgJ!KeYN8qpC+^U$%D?w)uxdwXJO&R$0(pxAeKG*J( z(e12x9rPeS#WdFL%bZy~7>xBE#HW!v?)j9{_#}rD*xT}Bl)z6qnV)2fe3%`EH;b2# zN^b?`#&6;4kNR$Z>~GWGjYZB|F1dIZgHMZRju)JK_5I`RJJC67rn;VABhlY}Y5EZP z_2lVnm1nc>GIK3U?;}s=t+a-(yX`pqH~TE?;ZJJM#CGCBCC7aHYQ5TG?vmSoq7A`C zFnL|+$CDmE1HHO5J)HMR1os!g1@$KxItH9oTFB)YySWb?*tF_C>|A;me-ds>Z_$2l z!ai-bp=FPUUw=Ys>N|#qV;^M4N{Lr6&K4t=Ox;j+UEV+)KS*8U-)26mS&I;3UIor| zGvC#$wO|KKO?+$|{<7reM9(kj$9vQD(9=b?(!IQET& z_Yukuc-fzPi#==67XW$N$PVEOvX)!~liZlWu= z14i(C&vAZ}rDMH|A9HGUte){>o|2swSDfGU?6fw;`OV5sizw~P>@?1M&1`&sc3Q^~ z(&lHUq3h3-uQSP-_WNBAlLij>(=4Us_+I0j^=f1t{pH$vNP}nk(;`ZPXZq8Uhw}Sq zbJxjoVY%)^%fzGP`a65@qsM`z;Jt2Y{xWZ<46rq2PRU>9FDe79O_}NW%luhofW0X* zD}R|6RED)MWzNiB=2?|tZA_W>=P&c5%CJ@)tjoIjP8m-(4q2Ac;pL_2tp(0KgPvU^ zJ>rMdRo;Dh@)VOc*j;a)Z($~K`bn3UNQaTn;E~gbUmniAJm3YqwqHN3hnHQC&fG?M z(Qeilkr7WI%Qg+eK01*+>Y@ww@4es$X-%-M`RXQ-+fQ)LZ!2$>B*DA5bo`+Xe_Z#a zqMn1y?};y2JvU!zJ@=XU)^j&aw4S?hzLk2DGw_Elx0`!cm>AG)Rb}H+%idRL?q!T3 z@4Wtl$g_~||0KybWQdo)fdB2j|10>P;D0?fhxR-#1IC)$BKSGVO4-Hw&v+X-GbuX< z81*(Gt37#CW8@|JKjpNis=537pGYi?()?oxxM}`z?B>lL12?q~%)RkSW-GmEko0=e zJ=w{c^`8rmGM)r^3EEO!eZxQT|5{}}*|V)`#<8Oss*RgCVD!HHwV7h@B$PL^!l0_QkX0C5e`bXw^^tDao z8T--Z`msFabLaZ6TH8nS%-252(*3{Ye(u43zx(2WUF5DmAO5|9EYORmkQ{gs<%urH17D7h5J=HfiJv6m$4a&5qye7NE5sd%*N{m<7& z{5|yX@qe(7^WH-rA2^0Sv?t`n=hiEJY}k3duZ#&a?>^pc?igY<+q%!CAwmoU@8mtH zn9@wltbc#Z)ZKMnZ&tl+PQ9Bi7@YQ{ zvDBEVp{WDd7Y#vYFO>Cp{+!3~^JC+~v{Aro} z8t=Xa3s_n|i=+%p3#wB4|Ff_mA1q`y8~w?hKm4yh25A=af13HvX8vz7?lYLH{DGSP zJC9=HGk@Y#Ozgp6^VgoQ#@iRcRvTpggU2=voL7jwGOeGb_4_LREykj~G3{OBb81n4 z)+^Sv@qqpCx_~{mj5W)JpKN}O$sY&f!A&qP1?CAC=1*d?Ch!vsR$j39u?LI8gYPYW zp7qbSx9s(sOXJ7lh>p<0$?W_aQXmJ4s^Gd%iu^cc9Ns z{=;0KozilBcK8%oE9{Ew*o$1aD-PE9wwSAUKrX*7VIAd1GG)M{d}RVE!`Mw3;u!Lk zfyhjJswp!%f0=zM!`w`niu`3>QyJ#k0i1N^Pks6QSblrTTdO}%$ALvAekU6a&Rq`j zqt$~~o*(VcClOx}ux2EgzegYP-6Wuod&CQE$B&i^v!CYakN%B5>W#_Yzj%`2@z6N7 zRCf~J{Qz30uUuL`K-%E6o|$U|JP=Mv_fh{p#uv|co^SsVuw))dVz-%Jzt4&Jxjv`T z^d{z#q2o-Ox%e-BL_GWEs*WM45A0SvJN`8Kc!9eQ8m=6bI*5#`9A=v{tLuwudcvk>yzNW7Sams5+`$=OuiS-7 z8_#)6U)mC-@uqd-$V|EOlvWBZ`qJhr?RaF>h)lV2lvaZOc6cUjj?#$NkNDEgP#Swe zN%nGU@wv9UvB|ZhIeU`h(na8e{If?mPwM4I`}4=9|6XY~$X|MRd?p_`=GHGyzeRp0 z_}0rC%wGM@ew-VV{ww+Ic(`t!qsjc)@FFV7E)2gnmFygWY~zCoVg;N|&Y@MZEGy}^1ogzja0xK~U} z-2!h5>u!M^6H|%*V>QEL@zXAZzG|Vf^Psm6LU$i%e*4;U*@Jcb$ocdv(O~GqvD7Gg zXzJGwvCj|u;{mHB&V30pZ?qbcCpmP{$oOtVH-7TT1?FzlTYiX)C#}P_W+bL%eDd}* z?V*&VKgqa1LOgI3S~TN)-z0Pwd~fnmGv;OF<(u!N)N7>g(e&LI&GhZ{dxhI?9J!gV z{zB>}sb8e}Cl0KCzE_{Uw|w>IQeSg_>jvsi9$5bzuRi;4`RZ3w-=h9sRDWWozJcBQ z6+cpzKFMt(MvQR2Hp*!uHYB<9ceIg=WZHPrtv|u5e;|MTkm}pXr9W5wicI|k>lax0 z0W*dYw~ff(^0#rQLg#UlOIv6oJ|U-#5$BmU4*$Tx0c&6WHvXbEn8yRO5gV7&#;Z;n zU2Yp4ujg;$ceK&QIPRv62y#F?x)Ho%E;|FQ&ON>V?Y7a@oxhEr(MBYYT)Lh%EaX8} z8+X;1x%{WwMq^k0HhxGOF>v`)v?2bV)kfWX)5ee7Hj=O9Z{vQ!gK;dUjW&3GRvR-N zy84dWM*P+MZKP-;NgE%cjYfEXRvY1S%{Us|HexU5ZzHKTn9Dh|ksOxO#-E)wHn?p> zcI9v5TFnIpC7CwB^PNxrz`?OkyKPu6V^Y5&IPzg}p}1PA29xWD$pjJr0~U zhlo2PUWK#F^LzEqPz-n$ZijAMc%r{-wtf~QuE&X0-Ot{qVqlxFd0YlzdExYSBAaM8Vrb4i1f#=X39EikokWF<0cLJHIG+P_>Kpzm3OzmLGCKtKJk=P=!}M?TLYm@yE(6Q+em1ixPlJ!Obfad z926@S3Wl(a2EzI@#w>jAj|2W{LF#L77BoymKP$fsTtinUE~rJg?e!y_=X}laEX17MfYxsP-@1wJoDRV&#Z6SB(3>xhW3VD<8uq1)h0fpt&U6 zcs{iaz71OT&;+wCdE3dhiMfY(Y+=L8e|VR>M7hU6cZqh$W_Irq6-<6{r0-tY@*(hD z|Aq6%dN=5!6YT!83!*Xc1Hb*;M1F2OpzL3Z^_{VUHB{^jyh~@)bVfwD-oaT9OZUNEHPYn;z#;P+|kzMKU8YG19I?_yx5 zyF+viFAm+_^+UTsJjH{L_Vv5m^D?*R6ti1D3gm3GHj2l-h<@1nsb zJ370Te9;;_Xj|27Q&K%k>t4b z@#FrOGR9!;ZD|uM;Ul6Kf1h>mJ@u=7qCZ@U--Q3-OY$iuz$1&b*PL?Y&geN!!3!EJ3`L)!yRd#G+w1^EqmbrN6IBdqzY@ow@j5o9E7H zsr~!CHOMp1k4;N;<>U`GPwAf_&WMB&1ua>Qf#)7PxTh&XYF~Ud~zZ zeDSKmDXbCi)QKn5dpwAK>)}CW@53HIWF9_(}Z;Dhul+`JnYC(vj9f82C@ zg2)}CX9_lp^WfhVF5J$|llNY5^JAQeZ{&Tt!Em$9#Z5oWv=M)N1N*STm#xTc;b=bm z6YeEBE1ZjKrhG0PP_~WzUdhU=zGz=~oZCh|94-eYHyr8PegIq@#qWIe273?6!+D)m zjSwI0**%hLx#z-u^@Qvm_N|HaFGmlq9AfQ%7MNh;Z}Z#u(x=8E_blcV=B1@?K=kc}?ck^`cR-kO1-*T2mIz?l^X@^*Z z5n;;fjL}@qmdy*6cOU*P=f8quyLESj&dH$vEY;g)r^pW7B^{&gxuO z1#|M&q!E6hvwAVb!?PwwV}E#u)B-^ay=|o6lcy7qx z!7<(ckG(gKkE*`+|If@Ma3%p+lCX(cz)FHE5;m7I0c``=MToWa+LA!46H$Aqw$)lC zf!YpYTMk6M+-?e?00twF4XvY4ot-}Ci3b24WpGoWqn z@B95d9=|{GNOI2Se3tj;y}#d|_otbB%XiYBzWGt&n`Y|iR449m(>Gn5S9SXRvQ`{l-C3_D_*{z*E-m1K zi)%&kYQFmdHI;QvSnyBy4%U`^d8+gM*K@MQTF>J<_!l~5s(kVM3Yq43ru)sp8yP>_ zcj8$5lz57yzcj<8UbiS3$Mfb4FziJ^*b>?v0L~`zx ztJwdnDE@Vxp{Kp){Hg1ilRM8;8_cDl)Mu(2`sUR^@)APiC*+W)z}?fg3~D{b`EYN( z=m_|@Q)5dudTDrRY+(iYt3~zoJ$)+zt=-7{eM|Yl&uDmX# zAJEX0X2$0C@-ohcdpt_EhiJ;IDdz&`^mP99z)WYwUviqx^qzA@+qAuQmUA=DOB2t% zvA-Rxd2`#yrVZYFkb?)UK+^`lubF)}x^jsPEt8*WS%C-9MQ1&XT@>}nr6_VqxpdMc z%zPQU*PCn2dCun#=QMf#&~!fj@+e|c=p9=Bv0GAWp1ygte8&Ofj|6Xa4}FlhB;#~S zSIFR--Nzoq{xhdlcKpYB2T%84XW($r`HpIy$B+vxi90uA@Z~CeuNwPt=J6ZezZA4S z*EI634Ub9oKaqOpn~j~{J=l$1zQ|lk6Yw$PnED@u@vDB=caLXJc=W4r8sz(hMm;{} z`NWexT$d)i=bF=f%qi11nSA9Qok$P44Ii}p4B^Y5ZD==)E?5T7aP?uy$pTX&`oG>L zw=K74dU6g)+2+Z$di3i0@98YwIWzWwyA@qQQ~w5D){mP8zOPMlUV6>-z0Uv-yqXQV ztEqm87$Lvy!Cljvg z*&m3FW_tJc=uWlRKiPb6@K>XIbbvpKRpk*6o?myqd(RjyOACBi!5^R( zseVN!`JcXLp01ZoFS?SwKanoGNNs=xJZamCvs}9`UCzu`8(@PTwQWVB-h{^=YzzL7 z(61^E57e*DPvGB#4DVEb>FDJlbe0@+7W9_60p}>XlvmrKZ$+?GcN8h^R_?=#7&0?k z9S7+Nl6RNhkGw-Kkxtx=PScH^(!C1ZW{a!e7`w7zwzG=-mZcrz$(?UuwMR=ZGA7ZkBMaFnuFMLdJ?k1-<qwIZbd$XDm}p|x9l=kkwa4I;1h z(9f8cV0|=BF5%(6Hhr6|Z98qfxpbg6*nH=WeFWSS+?At29}6YZG&Vewv5VqyzRlLJ z+Gl&0N!H7MS%9u;V~YXHwitU7)ofVYKL262($F4>n>HanMR-hNwvfi(P+ge8ym__jepf?xl@158@(gy{!yUBgK0VO7?`)H&vep_BaK@dRdY`RySoIYKcfx8Ip!areu- zzc%0uPJ1t&=E+0BuG`IL*{XaN>ABKn_rA}Si{Aeog9hfh{r|F%Iy%t8iDcoo3gDs8 zt&wx^Y1dmxoNv|L|RjyQ4>p>DQ^k_a&Z9Ii>#@{22d+d&ijP3(xe-ld+qjf6s?e zSAxF+|6$B$pT^(^x$qR#K1I(qbyl}?_oH~Z9j3O&Q0pKxQPT~+c5@D=WvTV-zP*yM zfz}r2uyqUnd;Wx4S7)EY9Jlb(SB%dDoqkLHt*w75nA^H(mG!LPa|!j?JA3;ow}n2{ z!(94(w9F+TiwooL1D31{pJM7-`{oAGDF&fa0LNQ66BW{VDEEBZ_OD&g+SeCq?c-cg zxlf;nvc}lm#3Q(y`^AxCu+c`DbCt3GfX;bV0en^0p_w{Qf>#5)Q9hp{;AP=&-oEOT z9@%UL9wV%SOOToU@X-1b@Syg$)4Deu9tCj^9zOye#Cs|?t-7+O^AzP1C4DwKkdgiQ zHUVq84gSi9V{@Lcx1_HhJ$^HDd-=sY2J}H`?g7TrOO)p zY&A9RIbZH;b^D5e8;AHt?a8@9Zzzc0Oa7_r8>t2#K8Szp1KeBYp4myt#DVYh?brFX zkh-GTzEAh>8odIZEdjXhg{}^5#&xQFsbF8@pphv%8~SR zv!#5i+%U;tdqnd2Dm~|XsrvQWZqYOLPh;%le$~mq5_lPTz6U%MZoiLb$@QlCk`>R$ zG}hyZdS2<{ZT6mfW3s2%vs>j~@a8lJd1m@0MxuEQcuw3S_Meef~-T(tgW}s#0LxFW&L}dx;`&|O*Jf3YZ)A^QBC2CKWplD zt+jeDc71(2L(Xm8CYNisS93UBFA)twV_R)}bn+GHE{UoO-I}%PyHj>9>$nj*^81*{ zyOj?9P;=rvy6-yGi14>L8=Nn7>uST(lK$za@{@gYyv&_rN}IPo`xr6x%yn#aFQ9BH z@j%%^GvFIP!%y2wT>THMjOW|X1Dc_+N1-)%SVr4x4fD{R;;Ui5k~UD!;yJ*)igSR!Fn1np-iCWGj+A1N)V%+)jJpXQsaXH|Svt~vF@zCHe`liVq2oeRQu85TSKeF(*8bL9q2pB zPOAgkb`EoCb)?|IJ;nOgrNsp{$ENP`O4($+A)kXCXwMLPVwz+2|pP91o5MEkqc4w>2mY#KHk-GzjhS8pjtIF z627c1bf;qaUPOD|8U1!kKi~4{OMK_?<0!n1IAaZPAVw;llx&9|Yi%-al6=lL1I~Tu z+tt7-Q$LyPfQQJFt7V=>w?~Is%{uq3a`QTBkxO^8KZ2>&=$~r?Yjo|6R2?>(?yh+) zHG3$(TIx5M=2gJ{Jq(>lZ!k66ty1}0cSnG0{e(#SlUDhRD0v%8kpGLxN8vuA8Uhi8 z(an}~%^saI8~3?t?tJv#KaK5HF(SB#b6(4(+j7s@@=d@yOrO&A@@}rbY4J~p#TTwt z9Z>Gs%_H9{Z+{i>%0l|>Z&zPGGg~{!vi^2A*FT!AT^+ip;BodBg2r!KOI~p{xOw;^ zJ4O55aF*-yQC>nTc;Urqm5Z<*+#Sjs(AgIfmussISTkbCV|=vcZeiJTrNG1w{}%&+ zLiELh`vz|uS01qQR@43|+Rw*ElHaig`wx3yc_T2}w8(n)BUeK&;0HL-+o>~c!;74^ z&T#M25RPiF)KWFNpv5Nuuw8xS=u6WlY9%`?{&f zd5OOKYcOYthJYu~eG4#93}FZG5`R9%`Z|VTm*A^>tTb4-f&cydLU{jfblqE0gDhJ@@4R`F`*i(NZ%ozKQ=eb_36v2VLB%vvn=lpObUI zUG8VH9-99qJW1yypY2{0Xgx$ef`R3g6P*db*IQG%54({y>fQ&%BGTUpPI?z(pIW$E zXe|Alb#ajU1$7VG1ZN+=D?U@^ltd!S%csOPnE&fbx$`K;{ND=h?bBSe7ub`xvJYCH z`pYDru4Yf4BX3rC5liG^h|iUoTnv1RX3sOv^B=YgGU+(jwhiEiXDb-H0RG{BX5y&u zK>srnM;)2^%*0Vgr9Lxp)U;eO6Gu(UCBtv@Pl=fh1AZscCkLqw>+WRTE3iLpbODc# z+m_J}4E_D-wSl_P8{}?^HvcEXyKHwrd;Uww(HOkj!dE2!;}OmWH;|VleDW;7JPF%_>-yKGqgKOyN;7CHtk-@((ZBEy+OOqZ+yVC z>&w#aQQF0p1f10?1J1sexJP=6dyh2o|3KNd-)H21(@@q#-c1Ym?b$jLq1m0j|L5|5 zcjABPo}71>vXp1(IZ$5yljcLak=t*x;3cVfQeGSRtNddGIm4i5>ErB4_`kCCqj9pm z%cT3J^Ry3IsXT2i|9d>Gb;8B1r{nXD!_$W7&N=Qfi9B?P;c4^WX@-wXOz^boNsf3? zHlB7#$-CoeF?6xv^i#pTrWK8mS%z;C_cDAldYW_T>Br|+=dBg*t>je^Q1pNogSt@53Kh+)5A#S@NVeArro=thj)g& zJ9;=wyDaputE|-3hj$IhH8uEJeE7c?9m|iaAs;=67DO){wD zdf+Z=?di_VlaqR2OHR-9O!{22bVd_5PTBx9#lfsT|3Pz&ezMDMn=JigSH}e*sHi~wJjuY}K8}1FET|a$tPsqJefK~+~N5c`KaLycP%X99?$S)O$$f!`zYVq@E3b%;hHf+692;>DWc#I?H(# zJUTrP>0J>Rv%i%4+LiA*A3H?#cEZFP1luK&$HW`D@V8SJhJ8`LqvL-l^ty}q) z=*!_;_g;)AbB9mYnau9cEOcypjU5=XMz+n<*f!*yuj!mZe>BJVW z|8{GQ^I79O)>y$BD_J8niyY?eKInJf>BO{#A}7($ymc&K9j~#D>sZHjV#uYeZ5ivh zGqDcV*S?H(h|jX_cAb-yz3cB=XEr-oM+0ZGgwNGSlIOCzIG42~KhX3YzSA5JhYHth z=5Otr_GM#m)P4>V*0}4UMjq>`MIY=0){498w|o`qSF(PXo-tM?x~XOywa@gfig)1O z?o2TfFJG+hi4f;M!^BPUkU9Cto*~Gfp~&@<$khqyyjOhBRIB$&@NqnI(pk{1v#s7O zp>bSU&i!=NR?`ph<-JJ$QRztcY^H}(vB2;dZQ%J-_C@x3xv5ogvWbh+FEvKcF)zq< zHW5D~m$|S2ADwV~0k~PT)N*d3{g_a$V{g7|;gjHc1-L#7o#!$5|6`0F(Yha?cF~}j zf4>i==isI@AdN(@SaIO{=V06ZlrrEXEvc%+ezZU z3~=BDe3xyzCpvF}Lsxt^*Lf>6KCUxxJ?!V$N^9EXvx`DGpi;QeMQ1)o9v-6dl zrhlOhsc0A^0U-;i_i%%K6BhiR7e!i}#;q&JXR@nOe0Q$DU|!PS)Oh zEx9-N*4A{xA8h22`TKPKMkblRCt1BC*dqf6t?#siuU_k;f5EPh^_{~!yUz!1Lq{3e z^&)4cb#A(kGe?mLl3QO)%B|qc87?g&W0=<^?5}8f0W_+8(;*=L9=0TMQ?!Rw>|sxs zJz`E8&y!zs67s8)J=3?nB|S6tYzeq>>~w1IGe%@Q{CWm;Y~YEak$m9;u&KW#+A|y3 z(+oa?@6N`MyXKyYFNf+uh^kVifOwKkx8LFl7d~(u<0?*J`d%d5r=v9`6p+E*#MGC0dTqv$Z2W9JhAXBu+^ z7b-b>x6bea&gv=`%g8zAYD51|_RqE8xO06C9L+S>F9b)eQQ!Ui33`(J`of?4emI-4 zL|5+zua5qy?}z8}zsJv75wNb15@3k_WMD|Hpn>5gV5_m8n(E?wv-T03Pak(Q<7!UcxRF=- z+Tx6@HMJ!2(!>L+h;699eA-L*n54CdPh{vbX!`tw%eRq(9*vd3TVJ8p{G+RQCm!U% zfc{;%H70(@7VnGn8oet^|F6=fS$(9-1#s8Zxju{@^&#}BOVFzppkK`=FJ&G%#I8-B z?wc>kCC?LF?|?Sa`xGycE#Sq|`8dv*iQ`tzz}JJ1igjp!9YQ)du-sPuBE zm>+htTN}&!rW-z|dl&Q_xpD@k{rCiLYG4lj@8XQ_|KGnJ#V4ZhMd^-KZdL1tgKq3G zf_-1k*wM$WSq-dJxsK^;?Et6z>yj@YdAG~%DmQxLmd>1vF~6^-!9(Bq=OlmKyNQ3; zh0GloXbvx55;A)tm}s8qcw5hywfK3ny|2@I{OKKu@BQ%Po0=$o<4m=a7V%xScPGAQ zfI6JSgJe(1zUZ46Y>GaPkC6S}Bz?Pfh@U{fD;PuC9a zZ+DbFYO&jl-9>y~w&ws0!! zC6HGZ=c;2|iswd;eIE^KB)5B`uxRwyJ4VNONH`=K6At$9%(e=jGI@6+HvZn@73p+fXp%mD_Mh&# z-co3?g_;)fBZMPO3j^?W;r<@ryugy|V(vaZqyCidXYV-M(Bm}d5&WKJXmpcn+nwV+ ztDMo5lft9)Z8VsaQ_-Nw*UFd+pfMflHfM_Or^3X|Blq&KTLza-H+%47_JBSLuLjP8 zt!d`j%kHybJgcSFvw1eeHtq6w)E&a)XK=6<_}XM(eN z_JI5BkM6Td>Fe&@=5Ef!r-}WFzxtm&^^R3|+*l(xVSx)?%&^(Wi`2RX&EQ!BbnCS- z`BZ7~Ld6O+FeOO4GU&;M{?gwm_Ea6RW^6x+m_C2kikHwg>+0`&Cw+IQCK&v&o*&K= zEK}~gU?-j^x^8_Ndl5bp!FMj-XB|I!e$p{lrdinU-Wm9#mp@_hPW}DuV2=L&?xMd2 zdN3tz9Ha^k0%x04+Ezg=A3KV zc{+~h&DC)V;*Sl&?x8QcYpN6GcST(#I=u9GZS>oy@CeoN07kNF2F6*| z(SITJDWJXM=1ayjk1Tx%R)VMS1$;PQJ#)Tu2l|-kM{C7n(DrNW%yil0#lV8YO`c?% z_LJ5}SpfwMl%-0{%JGwttQ#y*=Gz3`}QCMN(KmE0XczF`NrYVwAVEp~@BE9zUn zcrp9H`jr=y%5P0ObV>PTWVfpA4(X%xdx=@^z;BYdP^o>T+%RG4x zfoBK$^*C3@$#d@eL+TlvtZi?~ch;q~9T11@h|G$TS8wN3ncS*ha<`Y@sXe)GZsuAu z=utK6iPiS=guIQ0Clp?Ve(C1k?Xs|IhOZYdNXA>m3#^8Y3uF&<=ZnuaTnNsuwR*-n zxf$AOKM&`S%k_3&n`LBbYG3JiB3=BCL6`S7hb(8aY1Hyfm-jn_?EA8 z%%uT-i0($MRkt3yIcshC{A%>0{Yr=NA>vKa6_3J)g(HG_(I&UHo~z@IGIjDqhyC)N z^@A(BGTAhv(AzrtZJN~eS4$sC*fo9s-EY?*4_v$EO`dhKw!r^*c1`N{hHex7B+)Ew zYqG&w`~8XI?1j!8+3x~A_K+Rut=94f87rNS2wsv4_1cHVd=oF~fR?`d#~hQtq?}oM z2lN=2IX!k#)vS^uq2&R?lM3U@J{d~z)#Ms~`TLwg;UGG<^erP7x)V5RThumyN1e)= zTz;JVuAT4hB46+_a*kqys%F{TXZF>^9K`=5BW7-)4nJo*MKhNI=Th2gtl*yq!umV( zHxN(c_i)!BzkWITUG${DtZl5l$<*Re&TVo|!nN=zRsp%c%ZJkbczhnqT*UWDLIXKwnKG^AirG&!Zh!L7UsM z&C~09$?JVJ>N`^(2G_s~?TuuG@X3z3_+dX&zQzJSm{SU$R2x5!?Sei_k!zmsqNFSM zxn^{tO5yCDa;E`2`5d~mMH{1A@V{VuF7uBHhmaGVeo$xVwjh2HYi2(9ca!HQ42%2L3!qsH}rFW8~iRNj4@eelkR*cLH<=2gO+6#xGhzHJ8X>En5L>%m=d zbirNgxDom|-rU6FVyE@BPCjzmy6S+{n@5akUT);!aIV!Glg$^1tlK!jYF&+=qLs15 zo38(0s42>Q-_X*!j>MUM|DD_ZyTK{qMjv_c`U$gJE9q0;pLzrv-uOq7Fs`4lqBV~> z%%lBe=1|QX%4u)LVGb+!KFWMN+EeX<2=+x(e0PMkyc0NyK4Pp{d`suMp5bosT5_)~ zIjRnFAr0kr{^oxpMh`heQ_ zb$_kH<^L{hK4j$#mMW1M?Rbv`1g!=}rGlsYWvfLfR5y8;g@)A>SknlDTKt(L_8bbyo1?2qVAzR^D) zMJLX17j`Z8Uc2;{Dr+*?@_XeK%YR1_$79qd^HW^ zHXI7V*TJi4Ja2<%G{YC<=g>UGPoz87p)ZNgh*tDoFermhLvO@sTpkh&vKPi4D~wNN z9}@XG_$u7Ei{@F#H`(Sjly_13%cPT*&|gvy8n`AuzcD%s_sfK*MB4LekX?biJkGl> z$9Arn-N?Bma)ay-!B^jBT^hJGvc8seTMgr!!|%8{jfI@+r=dKncf~uw))@Qh<*kdi zgo#g@`U=q2falx9fKvF{}CC`LL<0Sr2@#1-^Fz-!*~! z_%&zEZk-2wiN3c-@CVxOBi;j_ZNxs2zEy^vy9xR(9|J!fYAtUd7eVK_p!u5e@#GoO z|K#=t@)PscRFs8`F1!?dwGdsl78od|pACOM8}Q?AlILfFoz9CKul6r?`oaLTDBqFd zR{FmiT2*dDIkX%eTQzHTV*axe^ADc_Y=~_wVE*%S^ViI0{<>dI^CwSZ1o^7V^7&gi z3HrbJw#fP~+!HWz3&~H^6fifxpplsqk*bPSttEdiu!(??1uk z#dkbDA-?0;rbWOxsgtFi3Gvs?-HScA$Hcbr-6rTiz&bMB`K($Sp8Z&k3_u^~4bOvr zRPhrC=ZlB@>6ptqYQxsHFT&$HMs{3SyYed+bbNKrgO7h>?t@EL#x7X0@@p5=t^Dc* zwJUGGVCTw6J27&TV^s1!Yq|9Q`rxRiE66RG9S9uUlSfVr`+EApTc5ioP_SlxRnS>R z9_zBQAa#MlPuJfb>6v%Ch5o@^Ea0hReGB%3rUV#9=IaG z(~1UR<0f?Axx`aH&v!TS4A}PToWQpI#w0)6Wl_5*o1SxgewO6fJ&S*4VjSsnt7UHK zvcYSsT*?2i0!`lBFQcANH)|`pFlj>t-|VYtVZK_&Vf=D>Us#pY^S4k_=D)z5Jo0K5 z9K3a1eIW9KXM!Q;x(OlY^-zAi;r81eT>14C4>sTa{s%XIefEQQ1_I85{QRoSGIzNy z4&?8r9%9YE(}(8sCFYZDzS7IVtF@9VL03NSuIIZqiX8Wxhj4hne`+wsc;3p5#&?_xVW0%nnx)-P<jU7g6AxzIN7TeCHMP zSAoByl)0t!we=+D5&Alw9QV(~j9)v{`NoT`UVu-#-&W}|zN`Z7*$FhgCb+IrZ9x40 z_`2<+jz_(}GN-sWRmbz|3WC?W$?5R&T7-W#a=@c0+cN&F1m3!Qebcd=!b9ZSx$tqH z-ODr2=jrwJZgOkXcIC0unlovM`*d7g z9C>^~T^u{4!Ak1u*<#Jv^z(PPqgJ|jbK2QeVkH^%b8mkK>`z0!bB$olTuKgv9xWL! zd(_RH8n{L`hH0O(pk2Dh>F6Gxe|&=KfnORuH^064ifB(5Sra{%_xPPIf%iur`%tp& zo-^FGj}0|#-+7z1dY@>EVP9!utE;alZPM+RblUjR!N1Q=ttEz`{qg9fCE?Q)y;OlW zr-L6SvJ)rJCKE0zk2CzxP3^NU3@ncVpS+>rHAau_U9oQ2$`a)ljtDpa2ej=dcRug}b|f;!@8giIrSGMiDc_*n`<~yn9hiko;-0XEg;U8{GO~)c zkK*I&#DD6I%O1IzI$}~Uiff2ohrVUJ}+Z;!gCFNGB@V4d_TCJ_o0e4Vdiz& z3!gwQ=AIwo2g-#tdS_?8llPYDBI3uB9iAp*AI?Ls!`4|1@AdnXq-)*pvmIOeZO4Ie zy>yzs{lNbYO;2a9MAMz{xfSSOCz6xDc`K)|f^YnExtnL{u>Rko%T4GhWyF$>4I=-? zhu{6Ued9d~!{iO*<=(Rp|J@p^ysC9Ebv^?4vVZfjP{zBm6S0!D6^+u{!u#>nt*yXc zo-<BqLB2(SREzn4&_1(ww z8;I#=f?Fot`ekf4$z#D=aJ*D;C-|7=@5Oojbh2h$ z4_8evv60X7t>!Y7`l((!!A^M?rd`6%rm@dcTj2BybYuU!PxG9-E>k1P>!an3q+VUc zJ#WIHxy&USj568Chk)^sM0_=!FOCA|7F!l|Ppf8?VVksyCh$LQrw+Pe6^a?w@jEIQ zyRjwcC*OG$SvY@MfwKlU6I)t)=g>muFZ_NmFxpvRVoY~zSV3%Q6ZB}-h|MtpSV&&l z#O0(v>3+^rZEIT0+gJJ*T{hx3=bKcy`{_|m0pDkw$FaiXJpNeZ&f~hG%=4(5ZuYD8 zIU|>$?}4`OJ@^RzO=lCS(~0lpV9UsV8*pF9>N^_RUp*yz)ddgqb{G5EJRO&hWMcS>LQ&PQdtLCd=1akR-h9>bbMFE4Ojb_;h^@a=(2 zbzNz*Fp6HEX}fyzt=K>J3bbiI=kdQ6laA1b_))iy$H->(zWJtdFr^bQj`HR@ z3pQSnX)Mo={z2$QbJhQ^a@HeVCdnV<)!MGkaqFRK9VSQU@ECmjMF#du`Tm{3Zf@cB zJogNAwfygmCm9^sp?vyN$C_OFrI&`9n&Iy&p?|gQq(5>`4{l=ZtJX!xb)g=vfl)Fp zFy7r;bid>?>1g7=tAJ6aZ{+LLd)8*^r=|C)GhC{P@A=5>TW?)&;eWdR6V#fR8^kx6 z!+Dfk@=4R{aa-}d`JvXAIb-F;HY3d4!?%sPUmicxSMV{d#@{iS^SJZ7&N6<;PI#(q z@Y2nbFmSndob%1yIZb<+kLQ1rZ_SILcN0S|#D@z%HU6q4>~}24xuFu~uD*zC2k=2i z=eqLwoTe{O(>uaXGNxV_ABJ5f-Agfb@#UQf{Gp$IpP~isOdHiR<7Li=`PZ@oe^MW7 z-N$&7IlH8DXLFdtWMTvRIQyhn;ehA#k?Hwi`dH0=P3HXQHQXQ^Dzf0WDh#VdXoKz2^0UxAt`XZdI_kU}?`Si)odB8N=T7OQCp!$#w zCwfY^+kT?=tN}bX?_$?utME$f&IiHL2b zg3Dgckvw5Jd$w?HA6yW;_plCX!xtW=ZhW@&Hqu8oZ3}agc&0rTo*gc+Odp$x9|&es zo^$j2I>Cu9!4R3=_iRp6Be*C%Q?xiC!Bbv1=C0#R#z)^pt>KkC2nNZDSID)lPdBOUQGxC&=@UvW7?CXPM@4?3QGm z^q$2RbH?l!@9Zq*aW?Z1T)x2X zZ24QBeFp#DRso-=K*yRFC{3XQgUdfIalQt8CEGlI3bHS*ek&}uj)e9KxzrvQY8g8- z6HeRAOR~@F!@_?^yM7-ya5Q;k?|NQWmO6Er=0(2)<~1Vwy!O1AIxml>f~&~7hTW?r z|CGOrO`@E8!QP)gVv|4O#U?is+fmFi(>L8?kw@h2hlfNDlg~dJe^DgSC$`0a z-0GdkE&JjUr_;@g-D=eY9rk2vS#!`ia){bS$g${2J4{~L*O6nM9QNdtXRk;mr$4Jj z$7xW`AiTcjulV4U%beJcAnVY6q<>>zgC5y=&&F{tMF!qeDE;5e`M%6^-kF$l?P&w| zK7FiAb56IhBkYY8nd%gfe<7S~#tx`QPT>{lxDEKeFQR=QGdoqJIz{ zGSU?I8EJIsRK6!qzg+lscKuQ{d`_faUd6fJPHdhN>6cG`_`U0wUqKG|@!dN^bUgj? zi+poD{qnQwlXW#88MtoI>C}Xco{ZzB>bB{+gY*IMb7xj4a;8`Gthv zjdM}C&Kbm~<+JN_>)7@4`zW-z{uHj;1j zC~Mk*t_Clv{Acgur_%QEu_MWS-06eEPT+8Np4Iy>uuF%J>S+G6_t!h~Q4Vh7+c)*D zs^!y2+IqXnww`Kiz3vZ%ni@F6BVFi=I_CkLB-7J*x{)KDg-#=DG`bBwz12QBvYItg zNLjfOsj>xqr=-kkPso?G(zX9#`I2FNe*6~gUi2>3@?qav2F&}`KKLHTi%KW%K(uEZG!bXL)(x8I)J zJAW6s>#?&b5eSMH_e)=fM8 zzLGh1kneB$NaXup&a+zhj$}`CP+*q$^ol&4H5j<=blB)~s<56{zaMLN(Hd^#b%P3l8B`_i!RthbUldxiQ#hNpj@i3W*vnz(Tn^TMV|@T8Dda4}fv|f8{j!@#%T+q?vjKlbNgfP~6yqv*N`b-URWdY5wvZYE5tZXs?`g z2(N8)mUO?-+2G^=yx2C2USWGtN9~$yqYb5^<65@GKp-n|T&F)>rvm za6A*7bbdFb20i>u@p#ePfO+0o;atZ&b!V0Ey%71n8rxR6mG{%$+kgK&^B7Zs|J&es~LEmY3_cz(`u%ky&v;=edb&A&999srBqj&>%~zv?>a99FfD z&wG2)!8

      d8(CZIzcF6Yom!b1M^!t)Z6Bs>x%g3nzD&~}& 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%0A4wP(TvU@V=MBMQ@V`w;Ub?cNEy}pR`&2<& z*BEDq=Bd8A8CNh8Ej9y}__eBCp&G}Isp+wcHo_ydk-txER?$Y!o3ZV_1zqn@?W>=C zuVIUkE0dDro~H&5HE3t^&O3pDN6h}DeLm}|E}E9;|71a%a^iybZb-f7@Lqd?Gei4! z!;v9E`tXh5JNskb5hJIB16x+hmpGA{2W8Y0n?y~qlH|#>KlvGA#mGbJ@WIeeLrZ|6 zYA5v(4@KV5I((z4yrXXTn&i;on?C{0UjXiZoHOI|JBNPio*j&se|t@0FZ6cBd}^WP zpqHc3Nu3jHEk%bKMk|$-tSbPm3)<@GuM*k~v!}hmf!X3)sx58zU3!i7 zU2Oui(erk6o(=5#yWYOj4Dg(6+vGu z=`Ci@OOn6kebJ}*c~J8dFY)6ldmRN=r6Xj+oq*{_aa-AO=b2jJ$nbij!VS+RFf~c6 zO(6S4Hlei%l#?0r{C&FD51x)|9v>;ZMK*)K&O`_Eh-cK9ko|$qv;*43zagHVt_AA1 z6;y}(Dts~T{lbM+Gq`2@()o#M@xFPY(-~#I9xMtN+Gk#=I8ezNHx6`S@*jX_wy`pE za{cmTanN0Jm(EX*n@5ckS6-aRc!AaMD{w{lxDXgf7C6Y)ng@?;kbhHrNP3vy0Z%n` z&=vo;8~><3pX{fsO}N{L{Lq<2Hk-90>L>n1vQEg{C z-+MT(5l&?rGuQ9U;NDDfs0GVhFK^51>rXs?2YKMqd0FyJ;?{%O#ADk zLwUTh1O2Oob5{fiTFXRT2-N$oFi+)>Qwv)vRfBl#cc;2hCH0c7p(-IHlkD{(+ zI_^&Amv4Ql0KE>~?)(7t-qSH`J;;l8ay6aT&q!=heA%M$J{@9W@`A6Kb7k^{T|cQk zKM~w}PjnI&CIW3=gtqiqyjMB$in%-G;Zbd-elBa#vt#cLFsI>t==YoXT{1uOStjoY zwMRRZC!;gRAoWCQPM+U6vpTp59`TU)e}}!}13f7XyHevPN#9F2d|x-f<89ke+~s-1 z2p*ak*t{{@UP^ZD!pFXyyOU)1V;7|CmLAXUKjG)D-7kLif@}91yCwEwF1ux7a^-cd z-EVyq*jY!l`+tcZat!AR+2+_=E*v<^#6P6g=Ed5I|EGR~$1AT?zh%N&_z{y#M7~xy z*nrqaqT5D(b9(dGXU;RJgHTCMNQxJ0Z}2D0JbClRo{iuGx|(R-3Cw#z`n%DMz>{Fm z8GIht1le=lU5gz-4rht+f4;1Je985Zuf;~zJ=)ekKEgkX%#`0y_IFhL8UJJrHfj^L zsP4VNck;wSY*qOgMXOtA8;4Jzlc#96(cJYll6Nb9<0bxj(aQqNv#9-u;WOa#Ls8B~ zHiHArQ|79VoNCaHi*?g0@QP$o~Xf1gA{Cx_pwkXiYrwR_2?n zFa0Lo;g@l9e#^Z9PHBHT{G%J#RrStGoD1BL%QKdMN5EivV_9@ic2%^J+MJEEiS>0# z8nG4hT(xoi{k`!bIU1M!1YKWuOi;u4b|+zN+hFh$CVzVxcy#^LaS8C{l2~~3&i2p8 z1`e;_d@0OxV&oK;7F%DJZacr+ZM!~b+HUzNvRBW&wlKCC;Q0jg6{C%RK7ye?he7nw zejI$beL8g%(08C4LtA`So?u>J#ZI#?>t+~RD4*ESv+*$sH_Y=jUv;1V+Ixr2;x-9=j_C9@YI*cUDqsu_!ut4e#&b`>9prvcpgG>=izTN_bWsox2

        qW@{PRuLto_IbPte}mF|~=rd|2=2AUC~4ef{;L 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

        3UgI-lMuc!J-eX;@Lv?)% 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�I8^6{!SZttyOADL$* zQ@O*C++*+ig{L~5(6aWNp>JRn-t^g%gNH7vAXloKT&X7wpS15!@ZU+>Hx`SBTh#xQ zPKe%K#2vrlx#IJwyxfab(R|-2J!16QkZ-=#iTUp1w`$Fo-&|iTKG-z#4Zj#@t^|kn zvq5M5y&3N3?h#IyIeYWJ^4(zbWB&Ove}fP9ooU1T!_42+aR=+>diEx;By*q!|DHNO z!#kkEO5m0cM)^6SEy;^T*UT~ZPYM>rcFn%#s@?$*2+Gj|4UhF&=@ z8vkd6e)LYlds)6d*XNAg+MH|DR{Q5+?pttj&R;J^~l^lb|b&K8JE5|YYp|YTfV+t8gV#3wXePZ zWM6xx4DIV>`bwWmITSwScuNP$1-?1r2R=Jt6uW`WN#fb^fqrYm;bG(P9(Wo5E9at5 zqW@JY-e_x~p`i}&tu;4y8`8&8y*T zZe0YwPT{=+%mX$rU>=AOyb+j0W7jdJ=zF*^Q_qLurP<))wlrr87a!TNv%y8!H*R=f z-0axrH7>aDc!GB(OgFddm>2SH$Qe`TxkKES>p#=EF$ZqU;gWIGUPHGn15b)o`xN-(-fD?}W>Xmj~(R)f8R zIC1KhMc{v(vICT485-=k!L5fWc$&X&>b1us#LUaqN{(|CwNsyqgO{&EtMAMm>jatC z#hghFVV`|DxV?Ghk;CRbAZxz%Kz?lPyrYdx#CmPXu-2ZDao3%5$hjWFJE1c|aq`#e zOCB8SglVIAk;v50wc+eL?nD;P?n7UDfqGq`MTvHmn z2V93ux=YW~tn*KZLsZSyIQ|aVpTh||W+m?g$p4nD`iHdn4RTKNj3XNrC+)tI7n8oP z{eBQR`bqYC8+Wax@($rl`~EWUHryV)gE6#6-587E?ZBh94YmW^xCcGO=$u1&nsg%B zZ}Jjxn%bwHy-fQwG(cZT*^xY7C7%hdwFW+&Ws=X+@rxYzMGkvGI;hJd$T`nA+*q6e zuLDoj@K))`OTbmxijgL-+5(PpzL!*wgvZ&jO`kr;~+R7w(Zax@Qw- zDB(B2{^^_YuCXttu2Tg4qk(p}u}3|bvL3xe>!-Hzjql|%=fGLNfaY0S?ECPvK=0fM z>?!Gv`i^e}mxpw0V$)viYiz)83vCSi?$Jgqv{6le4aGO7g$M6l&C}fj$yhzW$*_(K#dvB=4XpH%&p{EXJhW0^PqS%ZD5*)F}Jf;Ff(?<3CL51G9)+1qEHo~%8* zj5BW@dO+u4Q%|c+@P0PCud(Cs_;@vNc|5O!-`%rU&fW)E5AnMUP89VsP8Lz{en1&O61KaecA|WjeYNZ^?wVmZZZ;&Mc>7V69zR2{8Xf z+@*XXJVxthL2uQ_6L&2Gdx>RV=JA}≫zz729BY1w6aL*s8Zj{}Wh^+`e?AV|4l_ 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℘LW$)uhQp#`P*!93d8g8oZQ6?10& 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%0A_xW#HdA>AxnytO^&_^y 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%0AdMPsOI`#irR8 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

        5T3G|UBCO>l@YBry+J|cyNBi#E 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�?coe|*E7r9Zi0UO9JQp#uuRPk2`I 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%0DeGzNYV})y3C$w@QF_Of%d;8XZ_QPe?fT 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

        2t& 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 z�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 z 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

        73QwnXg09h23;PXgRt}F; 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

        RT7N`}D5sMg>A9P0e6q96b)l%gTb@G@ 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 J#sB~S0025isQ>@~ literal 0 HcmV?d00001 diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/iphoneos b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/iphoneos new file mode 120000 index 000000000..31370e0e2 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/iphoneos @@ -0,0 +1 @@ +ios-arm64 \ No newline at end of file diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/iphonesimulator b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/iphonesimulator new file mode 120000 index 000000000..bae09a468 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/iphonesimulator @@ -0,0 +1 @@ +ios-arm64_x86_64-simulator \ No newline at end of file diff --git a/sample/build.gradle.kts b/sample/build.gradle.kts index 49a762168..da8077172 100644 --- a/sample/build.gradle.kts +++ b/sample/build.gradle.kts @@ -4,6 +4,11 @@ import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig +import org.jetbrains.kotlin.konan.target.KonanTarget.ANDROID_ARM64 +import org.jetbrains.kotlin.konan.target.KonanTarget.ANDROID_X64 +import org.jetbrains.kotlin.konan.target.KonanTarget.IOS_ARM64 +import org.jetbrains.kotlin.konan.target.KonanTarget.IOS_SIMULATOR_ARM64 +import org.jetbrains.kotlin.konan.target.KonanTarget.IOS_X64 plugins { @@ -55,9 +60,21 @@ kotlin { iosArm64(), iosSimulatorArm64() ).forEach { iosTarget -> + val targetABI = when(iosTarget.konanTarget) { + ANDROID_ARM64 -> "arm64-v8a" + ANDROID_X64 -> "x86_64" + IOS_ARM64 -> "ios-arm64" + IOS_X64 -> "ios-arm64_x86_64-simulator" + IOS_SIMULATOR_ARM64 -> "ios-arm64_x86_64-simulator" + else -> throw RuntimeException("Unsupported ABI: ${iosTarget.konanTarget}") + } iosTarget.binaries.framework { baseName = "Demo" + linkerOpts.addAll(listOf( + "-framework", "Python", "-F$projectDir/build/xcode-frameworks/Python.xcframework/$targetABI", "-Objc" + )) + //export(projects.pythonMultiplatform) } } diff --git a/sample/src/iosMain/kotlin/org/thisisthepy/python/multiplatform/demo/MainViewController.kt b/sample/src/iosMain/kotlin/org/thisisthepy/python/multiplatform/demo/MainViewController.kt index 6b173c956..d19c98e13 100644 --- a/sample/src/iosMain/kotlin/org/thisisthepy/python/multiplatform/demo/MainViewController.kt +++ b/sample/src/iosMain/kotlin/org/thisisthepy/python/multiplatform/demo/MainViewController.kt @@ -5,6 +5,7 @@ import python.multiplatform.ffi.Python3 fun MainViewController() = ComposeUIViewController { - Python3.initialize() - App() + App { + Python3.initialize() + } } From c2bcba0a51165521116e14d48008ab549bd98506 Mon Sep 17 00:00:00 2001 From: BREW <81044362+b-re-w@users.noreply.github.com> Date: Tue, 28 Jan 2025 13:16:54 +0900 Subject: [PATCH 2/2] Fix: python lib path --- iosApp/iosApp.xcodeproj/project.pbxproj | 4 ++-- iosApp/iosApp/ContentView.swift | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/iosApp/iosApp.xcodeproj/project.pbxproj b/iosApp/iosApp.xcodeproj/project.pbxproj index 5c038673f..796319f54 100644 --- a/iosApp/iosApp.xcodeproj/project.pbxproj +++ b/iosApp/iosApp.xcodeproj/project.pbxproj @@ -201,7 +201,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "set -e\n\nmkdir -p \"$CODESIGNING_FOLDER_PATH/python/lib\"\nif [ \"$EFFECTIVE_PLATFORM_NAME\" = \"-iphonesimulator\" ]; then\n echo \"Installing Python modules for iOS Simulator\"\n rsync -au --delete \"$PROJECT_DIR/../sample/build/xcode-frameworks/Python.xcframework/ios-arm64_x86_64-simulator/lib/\" \"$CODESIGNING_FOLDER_PATH/python/lib/\" \nelse\n echo \"Installing Python modules for iOS Device\"\n rsync -au --delete \"$PROJECT_DIR/../sample/build/xcode-frameworks/Python.xcframework/ios-arm64/lib/\" \"$CODESIGNING_FOLDER_PATH/python/lib/\" \nfi\n"; + shellScript = "set -e\n\nmkdir -p \"$CODESIGNING_FOLDER_PATH/lib\"\nif [ \"$EFFECTIVE_PLATFORM_NAME\" = \"-iphonesimulator\" ]; then\n echo \"Installing Python modules for iOS Simulator\"\n rsync -au --delete \"$PROJECT_DIR/../sample/build/xcode-frameworks/Python.xcframework/ios-arm64_x86_64-simulator/lib/\" \"$CODESIGNING_FOLDER_PATH/lib/\" \nelse\n echo \"Installing Python modules for iOS Device\"\n rsync -au --delete \"$PROJECT_DIR/../sample/build/xcode-frameworks/Python.xcframework/ios-arm64/lib/\" \"$CODESIGNING_FOLDER_PATH/lib/\" \nfi\n"; }; 8B3F1A552CC4A00F00B85330 /* Prepare Python Binary Modules */ = { isa = PBXShellScriptBuildPhase; @@ -219,7 +219,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "set -e\n\ninstall_dylib () {\n INSTALL_BASE=$1\n FULL_EXT=$2\n\n # The name of the extension file\n EXT=$(basename \"$FULL_EXT\")\n # The location of the extension file, relative to the bundle\n RELATIVE_EXT=${FULL_EXT#$CODESIGNING_FOLDER_PATH/} \n # The path to the extension file, relative to the install base\n PYTHON_EXT=${RELATIVE_EXT/$INSTALL_BASE/}\n # The full dotted name of the extension module, constructed from the file path.\n FULL_MODULE_NAME=$(echo $PYTHON_EXT | cut -d \".\" -f 1 | tr \"/\" \".\"); \n # A bundle identifier; not actually used, but required by Xcode framework packaging\n FRAMEWORK_BUNDLE_ID=$(echo $PRODUCT_BUNDLE_IDENTIFIER.$FULL_MODULE_NAME | tr \"_\" \"-\")\n # The name of the framework folder.\n FRAMEWORK_FOLDER=\"Frameworks/$FULL_MODULE_NAME.framework\"\n\n # If the framework folder doesn't exist, create it.\n if [ ! -d \"$CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER\" ]; then\n echo \"Creating framework for $RELATIVE_EXT\" \n mkdir -p \"$CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER\"\n cp \"$CODESIGNING_FOLDER_PATH/dylib-Info-template.plist\" \"$CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER/Info.plist\"\n plutil -replace CFBundleExecutable -string \"$FULL_MODULE_NAME\" \"$CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER/Info.plist\"\n plutil -replace CFBundleIdentifier -string \"$FRAMEWORK_BUNDLE_ID\" \"$CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER/Info.plist\"\n fi\n \n echo \"Installing binary for $FRAMEWORK_FOLDER/$FULL_MODULE_NAME\" \n mv \"$FULL_EXT\" \"$CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER/$FULL_MODULE_NAME\"\n # Create a placeholder .fwork file where the .so was\n echo \"$FRAMEWORK_FOLDER/$FULL_MODULE_NAME\" > ${FULL_EXT%.so}.fwork\n # Create a back reference to the .so file location in the framework\n echo \"${RELATIVE_EXT%.so}.fwork\" > \"$CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER/$FULL_MODULE_NAME.origin\" \n}\n\nPYTHON_VER=$(ls -1 \"$CODESIGNING_FOLDER_PATH/python/lib\")\necho \"Install Python $PYTHON_VER standard library extension modules...\"\nfind \"$CODESIGNING_FOLDER_PATH/python/lib/$PYTHON_VER/lib-dynload\" -name \"*.so\" | while read FULL_EXT; do\n install_dylib python/lib/$PYTHON_VER/lib-dynload/ \"$FULL_EXT\"\ndone\n\n# Clean up dylib template \nrm -f \"$CODESIGNING_FOLDER_PATH/dylib-Info-template.plist\"\necho \"Signing frameworks as $EXPANDED_CODE_SIGN_IDENTITY_NAME ($EXPANDED_CODE_SIGN_IDENTITY)...\"\nfind \"$CODESIGNING_FOLDER_PATH/Frameworks\" -name \"*.framework\" -exec /usr/bin/codesign --force --sign \"$EXPANDED_CODE_SIGN_IDENTITY\" ${OTHER_CODE_SIGN_FLAGS:-} -o runtime --timestamp=none --preserve-metadata=identifier,entitlements,flags --generate-entitlement-der \"{}\" \\; \n"; + shellScript = "set -e\n\ninstall_dylib () {\n INSTALL_BASE=$1\n FULL_EXT=$2\n\n # The name of the extension file\n EXT=$(basename \"$FULL_EXT\")\n # The location of the extension file, relative to the bundle\n RELATIVE_EXT=${FULL_EXT#$CODESIGNING_FOLDER_PATH/} \n # The path to the extension file, relative to the install base\n PYTHON_EXT=${RELATIVE_EXT/$INSTALL_BASE/}\n # The full dotted name of the extension module, constructed from the file path.\n FULL_MODULE_NAME=$(echo $PYTHON_EXT | cut -d \".\" -f 1 | tr \"/\" \".\"); \n # A bundle identifier; not actually used, but required by Xcode framework packaging\n FRAMEWORK_BUNDLE_ID=$(echo $PRODUCT_BUNDLE_IDENTIFIER.$FULL_MODULE_NAME | tr \"_\" \"-\")\n # The name of the framework folder.\n FRAMEWORK_FOLDER=\"Frameworks/$FULL_MODULE_NAME.framework\"\n\n # If the framework folder doesn't exist, create it.\n if [ ! -d \"$CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER\" ]; then\n echo \"Creating framework for $RELATIVE_EXT\" \n mkdir -p \"$CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER\"\n cp \"$CODESIGNING_FOLDER_PATH/dylib-Info-template.plist\" \"$CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER/Info.plist\"\n plutil -replace CFBundleExecutable -string \"$FULL_MODULE_NAME\" \"$CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER/Info.plist\"\n plutil -replace CFBundleIdentifier -string \"$FRAMEWORK_BUNDLE_ID\" \"$CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER/Info.plist\"\n fi\n \n echo \"Installing binary for $FRAMEWORK_FOLDER/$FULL_MODULE_NAME\" \n mv \"$FULL_EXT\" \"$CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER/$FULL_MODULE_NAME\"\n # Create a placeholder .fwork file where the .so was\n echo \"$FRAMEWORK_FOLDER/$FULL_MODULE_NAME\" > ${FULL_EXT%.so}.fwork\n # Create a back reference to the .so file location in the framework\n echo \"${RELATIVE_EXT%.so}.fwork\" > \"$CODESIGNING_FOLDER_PATH/$FRAMEWORK_FOLDER/$FULL_MODULE_NAME.origin\" \n}\n\nPYTHON_VER=$(ls -1 \"$CODESIGNING_FOLDER_PATH/lib\")\necho \"Install Python $PYTHON_VER standard library extension modules...\"\nfind \"$CODESIGNING_FOLDER_PATH/lib/$PYTHON_VER/lib-dynload\" -name \"*.so\" | while read FULL_EXT; do\n install_dylib lib/$PYTHON_VER/lib-dynload/ \"$FULL_EXT\"\ndone\n\n# Clean up dylib template \nrm -f \"$CODESIGNING_FOLDER_PATH/dylib-Info-template.plist\"\necho \"Signing frameworks as $EXPANDED_CODE_SIGN_IDENTITY_NAME ($EXPANDED_CODE_SIGN_IDENTITY)...\"\nfind \"$CODESIGNING_FOLDER_PATH/Frameworks\" -name \"*.framework\" -exec /usr/bin/codesign --force --sign \"$EXPANDED_CODE_SIGN_IDENTITY\" ${OTHER_CODE_SIGN_FLAGS:-} -o runtime --timestamp=none --preserve-metadata=identifier,entitlements,flags --generate-entitlement-der \"{}\" \\; \n"; }; F36B1CEB2AD83DDC00CB74D5 /* Compile Kotlin Framework */ = { isa = PBXShellScriptBuildPhase; diff --git a/iosApp/iosApp/ContentView.swift b/iosApp/iosApp/ContentView.swift index 0032ae493..3653dcb62 100644 --- a/iosApp/iosApp/ContentView.swift +++ b/iosApp/iosApp/ContentView.swift @@ -1,7 +1,6 @@ import UIKit import SwiftUI import Demo -import PythonMultiplatform struct ComposeView: UIViewControllerRepresentable {

        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

    nTwjzgj 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 Usr`lHxtPXXsLYl)ip+oi7mI+bGynhq literal 0 HcmV?d00001 diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/Python.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/Python.h new file mode 100644 index 000000000..fb2d32d71 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/Python.h @@ -0,0 +1,139 @@ +// Entry point of the Python C API. +// C extensions should only #include , and not include directly +// the other Python header files included by . + +#ifndef Py_PYTHON_H +#define Py_PYTHON_H + +// Since this is a "meta-include" file, "#ifdef __cplusplus / extern "C" {" +// is not needed. + + +// Include Python header files +#include "patchlevel.h" +#include "pyconfig.h" +#include "pymacconfig.h" + + +// Include standard header files +#include // assert() +#include // uintptr_t +#include // INT_MAX +#include // HUGE_VAL +#include // va_list +#include // wchar_t +#ifdef HAVE_SYS_TYPES_H +# include // ssize_t +#endif + +// , , and headers are no longer used +// by Python, but kept for the backward compatibility of existing third party C +// extensions. They are not included by limited C API version 3.11 and newer. +// +// The and headers are not included by limited C API +// version 3.13 and newer. +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# include // errno +# include // FILE* +# include // getenv() +# include // memcpy() +#endif +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030d0000 +# include // tolower() +# ifndef MS_WINDOWS +# include // close() +# endif +#endif + +// gh-111506: The free-threaded build is not compatible with the limited API +// or the stable ABI. +#if defined(Py_LIMITED_API) && defined(Py_GIL_DISABLED) +# error "The limited API is not currently supported in the free-threaded build" +#endif + +#if defined(Py_GIL_DISABLED) && defined(_MSC_VER) +# include // __readgsqword() +#endif + +#if defined(Py_GIL_DISABLED) && defined(__MINGW32__) +# include // __readgsqword() +#endif + +// Include Python header files +#include "pyport.h" +#include "pymacro.h" +#include "pymath.h" +#include "pymem.h" +#include "pytypedefs.h" +#include "pybuffer.h" +#include "pystats.h" +#include "pyatomic.h" +#include "lock.h" +#include "object.h" +#include "objimpl.h" +#include "typeslots.h" +#include "pyhash.h" +#include "cpython/pydebug.h" +#include "bytearrayobject.h" +#include "bytesobject.h" +#include "unicodeobject.h" +#include "pyerrors.h" +#include "longobject.h" +#include "cpython/longintrepr.h" +#include "boolobject.h" +#include "floatobject.h" +#include "complexobject.h" +#include "rangeobject.h" +#include "memoryobject.h" +#include "tupleobject.h" +#include "listobject.h" +#include "dictobject.h" +#include "cpython/odictobject.h" +#include "enumobject.h" +#include "setobject.h" +#include "methodobject.h" +#include "moduleobject.h" +#include "monitoring.h" +#include "cpython/funcobject.h" +#include "cpython/classobject.h" +#include "fileobject.h" +#include "pycapsule.h" +#include "cpython/code.h" +#include "pyframe.h" +#include "traceback.h" +#include "sliceobject.h" +#include "cpython/cellobject.h" +#include "iterobject.h" +#include "cpython/initconfig.h" +#include "pystate.h" +#include "cpython/genobject.h" +#include "descrobject.h" +#include "genericaliasobject.h" +#include "warnings.h" +#include "weakrefobject.h" +#include "structseq.h" +#include "cpython/picklebufobject.h" +#include "cpython/pytime.h" +#include "codecs.h" +#include "pythread.h" +#include "cpython/context.h" +#include "modsupport.h" +#include "compile.h" +#include "pythonrun.h" +#include "pylifecycle.h" +#include "ceval.h" +#include "sysmodule.h" +#include "osmodule.h" +#include "intrcheck.h" +#include "import.h" +#include "abstract.h" +#include "bltinmodule.h" +#include "critical_section.h" +#include "cpython/pyctype.h" +#include "pystrtod.h" +#include "pystrcmp.h" +#include "fileutils.h" +#include "cpython/pyfpe.h" +#include "cpython/tracemalloc.h" + +#endif /* !Py_PYTHON_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/abstract.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/abstract.h new file mode 100644 index 000000000..bd12a5496 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/abstract.h @@ -0,0 +1,911 @@ +/* Abstract Object Interface (many thanks to Jim Fulton) */ + +#ifndef Py_ABSTRACTOBJECT_H +#define Py_ABSTRACTOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +/* === Object Protocol ================================================== */ + +/* Implemented elsewhere: + + int PyObject_Print(PyObject *o, FILE *fp, int flags); + + Print an object 'o' on file 'fp'. Returns -1 on error. The flags argument + is used to enable certain printing options. The only option currently + supported is Py_PRINT_RAW. By default (flags=0), PyObject_Print() formats + the object by calling PyObject_Repr(). If flags equals to Py_PRINT_RAW, it + formats the object by calling PyObject_Str(). */ + + +/* Implemented elsewhere: + + int PyObject_HasAttrString(PyObject *o, const char *attr_name); + + Returns 1 if object 'o' has the attribute attr_name, and 0 otherwise. + + This is equivalent to the Python expression: hasattr(o,attr_name). + + This function always succeeds. */ + + +/* Implemented elsewhere: + + PyObject* PyObject_GetAttrString(PyObject *o, const char *attr_name); + + Retrieve an attributed named attr_name form object o. + Returns the attribute value on success, or NULL on failure. + + This is the equivalent of the Python expression: o.attr_name. */ + + +/* Implemented elsewhere: + + int PyObject_HasAttr(PyObject *o, PyObject *attr_name); + + Returns 1 if o has the attribute attr_name, and 0 otherwise. + + This is equivalent to the Python expression: hasattr(o,attr_name). + + This function always succeeds. */ + + +/* Implemented elsewhere: + + int PyObject_HasAttrStringWithError(PyObject *o, const char *attr_name); + + Returns 1 if object 'o' has the attribute attr_name, and 0 otherwise. + This is equivalent to the Python expression: hasattr(o,attr_name). + Returns -1 on failure. */ + + +/* Implemented elsewhere: + + int PyObject_HasAttrWithError(PyObject *o, PyObject *attr_name); + + Returns 1 if o has the attribute attr_name, and 0 otherwise. + This is equivalent to the Python expression: hasattr(o,attr_name). + Returns -1 on failure. */ + + +/* Implemented elsewhere: + + PyObject* PyObject_GetAttr(PyObject *o, PyObject *attr_name); + + Retrieve an attributed named 'attr_name' form object 'o'. + Returns the attribute value on success, or NULL on failure. + + This is the equivalent of the Python expression: o.attr_name. */ + + +/* Implemented elsewhere: + + int PyObject_GetOptionalAttr(PyObject *obj, PyObject *attr_name, PyObject **result); + + Variant of PyObject_GetAttr() which doesn't raise AttributeError + if the attribute is not found. + + If the attribute is found, return 1 and set *result to a new strong + reference to the attribute. + If the attribute is not found, return 0 and set *result to NULL; + the AttributeError is silenced. + If an error other than AttributeError is raised, return -1 and + set *result to NULL. +*/ + + +/* Implemented elsewhere: + + int PyObject_GetOptionalAttrString(PyObject *obj, const char *attr_name, PyObject **result); + + Variant of PyObject_GetAttrString() which doesn't raise AttributeError + if the attribute is not found. + + If the attribute is found, return 1 and set *result to a new strong + reference to the attribute. + If the attribute is not found, return 0 and set *result to NULL; + the AttributeError is silenced. + If an error other than AttributeError is raised, return -1 and + set *result to NULL. +*/ + + +/* Implemented elsewhere: + + int PyObject_SetAttrString(PyObject *o, const char *attr_name, PyObject *v); + + Set the value of the attribute named attr_name, for object 'o', + to the value 'v'. Raise an exception and return -1 on failure; return 0 on + success. + + This is the equivalent of the Python statement o.attr_name=v. */ + + +/* Implemented elsewhere: + + int PyObject_SetAttr(PyObject *o, PyObject *attr_name, PyObject *v); + + Set the value of the attribute named attr_name, for object 'o', to the value + 'v'. an exception and return -1 on failure; return 0 on success. + + This is the equivalent of the Python statement o.attr_name=v. */ + +/* Implemented elsewhere: + + int PyObject_DelAttrString(PyObject *o, const char *attr_name); + + Delete attribute named attr_name, for object o. Returns + -1 on failure. + + This is the equivalent of the Python statement: del o.attr_name. */ + + +/* Implemented elsewhere: + + int PyObject_DelAttr(PyObject *o, PyObject *attr_name); + + Delete attribute named attr_name, for object o. Returns -1 + on failure. This is the equivalent of the Python + statement: del o.attr_name. */ + + +/* Implemented elsewhere: + + PyObject *PyObject_Repr(PyObject *o); + + Compute the string representation of object 'o'. Returns the + string representation on success, NULL on failure. + + This is the equivalent of the Python expression: repr(o). + + Called by the repr() built-in function. */ + + +/* Implemented elsewhere: + + PyObject *PyObject_Str(PyObject *o); + + Compute the string representation of object, o. Returns the + string representation on success, NULL on failure. + + This is the equivalent of the Python expression: str(o). + + Called by the str() and print() built-in functions. */ + + +/* Declared elsewhere + + PyAPI_FUNC(int) PyCallable_Check(PyObject *o); + + Determine if the object, o, is callable. Return 1 if the object is callable + and 0 otherwise. + + This function always succeeds. */ + + +#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 + needed. If no named arguments are needed, 'kwargs' can be NULL. + + This is the equivalent of the Python expression: + callable(*args, **kwargs). */ +PyAPI_FUNC(PyObject *) PyObject_Call(PyObject *callable, + PyObject *args, PyObject *kwargs); + + +/* Call a callable Python object 'callable', with arguments given by the + tuple 'args'. If no arguments are needed, then 'args' can be NULL. + + Returns the result of the call on success, or NULL on failure. + + This is the equivalent of the Python expression: + callable(*args). */ +PyAPI_FUNC(PyObject *) PyObject_CallObject(PyObject *callable, + PyObject *args); + +/* Call a callable Python object, callable, with a variable number of C + arguments. The C arguments are described using a mkvalue-style format + string. + + The format may be NULL, indicating that no arguments are provided. + + Returns the result of the call on success, or NULL on failure. + + This is the equivalent of the Python expression: + callable(arg1, arg2, ...). */ +PyAPI_FUNC(PyObject *) PyObject_CallFunction(PyObject *callable, + const char *format, ...); + +/* Call the method named 'name' of object 'obj' with a variable number of + C arguments. The C arguments are described by a mkvalue format string. + + The format can be NULL, indicating that no arguments are provided. + + Returns the result of the call on success, or NULL on failure. + + This is the equivalent of the Python expression: + obj.name(arg1, arg2, ...). */ +PyAPI_FUNC(PyObject *) PyObject_CallMethod(PyObject *obj, + const char *name, + const char *format, ...); + +/* Call a callable Python object 'callable' with a variable number of C + arguments. The C arguments are provided as PyObject* values, terminated + by a NULL. + + Returns the result of the call on success, or NULL on failure. + + This is the equivalent of the Python expression: + callable(arg1, arg2, ...). */ +PyAPI_FUNC(PyObject *) PyObject_CallFunctionObjArgs(PyObject *callable, + ...); + +/* Call the method named 'name' of object 'obj' with a variable number of + C arguments. The C arguments are provided as PyObject* values, terminated + by NULL. + + Returns the result of the call on success, or NULL on failure. + + This is the equivalent of the Python expression: obj.name(*args). */ + +PyAPI_FUNC(PyObject *) PyObject_CallMethodObjArgs( + PyObject *obj, + PyObject *name, + ...); + +/* Given a vectorcall nargsf argument, return the actual number of arguments. + * (For use outside the limited API, this is re-defined as a static inline + * function in cpython/abstract.h) + */ +PyAPI_FUNC(Py_ssize_t) PyVectorcall_NARGS(size_t nargsf); + +/* 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); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030C0000 +#define PY_VECTORCALL_ARGUMENTS_OFFSET \ + (_Py_STATIC_CAST(size_t, 1) << (8 * sizeof(size_t) - 1)) + +/* Perform a PEP 590-style vector call on 'callable' */ +PyAPI_FUNC(PyObject *) PyObject_Vectorcall( + PyObject *callable, + PyObject *const *args, + size_t nargsf, + PyObject *kwnames); + +/* Call the method 'name' on args[0] with arguments in args[1..nargsf-1]. */ +PyAPI_FUNC(PyObject *) PyObject_VectorcallMethod( + PyObject *name, PyObject *const *args, + size_t nargsf, PyObject *kwnames); +#endif + +/* Implemented elsewhere: + + Py_hash_t PyObject_Hash(PyObject *o); + + Compute and return the hash, hash_value, of an object, o. On + failure, return -1. + + This is the equivalent of the Python expression: hash(o). */ + + +/* Implemented elsewhere: + + int PyObject_IsTrue(PyObject *o); + + Returns 1 if the object, o, is considered to be true, 0 if o is + considered to be false and -1 on failure. + + This is equivalent to the Python expression: not not o. */ + + +/* Implemented elsewhere: + + int PyObject_Not(PyObject *o); + + Returns 0 if the object, o, is considered to be true, 1 if o is + considered to be false and -1 on failure. + + This is equivalent to the Python expression: not o. */ + + +/* Get the type of an object. + + On success, returns a type object corresponding to the object type of object + 'o'. On failure, returns NULL. + + This is equivalent to the Python expression: type(o) */ +PyAPI_FUNC(PyObject *) PyObject_Type(PyObject *o); + + +/* Return the size of object 'o'. If the object 'o' provides both sequence and + mapping protocols, the sequence size is returned. + + On error, -1 is returned. + + This is the equivalent to the Python expression: len(o) */ +PyAPI_FUNC(Py_ssize_t) PyObject_Size(PyObject *o); + + +/* For DLL compatibility */ +#undef PyObject_Length +PyAPI_FUNC(Py_ssize_t) PyObject_Length(PyObject *o); +#define PyObject_Length PyObject_Size + +/* Return element of 'o' corresponding to the object 'key'. Return NULL + on failure. + + This is the equivalent of the Python expression: o[key] */ +PyAPI_FUNC(PyObject *) PyObject_GetItem(PyObject *o, PyObject *key); + + +/* Map the object 'key' to the value 'v' into 'o'. + + Raise an exception and return -1 on failure; return 0 on success. + + This is the equivalent of the Python statement: o[key]=v. */ +PyAPI_FUNC(int) PyObject_SetItem(PyObject *o, PyObject *key, PyObject *v); + +/* Remove the mapping for the string 'key' from the object 'o'. + Returns -1 on failure. + + This is equivalent to the Python statement: del o[key]. */ +PyAPI_FUNC(int) PyObject_DelItemString(PyObject *o, const char *key); + +/* Delete the mapping for the object 'key' from the object 'o'. + Returns -1 on failure. + + This is the equivalent of the Python statement: del o[key]. */ +PyAPI_FUNC(int) PyObject_DelItem(PyObject *o, PyObject *key); + + +/* Takes an arbitrary object and returns the result of calling + obj.__format__(format_spec). */ +PyAPI_FUNC(PyObject *) PyObject_Format(PyObject *obj, + PyObject *format_spec); + + +/* ==== Iterators ================================================ */ + +/* Takes an object and returns an iterator for it. + This is typically a new iterator but if the argument is an iterator, this + returns itself. */ +PyAPI_FUNC(PyObject *) PyObject_GetIter(PyObject *); + +/* Takes an AsyncIterable object and returns an AsyncIterator for it. + This is typically a new iterator but if the argument is an AsyncIterator, + this returns itself. */ +PyAPI_FUNC(PyObject *) PyObject_GetAIter(PyObject *); + +/* Returns non-zero if the object 'obj' provides iterator protocols, and 0 otherwise. + + This function always succeeds. */ +PyAPI_FUNC(int) PyIter_Check(PyObject *); + +/* Returns non-zero if the object 'obj' provides AsyncIterator protocols, and 0 otherwise. + + This function always succeeds. */ +PyAPI_FUNC(int) PyAIter_Check(PyObject *); + +/* Takes an iterator object and calls its tp_iternext slot, + returning the next value. + + If the iterator is exhausted, this returns NULL without setting an + exception. + + NULL with an exception means an error occurred. */ +PyAPI_FUNC(PyObject *) PyIter_Next(PyObject *); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030A0000 + +/* Takes generator, coroutine or iterator object and sends the value into it. + Returns: + - PYGEN_RETURN (0) if generator has returned. + 'result' parameter is filled with return value + - PYGEN_ERROR (-1) if exception was raised. + 'result' parameter is NULL + - PYGEN_NEXT (1) if generator has yielded. + 'result' parameter is filled with yielded value. */ +PyAPI_FUNC(PySendResult) PyIter_Send(PyObject *, PyObject *, PyObject **); +#endif + + +/* === Number Protocol ================================================== */ + +/* Returns 1 if the object 'o' provides numeric protocols, and 0 otherwise. + + This function always succeeds. */ +PyAPI_FUNC(int) PyNumber_Check(PyObject *o); + +/* Returns the result of adding o1 and o2, or NULL on failure. + + This is the equivalent of the Python expression: o1 + o2. */ +PyAPI_FUNC(PyObject *) PyNumber_Add(PyObject *o1, PyObject *o2); + +/* Returns the result of subtracting o2 from o1, or NULL on failure. + + This is the equivalent of the Python expression: o1 - o2. */ +PyAPI_FUNC(PyObject *) PyNumber_Subtract(PyObject *o1, PyObject *o2); + +/* Returns the result of multiplying o1 and o2, or NULL on failure. + + This is the equivalent of the Python expression: o1 * o2. */ +PyAPI_FUNC(PyObject *) PyNumber_Multiply(PyObject *o1, PyObject *o2); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 +/* This is the equivalent of the Python expression: o1 @ o2. */ +PyAPI_FUNC(PyObject *) PyNumber_MatrixMultiply(PyObject *o1, PyObject *o2); +#endif + +/* Returns the result of dividing o1 by o2 giving an integral result, + or NULL on failure. + + This is the equivalent of the Python expression: o1 // o2. */ +PyAPI_FUNC(PyObject *) PyNumber_FloorDivide(PyObject *o1, PyObject *o2); + +/* Returns the result of dividing o1 by o2 giving a float result, or NULL on + failure. + + This is the equivalent of the Python expression: o1 / o2. */ +PyAPI_FUNC(PyObject *) PyNumber_TrueDivide(PyObject *o1, PyObject *o2); + +/* Returns the remainder of dividing o1 by o2, or NULL on failure. + + This is the equivalent of the Python expression: o1 % o2. */ +PyAPI_FUNC(PyObject *) PyNumber_Remainder(PyObject *o1, PyObject *o2); + +/* See the built-in function divmod. + + Returns NULL on failure. + + This is the equivalent of the Python expression: divmod(o1, o2). */ +PyAPI_FUNC(PyObject *) PyNumber_Divmod(PyObject *o1, PyObject *o2); + +/* See the built-in function pow. Returns NULL on failure. + + This is the equivalent of the Python expression: pow(o1, o2, o3), + where o3 is optional. */ +PyAPI_FUNC(PyObject *) PyNumber_Power(PyObject *o1, PyObject *o2, + PyObject *o3); + +/* Returns the negation of o on success, or NULL on failure. + + This is the equivalent of the Python expression: -o. */ +PyAPI_FUNC(PyObject *) PyNumber_Negative(PyObject *o); + +/* Returns the positive of o on success, or NULL on failure. + + This is the equivalent of the Python expression: +o. */ +PyAPI_FUNC(PyObject *) PyNumber_Positive(PyObject *o); + +/* Returns the absolute value of 'o', or NULL on failure. + + This is the equivalent of the Python expression: abs(o). */ +PyAPI_FUNC(PyObject *) PyNumber_Absolute(PyObject *o); + +/* Returns the bitwise negation of 'o' on success, or NULL on failure. + + This is the equivalent of the Python expression: ~o. */ +PyAPI_FUNC(PyObject *) PyNumber_Invert(PyObject *o); + +/* Returns the result of left shifting o1 by o2 on success, or NULL on failure. + + This is the equivalent of the Python expression: o1 << o2. */ +PyAPI_FUNC(PyObject *) PyNumber_Lshift(PyObject *o1, PyObject *o2); + +/* Returns the result of right shifting o1 by o2 on success, or NULL on + failure. + + This is the equivalent of the Python expression: o1 >> o2. */ +PyAPI_FUNC(PyObject *) PyNumber_Rshift(PyObject *o1, PyObject *o2); + +/* Returns the result of bitwise and of o1 and o2 on success, or NULL on + failure. + + This is the equivalent of the Python expression: o1 & o2. */ +PyAPI_FUNC(PyObject *) PyNumber_And(PyObject *o1, PyObject *o2); + +/* Returns the bitwise exclusive or of o1 by o2 on success, or NULL on failure. + + This is the equivalent of the Python expression: o1 ^ o2. */ +PyAPI_FUNC(PyObject *) PyNumber_Xor(PyObject *o1, PyObject *o2); + +/* Returns the result of bitwise or on o1 and o2 on success, or NULL on + failure. + + 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 the object 'o' converted to a Python int, or NULL with an exception + raised on failure. */ +PyAPI_FUNC(PyObject *) PyNumber_Index(PyObject *o); + +/* Returns the object 'o' converted to Py_ssize_t by going through + PyNumber_Index() first. + + If an overflow error occurs while converting the int to Py_ssize_t, then the + second argument 'exc' is the error-type to return. If it is NULL, then the + overflow error is cleared and the value is clipped. */ +PyAPI_FUNC(Py_ssize_t) PyNumber_AsSsize_t(PyObject *o, PyObject *exc); + +/* Returns the object 'o' converted to an integer object on success, or NULL + on failure. + + This is the equivalent of the Python expression: int(o). */ +PyAPI_FUNC(PyObject *) PyNumber_Long(PyObject *o); + +/* Returns the object 'o' converted to a float object on success, or NULL + on failure. + + This is the equivalent of the Python expression: float(o). */ +PyAPI_FUNC(PyObject *) PyNumber_Float(PyObject *o); + + +/* --- In-place variants of (some of) the above number protocol functions -- */ + +/* Returns the result of adding o2 to o1, possibly in-place, or NULL + on failure. + + This is the equivalent of the Python expression: o1 += o2. */ +PyAPI_FUNC(PyObject *) PyNumber_InPlaceAdd(PyObject *o1, PyObject *o2); + +/* Returns the result of subtracting o2 from o1, possibly in-place or + NULL on failure. + + This is the equivalent of the Python expression: o1 -= o2. */ +PyAPI_FUNC(PyObject *) PyNumber_InPlaceSubtract(PyObject *o1, PyObject *o2); + +/* Returns the result of multiplying o1 by o2, possibly in-place, or NULL on + failure. + + This is the equivalent of the Python expression: o1 *= o2. */ +PyAPI_FUNC(PyObject *) PyNumber_InPlaceMultiply(PyObject *o1, PyObject *o2); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 +/* This is the equivalent of the Python expression: o1 @= o2. */ +PyAPI_FUNC(PyObject *) PyNumber_InPlaceMatrixMultiply(PyObject *o1, PyObject *o2); +#endif + +/* Returns the result of dividing o1 by o2 giving an integral result, possibly + in-place, or NULL on failure. + + This is the equivalent of the Python expression: o1 /= o2. */ +PyAPI_FUNC(PyObject *) PyNumber_InPlaceFloorDivide(PyObject *o1, + PyObject *o2); + +/* Returns the result of dividing o1 by o2 giving a float result, possibly + in-place, or null on failure. + + This is the equivalent of the Python expression: o1 /= o2. */ +PyAPI_FUNC(PyObject *) PyNumber_InPlaceTrueDivide(PyObject *o1, + PyObject *o2); + +/* Returns the remainder of dividing o1 by o2, possibly in-place, or NULL on + failure. + + This is the equivalent of the Python expression: o1 %= o2. */ +PyAPI_FUNC(PyObject *) PyNumber_InPlaceRemainder(PyObject *o1, PyObject *o2); + +/* Returns the result of raising o1 to the power of o2, possibly in-place, + or NULL on failure. + + This is the equivalent of the Python expression: o1 **= o2, + or o1 = pow(o1, o2, o3) if o3 is present. */ +PyAPI_FUNC(PyObject *) PyNumber_InPlacePower(PyObject *o1, PyObject *o2, + PyObject *o3); + +/* Returns the result of left shifting o1 by o2, possibly in-place, or NULL + on failure. + + This is the equivalent of the Python expression: o1 <<= o2. */ +PyAPI_FUNC(PyObject *) PyNumber_InPlaceLshift(PyObject *o1, PyObject *o2); + +/* Returns the result of right shifting o1 by o2, possibly in-place or NULL + on failure. + + This is the equivalent of the Python expression: o1 >>= o2. */ +PyAPI_FUNC(PyObject *) PyNumber_InPlaceRshift(PyObject *o1, PyObject *o2); + +/* Returns the result of bitwise and of o1 and o2, possibly in-place, or NULL + on failure. + + This is the equivalent of the Python expression: o1 &= o2. */ +PyAPI_FUNC(PyObject *) PyNumber_InPlaceAnd(PyObject *o1, PyObject *o2); + +/* Returns the bitwise exclusive or of o1 by o2, possibly in-place, or NULL + on failure. + + This is the equivalent of the Python expression: o1 ^= o2. */ +PyAPI_FUNC(PyObject *) PyNumber_InPlaceXor(PyObject *o1, PyObject *o2); + +/* Returns the result of bitwise or of o1 and o2, possibly in-place, + or NULL on failure. + + This is the equivalent of the Python expression: o1 |= o2. */ +PyAPI_FUNC(PyObject *) PyNumber_InPlaceOr(PyObject *o1, PyObject *o2); + +/* Returns the integer n converted to a string with a base, with a base + marker of 0b, 0o or 0x prefixed if applicable. + + If n is not an int object, it is converted with PyNumber_Index first. */ +PyAPI_FUNC(PyObject *) PyNumber_ToBase(PyObject *n, int base); + + +/* === Sequence protocol ================================================ */ + +/* Return 1 if the object provides sequence protocol, and zero + otherwise. + + This function always succeeds. */ +PyAPI_FUNC(int) PySequence_Check(PyObject *o); + +/* Return the size of sequence object o, or -1 on failure. */ +PyAPI_FUNC(Py_ssize_t) PySequence_Size(PyObject *o); + +/* For DLL compatibility */ +#undef PySequence_Length +PyAPI_FUNC(Py_ssize_t) PySequence_Length(PyObject *o); +#define PySequence_Length PySequence_Size + + +/* Return the concatenation of o1 and o2 on success, and NULL on failure. + + This is the equivalent of the Python expression: o1 + o2. */ +PyAPI_FUNC(PyObject *) PySequence_Concat(PyObject *o1, PyObject *o2); + +/* Return the result of repeating sequence object 'o' 'count' times, + or NULL on failure. + + This is the equivalent of the Python expression: o * count. */ +PyAPI_FUNC(PyObject *) PySequence_Repeat(PyObject *o, Py_ssize_t count); + +/* Return the ith element of o, or NULL on failure. + + This is the equivalent of the Python expression: o[i]. */ +PyAPI_FUNC(PyObject *) PySequence_GetItem(PyObject *o, Py_ssize_t i); + +/* Return the slice of sequence object o between i1 and i2, or NULL on failure. + + This is the equivalent of the Python expression: o[i1:i2]. */ +PyAPI_FUNC(PyObject *) PySequence_GetSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2); + +/* Assign object 'v' to the ith element of the sequence 'o'. Raise an exception + and return -1 on failure; return 0 on success. + + This is the equivalent of the Python statement o[i] = v. */ +PyAPI_FUNC(int) PySequence_SetItem(PyObject *o, Py_ssize_t i, PyObject *v); + +/* Delete the 'i'-th element of the sequence 'v'. Returns -1 on failure. + + This is the equivalent of the Python statement: del o[i]. */ +PyAPI_FUNC(int) PySequence_DelItem(PyObject *o, Py_ssize_t i); + +/* Assign the sequence object 'v' to the slice in sequence object 'o', + from 'i1' to 'i2'. Returns -1 on failure. + + This is the equivalent of the Python statement: o[i1:i2] = v. */ +PyAPI_FUNC(int) PySequence_SetSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2, + PyObject *v); + +/* Delete the slice in sequence object 'o' from 'i1' to 'i2'. + Returns -1 on failure. + + This is the equivalent of the Python statement: del o[i1:i2]. */ +PyAPI_FUNC(int) PySequence_DelSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2); + +/* Returns the sequence 'o' as a tuple on success, and NULL on failure. + + This is equivalent to the Python expression: tuple(o). */ +PyAPI_FUNC(PyObject *) PySequence_Tuple(PyObject *o); + +/* Returns the sequence 'o' as a list on success, and NULL on failure. + This is equivalent to the Python expression: list(o) */ +PyAPI_FUNC(PyObject *) PySequence_List(PyObject *o); + +/* Return the sequence 'o' as a list, unless it's already a tuple or list. + + Use PySequence_Fast_GET_ITEM to access the members of this list, and + PySequence_Fast_GET_SIZE to get its length. + + Returns NULL on failure. If the object does not support iteration, raises a + TypeError exception with 'm' as the message text. */ +PyAPI_FUNC(PyObject *) PySequence_Fast(PyObject *o, const char* m); + +/* Return the size of the sequence 'o', assuming that 'o' was returned by + PySequence_Fast and is not NULL. */ +#define PySequence_Fast_GET_SIZE(o) \ + (PyList_Check(o) ? PyList_GET_SIZE(o) : PyTuple_GET_SIZE(o)) + +/* Return the 'i'-th element of the sequence 'o', assuming that o was returned + by PySequence_Fast, and that i is within bounds. */ +#define PySequence_Fast_GET_ITEM(o, i)\ + (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 */ +#define PySequence_Fast_ITEMS(sf) \ + (PyList_Check(sf) ? ((PyListObject *)(sf))->ob_item \ + : ((PyTupleObject *)(sf))->ob_item) + +/* Return the number of occurrences on value on 'o', that is, return + the number of keys for which o[key] == value. + + On failure, return -1. This is equivalent to the Python expression: + o.count(value). */ +PyAPI_FUNC(Py_ssize_t) PySequence_Count(PyObject *o, PyObject *value); + +/* Return 1 if 'ob' is in the sequence 'seq'; 0 if 'ob' is not in the sequence + 'seq'; -1 on error. + + Use __contains__ if possible, else _PySequence_IterSearch(). */ +PyAPI_FUNC(int) PySequence_Contains(PyObject *seq, PyObject *ob); + +/* For DLL-level backwards compatibility */ +#undef PySequence_In +/* Determine if the sequence 'o' contains 'value'. If an item in 'o' is equal + to 'value', return 1, otherwise return 0. On error, return -1. + + This is equivalent to the Python expression: value in o. */ +PyAPI_FUNC(int) PySequence_In(PyObject *o, PyObject *value); + +/* For source-level backwards compatibility */ +#define PySequence_In PySequence_Contains + + +/* Return the first index for which o[i] == value. + On error, return -1. + + This is equivalent to the Python expression: o.index(value). */ +PyAPI_FUNC(Py_ssize_t) PySequence_Index(PyObject *o, PyObject *value); + + +/* --- In-place versions of some of the above Sequence functions --- */ + +/* Append sequence 'o2' to sequence 'o1', in-place when possible. Return the + resulting object, which could be 'o1', or NULL on failure. + + This is the equivalent of the Python expression: o1 += o2. */ +PyAPI_FUNC(PyObject *) PySequence_InPlaceConcat(PyObject *o1, PyObject *o2); + +/* Repeat sequence 'o' by 'count', in-place when possible. Return the resulting + object, which could be 'o', or NULL on failure. + + This is the equivalent of the Python expression: o1 *= count. */ +PyAPI_FUNC(PyObject *) PySequence_InPlaceRepeat(PyObject *o, Py_ssize_t count); + + +/* === Mapping protocol ================================================= */ + +/* Return 1 if the object provides mapping protocol, and 0 otherwise. + + This function always succeeds. */ +PyAPI_FUNC(int) PyMapping_Check(PyObject *o); + +/* Returns the number of keys in mapping object 'o' on success, and -1 on + failure. This is equivalent to the Python expression: len(o). */ +PyAPI_FUNC(Py_ssize_t) PyMapping_Size(PyObject *o); + +/* For DLL compatibility */ +#undef PyMapping_Length +PyAPI_FUNC(Py_ssize_t) PyMapping_Length(PyObject *o); +#define PyMapping_Length PyMapping_Size + + +/* Implemented as a macro: + + int PyMapping_DelItemString(PyObject *o, const char *key); + + Remove the mapping for the string 'key' from the mapping 'o'. Returns -1 on + failure. + + This is equivalent to the Python statement: del o[key]. */ +#define PyMapping_DelItemString(O, K) PyObject_DelItemString((O), (K)) + +/* Implemented as a macro: + + int PyMapping_DelItem(PyObject *o, PyObject *key); + + Remove the mapping for the object 'key' from the mapping object 'o'. + Returns -1 on failure. + + This is equivalent to the Python statement: del o[key]. */ +#define PyMapping_DelItem(O, K) PyObject_DelItem((O), (K)) + +/* On success, return 1 if the mapping object 'o' has the key 'key', + and 0 otherwise. + + This is equivalent to the Python expression: key in o. + + This function always succeeds. */ +PyAPI_FUNC(int) PyMapping_HasKeyString(PyObject *o, const char *key); + +/* Return 1 if the mapping object has the key 'key', and 0 otherwise. + + This is equivalent to the Python expression: key in o. + + This function always succeeds. */ +PyAPI_FUNC(int) PyMapping_HasKey(PyObject *o, PyObject *key); + +/* Return 1 if the mapping object has the key 'key', and 0 otherwise. + This is equivalent to the Python expression: key in o. + On failure, return -1. */ + +PyAPI_FUNC(int) PyMapping_HasKeyWithError(PyObject *o, PyObject *key); + +/* Return 1 if the mapping object has the key 'key', and 0 otherwise. + This is equivalent to the Python expression: key in o. + On failure, return -1. */ + +PyAPI_FUNC(int) PyMapping_HasKeyStringWithError(PyObject *o, const char *key); + +/* On success, return a list or tuple of the keys in mapping object 'o'. + On failure, return NULL. */ +PyAPI_FUNC(PyObject *) PyMapping_Keys(PyObject *o); + +/* On success, return a list or tuple of the values in mapping object 'o'. + On failure, return NULL. */ +PyAPI_FUNC(PyObject *) PyMapping_Values(PyObject *o); + +/* On success, return a list or tuple of the items in mapping object 'o', + where each item is a tuple containing a key-value pair. On failure, return + NULL. */ +PyAPI_FUNC(PyObject *) PyMapping_Items(PyObject *o); + +/* Return element of 'o' corresponding to the string 'key' or NULL on failure. + + This is the equivalent of the Python expression: o[key]. */ +PyAPI_FUNC(PyObject *) PyMapping_GetItemString(PyObject *o, + const char *key); + +/* Variants of PyObject_GetItem() and PyMapping_GetItemString() which don't + raise KeyError if the key is not found. + + If the key is found, return 1 and set *result to a new strong + reference to the corresponding value. + If the key is not found, return 0 and set *result to NULL; + the KeyError is silenced. + If an error other than KeyError is raised, return -1 and + set *result to NULL. +*/ +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030d0000 +PyAPI_FUNC(int) PyMapping_GetOptionalItem(PyObject *, PyObject *, PyObject **); +PyAPI_FUNC(int) PyMapping_GetOptionalItemString(PyObject *, const char *, PyObject **); +#endif + +/* Map the string 'key' to the value 'v' in the mapping 'o'. + Returns -1 on failure. + + This is the equivalent of the Python statement: o[key]=v. */ +PyAPI_FUNC(int) PyMapping_SetItemString(PyObject *o, const char *key, + PyObject *value); + +/* isinstance(object, typeorclass) */ +PyAPI_FUNC(int) PyObject_IsInstance(PyObject *object, PyObject *typeorclass); + +/* issubclass(object, 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 + +#ifdef __cplusplus +} +#endif +#endif /* Py_ABSTRACTOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/bltinmodule.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/bltinmodule.h new file mode 100644 index 000000000..868c9e644 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/bltinmodule.h @@ -0,0 +1,14 @@ +#ifndef Py_BLTINMODULE_H +#define Py_BLTINMODULE_H +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_DATA(PyTypeObject) PyFilter_Type; +PyAPI_DATA(PyTypeObject) PyMap_Type; +PyAPI_DATA(PyTypeObject) PyZip_Type; + +#ifdef __cplusplus +} +#endif +#endif /* !Py_BLTINMODULE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/boolobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/boolobject.h new file mode 100644 index 000000000..3037e61bb --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/boolobject.h @@ -0,0 +1,47 @@ +/* Boolean object interface */ + +#ifndef Py_BOOLOBJECT_H +#define Py_BOOLOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + + +// PyBool_Type is declared by object.h + +#define PyBool_Check(x) Py_IS_TYPE((x), &PyBool_Type) + +/* Py_False and Py_True are the only two bools in existence. */ + +/* Don't use these directly */ +PyAPI_DATA(PyLongObject) _Py_FalseStruct; +PyAPI_DATA(PyLongObject) _Py_TrueStruct; + +/* Use these macros */ +#if defined(Py_LIMITED_API) && Py_LIMITED_API+0 >= 0x030D0000 +# define Py_False Py_GetConstantBorrowed(Py_CONSTANT_FALSE) +# define Py_True Py_GetConstantBorrowed(Py_CONSTANT_TRUE) +#else +# define Py_False _PyObject_CAST(&_Py_FalseStruct) +# define Py_True _PyObject_CAST(&_Py_TrueStruct) +#endif + +// Test if an object is the True singleton, the same as "x is True" in Python. +PyAPI_FUNC(int) Py_IsTrue(PyObject *x); +#define Py_IsTrue(x) Py_Is((x), Py_True) + +// Test if an object is the False singleton, the same as "x is False" in Python. +PyAPI_FUNC(int) Py_IsFalse(PyObject *x); +#define Py_IsFalse(x) Py_Is((x), Py_False) + +/* Macros for returning Py_True or Py_False, respectively */ +#define Py_RETURN_TRUE return Py_True +#define Py_RETURN_FALSE return Py_False + +/* Function to return a bool from a C long */ +PyAPI_FUNC(PyObject *) PyBool_FromLong(long); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_BOOLOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/bytearrayobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/bytearrayobject.h new file mode 100644 index 000000000..3d53fdba6 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/bytearrayobject.h @@ -0,0 +1,44 @@ +/* ByteArray object interface */ + +#ifndef Py_BYTEARRAYOBJECT_H +#define Py_BYTEARRAYOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +/* Type PyByteArrayObject represents a mutable array of bytes. + * The Python API is that of a sequence; + * the bytes are mapped to ints in [0, 256). + * Bytes are not characters; they may be used to encode characters. + * The only way to go between bytes and str/unicode is via encoding + * and decoding. + * For the convenience of C programmers, the bytes type is considered + * to contain a char pointer, not an unsigned char pointer. + */ + +/* Type object */ +PyAPI_DATA(PyTypeObject) PyByteArray_Type; +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) + +/* Direct API functions */ +PyAPI_FUNC(PyObject *) PyByteArray_FromObject(PyObject *); +PyAPI_FUNC(PyObject *) PyByteArray_Concat(PyObject *, PyObject *); +PyAPI_FUNC(PyObject *) PyByteArray_FromStringAndSize(const char *, Py_ssize_t); +PyAPI_FUNC(Py_ssize_t) PyByteArray_Size(PyObject *); +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 +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_BYTEARRAYOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/bytesobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/bytesobject.h new file mode 100644 index 000000000..c5a24195b --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/bytesobject.h @@ -0,0 +1,66 @@ +// Bytes object interface + +#ifndef Py_BYTESOBJECT_H +#define Py_BYTESOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +/* +Type PyBytesObject represents a byte string. An extra zero byte is +reserved at the end to ensure it is zero-terminated, but a size is +present so strings with null bytes in them can be represented. This +is an immutable object type. + +There are functions to create new bytes objects, to test +an object for bytes-ness, and to get the +byte string value. The latter function returns a null pointer +if the object is not of the proper type. +There is a variant that takes an explicit size as well as a +variant that assumes a zero-terminated string. Note that none of the +functions should be applied to NULL pointer. +*/ + +PyAPI_DATA(PyTypeObject) PyBytes_Type; +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) + +PyAPI_FUNC(PyObject *) PyBytes_FromStringAndSize(const char *, Py_ssize_t); +PyAPI_FUNC(PyObject *) PyBytes_FromString(const char *); +PyAPI_FUNC(PyObject *) PyBytes_FromObject(PyObject *); +PyAPI_FUNC(PyObject *) PyBytes_FromFormatV(const char*, va_list) + Py_GCC_ATTRIBUTE((format(printf, 1, 0))); +PyAPI_FUNC(PyObject *) PyBytes_FromFormat(const char*, ...) + Py_GCC_ATTRIBUTE((format(printf, 1, 2))); +PyAPI_FUNC(Py_ssize_t) PyBytes_Size(PyObject *); +PyAPI_FUNC(char *) PyBytes_AsString(PyObject *); +PyAPI_FUNC(PyObject *) PyBytes_Repr(PyObject *, int); +PyAPI_FUNC(void) PyBytes_Concat(PyObject **, PyObject *); +PyAPI_FUNC(void) PyBytes_ConcatAndDel(PyObject **, PyObject *); +PyAPI_FUNC(PyObject *) PyBytes_DecodeEscape(const char *, Py_ssize_t, + const char *, Py_ssize_t, + const char *); + +/* Provides access to the internal data buffer and size of a bytes object. + Passing NULL as len parameter will force the string buffer to be + 0-terminated (passing a string with embedded NUL characters will + cause an exception). */ +PyAPI_FUNC(int) PyBytes_AsStringAndSize( + PyObject *obj, /* bytes object */ + char **s, /* pointer to buffer variable */ + Py_ssize_t *len /* pointer to length variable or NULL */ + ); + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_BYTESOBJECT_H +# include "cpython/bytesobject.h" +# undef Py_CPYTHON_BYTESOBJECT_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_BYTESOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/ceval.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/ceval.h new file mode 100644 index 000000000..1ec746c37 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/ceval.h @@ -0,0 +1,145 @@ +/* Interface to random parts in ceval.c */ + +#ifndef Py_CEVAL_H +#define Py_CEVAL_H +#ifdef __cplusplus +extern "C" { +#endif + + +PyAPI_FUNC(PyObject *) PyEval_EvalCode(PyObject *, PyObject *, PyObject *); + +PyAPI_FUNC(PyObject *) PyEval_EvalCodeEx(PyObject *co, + PyObject *globals, + PyObject *locals, + PyObject *const *args, int argc, + PyObject *const *kwds, int kwdc, + PyObject *const *defs, int defc, + PyObject *kwdefs, PyObject *closure); + +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(PyObject *) PyEval_GetFrameBuiltins(void); +PyAPI_FUNC(PyObject *) PyEval_GetFrameGlobals(void); +PyAPI_FUNC(PyObject *) PyEval_GetFrameLocals(void); + +PyAPI_FUNC(int) Py_AddPendingCall(int (*func)(void *), void *arg); +PyAPI_FUNC(int) Py_MakePendingCalls(void); + +/* Protection against deeply nested recursive calls + + In Python 3.0, this protection has two levels: + * normal anti-recursion protection is triggered when the recursion level + exceeds the current recursion limit. It raises a RecursionError, and sets + the "overflowed" flag in the thread state structure. This flag + temporarily *disables* the normal protection; this allows cleanup code + to potentially outgrow the recursion limit while processing the + RecursionError. + * "last chance" anti-recursion protection is triggered when the recursion + level exceeds "current recursion limit + 50". By construction, this + protection can only be triggered when the "overflowed" flag is set. It + means the cleanup code has itself gone into an infinite loop, or the + RecursionError has been mistakingly ignored. When this protection is + triggered, the interpreter aborts with a Fatal Error. + + In addition, the "overflowed" flag is automatically reset when the + recursion level drops below "current recursion limit - 50". This heuristic + is meant to ensure that the normal anti-recursion protection doesn't get + disabled too long. + + Please note: this scheme has its own limitations. See: + http://mail.python.org/pipermail/python-dev/2008-August/082106.html + for some observations. +*/ +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(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); + +/* Interface for threads. + + A module that plans to do a blocking system call (or something else + that lasts a long time and doesn't touch Python data) can allow other + threads to run as follows: + + ...preparations here... + Py_BEGIN_ALLOW_THREADS + ...blocking system call here... + Py_END_ALLOW_THREADS + ...interpret result here... + + The Py_BEGIN_ALLOW_THREADS/Py_END_ALLOW_THREADS pair expands to a + {}-surrounded block. + To leave the block in the middle (e.g., with return), you must insert + a line containing Py_BLOCK_THREADS before the return, e.g. + + if (...premature_exit...) { + Py_BLOCK_THREADS + PyErr_SetFromErrno(PyExc_OSError); + return NULL; + } + + An alternative is: + + Py_BLOCK_THREADS + if (...premature_exit...) { + PyErr_SetFromErrno(PyExc_OSError); + return NULL; + } + Py_UNBLOCK_THREADS + + For convenience, that the value of 'errno' is restored across + Py_END_ALLOW_THREADS and Py_BLOCK_THREADS. + + WARNING: NEVER NEST CALLS TO Py_BEGIN_ALLOW_THREADS AND + Py_END_ALLOW_THREADS!!! + + Note that not yet all candidates have been converted to use this + mechanism! +*/ + +PyAPI_FUNC(PyThreadState *) PyEval_SaveThread(void); +PyAPI_FUNC(void) PyEval_RestoreThread(PyThreadState *); + +Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void); + +PyAPI_FUNC(void) PyEval_AcquireThread(PyThreadState *tstate); +PyAPI_FUNC(void) PyEval_ReleaseThread(PyThreadState *tstate); + +#define Py_BEGIN_ALLOW_THREADS { \ + PyThreadState *_save; \ + _save = PyEval_SaveThread(); +#define Py_BLOCK_THREADS PyEval_RestoreThread(_save); +#define Py_UNBLOCK_THREADS _save = PyEval_SaveThread(); +#define Py_END_ALLOW_THREADS PyEval_RestoreThread(_save); \ + } + +/* Masks and values used by FORMAT_VALUE opcode. */ +#define FVC_MASK 0x3 +#define FVC_NONE 0x0 +#define FVC_STR 0x1 +#define FVC_REPR 0x2 +#define FVC_ASCII 0x3 +#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 + +#ifdef __cplusplus +} +#endif +#endif /* !Py_CEVAL_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/codecs.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/codecs.h new file mode 100644 index 000000000..512a3c723 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/codecs.h @@ -0,0 +1,176 @@ +#ifndef Py_CODECREGISTRY_H +#define Py_CODECREGISTRY_H +#ifdef __cplusplus +extern "C" { +#endif + +/* ------------------------------------------------------------------------ + + Python Codec Registry and support functions + + +Written by Marc-Andre Lemburg (mal@lemburg.com). + +Copyright (c) Corporation for National Research Initiatives. + + ------------------------------------------------------------------------ */ + +/* 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. + + The search_function's refcount is incremented by this function. */ + +PyAPI_FUNC(int) PyCodec_Register( + PyObject *search_function + ); + +/* Unregister a codec search function and clear the registry's cache. + If the search function is not registered, do nothing. + Return 0 on success. Raise an exception and return -1 on error. */ + +PyAPI_FUNC(int) PyCodec_Unregister( + PyObject *search_function + ); + +/* Codec registry encoding check API. + + Returns 1/0 depending on whether there is a registered codec for + the given encoding. + +*/ + +PyAPI_FUNC(int) PyCodec_KnownEncoding( + const char *encoding + ); + +/* Generic codec based encoding API. + + object 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 in case no encoder can be found. + + */ + +PyAPI_FUNC(PyObject *) PyCodec_Encode( + PyObject *object, + const char *encoding, + const char *errors + ); + +/* Generic codec based decoding API. + + object 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 in case no encoder can be found. + + */ + +PyAPI_FUNC(PyObject *) PyCodec_Decode( + PyObject *object, + const char *encoding, + const char *errors + ); + +// --- Codec Lookup APIs -------------------------------------------------- + +/* Codec registry lookup API. + + Looks up the given encoding and returns a CodecInfo object with + function attributes which implement the different aspects of + processing the encoding. + + The encoding string is looked up converted to all lower-case + characters. This makes encodings looked up through this mechanism + effectively case-insensitive. + + If no codec is found, a KeyError is set and NULL returned. + + As side effect, this tries to load the encodings package, if not + yet done. This is part of the lazy load strategy for the encodings + package. + */ + +/* Get an encoder function for the given encoding. */ + +PyAPI_FUNC(PyObject *) PyCodec_Encoder(const char *encoding); + +/* Get a decoder function for the given encoding. */ + +PyAPI_FUNC(PyObject *) PyCodec_Decoder(const char *encoding); + +/* Get an IncrementalEncoder object for the given encoding. */ + +PyAPI_FUNC(PyObject *) PyCodec_IncrementalEncoder( + const char *encoding, + const char *errors); + +/* Get an IncrementalDecoder object function for the given encoding. */ + +PyAPI_FUNC(PyObject *) PyCodec_IncrementalDecoder( + const char *encoding, + const char *errors); + +/* Get a StreamReader factory function for the given encoding. */ + +PyAPI_FUNC(PyObject *) PyCodec_StreamReader( + const char *encoding, + PyObject *stream, + const char *errors); + +/* Get a StreamWriter factory function for the given encoding. */ + +PyAPI_FUNC(PyObject *) PyCodec_StreamWriter( + const char *encoding, + PyObject *stream, + const char *errors); + +/* Unicode encoding error handling callback registry API */ + +/* Register the error handling callback function error under the given + name. This function will be called by the codec when it encounters + unencodable characters/undecodable bytes and doesn't know the + callback name, when name is specified as the error parameter + in the call to the encode/decode function. + Return 0 on success, -1 on error */ +PyAPI_FUNC(int) PyCodec_RegisterError(const char *name, PyObject *error); + +/* Lookup the error handling callback function registered under the given + name. As a special case NULL can be passed, in which case + the error handling callback for "strict" will be returned. */ +PyAPI_FUNC(PyObject *) PyCodec_LookupError(const char *name); + +/* raise exc as an exception */ +PyAPI_FUNC(PyObject *) PyCodec_StrictErrors(PyObject *exc); + +/* ignore the unicode error, skipping the faulty input */ +PyAPI_FUNC(PyObject *) PyCodec_IgnoreErrors(PyObject *exc); + +/* replace the unicode encode error with ? or U+FFFD */ +PyAPI_FUNC(PyObject *) PyCodec_ReplaceErrors(PyObject *exc); + +/* replace the unicode encode error with XML character references */ +PyAPI_FUNC(PyObject *) PyCodec_XMLCharRefReplaceErrors(PyObject *exc); + +/* replace the unicode encode error with backslash escapes (\x, \u and \U) */ +PyAPI_FUNC(PyObject *) PyCodec_BackslashReplaceErrors(PyObject *exc); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 +/* replace the unicode encode error with backslash escapes (\N, \x, \u and \U) */ +PyAPI_FUNC(PyObject *) PyCodec_NameReplaceErrors(PyObject *exc); +#endif + +#ifndef Py_LIMITED_API +PyAPI_DATA(const char *) Py_hexdigits; +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_CODECREGISTRY_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/compile.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/compile.h new file mode 100644 index 000000000..52d0bc76c --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/compile.h @@ -0,0 +1,22 @@ +#ifndef Py_COMPILE_H +#define Py_COMPILE_H +#ifdef __cplusplus +extern "C" { +#endif + +/* 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 + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_COMPILE_H +# include "cpython/compile.h" +# undef Py_CPYTHON_COMPILE_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_COMPILE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/complexobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/complexobject.h new file mode 100644 index 000000000..ebe49a832 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/complexobject.h @@ -0,0 +1,30 @@ +/* Complex number structure */ + +#ifndef Py_COMPLEXOBJECT_H +#define Py_COMPLEXOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +/* Complex object interface */ + +PyAPI_DATA(PyTypeObject) PyComplex_Type; + +#define PyComplex_Check(op) PyObject_TypeCheck((op), &PyComplex_Type) +#define PyComplex_CheckExact(op) Py_IS_TYPE((op), &PyComplex_Type) + +PyAPI_FUNC(PyObject *) PyComplex_FromDoubles(double real, double imag); + +PyAPI_FUNC(double) PyComplex_RealAsDouble(PyObject *op); +PyAPI_FUNC(double) PyComplex_ImagAsDouble(PyObject *op); + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_COMPLEXOBJECT_H +# include "cpython/complexobject.h" +# undef Py_CPYTHON_COMPLEXOBJECT_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_COMPLEXOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/abstract.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/abstract.h new file mode 100644 index 000000000..4e7b7a467 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/abstract.h @@ -0,0 +1,87 @@ +#ifndef Py_CPYTHON_ABSTRACTOBJECT_H +# error "this header file must not be included directly" +#endif + +/* === Object Protocol ================================================== */ + +/* 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, ...); + +/* 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); + + +/* === Vectorcall protocol (PEP 590) ============================= */ + +// PyVectorcall_NARGS() is exported as a function for the stable ABI. +// Here (when we are not using the stable ABI), the name is overridden to +// call a static inline function for best performance. +static inline Py_ssize_t +_PyVectorcall_NARGS(size_t n) +{ + return n & ~PY_VECTORCALL_ARGUMENTS_OFFSET; +} +#define PyVectorcall_NARGS(n) _PyVectorcall_NARGS(n) + +PyAPI_FUNC(vectorcallfunc) PyVectorcall_Function(PyObject *callable); + +// Backwards compatibility aliases (PEP 590) 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); + +PyAPI_FUNC(PyObject *) PyObject_CallOneArg(PyObject *func, PyObject *arg); + +static inline PyObject * +PyObject_CallMethodNoArgs(PyObject *self, PyObject *name) +{ + size_t nargsf = 1 | PY_VECTORCALL_ARGUMENTS_OFFSET; + return PyObject_VectorcallMethod(name, &self, nargsf, _Py_NULL); +} + +static inline PyObject * +PyObject_CallMethodOneArg(PyObject *self, PyObject *name, PyObject *arg) +{ + PyObject *args[2] = {self, arg}; + size_t nargsf = 2 | PY_VECTORCALL_ARGUMENTS_OFFSET; + assert(arg != NULL); + return PyObject_VectorcallMethod(name, args, nargsf, _Py_NULL); +} + +/* 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); + +/* === 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)) ) diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/bytearrayobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/bytearrayobject.h new file mode 100644 index 000000000..9ba176eb2 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/bytearrayobject.h @@ -0,0 +1,34 @@ +#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; + +PyAPI_DATA(char) _PyByteArray_empty_string[]; + +/* Macros and static inline functions, trading safety for speed */ +#define _PyByteArray_CAST(op) \ + (assert(PyByteArray_Check(op)), _Py_CAST(PyByteArrayObject*, op)) + +static inline char* PyByteArray_AS_STRING(PyObject *op) +{ + PyByteArrayObject *self = _PyByteArray_CAST(op); + if (Py_SIZE(self)) { + return self->ob_start; + } + return _PyByteArray_empty_string; +} +#define PyByteArray_AS_STRING(self) PyByteArray_AS_STRING(_PyObject_CAST(self)) + +static inline Py_ssize_t PyByteArray_GET_SIZE(PyObject *op) { + PyByteArrayObject *self = _PyByteArray_CAST(op); + return Py_SIZE(self); +} +#define PyByteArray_GET_SIZE(self) PyByteArray_GET_SIZE(_PyObject_CAST(self)) diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/bytesobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/bytesobject.h new file mode 100644 index 000000000..41537210b --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/bytesobject.h @@ -0,0 +1,37 @@ +#ifndef Py_CPYTHON_BYTESOBJECT_H +# error "this header file must not be included directly" +#endif + +typedef struct { + PyObject_VAR_HEAD + Py_DEPRECATED(3.11) 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 byte string or -1 if not computed yet. + */ +} PyBytesObject; + +PyAPI_FUNC(int) _PyBytes_Resize(PyObject **, Py_ssize_t); + +/* Macros and static inline functions, trading safety for speed */ +#define _PyBytes_CAST(op) \ + (assert(PyBytes_Check(op)), _Py_CAST(PyBytesObject*, op)) + +static inline char* PyBytes_AS_STRING(PyObject *op) +{ + return _PyBytes_CAST(op)->ob_sval; +} +#define PyBytes_AS_STRING(op) PyBytes_AS_STRING(_PyObject_CAST(op)) + +static inline Py_ssize_t PyBytes_GET_SIZE(PyObject *op) { + PyBytesObject *self = _PyBytes_CAST(op); + return Py_SIZE(self); +} +#define PyBytes_GET_SIZE(self) PyBytes_GET_SIZE(_PyObject_CAST(self)) + +/* _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); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/cellobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/cellobject.h new file mode 100644 index 000000000..47a6a4914 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/cellobject.h @@ -0,0 +1,44 @@ +/* Cell object interface */ + +#ifndef Py_LIMITED_API +#ifndef Py_CELLOBJECT_H +#define Py_CELLOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + PyObject_HEAD + /* Content of the cell or NULL when empty */ + PyObject *ob_ref; +} PyCellObject; + +PyAPI_DATA(PyTypeObject) PyCell_Type; + +#define PyCell_Check(op) Py_IS_TYPE((op), &PyCell_Type) + +PyAPI_FUNC(PyObject *) PyCell_New(PyObject *); +PyAPI_FUNC(PyObject *) PyCell_Get(PyObject *); +PyAPI_FUNC(int) PyCell_Set(PyObject *, PyObject *); + +static inline PyObject* PyCell_GET(PyObject *op) { + PyCellObject *cell; + assert(PyCell_Check(op)); + cell = _Py_CAST(PyCellObject*, op); + return cell->ob_ref; +} +#define PyCell_GET(op) PyCell_GET(_PyObject_CAST(op)) + +static inline void PyCell_SET(PyObject *op, PyObject *value) { + PyCellObject *cell; + assert(PyCell_Check(op)); + cell = _Py_CAST(PyCellObject*, op); + cell->ob_ref = value; +} +#define PyCell_SET(op, value) PyCell_SET(_PyObject_CAST(op), (value)) + +#ifdef __cplusplus +} +#endif +#endif /* !Py_TUPLEOBJECT_H */ +#endif /* Py_LIMITED_API */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/ceval.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/ceval.h new file mode 100644 index 000000000..78f740566 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/ceval.h @@ -0,0 +1,25 @@ +#ifndef Py_CPYTHON_CEVAL_H +# error "this header file must not be included directly" +#endif + +PyAPI_FUNC(void) PyEval_SetProfile(Py_tracefunc, PyObject *); +PyAPI_FUNC(void) PyEval_SetProfileAllThreads(Py_tracefunc, PyObject *); +PyAPI_FUNC(void) PyEval_SetTrace(Py_tracefunc, PyObject *); +PyAPI_FUNC(void) PyEval_SetTraceAllThreads(Py_tracefunc, PyObject *); + +/* 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, struct _PyInterpreterFrame *f, int exc); + +PyAPI_FUNC(Py_ssize_t) PyUnstable_Eval_RequestCodeExtraIndex(freefunc); +// Old name -- remove when this API changes: +_Py_DEPRECATED_EXTERNALLY(3.12) static inline Py_ssize_t +_PyEval_RequestCodeExtraIndex(freefunc f) { + return PyUnstable_Eval_RequestCodeExtraIndex(f); +} + +PyAPI_FUNC(int) _PyEval_SliceIndex(PyObject *, Py_ssize_t *); +PyAPI_FUNC(int) _PyEval_SliceIndexNotNone(PyObject *, Py_ssize_t *); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/classobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/classobject.h new file mode 100644 index 000000000..d7c9ddd13 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/classobject.h @@ -0,0 +1,71 @@ +/* Former class object interface -- now only bound methods are here */ + +/* Revealing some structures (not for general use) */ + +#ifndef Py_LIMITED_API +#ifndef Py_CLASSOBJECT_H +#define Py_CLASSOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + PyObject_HEAD + 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; +} PyMethodObject; + +PyAPI_DATA(PyTypeObject) PyMethod_Type; + +#define PyMethod_Check(op) Py_IS_TYPE((op), &PyMethod_Type) + +PyAPI_FUNC(PyObject *) PyMethod_New(PyObject *, PyObject *); + +PyAPI_FUNC(PyObject *) PyMethod_Function(PyObject *); +PyAPI_FUNC(PyObject *) PyMethod_Self(PyObject *); + +#define _PyMethod_CAST(meth) \ + (assert(PyMethod_Check(meth)), _Py_CAST(PyMethodObject*, meth)) + +/* Static inline functions for direct access to these values. + Type checks are *not* done, so use with care. */ +static inline PyObject* PyMethod_GET_FUNCTION(PyObject *meth) { + return _PyMethod_CAST(meth)->im_func; +} +#define PyMethod_GET_FUNCTION(meth) PyMethod_GET_FUNCTION(_PyObject_CAST(meth)) + +static inline PyObject* PyMethod_GET_SELF(PyObject *meth) { + return _PyMethod_CAST(meth)->im_self; +} +#define PyMethod_GET_SELF(meth) PyMethod_GET_SELF(_PyObject_CAST(meth)) + +typedef struct { + PyObject_HEAD + PyObject *func; +} PyInstanceMethodObject; + +PyAPI_DATA(PyTypeObject) PyInstanceMethod_Type; + +#define PyInstanceMethod_Check(op) Py_IS_TYPE((op), &PyInstanceMethod_Type) + +PyAPI_FUNC(PyObject *) PyInstanceMethod_New(PyObject *); +PyAPI_FUNC(PyObject *) PyInstanceMethod_Function(PyObject *); + +#define _PyInstanceMethod_CAST(meth) \ + (assert(PyInstanceMethod_Check(meth)), \ + _Py_CAST(PyInstanceMethodObject*, meth)) + +/* Static inline function for direct access to these values. + Type checks are *not* done, so use with care. */ +static inline PyObject* PyInstanceMethod_GET_FUNCTION(PyObject *meth) { + return _PyInstanceMethod_CAST(meth)->func; +} +#define PyInstanceMethod_GET_FUNCTION(meth) PyInstanceMethod_GET_FUNCTION(_PyObject_CAST(meth)) + +#ifdef __cplusplus +} +#endif +#endif // !Py_CLASSOBJECT_H +#endif // !Py_LIMITED_API diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/code.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/code.h new file mode 100644 index 000000000..58d93fcfc --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/code.h @@ -0,0 +1,357 @@ +/* Definitions for bytecode */ + +#ifndef Py_LIMITED_API +#ifndef Py_CODE_H +#define Py_CODE_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Count of all local monitoring events */ +#define _PY_MONITORING_LOCAL_EVENTS 10 +/* Count of all "real" monitoring events (not derived from other events) */ +#define _PY_MONITORING_UNGROUPED_EVENTS 15 +/* Count of all monitoring events */ +#define _PY_MONITORING_EVENTS 17 + +/* Tables of which tools are active for each monitored event. */ +typedef struct _Py_LocalMonitors { + uint8_t tools[_PY_MONITORING_LOCAL_EVENTS]; +} _Py_LocalMonitors; + +typedef struct _Py_GlobalMonitors { + uint8_t tools[_PY_MONITORING_UNGROUPED_EVENTS]; +} _Py_GlobalMonitors; + + +typedef struct { + PyObject *_co_code; + PyObject *_co_varnames; + PyObject *_co_cellvars; + PyObject *_co_freevars; +} _PyCoCached; + +/* Ancillary data structure used for instrumentation. + Line instrumentation creates an array of + these. One entry per code unit.*/ +typedef struct { + uint8_t original_opcode; + int8_t line_delta; +} _PyCoLineInstrumentationData; + + +typedef struct { + int size; + int capacity; + struct _PyExecutorObject *executors[1]; +} _PyExecutorArray; + +/* Main data structure used for instrumentation. + * This is allocated when needed for instrumentation + */ +typedef struct { + /* Monitoring specific to this code object */ + _Py_LocalMonitors local_monitors; + /* Monitoring that is active on this code object */ + _Py_LocalMonitors active_monitors; + /* The tools that are to be notified for events for the matching code unit */ + uint8_t *tools; + /* Information to support line events */ + _PyCoLineInstrumentationData *lines; + /* The tools that are to be notified for line events for the matching code unit */ + uint8_t *line_tools; + /* Information to support instruction events */ + /* The underlying instructions, which can themselves be instrumented */ + uint8_t *per_instruction_opcodes; + /* The tools that are to be notified for instruction events for the matching code unit */ + uint8_t *per_instruction_tools; +} _PyCoMonitoringData; + +// To avoid repeating ourselves in deepfreeze.py, all PyCodeObject members are +// defined in this macro: +#define _PyCode_DEF(SIZE) { \ + PyObject_VAR_HEAD \ + \ + /* Note only the following fields are used in hash and/or comparisons \ + * \ + * - co_name \ + * - co_argcount \ + * - co_posonlyargcount \ + * - co_kwonlyargcount \ + * - co_nlocals \ + * - co_stacksize \ + * - co_flags \ + * - co_firstlineno \ + * - co_consts \ + * - co_names \ + * - co_localsplusnames \ + * 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. \ + */ \ + \ + /* These fields are set with provided values on new code objects. */ \ + \ + /* The hottest fields (in the eval loop) are grouped here at the top. */ \ + PyObject *co_consts; /* list (constants used) */ \ + PyObject *co_names; /* list of strings (names used) */ \ + PyObject *co_exceptiontable; /* Byte string encoding exception handling \ + table */ \ + int co_flags; /* CO_..., see below */ \ + \ + /* The rest are not so impactful on performance. */ \ + int co_argcount; /* #arguments, except *args */ \ + int co_posonlyargcount; /* #positional only arguments */ \ + int co_kwonlyargcount; /* #keyword only arguments */ \ + int co_stacksize; /* #entries needed for evaluation stack */ \ + int co_firstlineno; /* first source line number */ \ + \ + /* redundant values (derived from co_localsplusnames and \ + co_localspluskinds) */ \ + int co_nlocalsplus; /* number of local + cell + free variables */ \ + int co_framesize; /* Size of frame in words */ \ + int co_nlocals; /* number of local variables */ \ + int co_ncellvars; /* total number of cell variables */ \ + int co_nfreevars; /* number of free variables */ \ + uint32_t co_version; /* version number */ \ + \ + PyObject *co_localsplusnames; /* tuple mapping offsets to names */ \ + PyObject *co_localspluskinds; /* Bytes mapping to local kinds (one byte \ + per variable) */ \ + PyObject *co_filename; /* unicode (where it was loaded from) */ \ + PyObject *co_name; /* unicode (name, for reference) */ \ + PyObject *co_qualname; /* unicode (qualname, for reference) */ \ + PyObject *co_linetable; /* bytes object that holds location info */ \ + PyObject *co_weakreflist; /* to support weakrefs to code objects */ \ + _PyExecutorArray *co_executors; /* executors from optimizer */ \ + _PyCoCached *_co_cached; /* cached co_* attributes */ \ + uintptr_t _co_instrumentation_version; /* current instrumentation version */ \ + _PyCoMonitoringData *_co_monitoring; /* Monitoring data */ \ + int _co_firsttraceable; /* index of first traceable instruction */ \ + /* 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; \ + char co_code_adaptive[(SIZE)]; \ +} + +/* Bytecode object */ +struct PyCodeObject _PyCode_DEF(1); + +/* 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_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 + +#define CO_NO_MONITORING_EVENTS 0x2000000 + +/* 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 21 /* Max static block nesting within a function */ + +PyAPI_DATA(PyTypeObject) PyCode_Type; + +#define PyCode_Check(op) Py_IS_TYPE((op), &PyCode_Type) + +static inline Py_ssize_t PyCode_GetNumFree(PyCodeObject *op) { + assert(PyCode_Check(op)); + return op->co_nfreevars; +} + +static inline int PyUnstable_Code_GetFirstFree(PyCodeObject *op) { + assert(PyCode_Check(op)); + return op->co_nlocalsplus - op->co_nfreevars; +} + +Py_DEPRECATED(3.13) static inline int PyCode_GetFirstFree(PyCodeObject *op) { + return PyUnstable_Code_GetFirstFree(op); +} + +/* Unstable public interface */ +PyAPI_FUNC(PyCodeObject *) PyUnstable_Code_New( + int, int, int, int, int, PyObject *, PyObject *, + PyObject *, PyObject *, PyObject *, PyObject *, + PyObject *, PyObject *, PyObject *, int, PyObject *, + PyObject *); + +PyAPI_FUNC(PyCodeObject *) PyUnstable_Code_NewWithPosOnlyArgs( + int, int, int, int, int, int, PyObject *, PyObject *, + PyObject *, PyObject *, PyObject *, PyObject *, + PyObject *, PyObject *, PyObject *, int, PyObject *, + PyObject *); + /* same as struct above */ +// Old names -- remove when this API changes: +_Py_DEPRECATED_EXTERNALLY(3.12) static inline PyCodeObject * +PyCode_New( + int a, int b, int c, int d, int e, PyObject *f, PyObject *g, + PyObject *h, PyObject *i, PyObject *j, PyObject *k, + PyObject *l, PyObject *m, PyObject *n, int o, PyObject *p, + PyObject *q) +{ + return PyUnstable_Code_New( + a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q); +} +_Py_DEPRECATED_EXTERNALLY(3.12) static inline PyCodeObject * +PyCode_NewWithPosOnlyArgs( + int a, int poac, int b, int c, int d, int e, PyObject *f, PyObject *g, + PyObject *h, PyObject *i, PyObject *j, PyObject *k, + PyObject *l, PyObject *m, PyObject *n, int o, PyObject *p, + PyObject *q) +{ + return PyUnstable_Code_NewWithPosOnlyArgs( + a, poac, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q); +} + +/* 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); + +PyAPI_FUNC(int) PyCode_Addr2Location(PyCodeObject *, int, int *, int *, int *, int *); + +#define PY_FOREACH_CODE_EVENT(V) \ + V(CREATE) \ + V(DESTROY) + +typedef enum { + #define PY_DEF_EVENT(op) PY_CODE_EVENT_##op, + PY_FOREACH_CODE_EVENT(PY_DEF_EVENT) + #undef PY_DEF_EVENT +} PyCodeEvent; + + +/* + * A callback that is invoked for different events in a code object's lifecycle. + * + * The callback is invoked with a borrowed reference to co, after it is + * created and before it is destroyed. + * + * If the callback sets an exception, it must return -1. Otherwise + * it should return 0. + */ +typedef int (*PyCode_WatchCallback)( + PyCodeEvent event, + PyCodeObject* co); + +/* + * Register a per-interpreter callback that will be invoked for code object + * lifecycle events. + * + * Returns a handle that may be passed to PyCode_ClearWatcher on success, + * or -1 and sets an error if no more handles are available. + */ +PyAPI_FUNC(int) PyCode_AddWatcher(PyCode_WatchCallback callback); + +/* + * Clear the watcher associated with the watcher_id handle. + * + * Returns 0 on success or -1 if no watcher exists for the provided id. + */ +PyAPI_FUNC(int) PyCode_ClearWatcher(int watcher_id); + +/* for internal use only */ +struct _opaque { + int computed_line; + const uint8_t *lo_next; + const uint8_t *limit; +}; + +typedef struct _line_offsets { + int ar_start; + int ar_end; + int ar_line; + struct _opaque opaque; +} PyCodeAddressRange; + +/* 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(int lasti, PyCodeAddressRange *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) PyUnstable_Code_GetExtra( + PyObject *code, Py_ssize_t index, void **extra); +PyAPI_FUNC(int) PyUnstable_Code_SetExtra( + PyObject *code, Py_ssize_t index, void *extra); +// Old names -- remove when this API changes: +_Py_DEPRECATED_EXTERNALLY(3.12) static inline int +_PyCode_GetExtra(PyObject *code, Py_ssize_t index, void **extra) +{ + return PyUnstable_Code_GetExtra(code, index, extra); +} +_Py_DEPRECATED_EXTERNALLY(3.12) static inline int +_PyCode_SetExtra(PyObject *code, Py_ssize_t index, void *extra) +{ + return PyUnstable_Code_SetExtra(code, index, extra); +} + +/* Equivalent to getattr(code, 'co_code') in Python. + Returns a strong reference to a bytes object. */ +PyAPI_FUNC(PyObject *) PyCode_GetCode(PyCodeObject *code); +/* Equivalent to getattr(code, 'co_varnames') in Python. */ +PyAPI_FUNC(PyObject *) PyCode_GetVarnames(PyCodeObject *code); +/* Equivalent to getattr(code, 'co_cellvars') in Python. */ +PyAPI_FUNC(PyObject *) PyCode_GetCellvars(PyCodeObject *code); +/* Equivalent to getattr(code, 'co_freevars') in Python. */ +PyAPI_FUNC(PyObject *) PyCode_GetFreevars(PyCodeObject *code); + +typedef enum _PyCodeLocationInfoKind { + /* short forms are 0 to 9 */ + PY_CODE_LOCATION_INFO_SHORT0 = 0, + /* one lineforms are 10 to 12 */ + PY_CODE_LOCATION_INFO_ONE_LINE0 = 10, + PY_CODE_LOCATION_INFO_ONE_LINE1 = 11, + PY_CODE_LOCATION_INFO_ONE_LINE2 = 12, + + PY_CODE_LOCATION_INFO_NO_COLUMNS = 13, + PY_CODE_LOCATION_INFO_LONG = 14, + PY_CODE_LOCATION_INFO_NONE = 15 +} _PyCodeLocationInfoKind; + +#ifdef __cplusplus +} +#endif +#endif // !Py_CODE_H +#endif // !Py_LIMITED_API diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/compile.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/compile.h new file mode 100644 index 000000000..cfdb7080d --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/compile.h @@ -0,0 +1,50 @@ +#ifndef Py_CPYTHON_COMPILE_H +# error "this header file must not be included directly" +#endif + +/* Public interface */ +#define PyCF_MASK (CO_FUTURE_DIVISION | CO_FUTURE_ABSOLUTE_IMPORT | \ + CO_FUTURE_WITH_STATEMENT | CO_FUTURE_PRINT_FUNCTION | \ + 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. */ +#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_ALLOW_INCOMPLETE_INPUT 0x4000 +#define PyCF_OPTIMIZED_AST (0x8000 | PyCF_ONLY_AST) +#define PyCF_COMPILE_MASK (PyCF_ONLY_AST | PyCF_ALLOW_TOP_LEVEL_AWAIT | \ + PyCF_TYPE_COMMENTS | PyCF_DONT_IMPLY_DEDENT | \ + PyCF_ALLOW_INCOMPLETE_INPUT | PyCF_OPTIMIZED_AST) + +typedef struct { + int cf_flags; /* bitmask of CO_xxx flags relevant to future */ + int cf_feature_version; /* minor Python version (PyCF_ONLY_AST) */ +} PyCompilerFlags; + +#define _PyCompilerFlags_INIT \ + (PyCompilerFlags){.cf_flags = 0, .cf_feature_version = PY_MINOR_VERSION} + +/* Future feature support */ + +#define FUTURE_NESTED_SCOPES "nested_scopes" +#define FUTURE_GENERATORS "generators" +#define FUTURE_DIVISION "division" +#define FUTURE_ABSOLUTE_IMPORT "absolute_import" +#define FUTURE_WITH_STATEMENT "with_statement" +#define FUTURE_PRINT_FUNCTION "print_function" +#define FUTURE_UNICODE_LITERALS "unicode_literals" +#define FUTURE_BARRY_AS_BDFL "barry_as_FLUFL" +#define FUTURE_GENERATOR_STOP "generator_stop" +#define FUTURE_ANNOTATIONS "annotations" + +#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); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/complexobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/complexobject.h new file mode 100644 index 000000000..fbdc6a91f --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/complexobject.h @@ -0,0 +1,33 @@ +#ifndef Py_CPYTHON_COMPLEXOBJECT_H +# error "this header file must not be included directly" +#endif + +typedef struct { + double real; + double imag; +} Py_complex; + +// Operations on complex numbers. +PyAPI_FUNC(Py_complex) _Py_c_sum(Py_complex, Py_complex); +PyAPI_FUNC(Py_complex) _Py_c_diff(Py_complex, Py_complex); +PyAPI_FUNC(Py_complex) _Py_c_neg(Py_complex); +PyAPI_FUNC(Py_complex) _Py_c_prod(Py_complex, Py_complex); +PyAPI_FUNC(Py_complex) _Py_c_quot(Py_complex, Py_complex); +PyAPI_FUNC(Py_complex) _Py_c_pow(Py_complex, Py_complex); +PyAPI_FUNC(double) _Py_c_abs(Py_complex); + + +/* Complex object interface */ + +/* +PyComplexObject represents a complex number with double-precision +real and imaginary parts. +*/ +typedef struct { + PyObject_HEAD + Py_complex cval; +} PyComplexObject; + +PyAPI_FUNC(PyObject *) PyComplex_FromCComplex(Py_complex); + +PyAPI_FUNC(Py_complex) PyComplex_AsCComplex(PyObject *op); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/context.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/context.h new file mode 100644 index 000000000..a3249fc29 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/context.h @@ -0,0 +1,74 @@ +#ifndef Py_LIMITED_API +#ifndef Py_CONTEXT_H +#define Py_CONTEXT_H +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_DATA(PyTypeObject) PyContext_Type; +typedef struct _pycontextobject PyContext; + +PyAPI_DATA(PyTypeObject) PyContextVar_Type; +typedef struct _pycontextvarobject PyContextVar; + +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) + + +PyAPI_FUNC(PyObject *) PyContext_New(void); +PyAPI_FUNC(PyObject *) PyContext_Copy(PyObject *); +PyAPI_FUNC(PyObject *) PyContext_CopyCurrent(void); + +PyAPI_FUNC(int) PyContext_Enter(PyObject *); +PyAPI_FUNC(int) PyContext_Exit(PyObject *); + + +/* Create a new context variable. + + default_value can be NULL. +*/ +PyAPI_FUNC(PyObject *) PyContextVar_New( + const char *name, PyObject *default_value); + + +/* Get a value for the variable. + + Returns -1 if an error occurred during lookup. + + Returns 0 if value either was or was not found. + + If value was found, *value will point to it. + If not, it will point to: + + - default_value, if not NULL; + - the default value of "var", if not NULL; + - NULL. + + '*value' will be a new ref, if not NULL. +*/ +PyAPI_FUNC(int) PyContextVar_Get( + PyObject *var, PyObject *default_value, PyObject **value); + + +/* Set a new value for the variable. + Returns NULL if an error occurs. +*/ +PyAPI_FUNC(PyObject *) PyContextVar_Set(PyObject *var, PyObject *value); + + +/* Reset a variable to its previous value. + Returns 0 on success, -1 on error. +*/ +PyAPI_FUNC(int) PyContextVar_Reset(PyObject *var, PyObject *token); + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_CONTEXT_H */ +#endif /* !Py_LIMITED_API */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/critical_section.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/critical_section.h new file mode 100644 index 000000000..35db3fb6a --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/critical_section.h @@ -0,0 +1,134 @@ +#ifndef Py_CPYTHON_CRITICAL_SECTION_H +# error "this header file must not be included directly" +#endif + +// Python critical sections +// +// Conceptually, critical sections are a deadlock avoidance layer on top of +// per-object locks. These helpers, in combination with those locks, replace +// our usage of the global interpreter lock to provide thread-safety for +// otherwise thread-unsafe objects, such as dict. +// +// NOTE: These APIs are no-ops in non-free-threaded builds. +// +// Straightforward per-object locking could introduce deadlocks that were not +// present when running with the GIL. Threads may hold locks for multiple +// objects simultaneously because Python operations can nest. If threads were +// to acquire the same locks in different orders, they would deadlock. +// +// One way to avoid deadlocks is to allow threads to hold only the lock (or +// locks) for a single operation at a time (typically a single lock, but some +// operations involve two locks). When a thread begins a nested operation it +// could suspend the locks for any outer operation: before beginning the nested +// operation, the locks for the outer operation are released and when the +// nested operation completes, the locks for the outer operation are +// reacquired. +// +// To improve performance, this API uses a variation of the above scheme. +// Instead of immediately suspending locks any time a nested operation begins, +// locks are only suspended if the thread would block. This reduces the number +// of lock acquisitions and releases for nested operations, while still +// avoiding deadlocks. +// +// Additionally, the locks for any active operation are suspended around +// other potentially blocking operations, such as I/O. This is because the +// interaction between locks and blocking operations can lead to deadlocks in +// the same way as the interaction between multiple locks. +// +// Each thread's critical sections and their corresponding locks are tracked in +// a stack in `PyThreadState.critical_section`. When a thread calls +// `_PyThreadState_Detach()`, such as before a blocking I/O operation or when +// waiting to acquire a lock, the thread suspends all of its active critical +// sections, temporarily releasing the associated locks. When the thread calls +// `_PyThreadState_Attach()`, it resumes the top-most (i.e., most recent) +// critical section by reacquiring the associated lock or locks. See +// `_PyCriticalSection_Resume()`. +// +// NOTE: Only the top-most critical section is guaranteed to be active. +// Operations that need to lock two objects at once must use +// `Py_BEGIN_CRITICAL_SECTION2()`. You *CANNOT* use nested critical sections +// to lock more than one object at once, because the inner critical section +// may suspend the outer critical sections. This API does not provide a way +// to lock more than two objects at once (though it could be added later +// if actually needed). +// +// NOTE: Critical sections implicitly behave like reentrant locks because +// attempting to acquire the same lock will suspend any outer (earlier) +// critical sections. However, they are less efficient for this use case than +// purposefully designed reentrant locks. +// +// Example usage: +// Py_BEGIN_CRITICAL_SECTION(op); +// ... +// Py_END_CRITICAL_SECTION(); +// +// To lock two objects at once: +// Py_BEGIN_CRITICAL_SECTION2(op1, op2); +// ... +// Py_END_CRITICAL_SECTION2(); + +typedef struct PyCriticalSection PyCriticalSection; +typedef struct PyCriticalSection2 PyCriticalSection2; + +PyAPI_FUNC(void) +PyCriticalSection_Begin(PyCriticalSection *c, PyObject *op); + +PyAPI_FUNC(void) +PyCriticalSection_End(PyCriticalSection *c); + +PyAPI_FUNC(void) +PyCriticalSection2_Begin(PyCriticalSection2 *c, PyObject *a, PyObject *b); + +PyAPI_FUNC(void) +PyCriticalSection2_End(PyCriticalSection2 *c); + +#ifndef Py_GIL_DISABLED +# define Py_BEGIN_CRITICAL_SECTION(op) \ + { +# define Py_END_CRITICAL_SECTION() \ + } +# define Py_BEGIN_CRITICAL_SECTION2(a, b) \ + { +# define Py_END_CRITICAL_SECTION2() \ + } +#else /* !Py_GIL_DISABLED */ + +// NOTE: the contents of this struct are private and may change betweeen +// Python releases without a deprecation period. +struct PyCriticalSection { + // Tagged pointer to an outer active critical section (or 0). + uintptr_t _cs_prev; + + // Mutex used to protect critical section + PyMutex *_cs_mutex; +}; + +// A critical section protected by two mutexes. Use +// Py_BEGIN_CRITICAL_SECTION2 and Py_END_CRITICAL_SECTION2. +// NOTE: the contents of this struct are private and may change betweeen +// Python releases without a deprecation period. +struct PyCriticalSection2 { + PyCriticalSection _cs_base; + + PyMutex *_cs_mutex2; +}; + +# define Py_BEGIN_CRITICAL_SECTION(op) \ + { \ + PyCriticalSection _py_cs; \ + PyCriticalSection_Begin(&_py_cs, _PyObject_CAST(op)) + +# define Py_END_CRITICAL_SECTION() \ + PyCriticalSection_End(&_py_cs); \ + } + +# define Py_BEGIN_CRITICAL_SECTION2(a, b) \ + { \ + PyCriticalSection2 _py_cs2; \ + PyCriticalSection2_Begin(&_py_cs2, _PyObject_CAST(a), _PyObject_CAST(b)) + +# define Py_END_CRITICAL_SECTION2() \ + PyCriticalSection2_End(&_py_cs2); \ + } + +#endif diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/descrobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/descrobject.h new file mode 100644 index 000000000..bbad8b59c --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/descrobject.h @@ -0,0 +1,62 @@ +#ifndef Py_CPYTHON_DESCROBJECT_H +# error "this header file must not be included directly" +#endif + +typedef PyObject *(*wrapperfunc)(PyObject *self, PyObject *args, + void *wrapped); + +typedef PyObject *(*wrapperfunc_kwds)(PyObject *self, PyObject *args, + void *wrapped, PyObject *kwds); + +struct wrapperbase { + const char *name; + int offset; + void *function; + wrapperfunc wrapper; + const char *doc; + int flags; + PyObject *name_strobj; +}; + +/* Flags for above struct */ +#define PyWrapperFlag_KEYWORDS 1 /* wrapper function takes keyword args */ + +/* Various kinds of descriptor objects */ + +typedef struct { + PyObject_HEAD + PyTypeObject *d_type; + PyObject *d_name; + PyObject *d_qualname; +} PyDescrObject; + +#define PyDescr_COMMON PyDescrObject d_common + +#define PyDescr_TYPE(x) (((PyDescrObject *)(x))->d_type) +#define PyDescr_NAME(x) (((PyDescrObject *)(x))->d_name) + +typedef struct { + PyDescr_COMMON; + PyMethodDef *d_method; + vectorcallfunc vectorcall; +} PyMethodDescrObject; + +typedef struct { + PyDescr_COMMON; + PyMemberDef *d_member; +} PyMemberDescrObject; + +typedef struct { + PyDescr_COMMON; + PyGetSetDef *d_getset; +} PyGetSetDescrObject; + +typedef struct { + PyDescr_COMMON; + struct wrapperbase *d_base; + void *d_wrapped; /* This can be any function pointer */ +} PyWrapperDescrObject; + +PyAPI_FUNC(PyObject *) PyDescr_NewWrapper(PyTypeObject *, + struct wrapperbase *, void *); +PyAPI_FUNC(int) PyDescr_IsData(PyObject *); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/dictobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/dictobject.h new file mode 100644 index 000000000..3fd23b931 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/dictobject.h @@ -0,0 +1,102 @@ +#ifndef Py_CPYTHON_DICTOBJECT_H +# error "this header file must not be included directly" +#endif + +typedef struct _dictkeysobject PyDictKeysObject; +typedef struct _dictvalues PyDictValues; + +/* 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 */ +#ifdef Py_BUILD_CORE + /* Bits 0-7 are for dict watchers. + * Bits 8-11 are for the watched mutation counter (used by tier2 optimization) + * The remaining bits (12-63) are the actual version tag. */ + uint64_t ma_version_tag; +#else + Py_DEPRECATED(3.12) uint64_t ma_version_tag; +#endif + + 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 */ + PyDictValues *ma_values; +} PyDictObject; + +PyAPI_FUNC(PyObject *) _PyDict_GetItem_KnownHash(PyObject *mp, PyObject *key, + Py_hash_t hash); +PyAPI_FUNC(PyObject *) _PyDict_GetItemStringWithError(PyObject *, const char *); +PyAPI_FUNC(PyObject *) PyDict_SetDefault( + PyObject *mp, PyObject *key, PyObject *defaultobj); + +// Inserts `key` with a value `default_value`, if `key` is not already present +// in the dictionary. If `result` is not NULL, then the value associated +// with `key` is returned in `*result` (either the existing value, or the now +// inserted `default_value`). +// Returns: +// -1 on error +// 0 if `key` was not present and `default_value` was inserted +// 1 if `key` was present and `default_value` was not inserted +PyAPI_FUNC(int) PyDict_SetDefaultRef(PyObject *mp, PyObject *key, PyObject *default_value, PyObject **result); + +/* Get the number of items of a dictionary. */ +static inline Py_ssize_t PyDict_GET_SIZE(PyObject *op) { + PyDictObject *mp; + assert(PyDict_Check(op)); + mp = _Py_CAST(PyDictObject*, op); +#ifdef Py_GIL_DISABLED + return _Py_atomic_load_ssize_relaxed(&mp->ma_used); +#else + return mp->ma_used; +#endif +} +#define PyDict_GET_SIZE(op) PyDict_GET_SIZE(_PyObject_CAST(op)) + +PyAPI_FUNC(int) PyDict_ContainsString(PyObject *mp, const char *key); + +PyAPI_FUNC(PyObject *) _PyDict_NewPresized(Py_ssize_t minused); + +PyAPI_FUNC(int) PyDict_Pop(PyObject *dict, PyObject *key, PyObject **result); +PyAPI_FUNC(int) PyDict_PopString(PyObject *dict, const char *key, PyObject **result); +PyAPI_FUNC(PyObject *) _PyDict_Pop(PyObject *dict, PyObject *key, PyObject *default_value); + +/* Dictionary watchers */ + +#define PY_FOREACH_DICT_EVENT(V) \ + V(ADDED) \ + V(MODIFIED) \ + V(DELETED) \ + V(CLONED) \ + V(CLEARED) \ + V(DEALLOCATED) + +typedef enum { + #define PY_DEF_EVENT(EVENT) PyDict_EVENT_##EVENT, + PY_FOREACH_DICT_EVENT(PY_DEF_EVENT) + #undef PY_DEF_EVENT +} PyDict_WatchEvent; + +// Callback to be invoked when a watched dict is cleared, dealloced, or modified. +// In clear/dealloc case, key and new_value will be NULL. Otherwise, new_value will be the +// new value for key, NULL if key is being deleted. +typedef int(*PyDict_WatchCallback)(PyDict_WatchEvent event, PyObject* dict, PyObject* key, PyObject* new_value); + +// Register/unregister a dict-watcher callback +PyAPI_FUNC(int) PyDict_AddWatcher(PyDict_WatchCallback callback); +PyAPI_FUNC(int) PyDict_ClearWatcher(int watcher_id); + +// Mark given dictionary as "watched" (callback will be called if it is modified) +PyAPI_FUNC(int) PyDict_Watch(int watcher_id, PyObject* dict); +PyAPI_FUNC(int) PyDict_Unwatch(int watcher_id, PyObject* dict); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/fileobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/fileobject.h new file mode 100644 index 000000000..e2d89c522 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/fileobject.h @@ -0,0 +1,16 @@ +#ifndef Py_CPYTHON_FILEOBJECT_H +# error "this header file must not be included directly" +#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); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/fileutils.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/fileutils.h new file mode 100644 index 000000000..b386ad107 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/fileutils.h @@ -0,0 +1,8 @@ +#ifndef Py_CPYTHON_FILEUTILS_H +# error "this header file must not be included directly" +#endif + +// Used by _testcapi which must not use the internal C API +PyAPI_FUNC(FILE*) _Py_fopen_obj( + PyObject *path, + const char *mode); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/floatobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/floatobject.h new file mode 100644 index 000000000..127093098 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/floatobject.h @@ -0,0 +1,27 @@ +#ifndef Py_CPYTHON_FLOATOBJECT_H +# error "this header file must not be included directly" +#endif + +typedef struct { + PyObject_HEAD + double ob_fval; +} PyFloatObject; + +#define _PyFloat_CAST(op) \ + (assert(PyFloat_Check(op)), _Py_CAST(PyFloatObject*, op)) + +// Static inline version of PyFloat_AsDouble() trading safety for speed. +// It doesn't check if op is a double object. +static inline double PyFloat_AS_DOUBLE(PyObject *op) { + return _PyFloat_CAST(op)->ob_fval; +} +#define PyFloat_AS_DOUBLE(op) PyFloat_AS_DOUBLE(_PyObject_CAST(op)) + + +PyAPI_FUNC(int) PyFloat_Pack2(double x, char *p, int le); +PyAPI_FUNC(int) PyFloat_Pack4(double x, char *p, int le); +PyAPI_FUNC(int) PyFloat_Pack8(double x, char *p, int le); + +PyAPI_FUNC(double) PyFloat_Unpack2(const char *p, int le); +PyAPI_FUNC(double) PyFloat_Unpack4(const char *p, int le); +PyAPI_FUNC(double) PyFloat_Unpack8(const char *p, int le); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/frameobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/frameobject.h new file mode 100644 index 000000000..dbbfbb510 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/frameobject.h @@ -0,0 +1,35 @@ +/* Frame object interface */ + +#ifndef Py_CPYTHON_FRAMEOBJECT_H +# error "this header file must not be included directly" +#endif + +/* Standard object interface */ + +PyAPI_FUNC(PyFrameObject *) PyFrame_New(PyThreadState *, PyCodeObject *, + PyObject *, PyObject *); + +/* The rest of the interface is specific for frame objects */ + +/* Conversions between "fast locals" and locals in dictionary */ + +PyAPI_FUNC(void) PyFrame_LocalsToFast(PyFrameObject *, int); + +/* -- Caveat emptor -- + * The concept of entry frames is an implementation detail of the CPython + * interpreter. This API is considered unstable and is provided for the + * convenience of debuggers, profilers and state-inspecting tools. Notice that + * this API can be changed in future minor versions if the underlying frame + * mechanism change or the concept of an 'entry frame' or its semantics becomes + * obsolete or outdated. */ + +PyAPI_FUNC(int) _PyFrame_IsEntryFrame(PyFrameObject *frame); + +PyAPI_FUNC(int) PyFrame_FastToLocalsWithError(PyFrameObject *f); +PyAPI_FUNC(void) PyFrame_FastToLocals(PyFrameObject *); + + +typedef struct { + PyObject_HEAD + PyFrameObject* frame; +} PyFrameLocalsProxyObject; diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/funcobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/funcobject.h new file mode 100644 index 000000000..5433ba48e --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/funcobject.h @@ -0,0 +1,184 @@ +/* Function object interface */ + +#ifndef Py_LIMITED_API +#ifndef Py_FUNCOBJECT_H +#define Py_FUNCOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + + +#define _Py_COMMON_FIELDS(PREFIX) \ + PyObject *PREFIX ## globals; \ + PyObject *PREFIX ## builtins; \ + PyObject *PREFIX ## name; \ + PyObject *PREFIX ## qualname; \ + PyObject *PREFIX ## code; /* A code object, the __code__ attribute */ \ + PyObject *PREFIX ## defaults; /* NULL or a tuple */ \ + PyObject *PREFIX ## kwdefaults; /* NULL or a dict */ \ + PyObject *PREFIX ## closure; /* NULL or a tuple of cell objects */ + +typedef struct { + _Py_COMMON_FIELDS(fc_) +} PyFrameConstructor; + +/* Function objects and code objects should not be confused with each other: + * + * Function objects are created by the execution of the 'def' statement. + * They reference a code object in their __code__ attribute, which is a + * purely syntactic object, i.e. nothing more than a compiled version of some + * source code lines. There is one code object per source code "fragment", + * but each code object can be referenced by zero or many function objects + * depending only on how many times the 'def' statement in the source was + * executed so far. + */ + +typedef struct { + PyObject_HEAD + _Py_COMMON_FIELDS(func_) + PyObject *func_doc; /* The __doc__ attribute, can be anything */ + PyObject *func_dict; /* The __dict__ attribute, a dict or NULL */ + PyObject *func_weakreflist; /* List of weak references */ + PyObject *func_module; /* The __module__ attribute, can be anything */ + PyObject *func_annotations; /* Annotations, a dict or NULL */ + PyObject *func_typeparams; /* Tuple of active type variables or NULL */ + vectorcallfunc vectorcall; + /* Version number for use by specializer. + * Can set to non-zero when we want to specialize. + * Will be set to zero if any of these change: + * defaults + * kwdefaults (only if the object changes, not the contents of the dict) + * code + * annotations + * vectorcall function pointer */ + uint32_t func_version; + + /* Invariant: + * func_closure contains the bindings for func_code->co_freevars, so + * PyTuple_Size(func_closure) == PyCode_GetNumFree(func_code) + * (func_closure may be NULL if PyCode_GetNumFree(func_code) == 0). + */ +} PyFunctionObject; + +#undef _Py_COMMON_FIELDS + +PyAPI_DATA(PyTypeObject) 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 *); +PyAPI_FUNC(PyObject *) PyFunction_GetCode(PyObject *); +PyAPI_FUNC(PyObject *) PyFunction_GetGlobals(PyObject *); +PyAPI_FUNC(PyObject *) PyFunction_GetModule(PyObject *); +PyAPI_FUNC(PyObject *) PyFunction_GetDefaults(PyObject *); +PyAPI_FUNC(int) PyFunction_SetDefaults(PyObject *, PyObject *); +PyAPI_FUNC(void) PyFunction_SetVectorcall(PyFunctionObject *, vectorcallfunc); +PyAPI_FUNC(PyObject *) PyFunction_GetKwDefaults(PyObject *); +PyAPI_FUNC(int) PyFunction_SetKwDefaults(PyObject *, PyObject *); +PyAPI_FUNC(PyObject *) PyFunction_GetClosure(PyObject *); +PyAPI_FUNC(int) PyFunction_SetClosure(PyObject *, PyObject *); +PyAPI_FUNC(PyObject *) PyFunction_GetAnnotations(PyObject *); +PyAPI_FUNC(int) PyFunction_SetAnnotations(PyObject *, PyObject *); + +#define _PyFunction_CAST(func) \ + (assert(PyFunction_Check(func)), _Py_CAST(PyFunctionObject*, func)) + +/* Static inline functions for direct access to these values. + Type checks are *not* done, so use with care. */ +static inline PyObject* PyFunction_GET_CODE(PyObject *func) { + return _PyFunction_CAST(func)->func_code; +} +#define PyFunction_GET_CODE(func) PyFunction_GET_CODE(_PyObject_CAST(func)) + +static inline PyObject* PyFunction_GET_GLOBALS(PyObject *func) { + return _PyFunction_CAST(func)->func_globals; +} +#define PyFunction_GET_GLOBALS(func) PyFunction_GET_GLOBALS(_PyObject_CAST(func)) + +static inline PyObject* PyFunction_GET_MODULE(PyObject *func) { + return _PyFunction_CAST(func)->func_module; +} +#define PyFunction_GET_MODULE(func) PyFunction_GET_MODULE(_PyObject_CAST(func)) + +static inline PyObject* PyFunction_GET_DEFAULTS(PyObject *func) { + return _PyFunction_CAST(func)->func_defaults; +} +#define PyFunction_GET_DEFAULTS(func) PyFunction_GET_DEFAULTS(_PyObject_CAST(func)) + +static inline PyObject* PyFunction_GET_KW_DEFAULTS(PyObject *func) { + return _PyFunction_CAST(func)->func_kwdefaults; +} +#define PyFunction_GET_KW_DEFAULTS(func) PyFunction_GET_KW_DEFAULTS(_PyObject_CAST(func)) + +static inline PyObject* PyFunction_GET_CLOSURE(PyObject *func) { + return _PyFunction_CAST(func)->func_closure; +} +#define PyFunction_GET_CLOSURE(func) PyFunction_GET_CLOSURE(_PyObject_CAST(func)) + +static inline PyObject* PyFunction_GET_ANNOTATIONS(PyObject *func) { + return _PyFunction_CAST(func)->func_annotations; +} +#define PyFunction_GET_ANNOTATIONS(func) PyFunction_GET_ANNOTATIONS(_PyObject_CAST(func)) + +/* The classmethod and staticmethod types lives here, too */ +PyAPI_DATA(PyTypeObject) PyClassMethod_Type; +PyAPI_DATA(PyTypeObject) PyStaticMethod_Type; + +PyAPI_FUNC(PyObject *) PyClassMethod_New(PyObject *); +PyAPI_FUNC(PyObject *) PyStaticMethod_New(PyObject *); + +#define PY_FOREACH_FUNC_EVENT(V) \ + V(CREATE) \ + V(DESTROY) \ + V(MODIFY_CODE) \ + V(MODIFY_DEFAULTS) \ + V(MODIFY_KWDEFAULTS) + +typedef enum { + #define PY_DEF_EVENT(EVENT) PyFunction_EVENT_##EVENT, + PY_FOREACH_FUNC_EVENT(PY_DEF_EVENT) + #undef PY_DEF_EVENT +} PyFunction_WatchEvent; + +/* + * A callback that is invoked for different events in a function's lifecycle. + * + * The callback is invoked with a borrowed reference to func, after it is + * created and before it is modified or destroyed. The callback should not + * modify func. + * + * When a function's code object, defaults, or kwdefaults are modified the + * callback will be invoked with the respective event and new_value will + * contain a borrowed reference to the new value that is about to be stored in + * the function. Otherwise the third argument is NULL. + * + * If the callback returns with an exception set, it must return -1. Otherwise + * it should return 0. + */ +typedef int (*PyFunction_WatchCallback)( + PyFunction_WatchEvent event, + PyFunctionObject *func, + PyObject *new_value); + +/* + * Register a per-interpreter callback that will be invoked for function lifecycle + * events. + * + * Returns a handle that may be passed to PyFunction_ClearWatcher on success, + * or -1 and sets an error if no more handles are available. + */ +PyAPI_FUNC(int) PyFunction_AddWatcher(PyFunction_WatchCallback callback); + +/* + * Clear the watcher associated with the watcher_id handle. + * + * Returns 0 on success or -1 if no watcher exists for the supplied id. + */ +PyAPI_FUNC(int) PyFunction_ClearWatcher(int watcher_id); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_FUNCOBJECT_H */ +#endif /* Py_LIMITED_API */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/genobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/genobject.h new file mode 100644 index 000000000..49e46c277 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/genobject.h @@ -0,0 +1,83 @@ +/* Generator object interface */ + +#ifndef Py_LIMITED_API +#ifndef Py_GENOBJECT_H +#define Py_GENOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +/* --- Generators --------------------------------------------------------- */ + +/* _PyGenObject_HEAD defines the initial segment of generator + and coroutine objects. */ +#define _PyGenObject_HEAD(prefix) \ + PyObject_HEAD \ + /* List of weak reference. */ \ + PyObject *prefix##_weakreflist; \ + /* Name of the generator. */ \ + PyObject *prefix##_name; \ + /* Qualified name of the generator. */ \ + PyObject *prefix##_qualname; \ + _PyErr_StackItem prefix##_exc_state; \ + PyObject *prefix##_origin_or_finalizer; \ + char prefix##_hooks_inited; \ + char prefix##_closed; \ + char prefix##_running_async; \ + /* The frame */ \ + int8_t prefix##_frame_state; \ + PyObject *prefix##_iframe[1]; \ + +typedef struct { + /* The gi_ prefix is intended to remind of generator-iterator. */ + _PyGenObject_HEAD(gi) +} PyGenObject; + +PyAPI_DATA(PyTypeObject) PyGen_Type; + +#define PyGen_Check(op) PyObject_TypeCheck((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 *, + PyObject *name, PyObject *qualname); +PyAPI_FUNC(PyCodeObject *) PyGen_GetCode(PyGenObject *gen); + + +/* --- PyCoroObject ------------------------------------------------------- */ + +typedef struct { + _PyGenObject_HEAD(cr) +} PyCoroObject; + +PyAPI_DATA(PyTypeObject) PyCoro_Type; + +#define PyCoro_CheckExact(op) Py_IS_TYPE((op), &PyCoro_Type) +PyAPI_FUNC(PyObject *) PyCoro_New(PyFrameObject *, + PyObject *name, PyObject *qualname); + + +/* --- Asynchronous Generators -------------------------------------------- */ + +typedef struct { + _PyGenObject_HEAD(ag) +} PyAsyncGenObject; + +PyAPI_DATA(PyTypeObject) PyAsyncGen_Type; +PyAPI_DATA(PyTypeObject) _PyAsyncGenASend_Type; + +PyAPI_FUNC(PyObject *) PyAsyncGen_New(PyFrameObject *, + PyObject *name, PyObject *qualname); + +#define PyAsyncGen_CheckExact(op) Py_IS_TYPE((op), &PyAsyncGen_Type) + +#define PyAsyncGenASend_CheckExact(op) Py_IS_TYPE((op), &_PyAsyncGenASend_Type) + + +#undef _PyGenObject_HEAD + +#ifdef __cplusplus +} +#endif +#endif /* !Py_GENOBJECT_H */ +#endif /* Py_LIMITED_API */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/import.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/import.h new file mode 100644 index 000000000..7daf0b84f --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/import.h @@ -0,0 +1,25 @@ +#ifndef Py_CPYTHON_IMPORT_H +# error "this header file must not be included directly" +#endif + +PyMODINIT_FUNC PyInit__imp(void); + +struct _inittab { + const char *name; /* ASCII encoded string */ + PyObject* (*initfunc)(void); +}; +// This is not used after Py_Initialize() is called. +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; + int is_package; +}; + +/* Embedding apps may change this pointer to point to their favorite + collection of frozen modules: */ + +PyAPI_DATA(const struct _frozen *) PyImport_FrozenModules; diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/initconfig.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/initconfig.h new file mode 100644 index 000000000..5da5ef9e5 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/initconfig.h @@ -0,0 +1,274 @@ +#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 PyPreConfig { + 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 ---------------------------------------------- */ + +/* This structure is best documented in the Doc/c-api/init_config.rst file. */ +typedef struct PyConfig { + int _config_init; /* _PyConfigInitEnum value */ + + int isolated; + int use_environment; + int dev_mode; + int install_signal_handlers; + int use_hash_seed; + unsigned long hash_seed; + int faulthandler; + int tracemalloc; + int perf_profiling; + int import_time; + int code_debug_ranges; + int show_ref_count; + int dump_refs; + wchar_t *dump_refs_file; + int malloc_stats; + wchar_t *filesystem_encoding; + wchar_t *filesystem_errors; + wchar_t *pycache_prefix; + int parse_argv; + PyWideStringList orig_argv; + PyWideStringList argv; + PyWideStringList xoptions; + PyWideStringList warnoptions; + int site_import; + int bytes_warning; + int warn_default_encoding; + int inspect; + int interactive; + int optimization_level; + int parser_debug; + int write_bytecode; + int verbose; + int quiet; + int user_site_directory; + int configure_c_stdio; + int buffered_stdio; + wchar_t *stdio_encoding; + wchar_t *stdio_errors; +#ifdef MS_WINDOWS + int legacy_windows_stdio; +#endif + wchar_t *check_hash_pycs_mode; + int use_frozen_modules; + int safe_path; + int int_max_str_digits; + + int cpu_count; +#ifdef Py_GIL_DISABLED + int enable_gil; +#endif + + /* --- Path configuration inputs ------------ */ + int pathconfig_warnings; + wchar_t *program_name; + wchar_t *pythonpath_env; + wchar_t *home; + wchar_t *platlibdir; + + /* --- Path configuration outputs ----------- */ + int module_search_paths_set; + PyWideStringList module_search_paths; + wchar_t *stdlib_dir; + wchar_t *executable; + wchar_t *base_executable; + wchar_t *prefix; + wchar_t *base_prefix; + wchar_t *exec_prefix; + wchar_t *base_exec_prefix; + + /* --- Parameter only used by Py_Main() ---------- */ + int skip_source_first_line; + wchar_t *run_command; + wchar_t *run_module; + wchar_t *run_filename; + + /* --- Set by Py_Main() -------------------------- */ + wchar_t *sys_path_0; + + /* --- Private fields ---------------------------- */ + + // Install importlib? If equals 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, we believe we're running from a source tree. + int _is_python_build; + +#ifdef Py_STATS + // If non-zero, turns on statistics gathering. + int _pystats; +#endif + +#ifdef Py_DEBUG + // If not empty, import a non-__main__ module before site.py is executed. + // PYTHON_PRESITE=package.module or -X presite=package.module + wchar_t *run_presite; +#endif +} 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/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/listobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/listobject.h new file mode 100644 index 000000000..49f5e8d6d --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/listobject.h @@ -0,0 +1,53 @@ +#ifndef Py_CPYTHON_LISTOBJECT_H +# error "this header file must not be included directly" +#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; + +/* Cast argument to PyListObject* type. */ +#define _PyList_CAST(op) \ + (assert(PyList_Check(op)), _Py_CAST(PyListObject*, (op))) + +// Macros and static inline functions, trading safety for speed + +static inline Py_ssize_t PyList_GET_SIZE(PyObject *op) { + PyListObject *list = _PyList_CAST(op); +#ifdef Py_GIL_DISABLED + return _Py_atomic_load_ssize_relaxed(&(_PyVarObject_CAST(list)->ob_size)); +#else + return Py_SIZE(list); +#endif +} +#define PyList_GET_SIZE(op) PyList_GET_SIZE(_PyObject_CAST(op)) + +#define PyList_GET_ITEM(op, index) (_PyList_CAST(op)->ob_item[(index)]) + +static inline void +PyList_SET_ITEM(PyObject *op, Py_ssize_t index, PyObject *value) { + PyListObject *list = _PyList_CAST(op); + assert(0 <= index); + assert(index < list->allocated); + list->ob_item[index] = value; +} +#define PyList_SET_ITEM(op, index, value) \ + PyList_SET_ITEM(_PyObject_CAST(op), (index), _PyObject_CAST(value)) + +PyAPI_FUNC(int) PyList_Extend(PyObject *self, PyObject *iterable); +PyAPI_FUNC(int) PyList_Clear(PyObject *self); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/lock.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/lock.h new file mode 100644 index 000000000..8ee03e82f --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/lock.h @@ -0,0 +1,63 @@ +#ifndef Py_CPYTHON_LOCK_H +# error "this header file must not be included directly" +#endif + +#define _Py_UNLOCKED 0 +#define _Py_LOCKED 1 + +// A mutex that occupies one byte. The lock can be zero initialized to +// represent the unlocked state. +// +// Typical initialization: +// PyMutex m = (PyMutex){0}; +// +// Or initialize as global variables: +// static PyMutex m; +// +// Typical usage: +// PyMutex_Lock(&m); +// ... +// PyMutex_Unlock(&m); +// +// The contents of the PyMutex are not part of the public API, but are +// described to aid in understanding the implementation and debugging. Only +// the two least significant bits are used. The remaining bits are always zero: +// 0b00: unlocked +// 0b01: locked +// 0b10: unlocked and has parked threads +// 0b11: locked and has parked threads +typedef struct PyMutex { + uint8_t _bits; // (private) +} PyMutex; + +// exported function for locking the mutex +PyAPI_FUNC(void) PyMutex_Lock(PyMutex *m); + +// exported function for unlocking the mutex +PyAPI_FUNC(void) PyMutex_Unlock(PyMutex *m); + +// Locks the mutex. +// +// If the mutex is currently locked, the calling thread will be parked until +// the mutex is unlocked. If the current thread holds the GIL, then the GIL +// will be released while the thread is parked. +static inline void +_PyMutex_Lock(PyMutex *m) +{ + uint8_t expected = _Py_UNLOCKED; + if (!_Py_atomic_compare_exchange_uint8(&m->_bits, &expected, _Py_LOCKED)) { + PyMutex_Lock(m); + } +} +#define PyMutex_Lock _PyMutex_Lock + +// Unlocks the mutex. +static inline void +_PyMutex_Unlock(PyMutex *m) +{ + uint8_t expected = _Py_LOCKED; + if (!_Py_atomic_compare_exchange_uint8(&m->_bits, &expected, _Py_UNLOCKED)) { + PyMutex_Unlock(m); + } +} +#define PyMutex_Unlock _PyMutex_Unlock diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/longintrepr.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/longintrepr.h new file mode 100644 index 000000000..3246908ba --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/longintrepr.h @@ -0,0 +1,146 @@ +#ifndef Py_LIMITED_API +#ifndef Py_LONGINTREPR_H +#define Py_LONGINTREPR_H +#ifdef __cplusplus +extern "C" { +#endif + + +/* This is published for the benefit of "friends" marshal.c and _decimal.c. */ + +/* Parameters of the integer representation. There are two different + sets of parameters: one set for 30-bit digits, stored in an unsigned 32-bit + integer type, and one set for 15-bit digits with each digit stored in an + unsigned short. The value of PYLONG_BITS_IN_DIGIT, defined either at + configure time or in pyport.h, is used to decide which digit size to use. + + Type 'digit' should be able to hold 2*PyLong_BASE-1, and type 'twodigits' + should be an unsigned integer type able to hold all integers up to + PyLong_BASE*PyLong_BASE-1. x_sub assumes that 'digit' is an unsigned type, + and that overflow is handled by taking the result modulo 2**N for some N > + PyLong_SHIFT. The majority of the code doesn't care about the precise + value of PyLong_SHIFT, but there are some notable exceptions: + + - PyLong_{As,From}ByteArray require that PyLong_SHIFT be at least 8 + + - long_hash() requires that PyLong_SHIFT is *strictly* less than the number + of bits in an unsigned long, as do the PyLong <-> long (or unsigned long) + conversion functions + + - the Python int <-> size_t/Py_ssize_t conversion functions expect that + PyLong_SHIFT is strictly less than the number of bits in a size_t + + - the marshal code currently expects that PyLong_SHIFT is a multiple of 15 + + - NSMALLNEGINTS and NSMALLPOSINTS should be small enough to fit in a single + digit; with the current values this forces PyLong_SHIFT >= 9 + + The values 15 and 30 should fit all of the above requirements, on any + platform. +*/ + +#if PYLONG_BITS_IN_DIGIT == 30 +typedef uint32_t digit; +typedef int32_t sdigit; /* signed variant of digit */ +typedef uint64_t twodigits; +typedef int64_t stwodigits; /* signed variant of twodigits */ +#define PyLong_SHIFT 30 +#define _PyLong_DECIMAL_SHIFT 9 /* max(e such that 10**e fits in a digit) */ +#define _PyLong_DECIMAL_BASE ((digit)1000000000) /* 10 ** DECIMAL_SHIFT */ +#elif PYLONG_BITS_IN_DIGIT == 15 +typedef unsigned short digit; +typedef short sdigit; /* signed variant of digit */ +typedef unsigned long twodigits; +typedef long stwodigits; /* signed variant of twodigits */ +#define PyLong_SHIFT 15 +#define _PyLong_DECIMAL_SHIFT 4 /* max(e such that 10**e fits in a digit) */ +#define _PyLong_DECIMAL_BASE ((digit)10000) /* 10 ** DECIMAL_SHIFT */ +#else +#error "PYLONG_BITS_IN_DIGIT should be 15 or 30" +#endif +#define PyLong_BASE ((digit)1 << PyLong_SHIFT) +#define PyLong_MASK ((digit)(PyLong_BASE - 1)) + +/* Long integer representation. + + Long integers are made up of a number of 30- or 15-bit digits, depending on + the platform. The number of digits (ndigits) is stored in the high bits of + the lv_tag field (lvtag >> _PyLong_NON_SIZE_BITS). + + The absolute value of a number is equal to + SUM(for i=0 through ndigits-1) ob_digit[i] * 2**(PyLong_SHIFT*i) + + The sign of the value is stored in the lower 2 bits of lv_tag. + + - 0: Positive + - 1: Zero + - 2: Negative + + The third lowest bit of lv_tag is reserved for an immortality flag, but is + not currently used. + + In a normalized number, ob_digit[ndigits-1] (the most significant + digit) is never zero. Also, in all cases, for all valid i, + 0 <= ob_digit[i] <= PyLong_MASK. + + The allocation function takes care of allocating extra memory + so that ob_digit[0] ... ob_digit[ndigits-1] are actually available. + We always allocate memory for at least one digit, so accessing ob_digit[0] + is always safe. However, in the case ndigits == 0, the contents of + ob_digit[0] may be undefined. +*/ + +typedef struct _PyLongValue { + uintptr_t lv_tag; /* Number of digits, sign and flags */ + digit ob_digit[1]; +} _PyLongValue; + +struct _longobject { + PyObject_HEAD + _PyLongValue long_value; +}; + +PyAPI_FUNC(PyLongObject*) _PyLong_New(Py_ssize_t); + +// Return a copy of src. +PyAPI_FUNC(PyObject*) _PyLong_Copy(PyLongObject *src); + +PyAPI_FUNC(PyLongObject*) _PyLong_FromDigits( + int negative, + Py_ssize_t digit_count, + digit *digits); + + +/* Inline some internals for speed. These should be in pycore_long.h + * if user code didn't need them inlined. */ + +#define _PyLong_SIGN_MASK 3 +#define _PyLong_NON_SIZE_BITS 3 + + +static inline int +_PyLong_IsCompact(const PyLongObject* op) { + assert(PyType_HasFeature((op)->ob_base.ob_type, Py_TPFLAGS_LONG_SUBCLASS)); + return op->long_value.lv_tag < (2 << _PyLong_NON_SIZE_BITS); +} + +#define PyUnstable_Long_IsCompact _PyLong_IsCompact + +static inline Py_ssize_t +_PyLong_CompactValue(const PyLongObject *op) +{ + Py_ssize_t sign; + assert(PyType_HasFeature((op)->ob_base.ob_type, Py_TPFLAGS_LONG_SUBCLASS)); + assert(PyUnstable_Long_IsCompact(op)); + sign = 1 - (op->long_value.lv_tag & _PyLong_SIGN_MASK); + return sign * (Py_ssize_t)op->long_value.ob_digit[0]; +} + +#define PyUnstable_Long_CompactValue _PyLong_CompactValue + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_LONGINTREPR_H */ +#endif /* Py_LIMITED_API */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/longobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/longobject.h new file mode 100644 index 000000000..0d49242ff --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/longobject.h @@ -0,0 +1,116 @@ +#ifndef Py_CPYTHON_LONGOBJECT_H +# error "this header file must not be included directly" +#endif + +PyAPI_FUNC(PyObject*) PyLong_FromUnicodeObject(PyObject *u, int base); + +#define Py_ASNATIVEBYTES_DEFAULTS -1 +#define Py_ASNATIVEBYTES_BIG_ENDIAN 0 +#define Py_ASNATIVEBYTES_LITTLE_ENDIAN 1 +#define Py_ASNATIVEBYTES_NATIVE_ENDIAN 3 +#define Py_ASNATIVEBYTES_UNSIGNED_BUFFER 4 +#define Py_ASNATIVEBYTES_REJECT_NEGATIVE 8 +#define Py_ASNATIVEBYTES_ALLOW_INDEX 16 + +/* PyLong_AsNativeBytes: Copy the integer value to a native variable. + buffer points to the first byte of the variable. + n_bytes is the number of bytes available in the buffer. Pass 0 to request + the required size for the value. + flags is a bitfield of the following flags: + * 1 - little endian + * 2 - native endian + * 4 - unsigned destination (e.g. don't reject copying 255 into one byte) + * 8 - raise an exception for negative inputs + * 16 - call __index__ on non-int types + If flags is -1 (all bits set), native endian is used, value truncation + behaves most like C (allows negative inputs and allow MSB set), and non-int + objects will raise a TypeError. + Big endian mode will write the most significant byte into the address + directly referenced by buffer; little endian will write the least significant + byte into that address. + + If an exception is raised, returns a negative value. + Otherwise, returns the number of bytes that are required to store the value. + To check that the full value is represented, ensure that the return value is + equal or less than n_bytes. + All n_bytes are guaranteed to be written (unless an exception occurs), and + so ignoring a positive return value is the equivalent of a downcast in C. + In cases where the full value could not be represented, the returned value + may be larger than necessary - this function is not an accurate way to + calculate the bit length of an integer object. + */ +PyAPI_FUNC(Py_ssize_t) PyLong_AsNativeBytes(PyObject* v, void* buffer, + Py_ssize_t n_bytes, int flags); + +/* PyLong_FromNativeBytes: Create an int value from a native integer + n_bytes is the number of bytes to read from the buffer. Passing 0 will + always produce the zero int. + PyLong_FromUnsignedNativeBytes always produces a non-negative int. + flags is the same as for PyLong_AsNativeBytes, but only supports selecting + the endianness or forcing an unsigned buffer. + + Returns the int object, or NULL with an exception set. */ +PyAPI_FUNC(PyObject*) PyLong_FromNativeBytes(const void* buffer, size_t n_bytes, + int flags); +PyAPI_FUNC(PyObject*) PyLong_FromUnsignedNativeBytes(const void* buffer, + size_t n_bytes, int flags); + +PyAPI_FUNC(int) PyUnstable_Long_IsCompact(const PyLongObject* op); +PyAPI_FUNC(Py_ssize_t) PyUnstable_Long_CompactValue(const PyLongObject* op); + +// _PyLong_Sign. Return 0 if v is 0, -1 if v < 0, +1 if v > 0. +// v must not be NULL, and must be a normalized long. +// There are no error cases. +PyAPI_FUNC(int) _PyLong_Sign(PyObject *v); + +/* _PyLong_NumBits. Return the number of bits needed to represent the + absolute value of a long. For example, this returns 1 for 1 and -1, 2 + for 2 and -2, and 2 for 3 and -3. It returns 0 for 0. + v must not be NULL, and must be a normalized long. + (size_t)-1 is returned and OverflowError set if the true result doesn't + fit in a size_t. +*/ +PyAPI_FUNC(size_t) _PyLong_NumBits(PyObject *v); + +/* _PyLong_FromByteArray: View the n unsigned bytes as a binary integer in + base 256, and return a Python int with the same numeric value. + If n is 0, the integer is 0. Else: + If little_endian is 1/true, bytes[n-1] is the MSB and bytes[0] the LSB; + else (little_endian is 0/false) bytes[0] is the MSB and bytes[n-1] the + LSB. + If is_signed is 0/false, view the bytes as a non-negative integer. + If is_signed is 1/true, view the bytes as a 2's-complement integer, + non-negative if bit 0x80 of the MSB is clear, negative if set. + Error returns: + + Return NULL with the appropriate exception set if there's not + enough memory to create the Python int. +*/ +PyAPI_FUNC(PyObject *) _PyLong_FromByteArray( + const unsigned char* bytes, size_t n, + int little_endian, int is_signed); + +/* _PyLong_AsByteArray: Convert the least-significant 8*n bits of long + v to a base-256 integer, stored in array bytes. Normally return 0, + return -1 on error. + If little_endian is 1/true, store the MSB at bytes[n-1] and the LSB at + bytes[0]; else (little_endian is 0/false) store the MSB at bytes[0] and + the LSB at bytes[n-1]. + If is_signed is 0/false, it's an error if v < 0; else (v >= 0) n bytes + are filled and there's nothing special about bit 0x80 of the MSB. + If is_signed is 1/true, bytes is filled with the 2's-complement + representation of v's value. Bit 0x80 of the MSB is the sign bit. + Error returns (-1): + + is_signed is 0 and v < 0. TypeError is set in this case, and bytes + isn't altered. + + n isn't big enough to hold the full mathematical value of v. For + example, if is_signed is 0 and there are more digits in the v than + fit in n; or if is_signed is 1, v < 0, and n is just 1 bit shy of + being large enough to hold a sign bit. OverflowError is set in this + case, but bytes holds the least-significant n bytes of the true value. +*/ +PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v, + unsigned char* bytes, size_t n, + int little_endian, int is_signed, int with_exceptions); + +/* For use by the gcd function in mathmodule.c */ +PyAPI_FUNC(PyObject *) _PyLong_GCD(PyObject *, PyObject *); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/memoryobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/memoryobject.h new file mode 100644 index 000000000..961161b70 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/memoryobject.h @@ -0,0 +1,50 @@ +#ifndef Py_CPYTHON_MEMORYOBJECT_H +# error "this header file must not be included directly" +#endif + +/* The structs are declared here so that macros can work, but they shouldn't + be considered public. Don't access their fields directly, use the macros + and functions instead! */ +#define _Py_MANAGED_BUFFER_RELEASED 0x001 /* access to exporter blocked */ +#define _Py_MANAGED_BUFFER_FREE_FORMAT 0x002 /* free format */ + +typedef struct { + PyObject_HEAD + int flags; /* state flags */ + Py_ssize_t exports; /* number of direct memoryview exports */ + Py_buffer master; /* snapshot buffer obtained from the original exporter */ +} _PyManagedBufferObject; + + +/* memoryview state flags */ +#define _Py_MEMORYVIEW_RELEASED 0x001 /* access to master buffer blocked */ +#define _Py_MEMORYVIEW_C 0x002 /* C-contiguous layout */ +#define _Py_MEMORYVIEW_FORTRAN 0x004 /* Fortran contiguous layout */ +#define _Py_MEMORYVIEW_SCALAR 0x008 /* scalar: ndim = 0 */ +#define _Py_MEMORYVIEW_PIL 0x010 /* PIL-style layout */ +#define _Py_MEMORYVIEW_RESTRICTED 0x020 /* Disallow new references to the memoryview's buffer */ + +typedef struct { + PyObject_VAR_HEAD + _PyManagedBufferObject *mbuf; /* managed buffer */ + Py_hash_t hash; /* hash value for read-only views */ + int flags; /* state flags */ + Py_ssize_t exports; /* number of buffer re-exports */ + Py_buffer view; /* private copy of the exporter's view */ + PyObject *weakreflist; + Py_ssize_t ob_array[1]; /* shape, strides, suboffsets */ +} PyMemoryViewObject; + +#define _PyMemoryView_CAST(op) _Py_CAST(PyMemoryViewObject*, op) + +/* Get a pointer to the memoryview's private copy of the exporter's buffer. */ +static inline Py_buffer* PyMemoryView_GET_BUFFER(PyObject *op) { + return (&_PyMemoryView_CAST(op)->view); +} +#define PyMemoryView_GET_BUFFER(op) PyMemoryView_GET_BUFFER(_PyObject_CAST(op)) + +/* Get a pointer to the exporting object (this may be NULL!). */ +static inline PyObject* PyMemoryView_GET_BASE(PyObject *op) { + return _PyMemoryView_CAST(op)->view.obj; +} +#define PyMemoryView_GET_BASE(op) PyMemoryView_GET_BASE(_PyObject_CAST(op)) diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/methodobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/methodobject.h new file mode 100644 index 000000000..d541e1549 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/methodobject.h @@ -0,0 +1,66 @@ +#ifndef Py_CPYTHON_METHODOBJECT_H +# error "this header file must not be included directly" +#endif + +// PyCFunctionObject structure + +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; + +#define _PyCFunctionObject_CAST(func) \ + (assert(PyCFunction_Check(func)), \ + _Py_CAST(PyCFunctionObject*, (func))) + + +// PyCMethodObject structure + +typedef struct { + PyCFunctionObject func; + PyTypeObject *mm_class; /* Class that defines this method */ +} PyCMethodObject; + +#define _PyCMethodObject_CAST(func) \ + (assert(PyCMethod_Check(func)), \ + _Py_CAST(PyCMethodObject*, (func))) + +PyAPI_DATA(PyTypeObject) PyCMethod_Type; + +#define PyCMethod_CheckExact(op) Py_IS_TYPE((op), &PyCMethod_Type) +#define PyCMethod_Check(op) PyObject_TypeCheck((op), &PyCMethod_Type) + + +/* Static inline functions for direct access to these values. + Type checks are *not* done, so use with care. */ +static inline PyCFunction PyCFunction_GET_FUNCTION(PyObject *func) { + return _PyCFunctionObject_CAST(func)->m_ml->ml_meth; +} +#define PyCFunction_GET_FUNCTION(func) PyCFunction_GET_FUNCTION(_PyObject_CAST(func)) + +static inline PyObject* PyCFunction_GET_SELF(PyObject *func_obj) { + PyCFunctionObject *func = _PyCFunctionObject_CAST(func_obj); + if (func->m_ml->ml_flags & METH_STATIC) { + return _Py_NULL; + } + return func->m_self; +} +#define PyCFunction_GET_SELF(func) PyCFunction_GET_SELF(_PyObject_CAST(func)) + +static inline int PyCFunction_GET_FLAGS(PyObject *func) { + return _PyCFunctionObject_CAST(func)->m_ml->ml_flags; +} +#define PyCFunction_GET_FLAGS(func) PyCFunction_GET_FLAGS(_PyObject_CAST(func)) + +static inline PyTypeObject* PyCFunction_GET_CLASS(PyObject *func_obj) { + PyCFunctionObject *func = _PyCFunctionObject_CAST(func_obj); + if (func->m_ml->ml_flags & METH_METHOD) { + return _PyCMethodObject_CAST(func)->mm_class; + } + return _Py_NULL; +} +#define PyCFunction_GET_CLASS(func) PyCFunction_GET_CLASS(_PyObject_CAST(func)) diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/modsupport.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/modsupport.h new file mode 100644 index 000000000..d3b88f58c --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/modsupport.h @@ -0,0 +1,26 @@ +#ifndef Py_CPYTHON_MODSUPPORT_H +# error "this header file must not be included directly" +#endif + +// A data structure that can be used to run initialization code once in a +// thread-safe manner. The C++11 equivalent is std::call_once. +typedef struct { + uint8_t v; +} _PyOnceFlag; + +typedef struct _PyArg_Parser { + const char *format; + const char * const *keywords; + const char *fname; + const char *custom_msg; + _PyOnceFlag once; /* atomic one-time initialization flag */ + int is_kwtuple_owned; /* does this parser own the kwtuple object? */ + int pos; /* number of positional-only arguments */ + int min; /* minimal number of arguments */ + int max; /* maximal number of positional arguments */ + PyObject *kwtuple; /* tuple of keyword parameter names */ + struct _PyArg_Parser *next; +} _PyArg_Parser; + +PyAPI_FUNC(int) _PyArg_ParseTupleAndKeywordsFast(PyObject *, PyObject *, + struct _PyArg_Parser *, ...); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/monitoring.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/monitoring.h new file mode 100644 index 000000000..797ba5124 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/monitoring.h @@ -0,0 +1,250 @@ +#ifndef Py_CPYTHON_MONITORING_H +# error "this header file must not be included directly" +#endif + +/* Local events. + * These require bytecode instrumentation */ + +#define PY_MONITORING_EVENT_PY_START 0 +#define PY_MONITORING_EVENT_PY_RESUME 1 +#define PY_MONITORING_EVENT_PY_RETURN 2 +#define PY_MONITORING_EVENT_PY_YIELD 3 +#define PY_MONITORING_EVENT_CALL 4 +#define PY_MONITORING_EVENT_LINE 5 +#define PY_MONITORING_EVENT_INSTRUCTION 6 +#define PY_MONITORING_EVENT_JUMP 7 +#define PY_MONITORING_EVENT_BRANCH 8 +#define PY_MONITORING_EVENT_STOP_ITERATION 9 + +#define PY_MONITORING_IS_INSTRUMENTED_EVENT(ev) \ + ((ev) < _PY_MONITORING_LOCAL_EVENTS) + +/* Other events, mainly exceptions */ + +#define PY_MONITORING_EVENT_RAISE 10 +#define PY_MONITORING_EVENT_EXCEPTION_HANDLED 11 +#define PY_MONITORING_EVENT_PY_UNWIND 12 +#define PY_MONITORING_EVENT_PY_THROW 13 +#define PY_MONITORING_EVENT_RERAISE 14 + + +/* Ancillary events */ + +#define PY_MONITORING_EVENT_C_RETURN 15 +#define PY_MONITORING_EVENT_C_RAISE 16 + + +typedef struct _PyMonitoringState { + uint8_t active; + uint8_t opaque; +} PyMonitoringState; + + +PyAPI_FUNC(int) +PyMonitoring_EnterScope(PyMonitoringState *state_array, uint64_t *version, + const uint8_t *event_types, Py_ssize_t length); + +PyAPI_FUNC(int) +PyMonitoring_ExitScope(void); + + +PyAPI_FUNC(int) +_PyMonitoring_FirePyStartEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset); + +PyAPI_FUNC(int) +_PyMonitoring_FirePyResumeEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset); + +PyAPI_FUNC(int) +_PyMonitoring_FirePyReturnEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + PyObject *retval); + +PyAPI_FUNC(int) +_PyMonitoring_FirePyYieldEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + PyObject *retval); + +PyAPI_FUNC(int) +_PyMonitoring_FireCallEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + PyObject* callable, PyObject *arg0); + +PyAPI_FUNC(int) +_PyMonitoring_FireLineEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + int lineno); + +PyAPI_FUNC(int) +_PyMonitoring_FireJumpEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + PyObject *target_offset); + +PyAPI_FUNC(int) +_PyMonitoring_FireBranchEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + PyObject *target_offset); + +PyAPI_FUNC(int) +_PyMonitoring_FireCReturnEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + PyObject *retval); + +PyAPI_FUNC(int) +_PyMonitoring_FirePyThrowEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset); + +PyAPI_FUNC(int) +_PyMonitoring_FireRaiseEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset); + +PyAPI_FUNC(int) +_PyMonitoring_FireReraiseEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset); + +PyAPI_FUNC(int) +_PyMonitoring_FireExceptionHandledEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset); + +PyAPI_FUNC(int) +_PyMonitoring_FireCRaiseEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset); + +PyAPI_FUNC(int) +_PyMonitoring_FirePyUnwindEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset); + +PyAPI_FUNC(int) +_PyMonitoring_FireStopIterationEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, PyObject *value); + + +#define _PYMONITORING_IF_ACTIVE(STATE, X) \ + if ((STATE)->active) { \ + return (X); \ + } \ + else { \ + return 0; \ + } + +static inline int +PyMonitoring_FirePyStartEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset) +{ + _PYMONITORING_IF_ACTIVE( + state, + _PyMonitoring_FirePyStartEvent(state, codelike, offset)); +} + +static inline int +PyMonitoring_FirePyResumeEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset) +{ + _PYMONITORING_IF_ACTIVE( + state, + _PyMonitoring_FirePyResumeEvent(state, codelike, offset)); +} + +static inline int +PyMonitoring_FirePyReturnEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + PyObject *retval) +{ + _PYMONITORING_IF_ACTIVE( + state, + _PyMonitoring_FirePyReturnEvent(state, codelike, offset, retval)); +} + +static inline int +PyMonitoring_FirePyYieldEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + PyObject *retval) +{ + _PYMONITORING_IF_ACTIVE( + state, + _PyMonitoring_FirePyYieldEvent(state, codelike, offset, retval)); +} + +static inline int +PyMonitoring_FireCallEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + PyObject* callable, PyObject *arg0) +{ + _PYMONITORING_IF_ACTIVE( + state, + _PyMonitoring_FireCallEvent(state, codelike, offset, callable, arg0)); +} + +static inline int +PyMonitoring_FireLineEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + int lineno) +{ + _PYMONITORING_IF_ACTIVE( + state, + _PyMonitoring_FireLineEvent(state, codelike, offset, lineno)); +} + +static inline int +PyMonitoring_FireJumpEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + PyObject *target_offset) +{ + _PYMONITORING_IF_ACTIVE( + state, + _PyMonitoring_FireJumpEvent(state, codelike, offset, target_offset)); +} + +static inline int +PyMonitoring_FireBranchEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + PyObject *target_offset) +{ + _PYMONITORING_IF_ACTIVE( + state, + _PyMonitoring_FireBranchEvent(state, codelike, offset, target_offset)); +} + +static inline int +PyMonitoring_FireCReturnEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, + PyObject *retval) +{ + _PYMONITORING_IF_ACTIVE( + state, + _PyMonitoring_FireCReturnEvent(state, codelike, offset, retval)); +} + +static inline int +PyMonitoring_FirePyThrowEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset) +{ + _PYMONITORING_IF_ACTIVE( + state, + _PyMonitoring_FirePyThrowEvent(state, codelike, offset)); +} + +static inline int +PyMonitoring_FireRaiseEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset) +{ + _PYMONITORING_IF_ACTIVE( + state, + _PyMonitoring_FireRaiseEvent(state, codelike, offset)); +} + +static inline int +PyMonitoring_FireReraiseEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset) +{ + _PYMONITORING_IF_ACTIVE( + state, + _PyMonitoring_FireReraiseEvent(state, codelike, offset)); +} + +static inline int +PyMonitoring_FireExceptionHandledEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset) +{ + _PYMONITORING_IF_ACTIVE( + state, + _PyMonitoring_FireExceptionHandledEvent(state, codelike, offset)); +} + +static inline int +PyMonitoring_FireCRaiseEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset) +{ + _PYMONITORING_IF_ACTIVE( + state, + _PyMonitoring_FireCRaiseEvent(state, codelike, offset)); +} + +static inline int +PyMonitoring_FirePyUnwindEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset) +{ + _PYMONITORING_IF_ACTIVE( + state, + _PyMonitoring_FirePyUnwindEvent(state, codelike, offset)); +} + +static inline int +PyMonitoring_FireStopIterationEvent(PyMonitoringState *state, PyObject *codelike, int32_t offset, PyObject *value) +{ + _PYMONITORING_IF_ACTIVE( + state, + _PyMonitoring_FireStopIterationEvent(state, codelike, offset, value)); +} + +#undef _PYMONITORING_IF_ACTIVE diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/object.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/object.h new file mode 100644 index 000000000..6cb2c40fe --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/object.h @@ -0,0 +1,525 @@ +#ifndef Py_CPYTHON_OBJECT_H +# error "this header file must not be included directly" +#endif + +PyAPI_FUNC(void) _Py_NewReference(PyObject *op); +PyAPI_FUNC(void) _Py_NewReferenceNoTotal(PyObject *op); +PyAPI_FUNC(void) _Py_ResurrectReference(PyObject *op); + +#ifdef Py_REF_DEBUG +/* These are useful as debugging aids when chasing down refleaks. */ +PyAPI_FUNC(Py_ssize_t) _Py_GetGlobalRefTotal(void); +# define _Py_GetRefTotal() _Py_GetGlobalRefTotal() +PyAPI_FUNC(Py_ssize_t) _Py_GetLegacyRefTotal(void); +PyAPI_FUNC(Py_ssize_t) _PyInterpreterState_GetRefTotal(PyInterpreterState *); +#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 { + const char* string; + // Index in PyInterpreterState.unicode.ids.array. It is process-wide + // unique and must be initialized to -1. + Py_ssize_t index; + // Hidden PyMutex struct for non free-threaded build. + struct { + uint8_t v; + } mutex; +} _Py_Identifier; + +#ifndef Py_BUILD_CORE +// For now we are keeping _Py_IDENTIFIER for continued use +// in non-builtin extensions (and naughty PyPI modules). + +#define _Py_static_string_init(value) { .string = (value), .index = -1 } +#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) + +#endif /* !Py_BUILD_CORE */ + + +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 PySendResult (*sendfunc)(PyObject *iter, PyObject *value, PyObject **result); + +typedef struct { + unaryfunc am_await; + unaryfunc am_aiter; + unaryfunc am_anext; + sendfunc am_send; +} 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; + +// If this structure is modified, Doc/includes/typestruct.h should be updated +// as well. +struct _typeobject { + PyObject_VAR_HEAD + const char *tp_name; /* For printing, in format "." */ + 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 */ + PyMethodDef *tp_methods; + PyMemberDef *tp_members; + PyGetSetDef *tp_getset; + // Strong reference on a heap type, borrowed reference on a static type + PyTypeObject *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; /* no longer used */ + void *tp_subclasses; /* for static builtin types this is an index */ + PyObject *tp_weaklist; /* not used for static builtin types */ + destructor tp_del; + + /* Type attribute cache version tag. Added in version 2.6 */ + unsigned int tp_version_tag; + + destructor tp_finalize; + vectorcallfunc tp_vectorcall; + + /* bitset of which type-watchers care about this type */ + unsigned char tp_watched; + uint16_t tp_versions_used; +}; + +/* This struct is used by the specializer + * It should be treated as an opaque blob + * by code other than the specializer and interpreter. */ +struct _specialization_cache { + // In order to avoid bloating the bytecode with lots of inline caches, the + // members of this structure have a somewhat unique contract. They are set + // by the specialization machinery, and are invalidated by PyType_Modified. + // The rules for using them are as follows: + // - If getitem is non-NULL, then it is the same Python function that + // PyType_Lookup(cls, "__getitem__") would return. + // - If getitem is NULL, then getitem_version is meaningless. + // - If getitem->func_version == getitem_version, then getitem can be called + // with two positional arguments and no keyword arguments, and has neither + // *args nor **kwargs (as required by BINARY_SUBSCR_GETITEM): + PyObject *getitem; + uint32_t getitem_version; + PyObject *init; +}; + +/* 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; + char *_ht_tpname; // Storage for "tp_name"; see PyType_FromModuleAndSpec + struct _specialization_cache _spec_cache; // For use by the specializer. + /* here are optional user slots, followed by the members. */ +} PyHeapTypeObject; + +PyAPI_FUNC(const char *) _PyType_Name(PyTypeObject *); +PyAPI_FUNC(PyObject *) _PyType_Lookup(PyTypeObject *, PyObject *); +PyAPI_FUNC(PyObject *) _PyType_LookupRef(PyTypeObject *, PyObject *); +PyAPI_FUNC(PyObject *) PyType_GetDict(PyTypeObject *); + +PyAPI_FUNC(int) PyObject_Print(PyObject *, FILE *, int); +PyAPI_FUNC(void) _Py_BreakPoint(void); +PyAPI_FUNC(void) _PyObject_Dump(PyObject *); + +PyAPI_FUNC(PyObject*) _PyObject_GetAttrId(PyObject *, _Py_Identifier *); + +PyAPI_FUNC(PyObject **) _PyObject_GetDictPtr(PyObject *); +PyAPI_FUNC(void) PyObject_CallFinalizer(PyObject *); +PyAPI_FUNC(int) PyObject_CallFinalizerFromDealloc(PyObject *); + +PyAPI_FUNC(void) PyUnstable_Object_ClearWeakRefsNoCallbacks(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 `dst` and set `dst` to `src`. + * + * As in case of Py_CLEAR "the obvious" code can be deadly: + * + * Py_DECREF(dst); + * dst = src; + * + * The safe way is: + * + * Py_SETREF(dst, src); + * + * That arranges to set `dst` to `src` _before_ decref'ing, so that any code + * triggered as a side-effect of `dst` getting torn down no longer believes + * `dst` points to a valid object. + * + * Temporary variables are used to only evalutate macro arguments once and so + * avoid the duplication of side effects. _Py_TYPEOF() or memcpy() is used to + * avoid a miscompilation caused by type punning. See Py_CLEAR() comment for + * implementation details about type punning. + * + * The memcpy() implementation does not emit a compiler warning if 'src' has + * not the same type than 'src': any pointer type is accepted for 'src'. + */ +#ifdef _Py_TYPEOF +#define Py_SETREF(dst, src) \ + do { \ + _Py_TYPEOF(dst)* _tmp_dst_ptr = &(dst); \ + _Py_TYPEOF(dst) _tmp_old_dst = (*_tmp_dst_ptr); \ + *_tmp_dst_ptr = (src); \ + Py_DECREF(_tmp_old_dst); \ + } while (0) +#else +#define Py_SETREF(dst, src) \ + do { \ + PyObject **_tmp_dst_ptr = _Py_CAST(PyObject**, &(dst)); \ + PyObject *_tmp_old_dst = (*_tmp_dst_ptr); \ + PyObject *_tmp_src = _PyObject_CAST(src); \ + memcpy(_tmp_dst_ptr, &_tmp_src, sizeof(PyObject*)); \ + Py_DECREF(_tmp_old_dst); \ + } while (0) +#endif + +/* Py_XSETREF() is a variant of Py_SETREF() that uses Py_XDECREF() instead of + * Py_DECREF(). + */ +#ifdef _Py_TYPEOF +#define Py_XSETREF(dst, src) \ + do { \ + _Py_TYPEOF(dst)* _tmp_dst_ptr = &(dst); \ + _Py_TYPEOF(dst) _tmp_old_dst = (*_tmp_dst_ptr); \ + *_tmp_dst_ptr = (src); \ + Py_XDECREF(_tmp_old_dst); \ + } while (0) +#else +#define Py_XSETREF(dst, src) \ + do { \ + PyObject **_tmp_dst_ptr = _Py_CAST(PyObject**, &(dst)); \ + PyObject *_tmp_old_dst = (*_tmp_dst_ptr); \ + PyObject *_tmp_src = _PyObject_CAST(src); \ + memcpy(_tmp_dst_ptr, &_tmp_src, sizeof(PyObject*)); \ + Py_XDECREF(_tmp_old_dst); \ + } while (0) +#endif + + +/* 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); + + +/* 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)/(Py_TRASHCAN_HEADROOM-1) pieces, +with the call stack never exceeding a depth of Py_TRASHCAN_HEADROOM. + +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(). +*/ + +/* Python 3.9 private API, invoked by the macros below. */ +PyAPI_FUNC(int) _PyTrash_begin(PyThreadState *tstate, PyObject *op); +PyAPI_FUNC(void) _PyTrash_end(PyThreadState *tstate); + +PyAPI_FUNC(void) _PyTrash_thread_deposit_object(PyThreadState *tstate, PyObject *op); +PyAPI_FUNC(void) _PyTrash_thread_destroy_chain(PyThreadState *tstate); + + +/* Python 3.10 private API, invoked by the Py_TRASHCAN_BEGIN(). */ + +/* To avoid raising recursion errors during dealloc trigger trashcan before we reach + * recursion limit. To avoid trashing, we don't attempt to empty the trashcan until + * we have headroom above the trigger limit */ +#define Py_TRASHCAN_HEADROOM 50 + +#define Py_TRASHCAN_BEGIN(op, dealloc) \ +do { \ + PyThreadState *tstate = PyThreadState_Get(); \ + if (tstate->c_recursion_remaining <= Py_TRASHCAN_HEADROOM && Py_TYPE(op)->tp_dealloc == (destructor)dealloc) { \ + _PyTrash_thread_deposit_object(tstate, (PyObject *)op); \ + break; \ + } \ + tstate->c_recursion_remaining--; + /* The body of the deallocator is here. */ +#define Py_TRASHCAN_END \ + tstate->c_recursion_remaining++; \ + if (tstate->delete_later && tstate->c_recursion_remaining > (Py_TRASHCAN_HEADROOM*2)) { \ + _PyTrash_thread_destroy_chain(tstate); \ + } \ +} while (0); + + +PyAPI_FUNC(void *) PyObject_GetItemData(PyObject *obj); + +PyAPI_FUNC(int) PyObject_VisitManagedDict(PyObject *obj, visitproc visit, void *arg); +PyAPI_FUNC(int) _PyObject_SetManagedDict(PyObject *obj, PyObject *new_dict); +PyAPI_FUNC(void) PyObject_ClearManagedDict(PyObject *obj); + +#define TYPE_MAX_WATCHERS 8 + +typedef int(*PyType_WatchCallback)(PyTypeObject *); +PyAPI_FUNC(int) PyType_AddWatcher(PyType_WatchCallback callback); +PyAPI_FUNC(int) PyType_ClearWatcher(int watcher_id); +PyAPI_FUNC(int) PyType_Watch(int watcher_id, PyObject *type); +PyAPI_FUNC(int) PyType_Unwatch(int watcher_id, PyObject *type); + +/* Attempt to assign a version tag to the given type. + * + * Returns 1 if the type already had a valid version tag or a new one was + * assigned, or 0 if a new tag could not be assigned. + */ +PyAPI_FUNC(int) PyUnstable_Type_AssignVersionTag(PyTypeObject *type); + + +typedef enum { + PyRefTracer_CREATE = 0, + PyRefTracer_DESTROY = 1, +} PyRefTracerEvent; + +typedef int (*PyRefTracer)(PyObject *, PyRefTracerEvent event, void *); +PyAPI_FUNC(int) PyRefTracer_SetTracer(PyRefTracer tracer, void *data); +PyAPI_FUNC(PyRefTracer) PyRefTracer_GetTracer(void**); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/objimpl.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/objimpl.h new file mode 100644 index 000000000..e0c2ce286 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/objimpl.h @@ -0,0 +1,104 @@ +#ifndef Py_CPYTHON_OBJIMPL_H +# error "this header file must not be included directly" +#endif + +static inline size_t _PyObject_SIZE(PyTypeObject *type) { + return _Py_STATIC_CAST(size_t, type->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 + +static inline size_t _PyObject_VAR_SIZE(PyTypeObject *type, Py_ssize_t nitems) { + size_t size = _Py_STATIC_CAST(size_t, type->tp_basicsize); + size += _Py_STATIC_CAST(size_t, nitems) * _Py_STATIC_CAST(size_t, type->tp_itemsize); + return _Py_SIZE_ROUND_UP(size, 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. */ + + +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); + + +/* Test if an object implements the garbage collector protocol */ +PyAPI_FUNC(int) PyObject_IS_GC(PyObject *obj); + + +// Test if a type supports weak references +PyAPI_FUNC(int) PyType_SUPPORTS_WEAKREFS(PyTypeObject *type); + +PyAPI_FUNC(PyObject **) PyObject_GET_WEAKREFS_LISTPTR(PyObject *op); + +PyAPI_FUNC(PyObject *) PyUnstable_Object_GC_NewWithExtraData(PyTypeObject *, + size_t); + + +/* Visit all live GC-capable objects, similar to gc.get_objects(None). The + * supplied callback is called on every such object with the void* arg set + * to the supplied arg. Returning 0 from the callback ends iteration, returning + * 1 allows iteration to continue. Returning any other value may result in + * undefined behaviour. + * + * If new objects are (de)allocated by the callback it is undefined if they + * will be visited. + + * Garbage collection is disabled during operation. Explicitly running a + * collection in the callback may lead to undefined behaviour e.g. visiting the + * same objects multiple times or not at all. + */ +typedef int (*gcvisitobjects_t)(PyObject*, void*); +PyAPI_FUNC(void) PyUnstable_GC_VisitObjects(gcvisitobjects_t callback, void* arg); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/odictobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/odictobject.h new file mode 100644 index 000000000..3822d5548 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/odictobject.h @@ -0,0 +1,43 @@ +#ifndef Py_ODICTOBJECT_H +#define Py_ODICTOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + + +/* OrderedDict */ +/* This API is optional and mostly redundant. */ + +#ifndef Py_LIMITED_API + +typedef struct _odictobject PyODictObject; + +PyAPI_DATA(PyTypeObject) PyODict_Type; +PyAPI_DATA(PyTypeObject) PyODictIter_Type; +PyAPI_DATA(PyTypeObject) PyODictKeys_Type; +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_SIZE(op) PyDict_GET_SIZE((op)) + +PyAPI_FUNC(PyObject *) PyODict_New(void); +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_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)) +#define PyODict_GetItemString(od, key) \ + PyDict_GetItemString(_PyObject_CAST(od), (key)) + +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_ODICTOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/picklebufobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/picklebufobject.h new file mode 100644 index 000000000..f3cbaeef9 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/picklebufobject.h @@ -0,0 +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 */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pthread_stubs.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pthread_stubs.h new file mode 100644 index 000000000..e542eaa5b --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pthread_stubs.h @@ -0,0 +1,105 @@ +#ifndef Py_CPYTHON_PTRHEAD_STUBS_H +#define Py_CPYTHON_PTRHEAD_STUBS_H + +#if !defined(HAVE_PTHREAD_STUBS) +# error "this header file requires stubbed pthreads." +#endif + +#ifndef _POSIX_THREADS +# define _POSIX_THREADS 1 +#endif + +/* Minimal pthread stubs for CPython. + * + * The stubs implement the minimum pthread API for CPython. + * - pthread_create() fails. + * - pthread_exit() calls exit(0). + * - pthread_key_*() functions implement minimal TSS without destructor. + * - all other functions do nothing and return 0. + */ + +#ifdef __wasi__ +// WASI's bits/alltypes.h provides type definitions when __NEED_ is set. +// The header file can be included multiple times. +// +// may also define these macros. +# ifndef __NEED_pthread_cond_t +# define __NEED_pthread_cond_t 1 +# endif +# ifndef __NEED_pthread_condattr_t +# define __NEED_pthread_condattr_t 1 +# endif +# ifndef __NEED_pthread_mutex_t +# define __NEED_pthread_mutex_t 1 +# endif +# ifndef __NEED_pthread_mutexattr_t +# define __NEED_pthread_mutexattr_t 1 +# endif +# ifndef __NEED_pthread_key_t +# define __NEED_pthread_key_t 1 +# endif +# ifndef __NEED_pthread_t +# define __NEED_pthread_t 1 +# endif +# ifndef __NEED_pthread_attr_t +# define __NEED_pthread_attr_t 1 +# endif +# include +#else +typedef struct { void *__x; } pthread_cond_t; +typedef struct { unsigned __attr; } pthread_condattr_t; +typedef struct { void *__x; } pthread_mutex_t; +typedef struct { unsigned __attr; } pthread_mutexattr_t; +typedef unsigned pthread_key_t; +typedef unsigned pthread_t; +typedef struct { unsigned __attr; } pthread_attr_t; +#endif + +// mutex +PyAPI_FUNC(int) pthread_mutex_init(pthread_mutex_t *restrict mutex, + const pthread_mutexattr_t *restrict attr); +PyAPI_FUNC(int) pthread_mutex_destroy(pthread_mutex_t *mutex); +PyAPI_FUNC(int) pthread_mutex_trylock(pthread_mutex_t *mutex); +PyAPI_FUNC(int) pthread_mutex_lock(pthread_mutex_t *mutex); +PyAPI_FUNC(int) pthread_mutex_unlock(pthread_mutex_t *mutex); + +// condition +PyAPI_FUNC(int) pthread_cond_init(pthread_cond_t *restrict cond, + const pthread_condattr_t *restrict attr); +PyAPI_FUNC(int) pthread_cond_destroy(pthread_cond_t *cond); +PyAPI_FUNC(int) pthread_cond_wait(pthread_cond_t *restrict cond, + pthread_mutex_t *restrict mutex); +PyAPI_FUNC(int) pthread_cond_timedwait(pthread_cond_t *restrict cond, + pthread_mutex_t *restrict mutex, + const struct timespec *restrict abstime); +PyAPI_FUNC(int) pthread_cond_signal(pthread_cond_t *cond); +PyAPI_FUNC(int) pthread_condattr_init(pthread_condattr_t *attr); +PyAPI_FUNC(int) pthread_condattr_setclock( + pthread_condattr_t *attr, clockid_t clock_id); + +// pthread +PyAPI_FUNC(int) pthread_create(pthread_t *restrict thread, + const pthread_attr_t *restrict attr, + void *(*start_routine)(void *), + void *restrict arg); +PyAPI_FUNC(int) pthread_detach(pthread_t thread); +PyAPI_FUNC(int) pthread_join(pthread_t thread, void** value_ptr); +PyAPI_FUNC(pthread_t) pthread_self(void); +PyAPI_FUNC(int) pthread_exit(void *retval) __attribute__ ((__noreturn__)); +PyAPI_FUNC(int) pthread_attr_init(pthread_attr_t *attr); +PyAPI_FUNC(int) pthread_attr_setstacksize(pthread_attr_t *attr, size_t stacksize); +PyAPI_FUNC(int) pthread_attr_destroy(pthread_attr_t *attr); + + +// pthread_key +#ifndef PTHREAD_KEYS_MAX +# define PTHREAD_KEYS_MAX 128 +#endif + +PyAPI_FUNC(int) pthread_key_create(pthread_key_t *key, + void (*destr_function)(void *)); +PyAPI_FUNC(int) pthread_key_delete(pthread_key_t key); +PyAPI_FUNC(void *) pthread_getspecific(pthread_key_t key); +PyAPI_FUNC(int) pthread_setspecific(pthread_key_t key, const void *value); + +#endif // Py_CPYTHON_PTRHEAD_STUBS_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyatomic.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyatomic.h new file mode 100644 index 000000000..4ecef4f56 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyatomic.h @@ -0,0 +1,569 @@ +// This header provides cross-platform low-level atomic operations +// similar to C11 atomics. +// +// Operations are sequentially consistent unless they have a suffix indicating +// otherwise. If in doubt, prefer the sequentially consistent operations. +// +// The "_relaxed" suffix for load and store operations indicates the "relaxed" +// memory order. They don't provide synchronization, but (roughly speaking) +// guarantee somewhat sane behavior for races instead of undefined behavior. +// In practice, they correspond to "normal" hardware load and store +// instructions, so they are almost as inexpensive as plain loads and stores +// in C. +// +// Note that atomic read-modify-write operations like _Py_atomic_add_* return +// the previous value of the atomic variable, not the new value. +// +// See https://en.cppreference.com/w/c/atomic for more information on C11 +// atomics. +// See https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2055r0.pdf +// "A Relaxed Guide to memory_order_relaxed" for discussion of and common usage +// or relaxed atomics. +// +// Functions with pseudo Python code: +// +// def _Py_atomic_load(obj): +// return obj # sequential consistency +// +// def _Py_atomic_load_relaxed(obj): +// return obj # relaxed consistency +// +// def _Py_atomic_store(obj, value): +// obj = value # sequential consistency +// +// def _Py_atomic_store_relaxed(obj, value): +// obj = value # relaxed consistency +// +// def _Py_atomic_exchange(obj, value): +// # sequential consistency +// old_obj = obj +// obj = value +// return old_obj +// +// def _Py_atomic_compare_exchange(obj, expected, desired): +// # sequential consistency +// if obj == expected: +// obj = desired +// return True +// else: +// expected = obj +// return False +// +// def _Py_atomic_add(obj, value): +// # sequential consistency +// old_obj = obj +// obj += value +// return old_obj +// +// def _Py_atomic_and(obj, value): +// # sequential consistency +// old_obj = obj +// obj &= value +// return old_obj +// +// def _Py_atomic_or(obj, value): +// # sequential consistency +// old_obj = obj +// obj |= value +// return old_obj +// +// Other functions: +// +// def _Py_atomic_load_ptr_acquire(obj): +// return obj # acquire +// +// def _Py_atomic_store_ptr_release(obj): +// return obj # release +// +// def _Py_atomic_fence_seq_cst(): +// # sequential consistency +// ... +// +// def _Py_atomic_fence_release(): +// # release +// ... + +#ifndef Py_CPYTHON_ATOMIC_H +# error "this header file must not be included directly" +#endif + +// --- _Py_atomic_add -------------------------------------------------------- +// Atomically adds `value` to `obj` and returns the previous value + +static inline int +_Py_atomic_add_int(int *obj, int value); + +static inline int8_t +_Py_atomic_add_int8(int8_t *obj, int8_t value); + +static inline int16_t +_Py_atomic_add_int16(int16_t *obj, int16_t value); + +static inline int32_t +_Py_atomic_add_int32(int32_t *obj, int32_t value); + +static inline int64_t +_Py_atomic_add_int64(int64_t *obj, int64_t value); + +static inline intptr_t +_Py_atomic_add_intptr(intptr_t *obj, intptr_t value); + +static inline unsigned int +_Py_atomic_add_uint(unsigned int *obj, unsigned int value); + +static inline uint8_t +_Py_atomic_add_uint8(uint8_t *obj, uint8_t value); + +static inline uint16_t +_Py_atomic_add_uint16(uint16_t *obj, uint16_t value); + +static inline uint32_t +_Py_atomic_add_uint32(uint32_t *obj, uint32_t value); + +static inline uint64_t +_Py_atomic_add_uint64(uint64_t *obj, uint64_t value); + +static inline uintptr_t +_Py_atomic_add_uintptr(uintptr_t *obj, uintptr_t value); + +static inline Py_ssize_t +_Py_atomic_add_ssize(Py_ssize_t *obj, Py_ssize_t value); + + +// --- _Py_atomic_compare_exchange ------------------------------------------- +// Performs an atomic compare-and-exchange. +// +// - If `*obj` and `*expected` are equal, store `desired` into `*obj` +// and return 1 (success). +// - Otherwise, store the `*obj` current value into `*expected` +// and return 0 (failure). +// +// These correspond to the C11 atomic_compare_exchange_strong() function. + +static inline int +_Py_atomic_compare_exchange_int(int *obj, int *expected, int desired); + +static inline int +_Py_atomic_compare_exchange_int8(int8_t *obj, int8_t *expected, int8_t desired); + +static inline int +_Py_atomic_compare_exchange_int16(int16_t *obj, int16_t *expected, int16_t desired); + +static inline int +_Py_atomic_compare_exchange_int32(int32_t *obj, int32_t *expected, int32_t desired); + +static inline int +_Py_atomic_compare_exchange_int64(int64_t *obj, int64_t *expected, int64_t desired); + +static inline int +_Py_atomic_compare_exchange_intptr(intptr_t *obj, intptr_t *expected, intptr_t desired); + +static inline int +_Py_atomic_compare_exchange_uint(unsigned int *obj, unsigned int *expected, unsigned int desired); + +static inline int +_Py_atomic_compare_exchange_uint8(uint8_t *obj, uint8_t *expected, uint8_t desired); + +static inline int +_Py_atomic_compare_exchange_uint16(uint16_t *obj, uint16_t *expected, uint16_t desired); + +static inline int +_Py_atomic_compare_exchange_uint32(uint32_t *obj, uint32_t *expected, uint32_t desired); + +static inline int +_Py_atomic_compare_exchange_uint64(uint64_t *obj, uint64_t *expected, uint64_t desired); + +static inline int +_Py_atomic_compare_exchange_uintptr(uintptr_t *obj, uintptr_t *expected, uintptr_t desired); + +static inline int +_Py_atomic_compare_exchange_ssize(Py_ssize_t *obj, Py_ssize_t *expected, Py_ssize_t desired); + +// NOTE: `obj` and `expected` are logically `void**` types, but we use `void*` +// so that we can pass types like `PyObject**` without a cast. +static inline int +_Py_atomic_compare_exchange_ptr(void *obj, void *expected, void *value); + + +// --- _Py_atomic_exchange --------------------------------------------------- +// Atomically replaces `*obj` with `value` and returns the previous value of `*obj`. + +static inline int +_Py_atomic_exchange_int(int *obj, int value); + +static inline int8_t +_Py_atomic_exchange_int8(int8_t *obj, int8_t value); + +static inline int16_t +_Py_atomic_exchange_int16(int16_t *obj, int16_t value); + +static inline int32_t +_Py_atomic_exchange_int32(int32_t *obj, int32_t value); + +static inline int64_t +_Py_atomic_exchange_int64(int64_t *obj, int64_t value); + +static inline intptr_t +_Py_atomic_exchange_intptr(intptr_t *obj, intptr_t value); + +static inline unsigned int +_Py_atomic_exchange_uint(unsigned int *obj, unsigned int value); + +static inline uint8_t +_Py_atomic_exchange_uint8(uint8_t *obj, uint8_t value); + +static inline uint16_t +_Py_atomic_exchange_uint16(uint16_t *obj, uint16_t value); + +static inline uint32_t +_Py_atomic_exchange_uint32(uint32_t *obj, uint32_t value); + +static inline uint64_t +_Py_atomic_exchange_uint64(uint64_t *obj, uint64_t value); + +static inline uintptr_t +_Py_atomic_exchange_uintptr(uintptr_t *obj, uintptr_t value); + +static inline Py_ssize_t +_Py_atomic_exchange_ssize(Py_ssize_t *obj, Py_ssize_t value); + +static inline void * +_Py_atomic_exchange_ptr(void *obj, void *value); + + +// --- _Py_atomic_and -------------------------------------------------------- +// Performs `*obj &= value` atomically and returns the previous value of `*obj`. + +static inline uint8_t +_Py_atomic_and_uint8(uint8_t *obj, uint8_t value); + +static inline uint16_t +_Py_atomic_and_uint16(uint16_t *obj, uint16_t value); + +static inline uint32_t +_Py_atomic_and_uint32(uint32_t *obj, uint32_t value); + +static inline uint64_t +_Py_atomic_and_uint64(uint64_t *obj, uint64_t value); + +static inline uintptr_t +_Py_atomic_and_uintptr(uintptr_t *obj, uintptr_t value); + + +// --- _Py_atomic_or --------------------------------------------------------- +// Performs `*obj |= value` atomically and returns the previous value of `*obj`. + +static inline uint8_t +_Py_atomic_or_uint8(uint8_t *obj, uint8_t value); + +static inline uint16_t +_Py_atomic_or_uint16(uint16_t *obj, uint16_t value); + +static inline uint32_t +_Py_atomic_or_uint32(uint32_t *obj, uint32_t value); + +static inline uint64_t +_Py_atomic_or_uint64(uint64_t *obj, uint64_t value); + +static inline uintptr_t +_Py_atomic_or_uintptr(uintptr_t *obj, uintptr_t value); + + +// --- _Py_atomic_load ------------------------------------------------------- +// Atomically loads `*obj` (sequential consistency) + +static inline int +_Py_atomic_load_int(const int *obj); + +static inline int8_t +_Py_atomic_load_int8(const int8_t *obj); + +static inline int16_t +_Py_atomic_load_int16(const int16_t *obj); + +static inline int32_t +_Py_atomic_load_int32(const int32_t *obj); + +static inline int64_t +_Py_atomic_load_int64(const int64_t *obj); + +static inline intptr_t +_Py_atomic_load_intptr(const intptr_t *obj); + +static inline uint8_t +_Py_atomic_load_uint8(const uint8_t *obj); + +static inline uint16_t +_Py_atomic_load_uint16(const uint16_t *obj); + +static inline uint32_t +_Py_atomic_load_uint32(const uint32_t *obj); + +static inline uint64_t +_Py_atomic_load_uint64(const uint64_t *obj); + +static inline uintptr_t +_Py_atomic_load_uintptr(const uintptr_t *obj); + +static inline unsigned int +_Py_atomic_load_uint(const unsigned int *obj); + +static inline Py_ssize_t +_Py_atomic_load_ssize(const Py_ssize_t *obj); + +static inline void * +_Py_atomic_load_ptr(const void *obj); + + +// --- _Py_atomic_load_relaxed ----------------------------------------------- +// Loads `*obj` (relaxed consistency, i.e., no ordering) + +static inline int +_Py_atomic_load_int_relaxed(const int *obj); + +static inline int8_t +_Py_atomic_load_int8_relaxed(const int8_t *obj); + +static inline int16_t +_Py_atomic_load_int16_relaxed(const int16_t *obj); + +static inline int32_t +_Py_atomic_load_int32_relaxed(const int32_t *obj); + +static inline int64_t +_Py_atomic_load_int64_relaxed(const int64_t *obj); + +static inline intptr_t +_Py_atomic_load_intptr_relaxed(const intptr_t *obj); + +static inline uint8_t +_Py_atomic_load_uint8_relaxed(const uint8_t *obj); + +static inline uint16_t +_Py_atomic_load_uint16_relaxed(const uint16_t *obj); + +static inline uint32_t +_Py_atomic_load_uint32_relaxed(const uint32_t *obj); + +static inline uint64_t +_Py_atomic_load_uint64_relaxed(const uint64_t *obj); + +static inline uintptr_t +_Py_atomic_load_uintptr_relaxed(const uintptr_t *obj); + +static inline unsigned int +_Py_atomic_load_uint_relaxed(const unsigned int *obj); + +static inline Py_ssize_t +_Py_atomic_load_ssize_relaxed(const Py_ssize_t *obj); + +static inline void * +_Py_atomic_load_ptr_relaxed(const void *obj); + +static inline unsigned long long +_Py_atomic_load_ullong_relaxed(const unsigned long long *obj); + +// --- _Py_atomic_store ------------------------------------------------------ +// Atomically performs `*obj = value` (sequential consistency) + +static inline void +_Py_atomic_store_int(int *obj, int value); + +static inline void +_Py_atomic_store_int8(int8_t *obj, int8_t value); + +static inline void +_Py_atomic_store_int16(int16_t *obj, int16_t value); + +static inline void +_Py_atomic_store_int32(int32_t *obj, int32_t value); + +static inline void +_Py_atomic_store_int64(int64_t *obj, int64_t value); + +static inline void +_Py_atomic_store_intptr(intptr_t *obj, intptr_t value); + +static inline void +_Py_atomic_store_uint8(uint8_t *obj, uint8_t value); + +static inline void +_Py_atomic_store_uint16(uint16_t *obj, uint16_t value); + +static inline void +_Py_atomic_store_uint32(uint32_t *obj, uint32_t value); + +static inline void +_Py_atomic_store_uint64(uint64_t *obj, uint64_t value); + +static inline void +_Py_atomic_store_uintptr(uintptr_t *obj, uintptr_t value); + +static inline void +_Py_atomic_store_uint(unsigned int *obj, unsigned int value); + +static inline void +_Py_atomic_store_ptr(void *obj, void *value); + +static inline void +_Py_atomic_store_ssize(Py_ssize_t* obj, Py_ssize_t value); + + +// --- _Py_atomic_store_relaxed ---------------------------------------------- +// Stores `*obj = value` (relaxed consistency, i.e., no ordering) + +static inline void +_Py_atomic_store_int_relaxed(int *obj, int value); + +static inline void +_Py_atomic_store_int8_relaxed(int8_t *obj, int8_t value); + +static inline void +_Py_atomic_store_int16_relaxed(int16_t *obj, int16_t value); + +static inline void +_Py_atomic_store_int32_relaxed(int32_t *obj, int32_t value); + +static inline void +_Py_atomic_store_int64_relaxed(int64_t *obj, int64_t value); + +static inline void +_Py_atomic_store_intptr_relaxed(intptr_t *obj, intptr_t value); + +static inline void +_Py_atomic_store_uint8_relaxed(uint8_t* obj, uint8_t value); + +static inline void +_Py_atomic_store_uint16_relaxed(uint16_t *obj, uint16_t value); + +static inline void +_Py_atomic_store_uint32_relaxed(uint32_t *obj, uint32_t value); + +static inline void +_Py_atomic_store_uint64_relaxed(uint64_t *obj, uint64_t value); + +static inline void +_Py_atomic_store_uintptr_relaxed(uintptr_t *obj, uintptr_t value); + +static inline void +_Py_atomic_store_uint_relaxed(unsigned int *obj, unsigned int value); + +static inline void +_Py_atomic_store_ptr_relaxed(void *obj, void *value); + +static inline void +_Py_atomic_store_ssize_relaxed(Py_ssize_t *obj, Py_ssize_t value); + +static inline void +_Py_atomic_store_ullong_relaxed(unsigned long long *obj, + unsigned long long value); + + +// --- _Py_atomic_load_ptr_acquire / _Py_atomic_store_ptr_release ------------ + +// Loads `*obj` (acquire operation) +static inline void * +_Py_atomic_load_ptr_acquire(const void *obj); + +static inline uintptr_t +_Py_atomic_load_uintptr_acquire(const uintptr_t *obj); + +// Stores `*obj = value` (release operation) +static inline void +_Py_atomic_store_ptr_release(void *obj, void *value); + +static inline void +_Py_atomic_store_uintptr_release(uintptr_t *obj, uintptr_t value); + +static inline void +_Py_atomic_store_ssize_release(Py_ssize_t *obj, Py_ssize_t value); + +static inline void +_Py_atomic_store_int_release(int *obj, int value); + +static inline int +_Py_atomic_load_int_acquire(const int *obj); + +static inline void +_Py_atomic_store_uint32_release(uint32_t *obj, uint32_t value); + +static inline void +_Py_atomic_store_uint64_release(uint64_t *obj, uint64_t value); + +static inline uint64_t +_Py_atomic_load_uint64_acquire(const uint64_t *obj); + +static inline uint32_t +_Py_atomic_load_uint32_acquire(const uint32_t *obj); + +static inline Py_ssize_t +_Py_atomic_load_ssize_acquire(const Py_ssize_t *obj); + + + + +// --- _Py_atomic_fence ------------------------------------------------------ + +// Sequential consistency fence. C11 fences have complex semantics. When +// possible, use the atomic operations on variables defined above, which +// generally do not require explicit use of a fence. +// See https://en.cppreference.com/w/cpp/atomic/atomic_thread_fence +static inline void _Py_atomic_fence_seq_cst(void); + +// Acquire fence +static inline void _Py_atomic_fence_acquire(void); + +// Release fence +static inline void _Py_atomic_fence_release(void); + + +#ifndef _Py_USE_GCC_BUILTIN_ATOMICS +# if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)) +# define _Py_USE_GCC_BUILTIN_ATOMICS 1 +# elif defined(__clang__) +# if __has_builtin(__atomic_load) +# define _Py_USE_GCC_BUILTIN_ATOMICS 1 +# endif +# endif +#endif + +#if _Py_USE_GCC_BUILTIN_ATOMICS +# define Py_ATOMIC_GCC_H +# include "cpython/pyatomic_gcc.h" +# undef Py_ATOMIC_GCC_H +#elif __STDC_VERSION__ >= 201112L && !defined(__STDC_NO_ATOMICS__) +# define Py_ATOMIC_STD_H +# include "cpython/pyatomic_std.h" +# undef Py_ATOMIC_STD_H +#elif defined(_MSC_VER) +# define Py_ATOMIC_MSC_H +# include "cpython/pyatomic_msc.h" +# undef Py_ATOMIC_MSC_H +#else +# error "no available pyatomic implementation for this platform/compiler" +#endif + + +// --- aliases --------------------------------------------------------------- + +#if SIZEOF_LONG == 8 +# define _Py_atomic_load_ulong(p) \ + _Py_atomic_load_uint64((uint64_t *)p) +# define _Py_atomic_load_ulong_relaxed(p) \ + _Py_atomic_load_uint64_relaxed((uint64_t *)p) +# define _Py_atomic_store_ulong(p, v) \ + _Py_atomic_store_uint64((uint64_t *)p, v) +# define _Py_atomic_store_ulong_relaxed(p, v) \ + _Py_atomic_store_uint64_relaxed((uint64_t *)p, v) +#elif SIZEOF_LONG == 4 +# define _Py_atomic_load_ulong(p) \ + _Py_atomic_load_uint32((uint32_t *)p) +# define _Py_atomic_load_ulong_relaxed(p) \ + _Py_atomic_load_uint32_relaxed((uint32_t *)p) +# define _Py_atomic_store_ulong(p, v) \ + _Py_atomic_store_uint32((uint32_t *)p, v) +# define _Py_atomic_store_ulong_relaxed(p, v) \ + _Py_atomic_store_uint32_relaxed((uint32_t *)p, v) +#else +# error "long must be 4 or 8 bytes in size" +#endif // SIZEOF_LONG diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyatomic_gcc.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyatomic_gcc.h new file mode 100644 index 000000000..ef09954d5 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyatomic_gcc.h @@ -0,0 +1,551 @@ +// This is the implementation of Python atomic operations using GCC's built-in +// functions that match the C+11 memory model. This implementation is preferred +// for GCC compatible compilers, such as Clang. These functions are available +// in GCC 4.8+ without needing to compile with --std=c11 or --std=gnu11. + +#ifndef Py_ATOMIC_GCC_H +# error "this header file must not be included directly" +#endif + + +// --- _Py_atomic_add -------------------------------------------------------- + +static inline int +_Py_atomic_add_int(int *obj, int value) +{ return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } + +static inline int8_t +_Py_atomic_add_int8(int8_t *obj, int8_t value) +{ return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } + +static inline int16_t +_Py_atomic_add_int16(int16_t *obj, int16_t value) +{ return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } + +static inline int32_t +_Py_atomic_add_int32(int32_t *obj, int32_t value) +{ return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } + +static inline int64_t +_Py_atomic_add_int64(int64_t *obj, int64_t value) +{ return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } + +static inline intptr_t +_Py_atomic_add_intptr(intptr_t *obj, intptr_t value) +{ return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } + +static inline unsigned int +_Py_atomic_add_uint(unsigned int *obj, unsigned int value) +{ return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } + +static inline uint8_t +_Py_atomic_add_uint8(uint8_t *obj, uint8_t value) +{ return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } + +static inline uint16_t +_Py_atomic_add_uint16(uint16_t *obj, uint16_t value) +{ return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } + +static inline uint32_t +_Py_atomic_add_uint32(uint32_t *obj, uint32_t value) +{ return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } + +static inline uint64_t +_Py_atomic_add_uint64(uint64_t *obj, uint64_t value) +{ return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } + +static inline uintptr_t +_Py_atomic_add_uintptr(uintptr_t *obj, uintptr_t value) +{ return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } + +static inline Py_ssize_t +_Py_atomic_add_ssize(Py_ssize_t *obj, Py_ssize_t value) +{ return __atomic_fetch_add(obj, value, __ATOMIC_SEQ_CST); } + + +// --- _Py_atomic_compare_exchange ------------------------------------------- + +static inline int +_Py_atomic_compare_exchange_int(int *obj, int *expected, int desired) +{ return __atomic_compare_exchange_n(obj, expected, desired, 0, + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } + +static inline int +_Py_atomic_compare_exchange_int8(int8_t *obj, int8_t *expected, int8_t desired) +{ return __atomic_compare_exchange_n(obj, expected, desired, 0, + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } + +static inline int +_Py_atomic_compare_exchange_int16(int16_t *obj, int16_t *expected, int16_t desired) +{ return __atomic_compare_exchange_n(obj, expected, desired, 0, + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } + +static inline int +_Py_atomic_compare_exchange_int32(int32_t *obj, int32_t *expected, int32_t desired) +{ return __atomic_compare_exchange_n(obj, expected, desired, 0, + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } + +static inline int +_Py_atomic_compare_exchange_int64(int64_t *obj, int64_t *expected, int64_t desired) +{ return __atomic_compare_exchange_n(obj, expected, desired, 0, + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } + +static inline int +_Py_atomic_compare_exchange_intptr(intptr_t *obj, intptr_t *expected, intptr_t desired) +{ return __atomic_compare_exchange_n(obj, expected, desired, 0, + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } + +static inline int +_Py_atomic_compare_exchange_uint(unsigned int *obj, unsigned int *expected, unsigned int desired) +{ return __atomic_compare_exchange_n(obj, expected, desired, 0, + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } + +static inline int +_Py_atomic_compare_exchange_uint8(uint8_t *obj, uint8_t *expected, uint8_t desired) +{ return __atomic_compare_exchange_n(obj, expected, desired, 0, + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } + +static inline int +_Py_atomic_compare_exchange_uint16(uint16_t *obj, uint16_t *expected, uint16_t desired) +{ return __atomic_compare_exchange_n(obj, expected, desired, 0, + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } + +static inline int +_Py_atomic_compare_exchange_uint32(uint32_t *obj, uint32_t *expected, uint32_t desired) +{ return __atomic_compare_exchange_n(obj, expected, desired, 0, + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } + +static inline int +_Py_atomic_compare_exchange_uint64(uint64_t *obj, uint64_t *expected, uint64_t desired) +{ return __atomic_compare_exchange_n(obj, expected, desired, 0, + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } + +static inline int +_Py_atomic_compare_exchange_uintptr(uintptr_t *obj, uintptr_t *expected, uintptr_t desired) +{ return __atomic_compare_exchange_n(obj, expected, desired, 0, + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } + +static inline int +_Py_atomic_compare_exchange_ssize(Py_ssize_t *obj, Py_ssize_t *expected, Py_ssize_t desired) +{ return __atomic_compare_exchange_n(obj, expected, desired, 0, + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } + +static inline int +_Py_atomic_compare_exchange_ptr(void *obj, void *expected, void *desired) +{ return __atomic_compare_exchange_n((void **)obj, (void **)expected, desired, 0, + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } + + +// --- _Py_atomic_exchange --------------------------------------------------- + +static inline int +_Py_atomic_exchange_int(int *obj, int value) +{ return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline int8_t +_Py_atomic_exchange_int8(int8_t *obj, int8_t value) +{ return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline int16_t +_Py_atomic_exchange_int16(int16_t *obj, int16_t value) +{ return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline int32_t +_Py_atomic_exchange_int32(int32_t *obj, int32_t value) +{ return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline int64_t +_Py_atomic_exchange_int64(int64_t *obj, int64_t value) +{ return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline intptr_t +_Py_atomic_exchange_intptr(intptr_t *obj, intptr_t value) +{ return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline unsigned int +_Py_atomic_exchange_uint(unsigned int *obj, unsigned int value) +{ return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline uint8_t +_Py_atomic_exchange_uint8(uint8_t *obj, uint8_t value) +{ return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline uint16_t +_Py_atomic_exchange_uint16(uint16_t *obj, uint16_t value) +{ return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline uint32_t +_Py_atomic_exchange_uint32(uint32_t *obj, uint32_t value) +{ return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline uint64_t +_Py_atomic_exchange_uint64(uint64_t *obj, uint64_t value) +{ return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline uintptr_t +_Py_atomic_exchange_uintptr(uintptr_t *obj, uintptr_t value) +{ return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline Py_ssize_t +_Py_atomic_exchange_ssize(Py_ssize_t *obj, Py_ssize_t value) +{ return __atomic_exchange_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline void * +_Py_atomic_exchange_ptr(void *obj, void *value) +{ return __atomic_exchange_n((void **)obj, value, __ATOMIC_SEQ_CST); } + + +// --- _Py_atomic_and -------------------------------------------------------- + +static inline uint8_t +_Py_atomic_and_uint8(uint8_t *obj, uint8_t value) +{ return __atomic_fetch_and(obj, value, __ATOMIC_SEQ_CST); } + +static inline uint16_t +_Py_atomic_and_uint16(uint16_t *obj, uint16_t value) +{ return __atomic_fetch_and(obj, value, __ATOMIC_SEQ_CST); } + +static inline uint32_t +_Py_atomic_and_uint32(uint32_t *obj, uint32_t value) +{ return __atomic_fetch_and(obj, value, __ATOMIC_SEQ_CST); } + +static inline uint64_t +_Py_atomic_and_uint64(uint64_t *obj, uint64_t value) +{ return __atomic_fetch_and(obj, value, __ATOMIC_SEQ_CST); } + +static inline uintptr_t +_Py_atomic_and_uintptr(uintptr_t *obj, uintptr_t value) +{ return __atomic_fetch_and(obj, value, __ATOMIC_SEQ_CST); } + + +// --- _Py_atomic_or --------------------------------------------------------- + +static inline uint8_t +_Py_atomic_or_uint8(uint8_t *obj, uint8_t value) +{ return __atomic_fetch_or(obj, value, __ATOMIC_SEQ_CST); } + +static inline uint16_t +_Py_atomic_or_uint16(uint16_t *obj, uint16_t value) +{ return __atomic_fetch_or(obj, value, __ATOMIC_SEQ_CST); } + +static inline uint32_t +_Py_atomic_or_uint32(uint32_t *obj, uint32_t value) +{ return __atomic_fetch_or(obj, value, __ATOMIC_SEQ_CST); } + +static inline uint64_t +_Py_atomic_or_uint64(uint64_t *obj, uint64_t value) +{ return __atomic_fetch_or(obj, value, __ATOMIC_SEQ_CST); } + +static inline uintptr_t +_Py_atomic_or_uintptr(uintptr_t *obj, uintptr_t value) +{ return __atomic_fetch_or(obj, value, __ATOMIC_SEQ_CST); } + + +// --- _Py_atomic_load ------------------------------------------------------- + +static inline int +_Py_atomic_load_int(const int *obj) +{ return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } + +static inline int8_t +_Py_atomic_load_int8(const int8_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } + +static inline int16_t +_Py_atomic_load_int16(const int16_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } + +static inline int32_t +_Py_atomic_load_int32(const int32_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } + +static inline int64_t +_Py_atomic_load_int64(const int64_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } + +static inline intptr_t +_Py_atomic_load_intptr(const intptr_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } + +static inline uint8_t +_Py_atomic_load_uint8(const uint8_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } + +static inline uint16_t +_Py_atomic_load_uint16(const uint16_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } + +static inline uint32_t +_Py_atomic_load_uint32(const uint32_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } + +static inline uint64_t +_Py_atomic_load_uint64(const uint64_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } + +static inline uintptr_t +_Py_atomic_load_uintptr(const uintptr_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } + +static inline unsigned int +_Py_atomic_load_uint(const unsigned int *obj) +{ return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } + +static inline Py_ssize_t +_Py_atomic_load_ssize(const Py_ssize_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_SEQ_CST); } + +static inline void * +_Py_atomic_load_ptr(const void *obj) +{ return (void *)__atomic_load_n((void * const *)obj, __ATOMIC_SEQ_CST); } + + +// --- _Py_atomic_load_relaxed ----------------------------------------------- + +static inline int +_Py_atomic_load_int_relaxed(const int *obj) +{ return __atomic_load_n(obj, __ATOMIC_RELAXED); } + +static inline int8_t +_Py_atomic_load_int8_relaxed(const int8_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_RELAXED); } + +static inline int16_t +_Py_atomic_load_int16_relaxed(const int16_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_RELAXED); } + +static inline int32_t +_Py_atomic_load_int32_relaxed(const int32_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_RELAXED); } + +static inline int64_t +_Py_atomic_load_int64_relaxed(const int64_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_RELAXED); } + +static inline intptr_t +_Py_atomic_load_intptr_relaxed(const intptr_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_RELAXED); } + +static inline uint8_t +_Py_atomic_load_uint8_relaxed(const uint8_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_RELAXED); } + +static inline uint16_t +_Py_atomic_load_uint16_relaxed(const uint16_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_RELAXED); } + +static inline uint32_t +_Py_atomic_load_uint32_relaxed(const uint32_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_RELAXED); } + +static inline uint64_t +_Py_atomic_load_uint64_relaxed(const uint64_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_RELAXED); } + +static inline uintptr_t +_Py_atomic_load_uintptr_relaxed(const uintptr_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_RELAXED); } + +static inline unsigned int +_Py_atomic_load_uint_relaxed(const unsigned int *obj) +{ return __atomic_load_n(obj, __ATOMIC_RELAXED); } + +static inline Py_ssize_t +_Py_atomic_load_ssize_relaxed(const Py_ssize_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_RELAXED); } + +static inline void * +_Py_atomic_load_ptr_relaxed(const void *obj) +{ return (void *)__atomic_load_n((void * const *)obj, __ATOMIC_RELAXED); } + +static inline unsigned long long +_Py_atomic_load_ullong_relaxed(const unsigned long long *obj) +{ return __atomic_load_n(obj, __ATOMIC_RELAXED); } + + +// --- _Py_atomic_store ------------------------------------------------------ + +static inline void +_Py_atomic_store_int(int *obj, int value) +{ __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline void +_Py_atomic_store_int8(int8_t *obj, int8_t value) +{ __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline void +_Py_atomic_store_int16(int16_t *obj, int16_t value) +{ __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline void +_Py_atomic_store_int32(int32_t *obj, int32_t value) +{ __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline void +_Py_atomic_store_int64(int64_t *obj, int64_t value) +{ __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline void +_Py_atomic_store_intptr(intptr_t *obj, intptr_t value) +{ __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline void +_Py_atomic_store_uint8(uint8_t *obj, uint8_t value) +{ __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline void +_Py_atomic_store_uint16(uint16_t *obj, uint16_t value) +{ __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline void +_Py_atomic_store_uint32(uint32_t *obj, uint32_t value) +{ __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline void +_Py_atomic_store_uint64(uint64_t *obj, uint64_t value) +{ __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline void +_Py_atomic_store_uintptr(uintptr_t *obj, uintptr_t value) +{ __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline void +_Py_atomic_store_uint(unsigned int *obj, unsigned int value) +{ __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } + +static inline void +_Py_atomic_store_ptr(void *obj, void *value) +{ __atomic_store_n((void **)obj, value, __ATOMIC_SEQ_CST); } + +static inline void +_Py_atomic_store_ssize(Py_ssize_t *obj, Py_ssize_t value) +{ __atomic_store_n(obj, value, __ATOMIC_SEQ_CST); } + + +// --- _Py_atomic_store_relaxed ---------------------------------------------- + +static inline void +_Py_atomic_store_int_relaxed(int *obj, int value) +{ __atomic_store_n(obj, value, __ATOMIC_RELAXED); } + +static inline void +_Py_atomic_store_int8_relaxed(int8_t *obj, int8_t value) +{ __atomic_store_n(obj, value, __ATOMIC_RELAXED); } + +static inline void +_Py_atomic_store_int16_relaxed(int16_t *obj, int16_t value) +{ __atomic_store_n(obj, value, __ATOMIC_RELAXED); } + +static inline void +_Py_atomic_store_int32_relaxed(int32_t *obj, int32_t value) +{ __atomic_store_n(obj, value, __ATOMIC_RELAXED); } + +static inline void +_Py_atomic_store_int64_relaxed(int64_t *obj, int64_t value) +{ __atomic_store_n(obj, value, __ATOMIC_RELAXED); } + +static inline void +_Py_atomic_store_intptr_relaxed(intptr_t *obj, intptr_t value) +{ __atomic_store_n(obj, value, __ATOMIC_RELAXED); } + +static inline void +_Py_atomic_store_uint8_relaxed(uint8_t *obj, uint8_t value) +{ __atomic_store_n(obj, value, __ATOMIC_RELAXED); } + +static inline void +_Py_atomic_store_uint16_relaxed(uint16_t *obj, uint16_t value) +{ __atomic_store_n(obj, value, __ATOMIC_RELAXED); } + +static inline void +_Py_atomic_store_uint32_relaxed(uint32_t *obj, uint32_t value) +{ __atomic_store_n(obj, value, __ATOMIC_RELAXED); } + +static inline void +_Py_atomic_store_uint64_relaxed(uint64_t *obj, uint64_t value) +{ __atomic_store_n(obj, value, __ATOMIC_RELAXED); } + +static inline void +_Py_atomic_store_uintptr_relaxed(uintptr_t *obj, uintptr_t value) +{ __atomic_store_n(obj, value, __ATOMIC_RELAXED); } + +static inline void +_Py_atomic_store_uint_relaxed(unsigned int *obj, unsigned int value) +{ __atomic_store_n(obj, value, __ATOMIC_RELAXED); } + +static inline void +_Py_atomic_store_ptr_relaxed(void *obj, void *value) +{ __atomic_store_n((void **)obj, value, __ATOMIC_RELAXED); } + +static inline void +_Py_atomic_store_ssize_relaxed(Py_ssize_t *obj, Py_ssize_t value) +{ __atomic_store_n(obj, value, __ATOMIC_RELAXED); } + +static inline void +_Py_atomic_store_ullong_relaxed(unsigned long long *obj, + unsigned long long value) +{ __atomic_store_n(obj, value, __ATOMIC_RELAXED); } + + +// --- _Py_atomic_load_ptr_acquire / _Py_atomic_store_ptr_release ------------ + +static inline void * +_Py_atomic_load_ptr_acquire(const void *obj) +{ return (void *)__atomic_load_n((void * const *)obj, __ATOMIC_ACQUIRE); } + +static inline uintptr_t +_Py_atomic_load_uintptr_acquire(const uintptr_t *obj) +{ return (uintptr_t)__atomic_load_n(obj, __ATOMIC_ACQUIRE); } + +static inline void +_Py_atomic_store_ptr_release(void *obj, void *value) +{ __atomic_store_n((void **)obj, value, __ATOMIC_RELEASE); } + +static inline void +_Py_atomic_store_uintptr_release(uintptr_t *obj, uintptr_t value) +{ __atomic_store_n(obj, value, __ATOMIC_RELEASE); } + +static inline void +_Py_atomic_store_int_release(int *obj, int value) +{ __atomic_store_n(obj, value, __ATOMIC_RELEASE); } + +static inline void +_Py_atomic_store_ssize_release(Py_ssize_t *obj, Py_ssize_t value) +{ __atomic_store_n(obj, value, __ATOMIC_RELEASE); } + +static inline int +_Py_atomic_load_int_acquire(const int *obj) +{ return __atomic_load_n(obj, __ATOMIC_ACQUIRE); } + +static inline void +_Py_atomic_store_uint32_release(uint32_t *obj, uint32_t value) +{ __atomic_store_n(obj, value, __ATOMIC_RELEASE); } + +static inline void +_Py_atomic_store_uint64_release(uint64_t *obj, uint64_t value) +{ __atomic_store_n(obj, value, __ATOMIC_RELEASE); } + +static inline uint64_t +_Py_atomic_load_uint64_acquire(const uint64_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_ACQUIRE); } + +static inline uint32_t +_Py_atomic_load_uint32_acquire(const uint32_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_ACQUIRE); } + +static inline Py_ssize_t +_Py_atomic_load_ssize_acquire(const Py_ssize_t *obj) +{ return __atomic_load_n(obj, __ATOMIC_ACQUIRE); } + +// --- _Py_atomic_fence ------------------------------------------------------ + +static inline void +_Py_atomic_fence_seq_cst(void) +{ __atomic_thread_fence(__ATOMIC_SEQ_CST); } + + static inline void +_Py_atomic_fence_acquire(void) +{ __atomic_thread_fence(__ATOMIC_ACQUIRE); } + + static inline void +_Py_atomic_fence_release(void) +{ __atomic_thread_fence(__ATOMIC_RELEASE); } diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyatomic_msc.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyatomic_msc.h new file mode 100644 index 000000000..84da21bdc --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyatomic_msc.h @@ -0,0 +1,1095 @@ +// This is the implementation of Python atomic operations for MSVC if the +// compiler does not support C11 or C++11 atomics. +// +// MSVC intrinsics are defined on char, short, long, __int64, and pointer +// types. Note that long and int are both 32-bits even on 64-bit Windows, +// so operations on int are cast to long. +// +// The volatile keyword has additional memory ordering semantics on MSVC. On +// x86 and x86-64, volatile accesses have acquire-release semantics. On ARM64, +// volatile accesses behave like C11's memory_order_relaxed. + +#ifndef Py_ATOMIC_MSC_H +# error "this header file must not be included directly" +#endif + +#include + +#define _Py_atomic_ASSERT_ARG_TYPE(TYPE) \ + Py_BUILD_ASSERT(sizeof(*obj) == sizeof(TYPE)) + + +// --- _Py_atomic_add -------------------------------------------------------- + +static inline int8_t +_Py_atomic_add_int8(int8_t *obj, int8_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(char); + return (int8_t)_InterlockedExchangeAdd8((volatile char *)obj, (char)value); +} + +static inline int16_t +_Py_atomic_add_int16(int16_t *obj, int16_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(short); + return (int16_t)_InterlockedExchangeAdd16((volatile short *)obj, (short)value); +} + +static inline int32_t +_Py_atomic_add_int32(int32_t *obj, int32_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(long); + return (int32_t)_InterlockedExchangeAdd((volatile long *)obj, (long)value); +} + +static inline int64_t +_Py_atomic_add_int64(int64_t *obj, int64_t value) +{ +#if defined(_M_X64) || defined(_M_ARM64) + _Py_atomic_ASSERT_ARG_TYPE(__int64); + return (int64_t)_InterlockedExchangeAdd64((volatile __int64 *)obj, (__int64)value); +#else + int64_t old_value = _Py_atomic_load_int64_relaxed(obj); + for (;;) { + int64_t new_value = old_value + value; + if (_Py_atomic_compare_exchange_int64(obj, &old_value, new_value)) { + return old_value; + } + } +#endif +} + + +static inline uint8_t +_Py_atomic_add_uint8(uint8_t *obj, uint8_t value) +{ + return (uint8_t)_Py_atomic_add_int8((int8_t *)obj, (int8_t)value); +} + +static inline uint16_t +_Py_atomic_add_uint16(uint16_t *obj, uint16_t value) +{ + return (uint16_t)_Py_atomic_add_int16((int16_t *)obj, (int16_t)value); +} + +static inline uint32_t +_Py_atomic_add_uint32(uint32_t *obj, uint32_t value) +{ + return (uint32_t)_Py_atomic_add_int32((int32_t *)obj, (int32_t)value); +} + +static inline int +_Py_atomic_add_int(int *obj, int value) +{ + _Py_atomic_ASSERT_ARG_TYPE(int32_t); + return (int)_Py_atomic_add_int32((int32_t *)obj, (int32_t)value); +} + +static inline unsigned int +_Py_atomic_add_uint(unsigned int *obj, unsigned int value) +{ + _Py_atomic_ASSERT_ARG_TYPE(int32_t); + return (unsigned int)_Py_atomic_add_int32((int32_t *)obj, (int32_t)value); +} + +static inline uint64_t +_Py_atomic_add_uint64(uint64_t *obj, uint64_t value) +{ + return (uint64_t)_Py_atomic_add_int64((int64_t *)obj, (int64_t)value); +} + +static inline intptr_t +_Py_atomic_add_intptr(intptr_t *obj, intptr_t value) +{ +#if SIZEOF_VOID_P == 8 + _Py_atomic_ASSERT_ARG_TYPE(int64_t); + return (intptr_t)_Py_atomic_add_int64((int64_t *)obj, (int64_t)value); +#else + _Py_atomic_ASSERT_ARG_TYPE(int32_t); + return (intptr_t)_Py_atomic_add_int32((int32_t *)obj, (int32_t)value); +#endif +} + +static inline uintptr_t +_Py_atomic_add_uintptr(uintptr_t *obj, uintptr_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(intptr_t); + return (uintptr_t)_Py_atomic_add_intptr((intptr_t *)obj, (intptr_t)value); +} + +static inline Py_ssize_t +_Py_atomic_add_ssize(Py_ssize_t *obj, Py_ssize_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(intptr_t); + return (Py_ssize_t)_Py_atomic_add_intptr((intptr_t *)obj, (intptr_t)value); +} + + +// --- _Py_atomic_compare_exchange ------------------------------------------- + +static inline int +_Py_atomic_compare_exchange_int8(int8_t *obj, int8_t *expected, int8_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(char); + int8_t initial = (int8_t)_InterlockedCompareExchange8( + (volatile char *)obj, + (char)value, + (char)*expected); + if (initial == *expected) { + return 1; + } + *expected = initial; + return 0; +} + +static inline int +_Py_atomic_compare_exchange_int16(int16_t *obj, int16_t *expected, int16_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(short); + int16_t initial = (int16_t)_InterlockedCompareExchange16( + (volatile short *)obj, + (short)value, + (short)*expected); + if (initial == *expected) { + return 1; + } + *expected = initial; + return 0; +} + +static inline int +_Py_atomic_compare_exchange_int32(int32_t *obj, int32_t *expected, int32_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(long); + int32_t initial = (int32_t)_InterlockedCompareExchange( + (volatile long *)obj, + (long)value, + (long)*expected); + if (initial == *expected) { + return 1; + } + *expected = initial; + return 0; +} + +static inline int +_Py_atomic_compare_exchange_int64(int64_t *obj, int64_t *expected, int64_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(__int64); + int64_t initial = (int64_t)_InterlockedCompareExchange64( + (volatile __int64 *)obj, + (__int64)value, + (__int64)*expected); + if (initial == *expected) { + return 1; + } + *expected = initial; + return 0; +} + +static inline int +_Py_atomic_compare_exchange_ptr(void *obj, void *expected, void *value) +{ + void *initial = _InterlockedCompareExchangePointer( + (void**)obj, + value, + *(void**)expected); + if (initial == *(void**)expected) { + return 1; + } + *(void**)expected = initial; + return 0; +} + + +static inline int +_Py_atomic_compare_exchange_uint8(uint8_t *obj, uint8_t *expected, uint8_t value) +{ + return _Py_atomic_compare_exchange_int8((int8_t *)obj, + (int8_t *)expected, + (int8_t)value); +} + +static inline int +_Py_atomic_compare_exchange_uint16(uint16_t *obj, uint16_t *expected, uint16_t value) +{ + return _Py_atomic_compare_exchange_int16((int16_t *)obj, + (int16_t *)expected, + (int16_t)value); +} + +static inline int +_Py_atomic_compare_exchange_uint32(uint32_t *obj, uint32_t *expected, uint32_t value) +{ + return _Py_atomic_compare_exchange_int32((int32_t *)obj, + (int32_t *)expected, + (int32_t)value); +} + +static inline int +_Py_atomic_compare_exchange_int(int *obj, int *expected, int value) +{ + _Py_atomic_ASSERT_ARG_TYPE(int32_t); + return _Py_atomic_compare_exchange_int32((int32_t *)obj, + (int32_t *)expected, + (int32_t)value); +} + +static inline int +_Py_atomic_compare_exchange_uint(unsigned int *obj, unsigned int *expected, unsigned int value) +{ + _Py_atomic_ASSERT_ARG_TYPE(int32_t); + return _Py_atomic_compare_exchange_int32((int32_t *)obj, + (int32_t *)expected, + (int32_t)value); +} + +static inline int +_Py_atomic_compare_exchange_uint64(uint64_t *obj, uint64_t *expected, uint64_t value) +{ + return _Py_atomic_compare_exchange_int64((int64_t *)obj, + (int64_t *)expected, + (int64_t)value); +} + +static inline int +_Py_atomic_compare_exchange_intptr(intptr_t *obj, intptr_t *expected, intptr_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(void*); + return _Py_atomic_compare_exchange_ptr((void**)obj, + (void**)expected, + (void*)value); +} + +static inline int +_Py_atomic_compare_exchange_uintptr(uintptr_t *obj, uintptr_t *expected, uintptr_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(void*); + return _Py_atomic_compare_exchange_ptr((void**)obj, + (void**)expected, + (void*)value); +} + +static inline int +_Py_atomic_compare_exchange_ssize(Py_ssize_t *obj, Py_ssize_t *expected, Py_ssize_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(void*); + return _Py_atomic_compare_exchange_ptr((void**)obj, + (void**)expected, + (void*)value); +} + + +// --- _Py_atomic_exchange --------------------------------------------------- + +static inline int8_t +_Py_atomic_exchange_int8(int8_t *obj, int8_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(char); + return (int8_t)_InterlockedExchange8((volatile char *)obj, (char)value); +} + +static inline int16_t +_Py_atomic_exchange_int16(int16_t *obj, int16_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(short); + return (int16_t)_InterlockedExchange16((volatile short *)obj, (short)value); +} + +static inline int32_t +_Py_atomic_exchange_int32(int32_t *obj, int32_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(long); + return (int32_t)_InterlockedExchange((volatile long *)obj, (long)value); +} + +static inline int64_t +_Py_atomic_exchange_int64(int64_t *obj, int64_t value) +{ +#if defined(_M_X64) || defined(_M_ARM64) + _Py_atomic_ASSERT_ARG_TYPE(__int64); + return (int64_t)_InterlockedExchange64((volatile __int64 *)obj, (__int64)value); +#else + int64_t old_value = _Py_atomic_load_int64_relaxed(obj); + for (;;) { + if (_Py_atomic_compare_exchange_int64(obj, &old_value, value)) { + return old_value; + } + } +#endif +} + +static inline void* +_Py_atomic_exchange_ptr(void *obj, void *value) +{ + return (void*)_InterlockedExchangePointer((void * volatile *)obj, (void *)value); +} + + +static inline uint8_t +_Py_atomic_exchange_uint8(uint8_t *obj, uint8_t value) +{ + return (uint8_t)_Py_atomic_exchange_int8((int8_t *)obj, + (int8_t)value); +} + +static inline uint16_t +_Py_atomic_exchange_uint16(uint16_t *obj, uint16_t value) +{ + return (uint16_t)_Py_atomic_exchange_int16((int16_t *)obj, + (int16_t)value); +} + +static inline uint32_t +_Py_atomic_exchange_uint32(uint32_t *obj, uint32_t value) +{ + return (uint32_t)_Py_atomic_exchange_int32((int32_t *)obj, + (int32_t)value); +} + +static inline int +_Py_atomic_exchange_int(int *obj, int value) +{ + _Py_atomic_ASSERT_ARG_TYPE(int32_t); + return (int)_Py_atomic_exchange_int32((int32_t *)obj, + (int32_t)value); +} + +static inline unsigned int +_Py_atomic_exchange_uint(unsigned int *obj, unsigned int value) +{ + _Py_atomic_ASSERT_ARG_TYPE(int32_t); + return (unsigned int)_Py_atomic_exchange_int32((int32_t *)obj, + (int32_t)value); +} + +static inline uint64_t +_Py_atomic_exchange_uint64(uint64_t *obj, uint64_t value) +{ + return (uint64_t)_Py_atomic_exchange_int64((int64_t *)obj, + (int64_t)value); +} + +static inline intptr_t +_Py_atomic_exchange_intptr(intptr_t *obj, intptr_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(void*); + return (intptr_t)_Py_atomic_exchange_ptr((void**)obj, + (void*)value); +} + +static inline uintptr_t +_Py_atomic_exchange_uintptr(uintptr_t *obj, uintptr_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(void*); + return (uintptr_t)_Py_atomic_exchange_ptr((void**)obj, + (void*)value); +} + +static inline Py_ssize_t +_Py_atomic_exchange_ssize(Py_ssize_t *obj, Py_ssize_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(void*); + return (Py_ssize_t)_Py_atomic_exchange_ptr((void**)obj, + (void*)value); +} + + +// --- _Py_atomic_and -------------------------------------------------------- + +static inline uint8_t +_Py_atomic_and_uint8(uint8_t *obj, uint8_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(char); + return (uint8_t)_InterlockedAnd8((volatile char *)obj, (char)value); +} + +static inline uint16_t +_Py_atomic_and_uint16(uint16_t *obj, uint16_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(short); + return (uint16_t)_InterlockedAnd16((volatile short *)obj, (short)value); +} + +static inline uint32_t +_Py_atomic_and_uint32(uint32_t *obj, uint32_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(long); + return (uint32_t)_InterlockedAnd((volatile long *)obj, (long)value); +} + +static inline uint64_t +_Py_atomic_and_uint64(uint64_t *obj, uint64_t value) +{ +#if defined(_M_X64) || defined(_M_ARM64) + _Py_atomic_ASSERT_ARG_TYPE(__int64); + return (uint64_t)_InterlockedAnd64((volatile __int64 *)obj, (__int64)value); +#else + uint64_t old_value = _Py_atomic_load_uint64_relaxed(obj); + for (;;) { + uint64_t new_value = old_value & value; + if (_Py_atomic_compare_exchange_uint64(obj, &old_value, new_value)) { + return old_value; + } + } +#endif +} + +static inline uintptr_t +_Py_atomic_and_uintptr(uintptr_t *obj, uintptr_t value) +{ +#if SIZEOF_VOID_P == 8 + _Py_atomic_ASSERT_ARG_TYPE(uint64_t); + return (uintptr_t)_Py_atomic_and_uint64((uint64_t *)obj, + (uint64_t)value); +#else + _Py_atomic_ASSERT_ARG_TYPE(uint32_t); + return (uintptr_t)_Py_atomic_and_uint32((uint32_t *)obj, + (uint32_t)value); +#endif +} + + +// --- _Py_atomic_or --------------------------------------------------------- + +static inline uint8_t +_Py_atomic_or_uint8(uint8_t *obj, uint8_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(char); + return (uint8_t)_InterlockedOr8((volatile char *)obj, (char)value); +} + +static inline uint16_t +_Py_atomic_or_uint16(uint16_t *obj, uint16_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(short); + return (uint16_t)_InterlockedOr16((volatile short *)obj, (short)value); +} + +static inline uint32_t +_Py_atomic_or_uint32(uint32_t *obj, uint32_t value) +{ + _Py_atomic_ASSERT_ARG_TYPE(long); + return (uint32_t)_InterlockedOr((volatile long *)obj, (long)value); +} + +static inline uint64_t +_Py_atomic_or_uint64(uint64_t *obj, uint64_t value) +{ +#if defined(_M_X64) || defined(_M_ARM64) + _Py_atomic_ASSERT_ARG_TYPE(__int64); + return (uint64_t)_InterlockedOr64((volatile __int64 *)obj, (__int64)value); +#else + uint64_t old_value = _Py_atomic_load_uint64_relaxed(obj); + for (;;) { + uint64_t new_value = old_value | value; + if (_Py_atomic_compare_exchange_uint64(obj, &old_value, new_value)) { + return old_value; + } + } +#endif +} + + +static inline uintptr_t +_Py_atomic_or_uintptr(uintptr_t *obj, uintptr_t value) +{ +#if SIZEOF_VOID_P == 8 + _Py_atomic_ASSERT_ARG_TYPE(uint64_t); + return (uintptr_t)_Py_atomic_or_uint64((uint64_t *)obj, + (uint64_t)value); +#else + _Py_atomic_ASSERT_ARG_TYPE(uint32_t); + return (uintptr_t)_Py_atomic_or_uint32((uint32_t *)obj, + (uint32_t)value); +#endif +} + + +// --- _Py_atomic_load ------------------------------------------------------- + +static inline uint8_t +_Py_atomic_load_uint8(const uint8_t *obj) +{ +#if defined(_M_X64) || defined(_M_IX86) + return *(volatile uint8_t *)obj; +#elif defined(_M_ARM64) + return (uint8_t)__ldar8((unsigned __int8 volatile *)obj); +#else +# error "no implementation of _Py_atomic_load_uint8" +#endif +} + +static inline uint16_t +_Py_atomic_load_uint16(const uint16_t *obj) +{ +#if defined(_M_X64) || defined(_M_IX86) + return *(volatile uint16_t *)obj; +#elif defined(_M_ARM64) + return (uint16_t)__ldar16((unsigned __int16 volatile *)obj); +#else +# error "no implementation of _Py_atomic_load_uint16" +#endif +} + +static inline uint32_t +_Py_atomic_load_uint32(const uint32_t *obj) +{ +#if defined(_M_X64) || defined(_M_IX86) + return *(volatile uint32_t *)obj; +#elif defined(_M_ARM64) + return (uint32_t)__ldar32((unsigned __int32 volatile *)obj); +#else +# error "no implementation of _Py_atomic_load_uint32" +#endif +} + +static inline uint64_t +_Py_atomic_load_uint64(const uint64_t *obj) +{ +#if defined(_M_X64) || defined(_M_IX86) + return *(volatile uint64_t *)obj; +#elif defined(_M_ARM64) + return (uint64_t)__ldar64((unsigned __int64 volatile *)obj); +#else +# error "no implementation of _Py_atomic_load_uint64" +#endif +} + +static inline int8_t +_Py_atomic_load_int8(const int8_t *obj) +{ + return (int8_t)_Py_atomic_load_uint8((const uint8_t *)obj); +} + +static inline int16_t +_Py_atomic_load_int16(const int16_t *obj) +{ + return (int16_t)_Py_atomic_load_uint16((const uint16_t *)obj); +} + +static inline int32_t +_Py_atomic_load_int32(const int32_t *obj) +{ + return (int32_t)_Py_atomic_load_uint32((const uint32_t *)obj); +} + +static inline int +_Py_atomic_load_int(const int *obj) +{ + _Py_atomic_ASSERT_ARG_TYPE(uint32_t); + return (int)_Py_atomic_load_uint32((uint32_t *)obj); +} + +static inline unsigned int +_Py_atomic_load_uint(const unsigned int *obj) +{ + _Py_atomic_ASSERT_ARG_TYPE(uint32_t); + return (unsigned int)_Py_atomic_load_uint32((uint32_t *)obj); +} + +static inline int64_t +_Py_atomic_load_int64(const int64_t *obj) +{ + return (int64_t)_Py_atomic_load_uint64((const uint64_t *)obj); +} + +static inline void* +_Py_atomic_load_ptr(const void *obj) +{ +#if SIZEOF_VOID_P == 8 + return (void*)_Py_atomic_load_uint64((const uint64_t *)obj); +#else + return (void*)_Py_atomic_load_uint32((const uint32_t *)obj); +#endif +} + +static inline intptr_t +_Py_atomic_load_intptr(const intptr_t *obj) +{ + _Py_atomic_ASSERT_ARG_TYPE(void*); + return (intptr_t)_Py_atomic_load_ptr((void*)obj); +} + +static inline uintptr_t +_Py_atomic_load_uintptr(const uintptr_t *obj) +{ + _Py_atomic_ASSERT_ARG_TYPE(void*); + return (uintptr_t)_Py_atomic_load_ptr((void*)obj); +} + +static inline Py_ssize_t +_Py_atomic_load_ssize(const Py_ssize_t *obj) +{ + _Py_atomic_ASSERT_ARG_TYPE(void*); + return (Py_ssize_t)_Py_atomic_load_ptr((void*)obj); +} + + +// --- _Py_atomic_load_relaxed ----------------------------------------------- + +static inline int +_Py_atomic_load_int_relaxed(const int *obj) +{ + return *(volatile int *)obj; +} + +static inline int8_t +_Py_atomic_load_int8_relaxed(const int8_t *obj) +{ + return *(volatile int8_t *)obj; +} + +static inline int16_t +_Py_atomic_load_int16_relaxed(const int16_t *obj) +{ + return *(volatile int16_t *)obj; +} + +static inline int32_t +_Py_atomic_load_int32_relaxed(const int32_t *obj) +{ + return *(volatile int32_t *)obj; +} + +static inline int64_t +_Py_atomic_load_int64_relaxed(const int64_t *obj) +{ + return *(volatile int64_t *)obj; +} + +static inline intptr_t +_Py_atomic_load_intptr_relaxed(const intptr_t *obj) +{ + return *(volatile intptr_t *)obj; +} + +static inline uint8_t +_Py_atomic_load_uint8_relaxed(const uint8_t *obj) +{ + return *(volatile uint8_t *)obj; +} + +static inline uint16_t +_Py_atomic_load_uint16_relaxed(const uint16_t *obj) +{ + return *(volatile uint16_t *)obj; +} + +static inline uint32_t +_Py_atomic_load_uint32_relaxed(const uint32_t *obj) +{ + return *(volatile uint32_t *)obj; +} + +static inline uint64_t +_Py_atomic_load_uint64_relaxed(const uint64_t *obj) +{ + return *(volatile uint64_t *)obj; +} + +static inline uintptr_t +_Py_atomic_load_uintptr_relaxed(const uintptr_t *obj) +{ + return *(volatile uintptr_t *)obj; +} + +static inline unsigned int +_Py_atomic_load_uint_relaxed(const unsigned int *obj) +{ + return *(volatile unsigned int *)obj; +} + +static inline Py_ssize_t +_Py_atomic_load_ssize_relaxed(const Py_ssize_t *obj) +{ + return *(volatile Py_ssize_t *)obj; +} + +static inline void* +_Py_atomic_load_ptr_relaxed(const void *obj) +{ + return *(void * volatile *)obj; +} + +static inline unsigned long long +_Py_atomic_load_ullong_relaxed(const unsigned long long *obj) +{ + return *(volatile unsigned long long *)obj; +} + + +// --- _Py_atomic_store ------------------------------------------------------ + +static inline void +_Py_atomic_store_int(int *obj, int value) +{ + (void)_Py_atomic_exchange_int(obj, value); +} + +static inline void +_Py_atomic_store_int8(int8_t *obj, int8_t value) +{ + (void)_Py_atomic_exchange_int8(obj, value); +} + +static inline void +_Py_atomic_store_int16(int16_t *obj, int16_t value) +{ + (void)_Py_atomic_exchange_int16(obj, value); +} + +static inline void +_Py_atomic_store_int32(int32_t *obj, int32_t value) +{ + (void)_Py_atomic_exchange_int32(obj, value); +} + +static inline void +_Py_atomic_store_int64(int64_t *obj, int64_t value) +{ + (void)_Py_atomic_exchange_int64(obj, value); +} + +static inline void +_Py_atomic_store_intptr(intptr_t *obj, intptr_t value) +{ + (void)_Py_atomic_exchange_intptr(obj, value); +} + +static inline void +_Py_atomic_store_uint8(uint8_t *obj, uint8_t value) +{ + (void)_Py_atomic_exchange_uint8(obj, value); +} + +static inline void +_Py_atomic_store_uint16(uint16_t *obj, uint16_t value) +{ + (void)_Py_atomic_exchange_uint16(obj, value); +} + +static inline void +_Py_atomic_store_uint32(uint32_t *obj, uint32_t value) +{ + (void)_Py_atomic_exchange_uint32(obj, value); +} + +static inline void +_Py_atomic_store_uint64(uint64_t *obj, uint64_t value) +{ + (void)_Py_atomic_exchange_uint64(obj, value); +} + +static inline void +_Py_atomic_store_uintptr(uintptr_t *obj, uintptr_t value) +{ + (void)_Py_atomic_exchange_uintptr(obj, value); +} + +static inline void +_Py_atomic_store_uint(unsigned int *obj, unsigned int value) +{ + (void)_Py_atomic_exchange_uint(obj, value); +} + +static inline void +_Py_atomic_store_ptr(void *obj, void *value) +{ + (void)_Py_atomic_exchange_ptr(obj, value); +} + +static inline void +_Py_atomic_store_ssize(Py_ssize_t *obj, Py_ssize_t value) +{ + (void)_Py_atomic_exchange_ssize(obj, value); +} + + +// --- _Py_atomic_store_relaxed ---------------------------------------------- + +static inline void +_Py_atomic_store_int_relaxed(int *obj, int value) +{ + *(volatile int *)obj = value; +} + +static inline void +_Py_atomic_store_int8_relaxed(int8_t *obj, int8_t value) +{ + *(volatile int8_t *)obj = value; +} + +static inline void +_Py_atomic_store_int16_relaxed(int16_t *obj, int16_t value) +{ + *(volatile int16_t *)obj = value; +} + +static inline void +_Py_atomic_store_int32_relaxed(int32_t *obj, int32_t value) +{ + *(volatile int32_t *)obj = value; +} + +static inline void +_Py_atomic_store_int64_relaxed(int64_t *obj, int64_t value) +{ + *(volatile int64_t *)obj = value; +} + +static inline void +_Py_atomic_store_intptr_relaxed(intptr_t *obj, intptr_t value) +{ + *(volatile intptr_t *)obj = value; +} + +static inline void +_Py_atomic_store_uint8_relaxed(uint8_t *obj, uint8_t value) +{ + *(volatile uint8_t *)obj = value; +} + +static inline void +_Py_atomic_store_uint16_relaxed(uint16_t *obj, uint16_t value) +{ + *(volatile uint16_t *)obj = value; +} + +static inline void +_Py_atomic_store_uint32_relaxed(uint32_t *obj, uint32_t value) +{ + *(volatile uint32_t *)obj = value; +} + +static inline void +_Py_atomic_store_uint64_relaxed(uint64_t *obj, uint64_t value) +{ + *(volatile uint64_t *)obj = value; +} + +static inline void +_Py_atomic_store_uintptr_relaxed(uintptr_t *obj, uintptr_t value) +{ + *(volatile uintptr_t *)obj = value; +} + +static inline void +_Py_atomic_store_uint_relaxed(unsigned int *obj, unsigned int value) +{ + *(volatile unsigned int *)obj = value; +} + +static inline void +_Py_atomic_store_ptr_relaxed(void *obj, void* value) +{ + *(void * volatile *)obj = value; +} + +static inline void +_Py_atomic_store_ssize_relaxed(Py_ssize_t *obj, Py_ssize_t value) +{ + *(volatile Py_ssize_t *)obj = value; +} + +static inline void +_Py_atomic_store_ullong_relaxed(unsigned long long *obj, + unsigned long long value) +{ + *(volatile unsigned long long *)obj = value; +} + + +// --- _Py_atomic_load_ptr_acquire / _Py_atomic_store_ptr_release ------------ + +static inline void * +_Py_atomic_load_ptr_acquire(const void *obj) +{ +#if defined(_M_X64) || defined(_M_IX86) + return *(void * volatile *)obj; +#elif defined(_M_ARM64) + return (void *)__ldar64((unsigned __int64 volatile *)obj); +#else +# error "no implementation of _Py_atomic_load_ptr_acquire" +#endif +} + +static inline uintptr_t +_Py_atomic_load_uintptr_acquire(const uintptr_t *obj) +{ +#if defined(_M_X64) || defined(_M_IX86) + return *(uintptr_t volatile *)obj; +#elif defined(_M_ARM64) + return (uintptr_t)__ldar64((unsigned __int64 volatile *)obj); +#else +# error "no implementation of _Py_atomic_load_uintptr_acquire" +#endif +} + +static inline void +_Py_atomic_store_ptr_release(void *obj, void *value) +{ +#if defined(_M_X64) || defined(_M_IX86) + *(void * volatile *)obj = value; +#elif defined(_M_ARM64) + __stlr64((unsigned __int64 volatile *)obj, (uintptr_t)value); +#else +# error "no implementation of _Py_atomic_store_ptr_release" +#endif +} + +static inline void +_Py_atomic_store_uintptr_release(uintptr_t *obj, uintptr_t value) +{ +#if defined(_M_X64) || defined(_M_IX86) + *(uintptr_t volatile *)obj = value; +#elif defined(_M_ARM64) + _Py_atomic_ASSERT_ARG_TYPE(unsigned __int64); + __stlr64((unsigned __int64 volatile *)obj, (unsigned __int64)value); +#else +# error "no implementation of _Py_atomic_store_uintptr_release" +#endif +} + +static inline void +_Py_atomic_store_int_release(int *obj, int value) +{ +#if defined(_M_X64) || defined(_M_IX86) + *(int volatile *)obj = value; +#elif defined(_M_ARM64) + _Py_atomic_ASSERT_ARG_TYPE(unsigned __int32); + __stlr32((unsigned __int32 volatile *)obj, (unsigned __int32)value); +#else +# error "no implementation of _Py_atomic_store_int_release" +#endif +} + +static inline void +_Py_atomic_store_ssize_release(Py_ssize_t *obj, Py_ssize_t value) +{ +#if defined(_M_X64) || defined(_M_IX86) + *(Py_ssize_t volatile *)obj = value; +#elif defined(_M_ARM64) + __stlr64((unsigned __int64 volatile *)obj, (unsigned __int64)value); +#else +# error "no implementation of _Py_atomic_store_ssize_release" +#endif +} + +static inline int +_Py_atomic_load_int_acquire(const int *obj) +{ +#if defined(_M_X64) || defined(_M_IX86) + return *(int volatile *)obj; +#elif defined(_M_ARM64) + _Py_atomic_ASSERT_ARG_TYPE(unsigned __int32); + return (int)__ldar32((unsigned __int32 volatile *)obj); +#else +# error "no implementation of _Py_atomic_load_int_acquire" +#endif +} + +static inline void +_Py_atomic_store_uint32_release(uint32_t *obj, uint32_t value) +{ +#if defined(_M_X64) || defined(_M_IX86) + *(uint32_t volatile *)obj = value; +#elif defined(_M_ARM64) + _Py_atomic_ASSERT_ARG_TYPE(unsigned __int32); + __stlr32((unsigned __int32 volatile *)obj, (unsigned __int32)value); +#else +# error "no implementation of _Py_atomic_store_uint32_release" +#endif +} + +static inline void +_Py_atomic_store_uint64_release(uint64_t *obj, uint64_t value) +{ +#if defined(_M_X64) || defined(_M_IX86) + *(uint64_t volatile *)obj = value; +#elif defined(_M_ARM64) + _Py_atomic_ASSERT_ARG_TYPE(unsigned __int64); + __stlr64((unsigned __int64 volatile *)obj, (unsigned __int64)value); +#else +# error "no implementation of _Py_atomic_store_uint64_release" +#endif +} + +static inline uint64_t +_Py_atomic_load_uint64_acquire(const uint64_t *obj) +{ +#if defined(_M_X64) || defined(_M_IX86) + return *(uint64_t volatile *)obj; +#elif defined(_M_ARM64) + _Py_atomic_ASSERT_ARG_TYPE(__int64); + return (uint64_t)__ldar64((unsigned __int64 volatile *)obj); +#else +# error "no implementation of _Py_atomic_load_uint64_acquire" +#endif +} + +static inline uint32_t +_Py_atomic_load_uint32_acquire(const uint32_t *obj) +{ +#if defined(_M_X64) || defined(_M_IX86) + return *(uint32_t volatile *)obj; +#elif defined(_M_ARM64) + return (uint32_t)__ldar32((uint32_t volatile *)obj); +#else +# error "no implementation of _Py_atomic_load_uint32_acquire" +#endif +} + +static inline Py_ssize_t +_Py_atomic_load_ssize_acquire(const Py_ssize_t *obj) +{ +#if defined(_M_X64) || defined(_M_IX86) + return *(Py_ssize_t volatile *)obj; +#elif defined(_M_ARM64) + return (Py_ssize_t)__ldar64((unsigned __int64 volatile *)obj); +#else +# error "no implementation of _Py_atomic_load_ssize_acquire" +#endif +} + +// --- _Py_atomic_fence ------------------------------------------------------ + + static inline void +_Py_atomic_fence_seq_cst(void) +{ +#if defined(_M_ARM64) + __dmb(_ARM64_BARRIER_ISH); +#elif defined(_M_X64) + __faststorefence(); +#elif defined(_M_IX86) + _mm_mfence(); +#else +# error "no implementation of _Py_atomic_fence_seq_cst" +#endif +} + + static inline void +_Py_atomic_fence_acquire(void) +{ +#if defined(_M_ARM64) + __dmb(_ARM64_BARRIER_ISHLD); +#elif defined(_M_X64) || defined(_M_IX86) + _ReadBarrier(); +#else +# error "no implementation of _Py_atomic_fence_acquire" +#endif +} + + static inline void +_Py_atomic_fence_release(void) +{ +#if defined(_M_ARM64) + __dmb(_ARM64_BARRIER_ISH); +#elif defined(_M_X64) || defined(_M_IX86) + _ReadWriteBarrier(); +#else +# error "no implementation of _Py_atomic_fence_release" +#endif +} + +#undef _Py_atomic_ASSERT_ARG_TYPE diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyatomic_std.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyatomic_std.h new file mode 100644 index 000000000..7c71e94c6 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyatomic_std.h @@ -0,0 +1,976 @@ +// This is the implementation of Python atomic operations using C++11 or C11 +// atomics. Note that the pyatomic_gcc.h implementation is preferred for GCC +// compatible compilers, even if they support C++11 atomics. + +#ifndef Py_ATOMIC_STD_H +# error "this header file must not be included directly" +#endif + +#ifdef __cplusplus +extern "C++" { +# include +} +# define _Py_USING_STD using namespace std +# define _Atomic(tp) atomic +#else +# define _Py_USING_STD +# include +#endif + + +// --- _Py_atomic_add -------------------------------------------------------- + +static inline int +_Py_atomic_add_int(int *obj, int value) +{ + _Py_USING_STD; + return atomic_fetch_add((_Atomic(int)*)obj, value); +} + +static inline int8_t +_Py_atomic_add_int8(int8_t *obj, int8_t value) +{ + _Py_USING_STD; + return atomic_fetch_add((_Atomic(int8_t)*)obj, value); +} + +static inline int16_t +_Py_atomic_add_int16(int16_t *obj, int16_t value) +{ + _Py_USING_STD; + return atomic_fetch_add((_Atomic(int16_t)*)obj, value); +} + +static inline int32_t +_Py_atomic_add_int32(int32_t *obj, int32_t value) +{ + _Py_USING_STD; + return atomic_fetch_add((_Atomic(int32_t)*)obj, value); +} + +static inline int64_t +_Py_atomic_add_int64(int64_t *obj, int64_t value) +{ + _Py_USING_STD; + return atomic_fetch_add((_Atomic(int64_t)*)obj, value); +} + +static inline intptr_t +_Py_atomic_add_intptr(intptr_t *obj, intptr_t value) +{ + _Py_USING_STD; + return atomic_fetch_add((_Atomic(intptr_t)*)obj, value); +} + +static inline unsigned int +_Py_atomic_add_uint(unsigned int *obj, unsigned int value) +{ + _Py_USING_STD; + return atomic_fetch_add((_Atomic(unsigned int)*)obj, value); +} + +static inline uint8_t +_Py_atomic_add_uint8(uint8_t *obj, uint8_t value) +{ + _Py_USING_STD; + return atomic_fetch_add((_Atomic(uint8_t)*)obj, value); +} + +static inline uint16_t +_Py_atomic_add_uint16(uint16_t *obj, uint16_t value) +{ + _Py_USING_STD; + return atomic_fetch_add((_Atomic(uint16_t)*)obj, value); +} + +static inline uint32_t +_Py_atomic_add_uint32(uint32_t *obj, uint32_t value) +{ + _Py_USING_STD; + return atomic_fetch_add((_Atomic(uint32_t)*)obj, value); +} + +static inline uint64_t +_Py_atomic_add_uint64(uint64_t *obj, uint64_t value) +{ + _Py_USING_STD; + return atomic_fetch_add((_Atomic(uint64_t)*)obj, value); +} + +static inline uintptr_t +_Py_atomic_add_uintptr(uintptr_t *obj, uintptr_t value) +{ + _Py_USING_STD; + return atomic_fetch_add((_Atomic(uintptr_t)*)obj, value); +} + +static inline Py_ssize_t +_Py_atomic_add_ssize(Py_ssize_t *obj, Py_ssize_t value) +{ + _Py_USING_STD; + return atomic_fetch_add((_Atomic(Py_ssize_t)*)obj, value); +} + + +// --- _Py_atomic_compare_exchange ------------------------------------------- + +static inline int +_Py_atomic_compare_exchange_int(int *obj, int *expected, int desired) +{ + _Py_USING_STD; + return atomic_compare_exchange_strong((_Atomic(int)*)obj, + expected, desired); +} + +static inline int +_Py_atomic_compare_exchange_int8(int8_t *obj, int8_t *expected, int8_t desired) +{ + _Py_USING_STD; + return atomic_compare_exchange_strong((_Atomic(int8_t)*)obj, + expected, desired); +} + +static inline int +_Py_atomic_compare_exchange_int16(int16_t *obj, int16_t *expected, int16_t desired) +{ + _Py_USING_STD; + return atomic_compare_exchange_strong((_Atomic(int16_t)*)obj, + expected, desired); +} + +static inline int +_Py_atomic_compare_exchange_int32(int32_t *obj, int32_t *expected, int32_t desired) +{ + _Py_USING_STD; + return atomic_compare_exchange_strong((_Atomic(int32_t)*)obj, + expected, desired); +} + +static inline int +_Py_atomic_compare_exchange_int64(int64_t *obj, int64_t *expected, int64_t desired) +{ + _Py_USING_STD; + return atomic_compare_exchange_strong((_Atomic(int64_t)*)obj, + expected, desired); +} + +static inline int +_Py_atomic_compare_exchange_intptr(intptr_t *obj, intptr_t *expected, intptr_t desired) +{ + _Py_USING_STD; + return atomic_compare_exchange_strong((_Atomic(intptr_t)*)obj, + expected, desired); +} + +static inline int +_Py_atomic_compare_exchange_uint(unsigned int *obj, unsigned int *expected, unsigned int desired) +{ + _Py_USING_STD; + return atomic_compare_exchange_strong((_Atomic(unsigned int)*)obj, + expected, desired); +} + +static inline int +_Py_atomic_compare_exchange_uint8(uint8_t *obj, uint8_t *expected, uint8_t desired) +{ + _Py_USING_STD; + return atomic_compare_exchange_strong((_Atomic(uint8_t)*)obj, + expected, desired); +} + +static inline int +_Py_atomic_compare_exchange_uint16(uint16_t *obj, uint16_t *expected, uint16_t desired) +{ + _Py_USING_STD; + return atomic_compare_exchange_strong((_Atomic(uint16_t)*)obj, + expected, desired); +} + +static inline int +_Py_atomic_compare_exchange_uint32(uint32_t *obj, uint32_t *expected, uint32_t desired) +{ + _Py_USING_STD; + return atomic_compare_exchange_strong((_Atomic(uint32_t)*)obj, + expected, desired); +} + +static inline int +_Py_atomic_compare_exchange_uint64(uint64_t *obj, uint64_t *expected, uint64_t desired) +{ + _Py_USING_STD; + return atomic_compare_exchange_strong((_Atomic(uint64_t)*)obj, + expected, desired); +} + +static inline int +_Py_atomic_compare_exchange_uintptr(uintptr_t *obj, uintptr_t *expected, uintptr_t desired) +{ + _Py_USING_STD; + return atomic_compare_exchange_strong((_Atomic(uintptr_t)*)obj, + expected, desired); +} + +static inline int +_Py_atomic_compare_exchange_ssize(Py_ssize_t *obj, Py_ssize_t *expected, Py_ssize_t desired) +{ + _Py_USING_STD; + return atomic_compare_exchange_strong((_Atomic(Py_ssize_t)*)obj, + expected, desired); +} + +static inline int +_Py_atomic_compare_exchange_ptr(void *obj, void *expected, void *desired) +{ + _Py_USING_STD; + return atomic_compare_exchange_strong((_Atomic(void *)*)obj, + (void **)expected, desired); +} + + +// --- _Py_atomic_exchange --------------------------------------------------- + +static inline int +_Py_atomic_exchange_int(int *obj, int value) +{ + _Py_USING_STD; + return atomic_exchange((_Atomic(int)*)obj, value); +} + +static inline int8_t +_Py_atomic_exchange_int8(int8_t *obj, int8_t value) +{ + _Py_USING_STD; + return atomic_exchange((_Atomic(int8_t)*)obj, value); +} + +static inline int16_t +_Py_atomic_exchange_int16(int16_t *obj, int16_t value) +{ + _Py_USING_STD; + return atomic_exchange((_Atomic(int16_t)*)obj, value); +} + +static inline int32_t +_Py_atomic_exchange_int32(int32_t *obj, int32_t value) +{ + _Py_USING_STD; + return atomic_exchange((_Atomic(int32_t)*)obj, value); +} + +static inline int64_t +_Py_atomic_exchange_int64(int64_t *obj, int64_t value) +{ + _Py_USING_STD; + return atomic_exchange((_Atomic(int64_t)*)obj, value); +} + +static inline intptr_t +_Py_atomic_exchange_intptr(intptr_t *obj, intptr_t value) +{ + _Py_USING_STD; + return atomic_exchange((_Atomic(intptr_t)*)obj, value); +} + +static inline unsigned int +_Py_atomic_exchange_uint(unsigned int *obj, unsigned int value) +{ + _Py_USING_STD; + return atomic_exchange((_Atomic(unsigned int)*)obj, value); +} + +static inline uint8_t +_Py_atomic_exchange_uint8(uint8_t *obj, uint8_t value) +{ + _Py_USING_STD; + return atomic_exchange((_Atomic(uint8_t)*)obj, value); +} + +static inline uint16_t +_Py_atomic_exchange_uint16(uint16_t *obj, uint16_t value) +{ + _Py_USING_STD; + return atomic_exchange((_Atomic(uint16_t)*)obj, value); +} + +static inline uint32_t +_Py_atomic_exchange_uint32(uint32_t *obj, uint32_t value) +{ + _Py_USING_STD; + return atomic_exchange((_Atomic(uint32_t)*)obj, value); +} + +static inline uint64_t +_Py_atomic_exchange_uint64(uint64_t *obj, uint64_t value) +{ + _Py_USING_STD; + return atomic_exchange((_Atomic(uint64_t)*)obj, value); +} + +static inline uintptr_t +_Py_atomic_exchange_uintptr(uintptr_t *obj, uintptr_t value) +{ + _Py_USING_STD; + return atomic_exchange((_Atomic(uintptr_t)*)obj, value); +} + +static inline Py_ssize_t +_Py_atomic_exchange_ssize(Py_ssize_t *obj, Py_ssize_t value) +{ + _Py_USING_STD; + return atomic_exchange((_Atomic(Py_ssize_t)*)obj, value); +} + +static inline void* +_Py_atomic_exchange_ptr(void *obj, void *value) +{ + _Py_USING_STD; + return atomic_exchange((_Atomic(void *)*)obj, value); +} + + +// --- _Py_atomic_and -------------------------------------------------------- + +static inline uint8_t +_Py_atomic_and_uint8(uint8_t *obj, uint8_t value) +{ + _Py_USING_STD; + return atomic_fetch_and((_Atomic(uint8_t)*)obj, value); +} + +static inline uint16_t +_Py_atomic_and_uint16(uint16_t *obj, uint16_t value) +{ + _Py_USING_STD; + return atomic_fetch_and((_Atomic(uint16_t)*)obj, value); +} + +static inline uint32_t +_Py_atomic_and_uint32(uint32_t *obj, uint32_t value) +{ + _Py_USING_STD; + return atomic_fetch_and((_Atomic(uint32_t)*)obj, value); +} + +static inline uint64_t +_Py_atomic_and_uint64(uint64_t *obj, uint64_t value) +{ + _Py_USING_STD; + return atomic_fetch_and((_Atomic(uint64_t)*)obj, value); +} + +static inline uintptr_t +_Py_atomic_and_uintptr(uintptr_t *obj, uintptr_t value) +{ + _Py_USING_STD; + return atomic_fetch_and((_Atomic(uintptr_t)*)obj, value); +} + + +// --- _Py_atomic_or --------------------------------------------------------- + +static inline uint8_t +_Py_atomic_or_uint8(uint8_t *obj, uint8_t value) +{ + _Py_USING_STD; + return atomic_fetch_or((_Atomic(uint8_t)*)obj, value); +} + +static inline uint16_t +_Py_atomic_or_uint16(uint16_t *obj, uint16_t value) +{ + _Py_USING_STD; + return atomic_fetch_or((_Atomic(uint16_t)*)obj, value); +} + +static inline uint32_t +_Py_atomic_or_uint32(uint32_t *obj, uint32_t value) +{ + _Py_USING_STD; + return atomic_fetch_or((_Atomic(uint32_t)*)obj, value); +} + +static inline uint64_t +_Py_atomic_or_uint64(uint64_t *obj, uint64_t value) +{ + _Py_USING_STD; + return atomic_fetch_or((_Atomic(uint64_t)*)obj, value); +} + +static inline uintptr_t +_Py_atomic_or_uintptr(uintptr_t *obj, uintptr_t value) +{ + _Py_USING_STD; + return atomic_fetch_or((_Atomic(uintptr_t)*)obj, value); +} + + +// --- _Py_atomic_load ------------------------------------------------------- + +static inline int +_Py_atomic_load_int(const int *obj) +{ + _Py_USING_STD; + return atomic_load((const _Atomic(int)*)obj); +} + +static inline int8_t +_Py_atomic_load_int8(const int8_t *obj) +{ + _Py_USING_STD; + return atomic_load((const _Atomic(int8_t)*)obj); +} + +static inline int16_t +_Py_atomic_load_int16(const int16_t *obj) +{ + _Py_USING_STD; + return atomic_load((const _Atomic(int16_t)*)obj); +} + +static inline int32_t +_Py_atomic_load_int32(const int32_t *obj) +{ + _Py_USING_STD; + return atomic_load((const _Atomic(int32_t)*)obj); +} + +static inline int64_t +_Py_atomic_load_int64(const int64_t *obj) +{ + _Py_USING_STD; + return atomic_load((const _Atomic(int64_t)*)obj); +} + +static inline intptr_t +_Py_atomic_load_intptr(const intptr_t *obj) +{ + _Py_USING_STD; + return atomic_load((const _Atomic(intptr_t)*)obj); +} + +static inline uint8_t +_Py_atomic_load_uint8(const uint8_t *obj) +{ + _Py_USING_STD; + return atomic_load((const _Atomic(uint8_t)*)obj); +} + +static inline uint16_t +_Py_atomic_load_uint16(const uint16_t *obj) +{ + _Py_USING_STD; + return atomic_load((const _Atomic(uint32_t)*)obj); +} + +static inline uint32_t +_Py_atomic_load_uint32(const uint32_t *obj) +{ + _Py_USING_STD; + return atomic_load((const _Atomic(uint32_t)*)obj); +} + +static inline uint64_t +_Py_atomic_load_uint64(const uint64_t *obj) +{ + _Py_USING_STD; + return atomic_load((const _Atomic(uint64_t)*)obj); +} + +static inline uintptr_t +_Py_atomic_load_uintptr(const uintptr_t *obj) +{ + _Py_USING_STD; + return atomic_load((const _Atomic(uintptr_t)*)obj); +} + +static inline unsigned int +_Py_atomic_load_uint(const unsigned int *obj) +{ + _Py_USING_STD; + return atomic_load((const _Atomic(unsigned int)*)obj); +} + +static inline Py_ssize_t +_Py_atomic_load_ssize(const Py_ssize_t *obj) +{ + _Py_USING_STD; + return atomic_load((const _Atomic(Py_ssize_t)*)obj); +} + +static inline void* +_Py_atomic_load_ptr(const void *obj) +{ + _Py_USING_STD; + return atomic_load((const _Atomic(void*)*)obj); +} + + +// --- _Py_atomic_load_relaxed ----------------------------------------------- + +static inline int +_Py_atomic_load_int_relaxed(const int *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(int)*)obj, + memory_order_relaxed); +} + +static inline int8_t +_Py_atomic_load_int8_relaxed(const int8_t *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(int8_t)*)obj, + memory_order_relaxed); +} + +static inline int16_t +_Py_atomic_load_int16_relaxed(const int16_t *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(int16_t)*)obj, + memory_order_relaxed); +} + +static inline int32_t +_Py_atomic_load_int32_relaxed(const int32_t *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(int32_t)*)obj, + memory_order_relaxed); +} + +static inline int64_t +_Py_atomic_load_int64_relaxed(const int64_t *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(int64_t)*)obj, + memory_order_relaxed); +} + +static inline intptr_t +_Py_atomic_load_intptr_relaxed(const intptr_t *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(intptr_t)*)obj, + memory_order_relaxed); +} + +static inline uint8_t +_Py_atomic_load_uint8_relaxed(const uint8_t *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(uint8_t)*)obj, + memory_order_relaxed); +} + +static inline uint16_t +_Py_atomic_load_uint16_relaxed(const uint16_t *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(uint16_t)*)obj, + memory_order_relaxed); +} + +static inline uint32_t +_Py_atomic_load_uint32_relaxed(const uint32_t *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(uint32_t)*)obj, + memory_order_relaxed); +} + +static inline uint64_t +_Py_atomic_load_uint64_relaxed(const uint64_t *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(uint64_t)*)obj, + memory_order_relaxed); +} + +static inline uintptr_t +_Py_atomic_load_uintptr_relaxed(const uintptr_t *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(uintptr_t)*)obj, + memory_order_relaxed); +} + +static inline unsigned int +_Py_atomic_load_uint_relaxed(const unsigned int *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(unsigned int)*)obj, + memory_order_relaxed); +} + +static inline Py_ssize_t +_Py_atomic_load_ssize_relaxed(const Py_ssize_t *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(Py_ssize_t)*)obj, + memory_order_relaxed); +} + +static inline void* +_Py_atomic_load_ptr_relaxed(const void *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(void*)*)obj, + memory_order_relaxed); +} + +static inline unsigned long long +_Py_atomic_load_ullong_relaxed(const unsigned long long *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(unsigned long long)*)obj, + memory_order_relaxed); +} + + +// --- _Py_atomic_store ------------------------------------------------------ + +static inline void +_Py_atomic_store_int(int *obj, int value) +{ + _Py_USING_STD; + atomic_store((_Atomic(int)*)obj, value); +} + +static inline void +_Py_atomic_store_int8(int8_t *obj, int8_t value) +{ + _Py_USING_STD; + atomic_store((_Atomic(int8_t)*)obj, value); +} + +static inline void +_Py_atomic_store_int16(int16_t *obj, int16_t value) +{ + _Py_USING_STD; + atomic_store((_Atomic(int16_t)*)obj, value); +} + +static inline void +_Py_atomic_store_int32(int32_t *obj, int32_t value) +{ + _Py_USING_STD; + atomic_store((_Atomic(int32_t)*)obj, value); +} + +static inline void +_Py_atomic_store_int64(int64_t *obj, int64_t value) +{ + _Py_USING_STD; + atomic_store((_Atomic(int64_t)*)obj, value); +} + +static inline void +_Py_atomic_store_intptr(intptr_t *obj, intptr_t value) +{ + _Py_USING_STD; + atomic_store((_Atomic(intptr_t)*)obj, value); +} + +static inline void +_Py_atomic_store_uint8(uint8_t *obj, uint8_t value) +{ + _Py_USING_STD; + atomic_store((_Atomic(uint8_t)*)obj, value); +} + +static inline void +_Py_atomic_store_uint16(uint16_t *obj, uint16_t value) +{ + _Py_USING_STD; + atomic_store((_Atomic(uint16_t)*)obj, value); +} + +static inline void +_Py_atomic_store_uint32(uint32_t *obj, uint32_t value) +{ + _Py_USING_STD; + atomic_store((_Atomic(uint32_t)*)obj, value); +} + +static inline void +_Py_atomic_store_uint64(uint64_t *obj, uint64_t value) +{ + _Py_USING_STD; + atomic_store((_Atomic(uint64_t)*)obj, value); +} + +static inline void +_Py_atomic_store_uintptr(uintptr_t *obj, uintptr_t value) +{ + _Py_USING_STD; + atomic_store((_Atomic(uintptr_t)*)obj, value); +} + +static inline void +_Py_atomic_store_uint(unsigned int *obj, unsigned int value) +{ + _Py_USING_STD; + atomic_store((_Atomic(unsigned int)*)obj, value); +} + +static inline void +_Py_atomic_store_ptr(void *obj, void *value) +{ + _Py_USING_STD; + atomic_store((_Atomic(void*)*)obj, value); +} + +static inline void +_Py_atomic_store_ssize(Py_ssize_t *obj, Py_ssize_t value) +{ + _Py_USING_STD; + atomic_store((_Atomic(Py_ssize_t)*)obj, value); +} + + +// --- _Py_atomic_store_relaxed ---------------------------------------------- + +static inline void +_Py_atomic_store_int_relaxed(int *obj, int value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(int)*)obj, value, + memory_order_relaxed); +} + +static inline void +_Py_atomic_store_int8_relaxed(int8_t *obj, int8_t value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(int8_t)*)obj, value, + memory_order_relaxed); +} + +static inline void +_Py_atomic_store_int16_relaxed(int16_t *obj, int16_t value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(int16_t)*)obj, value, + memory_order_relaxed); +} + +static inline void +_Py_atomic_store_int32_relaxed(int32_t *obj, int32_t value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(int32_t)*)obj, value, + memory_order_relaxed); +} + +static inline void +_Py_atomic_store_int64_relaxed(int64_t *obj, int64_t value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(int64_t)*)obj, value, + memory_order_relaxed); +} + +static inline void +_Py_atomic_store_intptr_relaxed(intptr_t *obj, intptr_t value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(intptr_t)*)obj, value, + memory_order_relaxed); +} + +static inline void +_Py_atomic_store_uint8_relaxed(uint8_t *obj, uint8_t value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(uint8_t)*)obj, value, + memory_order_relaxed); +} + +static inline void +_Py_atomic_store_uint16_relaxed(uint16_t *obj, uint16_t value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(uint16_t)*)obj, value, + memory_order_relaxed); +} + +static inline void +_Py_atomic_store_uint32_relaxed(uint32_t *obj, uint32_t value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(uint32_t)*)obj, value, + memory_order_relaxed); +} + +static inline void +_Py_atomic_store_uint64_relaxed(uint64_t *obj, uint64_t value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(uint64_t)*)obj, value, + memory_order_relaxed); +} + +static inline void +_Py_atomic_store_uintptr_relaxed(uintptr_t *obj, uintptr_t value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(uintptr_t)*)obj, value, + memory_order_relaxed); +} + +static inline void +_Py_atomic_store_uint_relaxed(unsigned int *obj, unsigned int value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(unsigned int)*)obj, value, + memory_order_relaxed); +} + +static inline void +_Py_atomic_store_ptr_relaxed(void *obj, void *value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(void*)*)obj, value, + memory_order_relaxed); +} + +static inline void +_Py_atomic_store_ssize_relaxed(Py_ssize_t *obj, Py_ssize_t value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(Py_ssize_t)*)obj, value, + memory_order_relaxed); +} + +static inline void +_Py_atomic_store_ullong_relaxed(unsigned long long *obj, + unsigned long long value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(unsigned long long)*)obj, value, + memory_order_relaxed); +} + + +// --- _Py_atomic_load_ptr_acquire / _Py_atomic_store_ptr_release ------------ + +static inline void * +_Py_atomic_load_ptr_acquire(const void *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(void*)*)obj, + memory_order_acquire); +} + +static inline uintptr_t +_Py_atomic_load_uintptr_acquire(const uintptr_t *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(uintptr_t)*)obj, + memory_order_acquire); +} + +static inline void +_Py_atomic_store_ptr_release(void *obj, void *value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(void*)*)obj, value, + memory_order_release); +} + +static inline void +_Py_atomic_store_uintptr_release(uintptr_t *obj, uintptr_t value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(uintptr_t)*)obj, value, + memory_order_release); +} + +static inline void +_Py_atomic_store_int_release(int *obj, int value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(int)*)obj, value, + memory_order_release); +} + +static inline void +_Py_atomic_store_ssize_release(Py_ssize_t *obj, Py_ssize_t value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(Py_ssize_t)*)obj, value, + memory_order_release); +} + +static inline int +_Py_atomic_load_int_acquire(const int *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(int)*)obj, + memory_order_acquire); +} + +static inline void +_Py_atomic_store_uint32_release(uint32_t *obj, uint32_t value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(uint32_t)*)obj, value, + memory_order_release); +} + +static inline void +_Py_atomic_store_uint64_release(uint64_t *obj, uint64_t value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(uint64_t)*)obj, value, + memory_order_release); +} + +static inline uint64_t +_Py_atomic_load_uint64_acquire(const uint64_t *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(uint64_t)*)obj, + memory_order_acquire); +} + +static inline uint32_t +_Py_atomic_load_uint32_acquire(const uint32_t *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(uint32_t)*)obj, + memory_order_acquire); +} + +static inline Py_ssize_t +_Py_atomic_load_ssize_acquire(const Py_ssize_t *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(Py_ssize_t)*)obj, + memory_order_acquire); +} + + +// --- _Py_atomic_fence ------------------------------------------------------ + + static inline void +_Py_atomic_fence_seq_cst(void) +{ + _Py_USING_STD; + atomic_thread_fence(memory_order_seq_cst); +} + + static inline void +_Py_atomic_fence_acquire(void) +{ + _Py_USING_STD; + atomic_thread_fence(memory_order_acquire); +} + + static inline void +_Py_atomic_fence_release(void) +{ + _Py_USING_STD; + atomic_thread_fence(memory_order_release); +} diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyctype.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyctype.h new file mode 100644 index 000000000..729d93275 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyctype.h @@ -0,0 +1,39 @@ +#ifndef Py_LIMITED_API +#ifndef PYCTYPE_H +#define PYCTYPE_H +#ifdef __cplusplus +extern "C" { +#endif + +#define PY_CTF_LOWER 0x01 +#define PY_CTF_UPPER 0x02 +#define PY_CTF_ALPHA (PY_CTF_LOWER|PY_CTF_UPPER) +#define PY_CTF_DIGIT 0x04 +#define PY_CTF_ALNUM (PY_CTF_ALPHA|PY_CTF_DIGIT) +#define PY_CTF_SPACE 0x08 +#define PY_CTF_XDIGIT 0x10 + +PyAPI_DATA(const unsigned int) _Py_ctype_table[256]; + +/* Unlike their C counterparts, the following macros are not meant to + * handle an int with any of the values [EOF, 0-UCHAR_MAX]. The argument + * must be a signed/unsigned char. */ +#define Py_ISLOWER(c) (_Py_ctype_table[Py_CHARMASK(c)] & PY_CTF_LOWER) +#define Py_ISUPPER(c) (_Py_ctype_table[Py_CHARMASK(c)] & PY_CTF_UPPER) +#define Py_ISALPHA(c) (_Py_ctype_table[Py_CHARMASK(c)] & PY_CTF_ALPHA) +#define Py_ISDIGIT(c) (_Py_ctype_table[Py_CHARMASK(c)] & PY_CTF_DIGIT) +#define Py_ISXDIGIT(c) (_Py_ctype_table[Py_CHARMASK(c)] & PY_CTF_XDIGIT) +#define Py_ISALNUM(c) (_Py_ctype_table[Py_CHARMASK(c)] & PY_CTF_ALNUM) +#define Py_ISSPACE(c) (_Py_ctype_table[Py_CHARMASK(c)] & PY_CTF_SPACE) + +PyAPI_DATA(const unsigned char) _Py_ctype_tolower[256]; +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 +#endif /* !PYCTYPE_H */ +#endif /* !Py_LIMITED_API */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pydebug.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pydebug.h new file mode 100644 index 000000000..f6ebd99ed --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pydebug.h @@ -0,0 +1,38 @@ +#ifndef Py_LIMITED_API +#ifndef Py_PYDEBUG_H +#define Py_PYDEBUG_H +#ifdef __cplusplus +extern "C" { +#endif + +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_DebugFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_VerboseFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_QuietFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_InteractiveFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_InspectFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_OptimizeFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_NoSiteFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_BytesWarningFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_FrozenFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_IgnoreEnvironmentFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_DontWriteBytecodeFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_NoUserSiteDirectory; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_UnbufferedStdioFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_HashRandomizationFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_IsolatedFlag; + +#ifdef MS_WINDOWS +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_LegacyWindowsFSEncodingFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_LegacyWindowsStdioFlag; +#endif + +/* this is a wrapper around getenv() that pays attention to + Py_IgnoreEnvironmentFlag. It should be used for getting variables like + PYTHONPATH and PYTHONHOME from the environment */ +PyAPI_FUNC(char*) Py_GETENV(const char *name); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_PYDEBUG_H */ +#endif /* Py_LIMITED_API */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyerrors.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyerrors.h new file mode 100644 index 000000000..b36b4681f --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyerrors.h @@ -0,0 +1,131 @@ +#ifndef Py_CPYTHON_ERRORS_H +# error "this header file must not be included directly" +#endif + +/* Error objects */ + +/* PyException_HEAD defines the initial segment of every exception class. */ +#define PyException_HEAD PyObject_HEAD PyObject *dict;\ + PyObject *args; PyObject *notes; PyObject *traceback;\ + PyObject *context; PyObject *cause;\ + char suppress_context; + +typedef struct { + PyException_HEAD +} PyBaseExceptionObject; + +typedef struct { + PyException_HEAD + PyObject *msg; + PyObject *excs; +} PyBaseExceptionGroupObject; + +typedef struct { + PyException_HEAD + PyObject *msg; + PyObject *filename; + PyObject *lineno; + PyObject *offset; + PyObject *end_lineno; + PyObject *end_offset; + PyObject *text; + PyObject *print_file_and_line; +} PySyntaxErrorObject; + +typedef struct { + PyException_HEAD + PyObject *msg; + PyObject *name; + PyObject *path; + PyObject *name_from; +} 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; + +typedef struct { + PyException_HEAD + PyObject *name; +} PyNameErrorObject; + +typedef struct { + PyException_HEAD + PyObject *obj; + PyObject *name; +} PyAttributeErrorObject; + +/* Compatibility typedefs */ +typedef PyOSErrorObject PyEnvironmentErrorObject; +#ifdef MS_WINDOWS +typedef PyOSErrorObject PyWindowsErrorObject; +#endif + +/* Context manipulation (PEP 3134) */ + +PyAPI_FUNC(void) _PyErr_ChainExceptions1(PyObject *); + +/* In exceptions.c */ + +PyAPI_FUNC(PyObject*) PyUnstable_Exc_PrepReraiseStar( + PyObject *orig, + PyObject *excs); + +/* In signalmodule.c */ + +PyAPI_FUNC(int) PySignal_SetWakeupFd(int fd); + +/* Support for adding program text to SyntaxErrors */ + +PyAPI_FUNC(void) PyErr_SyntaxLocationObject( + PyObject *filename, + int lineno, + int col_offset); + +PyAPI_FUNC(void) PyErr_RangedSyntaxLocationObject( + PyObject *filename, + int lineno, + int col_offset, + int end_lineno, + int end_col_offset); + +PyAPI_FUNC(PyObject *) PyErr_ProgramTextObject( + PyObject *filename, + int lineno); + +PyAPI_FUNC(void) _Py_NO_RETURN _Py_FatalErrorFunc( + const char *func, + const char *message); + +PyAPI_FUNC(void) PyErr_FormatUnraisable(const char *, ...); + +PyAPI_DATA(PyObject *) PyExc_PythonFinalizationError; + +#define Py_FatalError(message) _Py_FatalErrorFunc(__func__, (message)) diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyfpe.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyfpe.h new file mode 100644 index 000000000..cc2def63a --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyfpe.h @@ -0,0 +1,15 @@ +#ifndef Py_PYFPE_H +#define Py_PYFPE_H +/* 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, + * to avoid breaking API users. + */ + +#define PyFPE_START_PROTECT(err_string, leave_stmt) +#define PyFPE_END_PROTECT(v) + +#endif /* !defined(Py_LIMITED_API) */ +#endif /* !Py_PYFPE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyframe.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyframe.h new file mode 100644 index 000000000..eeafbb17a --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyframe.h @@ -0,0 +1,45 @@ +#ifndef Py_CPYTHON_PYFRAME_H +# error "this header file must not be included directly" +#endif + +PyAPI_DATA(PyTypeObject) PyFrame_Type; +PyAPI_DATA(PyTypeObject) PyFrameLocalsProxy_Type; + +#define PyFrame_Check(op) Py_IS_TYPE((op), &PyFrame_Type) +#define PyFrameLocalsProxy_Check(op) Py_IS_TYPE((op), &PyFrameLocalsProxy_Type) + +PyAPI_FUNC(PyFrameObject *) PyFrame_GetBack(PyFrameObject *frame); +PyAPI_FUNC(PyObject *) PyFrame_GetLocals(PyFrameObject *frame); + +PyAPI_FUNC(PyObject *) PyFrame_GetGlobals(PyFrameObject *frame); +PyAPI_FUNC(PyObject *) PyFrame_GetBuiltins(PyFrameObject *frame); + +PyAPI_FUNC(PyObject *) PyFrame_GetGenerator(PyFrameObject *frame); +PyAPI_FUNC(int) PyFrame_GetLasti(PyFrameObject *frame); +PyAPI_FUNC(PyObject*) PyFrame_GetVar(PyFrameObject *frame, PyObject *name); +PyAPI_FUNC(PyObject*) PyFrame_GetVarString(PyFrameObject *frame, const char *name); + +/* The following functions are for use by debuggers and other tools + * implementing custom frame evaluators with PEP 523. */ + +struct _PyInterpreterFrame; + +/* Returns the code object of the frame (strong reference). + * Does not raise an exception. */ +PyAPI_FUNC(PyObject *) PyUnstable_InterpreterFrame_GetCode(struct _PyInterpreterFrame *frame); + +/* Returns a byte ofsset into the last executed instruction. + * Does not raise an exception. */ +PyAPI_FUNC(int) PyUnstable_InterpreterFrame_GetLasti(struct _PyInterpreterFrame *frame); + +/* Returns the currently executing line number, or -1 if there is no line number. + * Does not raise an exception. */ +PyAPI_FUNC(int) PyUnstable_InterpreterFrame_GetLine(struct _PyInterpreterFrame *frame); + +#define PyUnstable_EXECUTABLE_KIND_SKIP 0 +#define PyUnstable_EXECUTABLE_KIND_PY_FUNCTION 1 +#define PyUnstable_EXECUTABLE_KIND_BUILTIN_FUNCTION 3 +#define PyUnstable_EXECUTABLE_KIND_METHOD_DESCRIPTOR 4 +#define PyUnstable_EXECUTABLE_KINDS 5 + +PyAPI_DATA(const PyTypeObject *) const PyUnstable_ExecutableKinds[PyUnstable_EXECUTABLE_KINDS+1]; diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyhash.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyhash.h new file mode 100644 index 000000000..825c034a8 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pyhash.h @@ -0,0 +1,47 @@ +#ifndef Py_CPYTHON_HASH_H +# error "this header file must not be included directly" +#endif + +/* Prime multiplier used in string and various other hashes. */ +#define PyHASH_MULTIPLIER 1000003UL /* 0xf4243 */ + +/* Parameters used for the numeric hash implementation. See notes for + _Py_HashDouble in Python/pyhash.c. Numeric hashes are based on + reduction modulo the prime 2**_PyHASH_BITS - 1. */ + +#if SIZEOF_VOID_P >= 8 +# define PyHASH_BITS 61 +#else +# define PyHASH_BITS 31 +#endif + +#define PyHASH_MODULUS (((size_t)1 << _PyHASH_BITS) - 1) +#define PyHASH_INF 314159 +#define PyHASH_IMAG PyHASH_MULTIPLIER + +/* Aliases kept for backward compatibility with Python 3.12 */ +#define _PyHASH_MULTIPLIER PyHASH_MULTIPLIER +#define _PyHASH_BITS PyHASH_BITS +#define _PyHASH_MODULUS PyHASH_MODULUS +#define _PyHASH_INF PyHASH_INF +#define _PyHASH_IMAG PyHASH_IMAG + +/* Helpers for hash functions */ +PyAPI_FUNC(Py_hash_t) _Py_HashDouble(PyObject *, double); + +// Kept for backward compatibility +#define _Py_HashPointer Py_HashPointer + + +/* hash function definition */ +typedef struct { + Py_hash_t (*const hash)(const void *, Py_ssize_t); + const char *name; + const int hash_bits; + const int seed_bits; +} PyHash_FuncDef; + +PyAPI_FUNC(PyHash_FuncDef*) PyHash_GetFuncDef(void); + +PyAPI_FUNC(Py_hash_t) Py_HashPointer(const void *ptr); +PyAPI_FUNC(Py_hash_t) PyObject_GenericHash(PyObject *); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pylifecycle.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pylifecycle.h new file mode 100644 index 000000000..e46dfe59e --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pylifecycle.h @@ -0,0 +1,92 @@ +#ifndef Py_CPYTHON_PYLIFECYCLE_H +# error "this header file must not be included directly" +#endif + +/* Py_FrozenMain is kept out of the Limited API until documented and present + in all builds of Python */ +PyAPI_FUNC(int) Py_FrozenMain(int argc, char **argv); + +/* 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); + + +/* Initialization and finalization */ + +PyAPI_FUNC(PyStatus) Py_InitializeFromConfig( + const PyConfig *config); + +// Python 3.8 provisional API (PEP 587) +PyAPI_FUNC(PyStatus) _Py_InitializeMain(void); + +PyAPI_FUNC(int) Py_RunMain(void); + + +PyAPI_FUNC(void) _Py_NO_RETURN Py_ExitStatusException(PyStatus err); + +PyAPI_FUNC(int) Py_FdIsInteractive(FILE *, const char *); + +/* --- PyInterpreterConfig ------------------------------------ */ + +#define PyInterpreterConfig_DEFAULT_GIL (0) +#define PyInterpreterConfig_SHARED_GIL (1) +#define PyInterpreterConfig_OWN_GIL (2) + +typedef struct { + // XXX "allow_object_sharing"? "own_objects"? + int use_main_obmalloc; + int allow_fork; + int allow_exec; + int allow_threads; + int allow_daemon_threads; + int check_multi_interp_extensions; + int gil; +} PyInterpreterConfig; + +#define _PyInterpreterConfig_INIT \ + { \ + .use_main_obmalloc = 0, \ + .allow_fork = 0, \ + .allow_exec = 0, \ + .allow_threads = 1, \ + .allow_daemon_threads = 0, \ + .check_multi_interp_extensions = 1, \ + .gil = PyInterpreterConfig_OWN_GIL, \ + } + +// gh-117649: The free-threaded build does not currently support single-phase +// init extensions in subinterpreters. For now, we ensure that +// `check_multi_interp_extensions` is always `1`, even in the legacy config. +#ifdef Py_GIL_DISABLED +# define _PyInterpreterConfig_LEGACY_CHECK_MULTI_INTERP_EXTENSIONS 1 +#else +# define _PyInterpreterConfig_LEGACY_CHECK_MULTI_INTERP_EXTENSIONS 0 +#endif + +#define _PyInterpreterConfig_LEGACY_INIT \ + { \ + .use_main_obmalloc = 1, \ + .allow_fork = 1, \ + .allow_exec = 1, \ + .allow_threads = 1, \ + .allow_daemon_threads = 1, \ + .check_multi_interp_extensions = _PyInterpreterConfig_LEGACY_CHECK_MULTI_INTERP_EXTENSIONS, \ + .gil = PyInterpreterConfig_SHARED_GIL, \ + } + +PyAPI_FUNC(PyStatus) Py_NewInterpreterFromConfig( + PyThreadState **tstate_p, + const PyInterpreterConfig *config); + +typedef void (*atexit_datacallbackfunc)(void *); +PyAPI_FUNC(int) PyUnstable_AtExit( + PyInterpreterState *, atexit_datacallbackfunc, void *); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pymem.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pymem.h new file mode 100644 index 000000000..76b3221f7 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pymem.h @@ -0,0 +1,84 @@ +#ifndef Py_CPYTHON_PYMEM_H +# error "this header file must not be included directly" +#endif + +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 +#ifdef WITH_MIMALLOC + PYMEM_ALLOCATOR_MIMALLOC = 7, + PYMEM_ALLOCATOR_MIMALLOC_DEBUG = 8, +#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); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pystate.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pystate.h new file mode 100644 index 000000000..f005729ff --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pystate.h @@ -0,0 +1,277 @@ +#ifndef Py_CPYTHON_PYSTATE_H +# error "this header file must not be included directly" +#endif + + +/* private interpreter helpers */ + +PyAPI_FUNC(int) _PyInterpreterState_RequiresIDRef(PyInterpreterState *); +PyAPI_FUNC(void) _PyInterpreterState_RequireIDRef(PyInterpreterState *, int); + +PyAPI_FUNC(PyObject *) PyUnstable_InterpreterState_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 a single execution context where we might + * be currently handling an exception. It is a per-coroutine state + * (coroutine in the computer science sense, including the thread + * and generators). + * + * This is used as an entry on the exception stack, where each + * entry indicates if it is currently handling an exception. + * This ensures that the exception state is not impacted + * by "yields" from an except handler. The thread + * always has an entry (the bottom-most one). + */ + + /* The exception currently being handled in this context, if any. */ + PyObject *exc_value; + + struct _err_stackitem *previous_item; + +} _PyErr_StackItem; + +typedef struct _stack_chunk { + struct _stack_chunk *previous; + size_t size; + size_t top; + PyObject * data[1]; /* Variable sized */ +} _PyStackChunk; + +struct _ts { + /* See Python/ceval.c for comments explaining most fields */ + + PyThreadState *prev; + PyThreadState *next; + PyInterpreterState *interp; + + /* The global instrumentation version in high bits, plus flags indicating + when to break out of the interpreter loop in lower bits. See details in + pycore_ceval.h. */ + uintptr_t eval_breaker; + + struct { + /* Has been initialized to a safe state. + + In order to be effective, this must be set to 0 during or right + after allocation. */ + unsigned int initialized:1; + + /* Has been bound to an OS thread. */ + unsigned int bound:1; + /* Has been unbound from its OS thread. */ + unsigned int unbound:1; + /* Has been bound aa current for the GILState API. */ + unsigned int bound_gilstate:1; + /* Currently in use (maybe holds the GIL). */ + unsigned int active:1; + /* Currently holds the GIL. */ + unsigned int holds_gil:1; + + /* various stages of finalization */ + unsigned int finalizing:1; + unsigned int cleared:1; + unsigned int finalized:1; + + /* padding to align to 4 bytes */ + unsigned int :23; + } _status; +#ifdef Py_BUILD_CORE +# define _PyThreadState_WHENCE_NOTSET -1 +# define _PyThreadState_WHENCE_UNKNOWN 0 +# define _PyThreadState_WHENCE_INIT 1 +# define _PyThreadState_WHENCE_FINI 2 +# define _PyThreadState_WHENCE_THREADING 3 +# define _PyThreadState_WHENCE_GILSTATE 4 +# define _PyThreadState_WHENCE_EXEC 5 +#endif + int _whence; + + /* Thread state (_Py_THREAD_ATTACHED, _Py_THREAD_DETACHED, _Py_THREAD_SUSPENDED). + See Include/internal/pycore_pystate.h for more details. */ + int state; + + int py_recursion_remaining; + int py_recursion_limit; + + int c_recursion_remaining; + int recursion_headroom; /* Allow 50 more calls to handle any errors. */ + + /* '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 what_event; /* The event currently being monitored, if any. */ + + /* Pointer to currently executing frame. */ + struct _PyInterpreterFrame *current_frame; + + Py_tracefunc c_profilefunc; + Py_tracefunc c_tracefunc; + PyObject *c_profileobj; + PyObject *c_traceobj; + + /* The exception currently being raised */ + PyObject *current_exception; + + /* Pointer to the top of the exception stack for the exceptions + * we may be currently handling. (See _PyErr_StackItem above.) + * This is never NULL. */ + _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 */ + + /* Native thread id where this tstate was created. This will be 0 except on + * those platforms that have the notion of native thread id, for which the + * macro PY_HAVE_THREAD_NATIVE_ID is then defined. + */ + unsigned long native_thread_id; + + PyObject *delete_later; + + /* Tagged pointer to top-most critical section, or zero if there is no + * active critical section. Critical sections are only used in + * `--disable-gil` builds (i.e., when Py_GIL_DISABLED is defined to 1). In the + * default build, this field is always zero. + */ + uintptr_t critical_section; + + 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; + + _PyStackChunk *datastack_chunk; + PyObject **datastack_top; + PyObject **datastack_limit; + /* XXX signal handlers should also be here */ + + /* The following fields are here to avoid allocation during init. + The data is exposed through PyThreadState pointer fields. + These fields should not be accessed directly outside of init. + This is indicated by an underscore prefix on the field names. + + All other PyInterpreterState pointer fields are populated when + needed and default to NULL. + */ + // Note some fields do not have a leading underscore for backward + // compatibility. See https://bugs.python.org/issue45953#msg412046. + + /* The thread's exception stack entry. (Always the last entry.) */ + _PyErr_StackItem exc_state; + + PyObject *previous_executor; + + uint64_t dict_global_version; + + /* Used to store/retrieve `threading.local` keys/values for this thread */ + PyObject *threading_local_key; + + /* Used by `threading.local`s to be remove keys/values for dying threads. + The PyThreadObject must hold the only reference to this value. + */ + PyObject *threading_local_sentinel; +}; + +#ifdef Py_DEBUG + // A debug build is likely built with low optimization level which implies + // higher stack memory usage than a release build: use a lower limit. +# define Py_C_RECURSION_LIMIT 500 +#elif defined(__s390x__) +# define Py_C_RECURSION_LIMIT 800 +#elif defined(_WIN32) && defined(_M_ARM64) +# define Py_C_RECURSION_LIMIT 1000 +#elif defined(_WIN32) +# define Py_C_RECURSION_LIMIT 3000 +#elif defined(__ANDROID__) + // On an ARM64 emulator, API level 34 was OK with 10000, but API level 21 + // crashed in test_compiler_recursion_limit. +# define Py_C_RECURSION_LIMIT 3000 +#elif defined(_Py_ADDRESS_SANITIZER) +# define Py_C_RECURSION_LIMIT 4000 +#elif defined(__wasi__) + // Based on wasmtime 16. +# define Py_C_RECURSION_LIMIT 5000 +#else + // This value is duplicated in Lib/test/support/__init__.py +# define Py_C_RECURSION_LIMIT 10000 +#endif + + +/* other API */ + +/* Similar to PyThreadState_Get(), but don't issue a fatal error + * if it is NULL. */ +PyAPI_FUNC(PyThreadState *) PyThreadState_GetUnchecked(void); + +// Alias kept for backward compatibility +#define _PyThreadState_UncheckedGet PyThreadState_GetUnchecked + + +// Disable tracing and profiling. +PyAPI_FUNC(void) PyThreadState_EnterTracing(PyThreadState *tstate); + +// Reset tracing and profiling: enable them if a trace function or a profile +// function is set, otherwise disable them. +PyAPI_FUNC(void) PyThreadState_LeaveTracing(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); + +/* 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, struct _PyInterpreterFrame *, int); + +PyAPI_FUNC(_PyFrameEvalFunction) _PyInterpreterState_GetEvalFrameFunc( + PyInterpreterState *interp); +PyAPI_FUNC(void) _PyInterpreterState_SetEvalFrameFunc( + PyInterpreterState *interp, + _PyFrameEvalFunction eval_frame); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pystats.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pystats.h new file mode 100644 index 000000000..c4480758f --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pystats.h @@ -0,0 +1,169 @@ +// Statistics on Python performance. +// +// API: +// +// - _Py_INCREF_STAT_INC() and _Py_DECREF_STAT_INC() used by Py_INCREF() +// and Py_DECREF(). +// - _Py_stats variable +// +// Functions of the sys module: +// +// - sys._stats_on() +// - sys._stats_off() +// - sys._stats_clear() +// - sys._stats_dump() +// +// Python must be built with ./configure --enable-pystats to define the +// Py_STATS macro. +// +// Define _PY_INTERPRETER macro to increment interpreter_increfs and +// interpreter_decrefs. Otherwise, increment increfs and decrefs. + +#ifndef Py_CPYTHON_PYSTATS_H +# error "this header file must not be included directly" +#endif + +#define PYSTATS_MAX_UOP_ID 512 + +#define SPECIALIZATION_FAILURE_KINDS 36 + +/* Stats for determining who is calling PyEval_EvalFrame */ +#define EVAL_CALL_TOTAL 0 +#define EVAL_CALL_VECTOR 1 +#define EVAL_CALL_GENERATOR 2 +#define EVAL_CALL_LEGACY 3 +#define EVAL_CALL_FUNCTION_VECTORCALL 4 +#define EVAL_CALL_BUILD_CLASS 5 +#define EVAL_CALL_SLOT 6 +#define EVAL_CALL_FUNCTION_EX 7 +#define EVAL_CALL_API 8 +#define EVAL_CALL_METHOD 9 + +#define EVAL_CALL_KINDS 10 + +typedef struct _specialization_stats { + uint64_t success; + uint64_t failure; + uint64_t hit; + uint64_t deferred; + uint64_t miss; + uint64_t deopt; + uint64_t failure_kinds[SPECIALIZATION_FAILURE_KINDS]; +} SpecializationStats; + +typedef struct _opcode_stats { + SpecializationStats specialization; + uint64_t execution_count; + uint64_t pair_count[256]; +} OpcodeStats; + +typedef struct _call_stats { + uint64_t inlined_py_calls; + uint64_t pyeval_calls; + uint64_t frames_pushed; + uint64_t frame_objects_created; + uint64_t eval_calls[EVAL_CALL_KINDS]; +} CallStats; + +typedef struct _object_stats { + uint64_t increfs; + uint64_t decrefs; + uint64_t interpreter_increfs; + uint64_t interpreter_decrefs; + uint64_t allocations; + uint64_t allocations512; + uint64_t allocations4k; + uint64_t allocations_big; + uint64_t frees; + uint64_t to_freelist; + uint64_t from_freelist; + uint64_t inline_values; + uint64_t dict_materialized_on_request; + uint64_t dict_materialized_new_key; + uint64_t dict_materialized_too_big; + uint64_t dict_materialized_str_subclass; + uint64_t type_cache_hits; + uint64_t type_cache_misses; + uint64_t type_cache_dunder_hits; + uint64_t type_cache_dunder_misses; + uint64_t type_cache_collisions; + /* Temporary value used during GC */ + uint64_t object_visits; +} ObjectStats; + +typedef struct _gc_stats { + uint64_t collections; + uint64_t object_visits; + uint64_t objects_collected; +} GCStats; + +typedef struct _uop_stats { + uint64_t execution_count; + uint64_t miss; + uint64_t pair_count[PYSTATS_MAX_UOP_ID + 1]; +} UOpStats; + +#define _Py_UOP_HIST_SIZE 32 + +typedef struct _optimization_stats { + uint64_t attempts; + uint64_t traces_created; + uint64_t traces_executed; + uint64_t uops_executed; + uint64_t trace_stack_overflow; + uint64_t trace_stack_underflow; + uint64_t trace_too_long; + uint64_t trace_too_short; + uint64_t inner_loop; + uint64_t recursive_call; + uint64_t low_confidence; + uint64_t executors_invalidated; + UOpStats opcode[PYSTATS_MAX_UOP_ID + 1]; + uint64_t unsupported_opcode[256]; + uint64_t trace_length_hist[_Py_UOP_HIST_SIZE]; + uint64_t trace_run_length_hist[_Py_UOP_HIST_SIZE]; + uint64_t optimized_trace_length_hist[_Py_UOP_HIST_SIZE]; + uint64_t optimizer_attempts; + uint64_t optimizer_successes; + uint64_t optimizer_failure_reason_no_memory; + uint64_t remove_globals_builtins_changed; + uint64_t remove_globals_incorrect_keys; + uint64_t error_in_opcode[PYSTATS_MAX_UOP_ID + 1]; +} OptimizationStats; + +typedef struct _rare_event_stats { + /* Setting an object's class, obj.__class__ = ... */ + uint64_t set_class; + /* Setting the bases of a class, cls.__bases__ = ... */ + uint64_t set_bases; + /* Setting the PEP 523 frame eval function, _PyInterpreterState_SetFrameEvalFunc() */ + uint64_t set_eval_frame_func; + /* Modifying the builtins, __builtins__.__dict__[var] = ... */ + uint64_t builtin_dict; + /* Modifying a function, e.g. func.__defaults__ = ..., etc. */ + uint64_t func_modification; + /* Modifying a dict that is being watched */ + uint64_t watched_dict_modification; + uint64_t watched_globals_modification; +} RareEventStats; + +typedef struct _stats { + OpcodeStats opcode_stats[256]; + CallStats call_stats; + ObjectStats object_stats; + OptimizationStats optimization_stats; + RareEventStats rare_event_stats; + GCStats *gc_stats; +} PyStats; + + +// Export for shared extensions like 'math' +PyAPI_DATA(PyStats*) _Py_stats; + +#ifdef _PY_INTERPRETER +# define _Py_INCREF_STAT_INC() do { if (_Py_stats) _Py_stats->object_stats.interpreter_increfs++; } while (0) +# define _Py_DECREF_STAT_INC() do { if (_Py_stats) _Py_stats->object_stats.interpreter_decrefs++; } while (0) +#else +# define _Py_INCREF_STAT_INC() do { if (_Py_stats) _Py_stats->object_stats.increfs++; } while (0) +# define _Py_DECREF_STAT_INC() do { if (_Py_stats) _Py_stats->object_stats.decrefs++; } while (0) +#endif diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pythonrun.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pythonrun.h new file mode 100644 index 000000000..edc409522 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pythonrun.h @@ -0,0 +1,96 @@ +#ifndef Py_CPYTHON_PYTHONRUN_H +# error "this header file must not be included directly" +#endif + +PyAPI_FUNC(int) PyRun_SimpleStringFlags(const char *, PyCompilerFlags *); +PyAPI_FUNC(int) PyRun_AnyFileExFlags( + FILE *fp, + const char *filename, /* decoded from the filesystem encoding */ + int closeit, + PyCompilerFlags *flags); +PyAPI_FUNC(int) PyRun_SimpleFileExFlags( + FILE *fp, + const char *filename, /* decoded from the filesystem encoding */ + int closeit, + PyCompilerFlags *flags); +PyAPI_FUNC(int) PyRun_InteractiveOneFlags( + FILE *fp, + const char *filename, /* decoded from the filesystem encoding */ + PyCompilerFlags *flags); +PyAPI_FUNC(int) PyRun_InteractiveOneObject( + FILE *fp, + PyObject *filename, + PyCompilerFlags *flags); +PyAPI_FUNC(int) PyRun_InteractiveLoopFlags( + FILE *fp, + const char *filename, /* decoded from the filesystem encoding */ + PyCompilerFlags *flags); + + +PyAPI_FUNC(PyObject *) PyRun_StringFlags(const char *, int, PyObject *, + PyObject *, PyCompilerFlags *); + +PyAPI_FUNC(PyObject *) PyRun_FileExFlags( + FILE *fp, + const char *filename, /* decoded from the filesystem encoding */ + int start, + PyObject *globals, + PyObject *locals, + int closeit, + PyCompilerFlags *flags); + + +PyAPI_FUNC(PyObject *) Py_CompileStringExFlags( + const char *str, + const char *filename, /* decoded from the filesystem encoding */ + int start, + PyCompilerFlags *flags, + int optimize); +PyAPI_FUNC(PyObject *) Py_CompileStringObject( + const char *str, + PyObject *filename, int start, + PyCompilerFlags *flags, + int optimize); + +#define Py_CompileString(str, p, s) Py_CompileStringExFlags((str), (p), (s), NULL, -1) +#define Py_CompileStringFlags(str, p, s, f) Py_CompileStringExFlags((str), (p), (s), (f), -1) + +/* 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) +#define PyRun_AnyFileEx(fp, name, closeit) \ + PyRun_AnyFileExFlags((fp), (name), (closeit), NULL) +#define PyRun_AnyFileFlags(fp, name, flags) \ + PyRun_AnyFileExFlags((fp), (name), 0, (flags)) +#define PyRun_SimpleString(s) PyRun_SimpleStringFlags((s), NULL) +#define PyRun_SimpleFile(f, p) PyRun_SimpleFileExFlags((f), (p), 0, NULL) +#define PyRun_SimpleFileEx(f, p, c) PyRun_SimpleFileExFlags((f), (p), (c), NULL) +#define PyRun_InteractiveOne(f, p) PyRun_InteractiveOneFlags((f), (p), NULL) +#define PyRun_InteractiveLoop(f, p) PyRun_InteractiveLoopFlags((f), (p), NULL) +#define PyRun_File(fp, p, s, g, l) \ + PyRun_FileExFlags((fp), (p), (s), (g), (l), 0, NULL) +#define PyRun_FileEx(fp, p, s, g, l, c) \ + PyRun_FileExFlags((fp), (p), (s), (g), (l), (c), NULL) +#define PyRun_FileFlags(fp, p, s, g, l, flags) \ + PyRun_FileExFlags((fp), (p), (s), (g), (l), 0, (flags)) + +/* Stuff with no proper home (yet) */ +PyAPI_FUNC(char *) PyOS_Readline(FILE *, FILE *, const char *); +PyAPI_DATA(char) *(*PyOS_ReadlineFunctionPointer)(FILE *, FILE *, const char *); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pythread.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pythread.h new file mode 100644 index 000000000..03f710a9f --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pythread.h @@ -0,0 +1,43 @@ +#ifndef Py_CPYTHON_PYTHREAD_H +# error "this header file must not be included directly" +#endif + +// PY_TIMEOUT_MAX is the highest usable value (in microseconds) of PY_TIMEOUT_T +// type, and depends on the system threading API. +// +// NOTE: this isn't the same value as `_thread.TIMEOUT_MAX`. The _thread module +// exposes a higher-level API, with timeouts expressed in seconds and +// floating-point numbers allowed. +PyAPI_DATA(const long long) PY_TIMEOUT_MAX; + +#define PYTHREAD_INVALID_THREAD_ID ((unsigned long)-1) + +#ifdef HAVE_PTHREAD_H + /* Darwin needs pthread.h to know type name the pthread_key_t. */ +# include +# define NATIVE_TSS_KEY_T pthread_key_t +#elif defined(NT_THREADS) + /* In Windows, native TSS key type is DWORD, + but hardcode the unsigned long to avoid errors for include directive. + */ +# define NATIVE_TSS_KEY_T unsigned long +#elif defined(HAVE_PTHREAD_STUBS) +# include "cpython/pthread_stubs.h" +# define NATIVE_TSS_KEY_T pthread_key_t +#else +# error "Require native threads. See https://bugs.python.org/issue31370" +#endif + +/* When Py_LIMITED_API is not defined, the type layout of Py_tss_t is + exposed to allow static allocation in the API clients. Even in this case, + you must handle TSS keys through API functions due to compatibility. +*/ +struct _Py_tss_t { + int _is_initialized; + NATIVE_TSS_KEY_T _key; +}; + +#undef NATIVE_TSS_KEY_T + +/* When static allocation, you must initialize with Py_tss_NEEDS_INIT. */ +#define Py_tss_NEEDS_INIT {0} diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pytime.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pytime.h new file mode 100644 index 000000000..5c68110ae --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/pytime.h @@ -0,0 +1,27 @@ +// PyTime_t C API: see Doc/c-api/time.rst for the documentation. + +#ifndef Py_LIMITED_API +#ifndef Py_PYTIME_H +#define Py_PYTIME_H +#ifdef __cplusplus +extern "C" { +#endif + +typedef int64_t PyTime_t; +#define PyTime_MIN INT64_MIN +#define PyTime_MAX INT64_MAX + +PyAPI_FUNC(double) PyTime_AsSecondsDouble(PyTime_t t); +PyAPI_FUNC(int) PyTime_Monotonic(PyTime_t *result); +PyAPI_FUNC(int) PyTime_PerfCounter(PyTime_t *result); +PyAPI_FUNC(int) PyTime_Time(PyTime_t *result); + +PyAPI_FUNC(int) PyTime_MonotonicRaw(PyTime_t *result); +PyAPI_FUNC(int) PyTime_PerfCounterRaw(PyTime_t *result); +PyAPI_FUNC(int) PyTime_TimeRaw(PyTime_t *result); + +#ifdef __cplusplus +} +#endif +#endif /* Py_PYTIME_H */ +#endif /* Py_LIMITED_API */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/setobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/setobject.h new file mode 100644 index 000000000..89565cb29 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/setobject.h @@ -0,0 +1,71 @@ +#ifndef Py_CPYTHON_SETOBJECT_H +# error "this header file must not be included directly" +#endif + +/* There are three kinds of entries in the table: + +1. Unused: key == NULL and hash == 0 +2. Dummy: key == dummy and hash == -1 +3. Active: key != NULL and key != dummy and hash != -1 + +The hash field of Unused slots is always zero. + +The hash field of Dummy slots are set to -1 +meaning that dummy entries can be detected by +either entry->key==dummy or by entry->hash==-1. +*/ + +#define PySet_MINSIZE 8 + +typedef struct { + PyObject *key; + Py_hash_t hash; /* Cached hash code of the key */ +} setentry; + +/* The SetObject data structure is shared by set and frozenset objects. + +Invariant for sets: + - hash is -1 + +Invariants for frozensets: + - data is immutable. + - hash is the hash of the frozenset or -1 if not computed yet. + +*/ + +typedef struct { + PyObject_HEAD + + Py_ssize_t fill; /* Number active and dummy entries*/ + Py_ssize_t used; /* Number active entries */ + + /* The table contains mask + 1 slots, and that's a power of 2. + * We store the mask instead of the size because the mask is more + * frequently needed. + */ + Py_ssize_t mask; + + /* The table points to a fixed-size smalltable for small tables + * or to additional malloc'ed memory for bigger tables. + * The table pointer is never NULL which saves us from repeated + * runtime null-tests. + */ + setentry *table; + Py_hash_t hash; /* Only used by frozenset objects */ + Py_ssize_t finger; /* Search finger for pop() */ + + setentry smalltable[PySet_MINSIZE]; + PyObject *weakreflist; /* List of weak references */ +} PySetObject; + +#define _PySet_CAST(so) \ + (assert(PyAnySet_Check(so)), _Py_CAST(PySetObject*, so)) + +static inline Py_ssize_t PySet_GET_SIZE(PyObject *so) { +#ifdef Py_GIL_DISABLED + return _Py_atomic_load_ssize_relaxed(&(_PySet_CAST(so)->used)); +#else + return _PySet_CAST(so)->used; +#endif +} +#define PySet_GET_SIZE(so) PySet_GET_SIZE(_PyObject_CAST(so)) diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/sysmodule.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/sysmodule.h new file mode 100644 index 000000000..a3ac07f53 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/sysmodule.h @@ -0,0 +1,22 @@ +#ifndef Py_CPYTHON_SYSMODULE_H +# error "this header file must not be included directly" +#endif + +typedef int(*Py_AuditHookFunction)(const char *, PyObject *, void *); + +PyAPI_FUNC(int) PySys_AddAuditHook(Py_AuditHookFunction, void*); + +typedef struct { + FILE* perf_map; + PyThread_type_lock map_lock; +} PerfMapState; + +PyAPI_FUNC(int) PyUnstable_PerfMapState_Init(void); +PyAPI_FUNC(int) PyUnstable_WritePerfMapEntry( + const void *code_addr, + unsigned int code_size, + const char *entry_name); +PyAPI_FUNC(void) PyUnstable_PerfMapState_Fini(void); +PyAPI_FUNC(int) PyUnstable_CopyPerfMapFile(const char* parent_filename); +PyAPI_FUNC(int) PyUnstable_PerfTrampoline_CompileCode(PyCodeObject *); +PyAPI_FUNC(int) PyUnstable_PerfTrampoline_SetPersistAfterFork(int enable); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/traceback.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/traceback.h new file mode 100644 index 000000000..81c51944f --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/traceback.h @@ -0,0 +1,13 @@ +#ifndef Py_CPYTHON_TRACEBACK_H +# error "this header file must not be included directly" +#endif + +typedef struct _traceback PyTracebackObject; + +struct _traceback { + PyObject_HEAD + PyTracebackObject *tb_next; + PyFrameObject *tb_frame; + int tb_lasti; + int tb_lineno; +}; diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/tracemalloc.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/tracemalloc.h new file mode 100644 index 000000000..61a16ea9a --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/tracemalloc.h @@ -0,0 +1,26 @@ +#ifndef Py_LIMITED_API +#ifndef Py_TRACEMALLOC_H +#define Py_TRACEMALLOC_H + +/* 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); + +#endif // !Py_TRACEMALLOC_H +#endif // !Py_LIMITED_API diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/tupleobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/tupleobject.h new file mode 100644 index 000000000..e530c8bed --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/tupleobject.h @@ -0,0 +1,38 @@ +#ifndef Py_CPYTHON_TUPLEOBJECT_H +# error "this header file must not be included directly" +#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); + +/* Cast argument to PyTupleObject* type. */ +#define _PyTuple_CAST(op) \ + (assert(PyTuple_Check(op)), _Py_CAST(PyTupleObject*, (op))) + +// Macros and static inline functions, trading safety for speed + +static inline Py_ssize_t PyTuple_GET_SIZE(PyObject *op) { + PyTupleObject *tuple = _PyTuple_CAST(op); + return Py_SIZE(tuple); +} +#define PyTuple_GET_SIZE(op) PyTuple_GET_SIZE(_PyObject_CAST(op)) + +#define PyTuple_GET_ITEM(op, index) (_PyTuple_CAST(op)->ob_item[(index)]) + +/* Function *only* to be used to fill in brand new tuples */ +static inline void +PyTuple_SET_ITEM(PyObject *op, Py_ssize_t index, PyObject *value) { + PyTupleObject *tuple = _PyTuple_CAST(op); + assert(0 <= index); + assert(index < Py_SIZE(tuple)); + tuple->ob_item[index] = value; +} +#define PyTuple_SET_ITEM(op, index, value) \ + PyTuple_SET_ITEM(_PyObject_CAST(op), (index), _PyObject_CAST(value)) diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/unicodeobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/unicodeobject.h new file mode 100644 index 000000000..d9b54bce8 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/unicodeobject.h @@ -0,0 +1,703 @@ +#ifndef Py_CPYTHON_UNICODEOBJECT_H +# error "this header file must not be included directly" +#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. */ +Py_DEPRECATED(3.13) typedef wchar_t PY_UNICODE_TYPE; +Py_DEPRECATED(3.13) typedef wchar_t Py_UNICODE; + + +/* --- Internal Unicode Operations ---------------------------------------- */ + +// Static inline functions to work with surrogates +static inline int Py_UNICODE_IS_SURROGATE(Py_UCS4 ch) { + return (0xD800 <= ch && ch <= 0xDFFF); +} +static inline int Py_UNICODE_IS_HIGH_SURROGATE(Py_UCS4 ch) { + return (0xD800 <= ch && ch <= 0xDBFF); +} +static inline int Py_UNICODE_IS_LOW_SURROGATE(Py_UCS4 ch) { + return (0xDC00 <= ch && ch <= 0xDFFF); +} + +// Join two surrogate characters and return a single Py_UCS4 value. +static inline Py_UCS4 Py_UNICODE_JOIN_SURROGATES(Py_UCS4 high, Py_UCS4 low) { + assert(Py_UNICODE_IS_HIGH_SURROGATE(high)); + assert(Py_UNICODE_IS_LOW_SURROGATE(low)); + return 0x10000 + (((high & 0x03FF) << 10) | (low & 0x03FF)); +} + +// High surrogate = top 10 bits added to 0xD800. +// The character must be in the range [U+10000; U+10ffff]. +static inline Py_UCS4 Py_UNICODE_HIGH_SURROGATE(Py_UCS4 ch) { + assert(0x10000 <= ch && ch <= 0x10ffff); + return (0xD800 - (0x10000 >> 10) + (ch >> 10)); +} + +// Low surrogate = bottom 10 bits added to 0xDC00. +// The character must be in the range [U+10000; U+10ffff]. +static inline Py_UCS4 Py_UNICODE_LOW_SURROGATE(Py_UCS4 ch) { + assert(0x10000 <= ch && ch <= 0x10ffff); + return (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 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 + * (length is the length of the utf8) + * (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 + * ascii = 0 + * utf8 is not shared with data + * utf8_length = 0 if utf8 is NULL + * (data starts just after the structure) + + - legacy string: + + * structure = PyUnicodeObject structure + * test: !PyUnicode_IS_COMPACT(op) + * kind = PyUnicode_1BYTE_KIND, PyUnicode_2BYTE_KIND or + PyUnicode_4BYTE_KIND + * compact = 0 + * 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 + + 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 subclasses of Unicode. + + 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 { + /* If interned is non-zero, the two references from the + dictionary to this object are *not* counted in ob_refcnt. + The possible values here are: + 0: Not Interned + 1: Interned + 2: Interned and Immortal + 3: Interned, Immortal, and Static + This categorization allows the runtime to determine the right + cleanup mechanism at runtime shutdown. */ + unsigned int interned:2; + /* Character size: + + - 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 object is statically allocated. */ + unsigned int statically_allocated:1; + /* Padding to ensure that PyUnicode_DATA() is always aligned to + 4 bytes (see issue #19537 on m68k). */ + unsigned int :24; + } state; +} 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) */ +} PyCompactUnicodeObject; + +/* Object format for Unicode subclasses. */ +typedef struct { + PyCompactUnicodeObject _base; + union { + void *any; + Py_UCS1 *latin1; + Py_UCS2 *ucs2; + Py_UCS4 *ucs4; + } data; /* Canonical, smallest-form Unicode buffer */ +} PyUnicodeObject; + + +#define _PyASCIIObject_CAST(op) \ + (assert(PyUnicode_Check(op)), \ + _Py_CAST(PyASCIIObject*, (op))) +#define _PyCompactUnicodeObject_CAST(op) \ + (assert(PyUnicode_Check(op)), \ + _Py_CAST(PyCompactUnicodeObject*, (op))) +#define _PyUnicodeObject_CAST(op) \ + (assert(PyUnicode_Check(op)), \ + _Py_CAST(PyUnicodeObject*, (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 +#define SSTATE_INTERNED_IMMORTAL_STATIC 3 + +/* Use only if you know it's a string */ +static inline unsigned int PyUnicode_CHECK_INTERNED(PyObject *op) { + return _PyASCIIObject_CAST(op)->state.interned; +} +#define PyUnicode_CHECK_INTERNED(op) PyUnicode_CHECK_INTERNED(_PyObject_CAST(op)) + +/* For backward compatibility */ +static inline unsigned int PyUnicode_IS_READY(PyObject* Py_UNUSED(op)) { + return 1; +} +#define PyUnicode_IS_READY(op) PyUnicode_IS_READY(_PyObject_CAST(op)) + +/* 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. */ +static inline unsigned int PyUnicode_IS_ASCII(PyObject *op) { + return _PyASCIIObject_CAST(op)->state.ascii; +} +#define PyUnicode_IS_ASCII(op) PyUnicode_IS_ASCII(_PyObject_CAST(op)) + +/* Return true if the string is compact or 0 if not. + No type checks or Ready calls are performed. */ +static inline unsigned int PyUnicode_IS_COMPACT(PyObject *op) { + return _PyASCIIObject_CAST(op)->state.compact; +} +#define PyUnicode_IS_COMPACT(op) PyUnicode_IS_COMPACT(_PyObject_CAST(op)) + +/* 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. */ +static inline int PyUnicode_IS_COMPACT_ASCII(PyObject *op) { + return (_PyASCIIObject_CAST(op)->state.ascii && PyUnicode_IS_COMPACT(op)); +} +#define PyUnicode_IS_COMPACT_ASCII(op) PyUnicode_IS_COMPACT_ASCII(_PyObject_CAST(op)) + +enum PyUnicode_Kind { +/* Return values of the PyUnicode_KIND() function: */ + PyUnicode_1BYTE_KIND = 1, + PyUnicode_2BYTE_KIND = 2, + PyUnicode_4BYTE_KIND = 4 +}; + +// PyUnicode_KIND(): Return one of the PyUnicode_*_KIND values defined above. +// +// gh-89653: Converting this macro to a static inline function would introduce +// new compiler warnings on "kind < PyUnicode_KIND(str)" (compare signed and +// unsigned numbers) where kind type is an int or on +// "unsigned int kind = PyUnicode_KIND(str)" (cast signed to unsigned). +#define PyUnicode_KIND(op) _Py_RVALUE(_PyASCIIObject_CAST(op)->state.kind) + +/* Return a void pointer to the raw unicode buffer. */ +static inline void* _PyUnicode_COMPACT_DATA(PyObject *op) { + if (PyUnicode_IS_ASCII(op)) { + return _Py_STATIC_CAST(void*, (_PyASCIIObject_CAST(op) + 1)); + } + return _Py_STATIC_CAST(void*, (_PyCompactUnicodeObject_CAST(op) + 1)); +} + +static inline void* _PyUnicode_NONCOMPACT_DATA(PyObject *op) { + void *data; + assert(!PyUnicode_IS_COMPACT(op)); + data = _PyUnicodeObject_CAST(op)->data.any; + assert(data != NULL); + return data; +} + +static inline void* PyUnicode_DATA(PyObject *op) { + if (PyUnicode_IS_COMPACT(op)) { + return _PyUnicode_COMPACT_DATA(op); + } + return _PyUnicode_NONCOMPACT_DATA(op); +} +#define PyUnicode_DATA(op) PyUnicode_DATA(_PyObject_CAST(op)) + +/* 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_STATIC_CAST(Py_UCS1*, PyUnicode_DATA(op)) +#define PyUnicode_2BYTE_DATA(op) _Py_STATIC_CAST(Py_UCS2*, PyUnicode_DATA(op)) +#define PyUnicode_4BYTE_DATA(op) _Py_STATIC_CAST(Py_UCS4*, PyUnicode_DATA(op)) + +/* Returns the length of the unicode string. */ +static inline Py_ssize_t PyUnicode_GET_LENGTH(PyObject *op) { + return _PyASCIIObject_CAST(op)->length; +} +#define PyUnicode_GET_LENGTH(op) PyUnicode_GET_LENGTH(_PyObject_CAST(op)) + +/* Write into the canonical representation, this function 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 function 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. */ +static inline void PyUnicode_WRITE(int kind, void *data, + Py_ssize_t index, Py_UCS4 value) +{ + assert(index >= 0); + if (kind == PyUnicode_1BYTE_KIND) { + assert(value <= 0xffU); + _Py_STATIC_CAST(Py_UCS1*, data)[index] = _Py_STATIC_CAST(Py_UCS1, value); + } + else if (kind == PyUnicode_2BYTE_KIND) { + assert(value <= 0xffffU); + _Py_STATIC_CAST(Py_UCS2*, data)[index] = _Py_STATIC_CAST(Py_UCS2, value); + } + else { + assert(kind == PyUnicode_4BYTE_KIND); + assert(value <= 0x10ffffU); + _Py_STATIC_CAST(Py_UCS4*, data)[index] = value; + } +} +#define PyUnicode_WRITE(kind, data, index, value) \ + PyUnicode_WRITE(_Py_STATIC_CAST(int, kind), _Py_CAST(void*, data), \ + (index), _Py_STATIC_CAST(Py_UCS4, value)) + +/* Read a code point from the string's canonical representation. No checks + or ready calls are performed. */ +static inline Py_UCS4 PyUnicode_READ(int kind, + const void *data, Py_ssize_t index) +{ + assert(index >= 0); + if (kind == PyUnicode_1BYTE_KIND) { + return _Py_STATIC_CAST(const Py_UCS1*, data)[index]; + } + if (kind == PyUnicode_2BYTE_KIND) { + return _Py_STATIC_CAST(const Py_UCS2*, data)[index]; + } + assert(kind == PyUnicode_4BYTE_KIND); + return _Py_STATIC_CAST(const Py_UCS4*, data)[index]; +} +#define PyUnicode_READ(kind, data, index) \ + PyUnicode_READ(_Py_STATIC_CAST(int, kind), \ + _Py_STATIC_CAST(const void*, 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. */ +static inline Py_UCS4 PyUnicode_READ_CHAR(PyObject *unicode, Py_ssize_t index) +{ + int kind; + + assert(index >= 0); + // Tolerate reading the NUL character at str[len(str)] + assert(index <= PyUnicode_GET_LENGTH(unicode)); + + kind = PyUnicode_KIND(unicode); + if (kind == PyUnicode_1BYTE_KIND) { + return PyUnicode_1BYTE_DATA(unicode)[index]; + } + if (kind == PyUnicode_2BYTE_KIND) { + return PyUnicode_2BYTE_DATA(unicode)[index]; + } + assert(kind == PyUnicode_4BYTE_KIND); + return PyUnicode_4BYTE_DATA(unicode)[index]; +} +#define PyUnicode_READ_CHAR(unicode, index) \ + PyUnicode_READ_CHAR(_PyObject_CAST(unicode), (index)) + +/* 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. */ +static inline Py_UCS4 PyUnicode_MAX_CHAR_VALUE(PyObject *op) +{ + int kind; + + if (PyUnicode_IS_ASCII(op)) { + return 0x7fU; + } + + kind = PyUnicode_KIND(op); + if (kind == PyUnicode_1BYTE_KIND) { + return 0xffU; + } + if (kind == PyUnicode_2BYTE_KIND) { + return 0xffffU; + } + assert(kind == PyUnicode_4BYTE_KIND); + return 0x10ffffU; +} +#define PyUnicode_MAX_CHAR_VALUE(op) \ + PyUnicode_MAX_CHAR_VALUE(_PyObject_CAST(op)) + + +/* === Public API ========================================================= */ + +/* 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 */ + ); + +/* For backward compatibility */ +static inline int PyUnicode_READY(PyObject* Py_UNUSED(op)) +{ + return 0; +} +#define PyUnicode_READY(op) PyUnicode_READY(_PyObject_CAST(op)) + +/* 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 + ); + +/* 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 + ); + +/* 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); + + +/* --- _PyUnicodeWriter API ----------------------------------------------- */ + +typedef struct { + PyObject *buffer; + void *data; + int 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) \ + ((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, + int 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); + + +/* --- Manage the default encoding ---------------------------------------- */ + +/* 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); + +// Alias kept for backward compatibility +#define _PyUnicode_AsString PyUnicode_AsUTF8 + + +/* === Characters Type APIs =============================================== */ + +/* 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_IsWhitespace( + const Py_UCS4 ch /* Unicode character */ + ); + +PyAPI_FUNC(int) _PyUnicode_IsLinebreak( + const Py_UCS4 ch /* Unicode character */ + ); + +PyAPI_FUNC(Py_UCS4) _PyUnicode_ToLowercase( + Py_UCS4 ch /* Unicode character */ + ); + +PyAPI_FUNC(Py_UCS4) _PyUnicode_ToUppercase( + Py_UCS4 ch /* Unicode character */ + ); + +PyAPI_FUNC(Py_UCS4) _PyUnicode_ToTitlecase( + 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 */ + ); + +// Helper array used by Py_UNICODE_ISSPACE(). +PyAPI_DATA(const unsigned char) _Py_ascii_whitespace[]; + +// 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. +static inline int Py_UNICODE_ISSPACE(Py_UCS4 ch) { + if (ch < 128) { + return _Py_ascii_whitespace[ch]; + } + return _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) + +static inline int Py_UNICODE_ISALNUM(Py_UCS4 ch) { + return (Py_UNICODE_ISALPHA(ch) + || Py_UNICODE_ISDECIMAL(ch) + || Py_UNICODE_ISDIGIT(ch) + || Py_UNICODE_ISNUMERIC(ch)); +} + + +/* === Misc functions ===================================================== */ + +// Return an interned Unicode object for an Identifier; may fail if there is no +// memory. +PyAPI_FUNC(PyObject*) _PyUnicode_FromId(_Py_Identifier*); diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/warnings.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/warnings.h new file mode 100644 index 000000000..4e3eb88e8 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/warnings.h @@ -0,0 +1,20 @@ +#ifndef Py_CPYTHON_WARNINGS_H +# error "this header file must not be included directly" +#endif + +PyAPI_FUNC(int) PyErr_WarnExplicitObject( + PyObject *category, + PyObject *message, + PyObject *filename, + int lineno, + PyObject *module, + PyObject *registry); + +PyAPI_FUNC(int) PyErr_WarnExplicitFormat( + PyObject *category, + const char *filename, int lineno, + const char *module, PyObject *registry, + const char *format, ...); + +// DEPRECATED: Use PyErr_WarnEx() instead. +#define PyErr_Warn(category, msg) PyErr_WarnEx((category), (msg), 1) diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/weakrefobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/weakrefobject.h new file mode 100644 index 000000000..28acf7265 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/cpython/weakrefobject.h @@ -0,0 +1,63 @@ +#ifndef Py_CPYTHON_WEAKREFOBJECT_H +# error "this header file must not be included directly" +#endif + +/* PyWeakReference is the base struct for the Python ReferenceType, ProxyType, + * and CallableProxyType. + */ +struct _PyWeakReference { + PyObject_HEAD + + /* The object to which this is a weak reference, or Py_None if none. + * Note that this is a stealth reference: wr_object's refcount is + * not incremented to reflect this pointer. + */ + PyObject *wr_object; + + /* A callable to invoke when wr_object dies, or NULL if none. */ + PyObject *wr_callback; + + /* A cache for wr_object's hash code. As usual for hashes, this is -1 + * if the hash code isn't known yet. + */ + Py_hash_t hash; + + /* If wr_object is weakly referenced, wr_object has a doubly-linked NULL- + * terminated list of weak references to it. These are the list pointers. + * If wr_object goes away, wr_object is set to Py_None, and these pointers + * have no meaning then. + */ + PyWeakReference *wr_prev; + PyWeakReference *wr_next; + vectorcallfunc vectorcall; + +#ifdef Py_GIL_DISABLED + /* Pointer to the lock used when clearing in free-threaded builds. + * Normally this can be derived from wr_object, but in some cases we need + * to lock after wr_object has been set to Py_None. + */ + PyMutex *weakrefs_lock; +#endif +}; + +PyAPI_FUNC(void) _PyWeakref_ClearRef(PyWeakReference *self); + +Py_DEPRECATED(3.13) static inline PyObject* PyWeakref_GET_OBJECT(PyObject *ref_obj) +{ + PyWeakReference *ref; + PyObject *obj; + assert(PyWeakref_Check(ref_obj)); + ref = _Py_CAST(PyWeakReference*, ref_obj); + obj = ref->wr_object; + // Explanation for the Py_REFCNT() check: when a weakref's target is part + // of a long chain of deallocations which triggers the trashcan mechanism, + // clearing the weakrefs can be delayed long after the target's refcount + // has dropped to zero. In the meantime, code accessing the weakref will + // be able to "see" the target object even though it is supposed to be + // unreachable. See issue gh-60806. + if (Py_REFCNT(obj) > 0) { + return obj; + } + return Py_None; +} +#define PyWeakref_GET_OBJECT(ref) PyWeakref_GET_OBJECT(_PyObject_CAST(ref)) diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/critical_section.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/critical_section.h new file mode 100644 index 000000000..3b37615a8 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/critical_section.h @@ -0,0 +1,16 @@ +#ifndef Py_CRITICAL_SECTION_H +#define Py_CRITICAL_SECTION_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_CRITICAL_SECTION_H +# include "cpython/critical_section.h" +# undef Py_CPYTHON_CRITICAL_SECTION_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_CRITICAL_SECTION_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/datetime.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/datetime.h new file mode 100644 index 000000000..b78cc0e8e --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/datetime.h @@ -0,0 +1,267 @@ +/* datetime.h + */ +#ifndef Py_LIMITED_API +#ifndef DATETIME_H +#define DATETIME_H +#ifdef __cplusplus +extern "C" { +#endif + +/* Fields are packed into successive bytes, each viewed as unsigned and + * big-endian, unless otherwise noted: + * + * byte offset + * 0 year 2 bytes, 1-9999 + * 2 month 1 byte, 1-12 + * 3 day 1 byte, 1-31 + * 4 hour 1 byte, 0-23 + * 5 minute 1 byte, 0-59 + * 6 second 1 byte, 0-59 + * 7 usecond 3 bytes, 0-999999 + * 10 + */ + +/* # of bytes for year, month, and day. */ +#define _PyDateTime_DATE_DATASIZE 4 + +/* # of bytes for hour, minute, second, and usecond. */ +#define _PyDateTime_TIME_DATASIZE 6 + +/* # of bytes for year, month, day, hour, minute, second, and usecond. */ +#define _PyDateTime_DATETIME_DATASIZE 10 + + +typedef struct +{ + PyObject_HEAD + Py_hash_t hashcode; /* -1 when unknown */ + int days; /* -MAX_DELTA_DAYS <= days <= MAX_DELTA_DAYS */ + int seconds; /* 0 <= seconds < 24*3600 is invariant */ + int microseconds; /* 0 <= microseconds < 1000000 is invariant */ +} PyDateTime_Delta; + +typedef struct +{ + PyObject_HEAD /* a pure abstract base class */ +} PyDateTime_TZInfo; + + +/* The datetime and time types have hashcodes, and an optional tzinfo member, + * present if and only if hastzinfo is true. + */ +#define _PyTZINFO_HEAD \ + PyObject_HEAD \ + Py_hash_t hashcode; \ + char hastzinfo; /* boolean flag */ + +/* No _PyDateTime_BaseTZInfo is allocated; it's just to have something + * convenient to cast to, when getting at the hastzinfo member of objects + * starting with _PyTZINFO_HEAD. + */ +typedef struct +{ + _PyTZINFO_HEAD +} _PyDateTime_BaseTZInfo; + +/* All time objects are of PyDateTime_TimeType, but that can be allocated + * in two ways, with or without a tzinfo member. Without is the same as + * tzinfo == None, but consumes less memory. _PyDateTime_BaseTime is an + * internal struct used to allocate the right amount of space for the + * "without" case. + */ +#define _PyDateTime_TIMEHEAD \ + _PyTZINFO_HEAD \ + unsigned char data[_PyDateTime_TIME_DATASIZE]; + +typedef struct +{ + _PyDateTime_TIMEHEAD +} _PyDateTime_BaseTime; /* hastzinfo false */ + +typedef struct +{ + _PyDateTime_TIMEHEAD + unsigned char fold; + PyObject *tzinfo; +} PyDateTime_Time; /* hastzinfo true */ + + +/* All datetime objects are of PyDateTime_DateTimeType, but that can be + * allocated in two ways too, just like for time objects above. In addition, + * the plain date type is a base class for datetime, so it must also have + * a hastzinfo member (although it's unused there). + */ +typedef struct +{ + _PyTZINFO_HEAD + unsigned char data[_PyDateTime_DATE_DATASIZE]; +} PyDateTime_Date; + +#define _PyDateTime_DATETIMEHEAD \ + _PyTZINFO_HEAD \ + unsigned char data[_PyDateTime_DATETIME_DATASIZE]; + +typedef struct +{ + _PyDateTime_DATETIMEHEAD +} _PyDateTime_BaseDateTime; /* hastzinfo false */ + +typedef struct +{ + _PyDateTime_DATETIMEHEAD + unsigned char fold; + PyObject *tzinfo; +} PyDateTime_DateTime; /* hastzinfo true */ + + +/* Apply for date and datetime instances. */ + +// o is a pointer to a time or a datetime object. +#define _PyDateTime_HAS_TZINFO(o) (((_PyDateTime_BaseTZInfo *)(o))->hastzinfo) + +#define PyDateTime_GET_YEAR(o) ((((PyDateTime_Date*)(o))->data[0] << 8) | \ + ((PyDateTime_Date*)(o))->data[1]) +#define PyDateTime_GET_MONTH(o) (((PyDateTime_Date*)(o))->data[2]) +#define PyDateTime_GET_DAY(o) (((PyDateTime_Date*)(o))->data[3]) + +#define PyDateTime_DATE_GET_HOUR(o) (((PyDateTime_DateTime*)(o))->data[4]) +#define PyDateTime_DATE_GET_MINUTE(o) (((PyDateTime_DateTime*)(o))->data[5]) +#define PyDateTime_DATE_GET_SECOND(o) (((PyDateTime_DateTime*)(o))->data[6]) +#define PyDateTime_DATE_GET_MICROSECOND(o) \ + ((((PyDateTime_DateTime*)(o))->data[7] << 16) | \ + (((PyDateTime_DateTime*)(o))->data[8] << 8) | \ + ((PyDateTime_DateTime*)(o))->data[9]) +#define PyDateTime_DATE_GET_FOLD(o) (((PyDateTime_DateTime*)(o))->fold) +#define PyDateTime_DATE_GET_TZINFO(o) (_PyDateTime_HAS_TZINFO((o)) ? \ + ((PyDateTime_DateTime *)(o))->tzinfo : Py_None) + +/* Apply for time instances. */ +#define PyDateTime_TIME_GET_HOUR(o) (((PyDateTime_Time*)(o))->data[0]) +#define PyDateTime_TIME_GET_MINUTE(o) (((PyDateTime_Time*)(o))->data[1]) +#define PyDateTime_TIME_GET_SECOND(o) (((PyDateTime_Time*)(o))->data[2]) +#define PyDateTime_TIME_GET_MICROSECOND(o) \ + ((((PyDateTime_Time*)(o))->data[3] << 16) | \ + (((PyDateTime_Time*)(o))->data[4] << 8) | \ + ((PyDateTime_Time*)(o))->data[5]) +#define PyDateTime_TIME_GET_FOLD(o) (((PyDateTime_Time*)(o))->fold) +#define PyDateTime_TIME_GET_TZINFO(o) (_PyDateTime_HAS_TZINFO(o) ? \ + ((PyDateTime_Time *)(o))->tzinfo : Py_None) + +/* Apply for time delta instances */ +#define PyDateTime_DELTA_GET_DAYS(o) (((PyDateTime_Delta*)(o))->days) +#define PyDateTime_DELTA_GET_SECONDS(o) (((PyDateTime_Delta*)(o))->seconds) +#define PyDateTime_DELTA_GET_MICROSECONDS(o) \ + (((PyDateTime_Delta*)(o))->microseconds) + + +/* Define structure for C API. */ +typedef struct { + /* type objects */ + PyTypeObject *DateType; + PyTypeObject *DateTimeType; + PyTypeObject *TimeType; + PyTypeObject *DeltaType; + PyTypeObject *TZInfoType; + + /* singletons */ + PyObject *TimeZone_UTC; + + /* constructors */ + PyObject *(*Date_FromDate)(int, int, int, PyTypeObject*); + PyObject *(*DateTime_FromDateAndTime)(int, int, int, int, int, int, int, + PyObject*, PyTypeObject*); + PyObject *(*Time_FromTime)(int, int, int, int, PyObject*, PyTypeObject*); + PyObject *(*Delta_FromDelta)(int, int, int, int, PyTypeObject*); + PyObject *(*TimeZone_FromTimeZone)(PyObject *offset, PyObject *name); + + /* constructors for the DB API */ + PyObject *(*DateTime_FromTimestamp)(PyObject*, PyObject*, PyObject*); + PyObject *(*Date_FromTimestamp)(PyObject*, PyObject*); + + /* PEP 495 constructors */ + PyObject *(*DateTime_FromDateAndTimeAndFold)(int, int, int, int, int, int, int, + PyObject*, int, PyTypeObject*); + PyObject *(*Time_FromTimeAndFold)(int, int, int, int, PyObject*, int, PyTypeObject*); + +} PyDateTime_CAPI; + +#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 +/* Define global variable for the C API and a macro for setting it. */ +static PyDateTime_CAPI *PyDateTimeAPI = NULL; + +#define PyDateTime_IMPORT \ + PyDateTimeAPI = (PyDateTime_CAPI *)PyCapsule_Import(PyDateTime_CAPSULE_NAME, 0) + +/* Macro for access to the UTC singleton */ +#define PyDateTime_TimeZone_UTC PyDateTimeAPI->TimeZone_UTC + +/* 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 PyDateTime_Check(op) PyObject_TypeCheck((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 PyDelta_Check(op) PyObject_TypeCheck((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) + + +/* Macros for accessing constructors in a simplified fashion. */ +#define PyDate_FromDate(year, month, day) \ + PyDateTimeAPI->Date_FromDate((year), (month), (day), PyDateTimeAPI->DateType) + +#define PyDateTime_FromDateAndTime(year, month, day, hour, min, sec, usec) \ + PyDateTimeAPI->DateTime_FromDateAndTime((year), (month), (day), (hour), \ + (min), (sec), (usec), Py_None, PyDateTimeAPI->DateTimeType) + +#define PyDateTime_FromDateAndTimeAndFold(year, month, day, hour, min, sec, usec, fold) \ + PyDateTimeAPI->DateTime_FromDateAndTimeAndFold((year), (month), (day), (hour), \ + (min), (sec), (usec), Py_None, (fold), PyDateTimeAPI->DateTimeType) + +#define PyTime_FromTime(hour, minute, second, usecond) \ + PyDateTimeAPI->Time_FromTime((hour), (minute), (second), (usecond), \ + Py_None, PyDateTimeAPI->TimeType) + +#define PyTime_FromTimeAndFold(hour, minute, second, usecond, fold) \ + PyDateTimeAPI->Time_FromTimeAndFold((hour), (minute), (second), (usecond), \ + Py_None, (fold), PyDateTimeAPI->TimeType) + +#define PyDelta_FromDSU(days, seconds, useconds) \ + PyDateTimeAPI->Delta_FromDelta((days), (seconds), (useconds), 1, \ + PyDateTimeAPI->DeltaType) + +#define PyTimeZone_FromOffset(offset) \ + PyDateTimeAPI->TimeZone_FromTimeZone((offset), NULL) + +#define PyTimeZone_FromOffsetAndName(offset, name) \ + PyDateTimeAPI->TimeZone_FromTimeZone((offset), (name)) + +/* Macros supporting the DB API. */ +#define PyDateTime_FromTimestamp(args) \ + PyDateTimeAPI->DateTime_FromTimestamp( \ + (PyObject*) (PyDateTimeAPI->DateTimeType), (args), NULL) + +#define PyDate_FromTimestamp(args) \ + PyDateTimeAPI->Date_FromTimestamp( \ + (PyObject*) (PyDateTimeAPI->DateType), (args)) + +#endif /* !defined(_PY_DATETIME_IMPL) */ + +#ifdef __cplusplus +} +#endif +#endif +#endif /* !Py_LIMITED_API */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/descrobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/descrobject.h new file mode 100644 index 000000000..fd66d17b4 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/descrobject.h @@ -0,0 +1,100 @@ +/* Descriptors */ +#ifndef Py_DESCROBJECT_H +#define Py_DESCROBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +typedef PyObject *(*getter)(PyObject *, void *); +typedef int (*setter)(PyObject *, PyObject *, void *); + +struct PyGetSetDef { + const char *name; + getter get; + setter set; + const char *doc; + void *closure; +}; + +PyAPI_DATA(PyTypeObject) PyClassMethodDescr_Type; +PyAPI_DATA(PyTypeObject) PyGetSetDescr_Type; +PyAPI_DATA(PyTypeObject) PyMemberDescr_Type; +PyAPI_DATA(PyTypeObject) PyMethodDescr_Type; +PyAPI_DATA(PyTypeObject) PyWrapperDescr_Type; +PyAPI_DATA(PyTypeObject) PyDictProxy_Type; +PyAPI_DATA(PyTypeObject) PyProperty_Type; + +PyAPI_FUNC(PyObject *) PyDescr_NewMethod(PyTypeObject *, PyMethodDef *); +PyAPI_FUNC(PyObject *) PyDescr_NewClassMethod(PyTypeObject *, PyMethodDef *); +PyAPI_FUNC(PyObject *) PyDescr_NewMember(PyTypeObject *, PyMemberDef *); +PyAPI_FUNC(PyObject *) PyDescr_NewGetSet(PyTypeObject *, PyGetSetDef *); + +PyAPI_FUNC(PyObject *) PyDictProxy_New(PyObject *); +PyAPI_FUNC(PyObject *) PyWrapper_New(PyObject *, PyObject *); + + +/* An array of PyMemberDef structures defines the name, type and offset + of selected members of a C structure. These can be read by + PyMember_GetOne() and set by PyMember_SetOne() (except if their READONLY + flag is set). The array must be terminated with an entry whose name + pointer is NULL. */ +struct PyMemberDef { + const char *name; + int type; + Py_ssize_t offset; + int flags; + const char *doc; +}; + +// These constants used to be in structmember.h, not prefixed by Py_. +// (structmember.h now has aliases to the new names.) + +/* Types */ +#define Py_T_SHORT 0 +#define Py_T_INT 1 +#define Py_T_LONG 2 +#define Py_T_FLOAT 3 +#define Py_T_DOUBLE 4 +#define Py_T_STRING 5 +#define _Py_T_OBJECT 6 // Deprecated, use Py_T_OBJECT_EX instead +/* the ordering here is weird for binary compatibility */ +#define Py_T_CHAR 7 /* 1-character string */ +#define Py_T_BYTE 8 /* 8-bit signed int */ +/* unsigned variants: */ +#define Py_T_UBYTE 9 +#define Py_T_USHORT 10 +#define Py_T_UINT 11 +#define Py_T_ULONG 12 + +/* Added by Jack: strings contained in the structure */ +#define Py_T_STRING_INPLACE 13 + +/* Added by Lillo: bools contained in the structure (assumed char) */ +#define Py_T_BOOL 14 + +#define Py_T_OBJECT_EX 16 +#define Py_T_LONGLONG 17 +#define Py_T_ULONGLONG 18 + +#define Py_T_PYSSIZET 19 /* Py_ssize_t */ +#define _Py_T_NONE 20 // Deprecated. Value is always None. + +/* Flags */ +#define Py_READONLY 1 +#define Py_AUDIT_READ 2 // Added in 3.10, harmless no-op before that +#define _Py_WRITE_RESTRICTED 4 // Deprecated, no-op. Do not reuse the value. +#define Py_RELATIVE_OFFSET 8 + +PyAPI_FUNC(PyObject *) PyMember_GetOne(const char *, PyMemberDef *); +PyAPI_FUNC(int) PyMember_SetOne(char *, PyMemberDef *, PyObject *); + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_DESCROBJECT_H +# include "cpython/descrobject.h" +# undef Py_CPYTHON_DESCROBJECT_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_DESCROBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/dictobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/dictobject.h new file mode 100644 index 000000000..1bbeec1ab --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/dictobject.h @@ -0,0 +1,108 @@ +#ifndef Py_DICTOBJECT_H +#define Py_DICTOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +/* Dictionary object type -- mapping from hashable object to object */ + +/* The distribution includes a separate file, Objects/dictnotes.txt, + describing explorations into dictionary design and optimization. + It covers typical dictionary use patterns, the parameters for + tuning dictionaries, and several ideas for possible optimizations. +*/ + +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) + +PyAPI_FUNC(PyObject *) PyDict_New(void); +PyAPI_FUNC(PyObject *) PyDict_GetItem(PyObject *mp, PyObject *key); +PyAPI_FUNC(PyObject *) PyDict_GetItemWithError(PyObject *mp, PyObject *key); +PyAPI_FUNC(int) PyDict_SetItem(PyObject *mp, PyObject *key, PyObject *item); +PyAPI_FUNC(int) PyDict_DelItem(PyObject *mp, PyObject *key); +PyAPI_FUNC(void) PyDict_Clear(PyObject *mp); +PyAPI_FUNC(int) PyDict_Next( + PyObject *mp, Py_ssize_t *pos, PyObject **key, PyObject **value); +PyAPI_FUNC(PyObject *) PyDict_Keys(PyObject *mp); +PyAPI_FUNC(PyObject *) PyDict_Values(PyObject *mp); +PyAPI_FUNC(PyObject *) PyDict_Items(PyObject *mp); +PyAPI_FUNC(Py_ssize_t) PyDict_Size(PyObject *mp); +PyAPI_FUNC(PyObject *) PyDict_Copy(PyObject *mp); +PyAPI_FUNC(int) PyDict_Contains(PyObject *mp, PyObject *key); + +/* PyDict_Update(mp, other) is equivalent to PyDict_Merge(mp, other, 1). */ +PyAPI_FUNC(int) PyDict_Update(PyObject *mp, PyObject *other); + +/* PyDict_Merge updates/merges from a mapping object (an object that + supports PyMapping_Keys() and PyObject_GetItem()). If override is true, + the last occurrence of a key wins, else the first. The Python + dict.update(other) is equivalent to PyDict_Merge(dict, other, 1). +*/ +PyAPI_FUNC(int) PyDict_Merge(PyObject *mp, + 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 + of a key wins, else the first. The Python dict constructor dict(seq2) + is equivalent to dict={}; PyDict_MergeFromSeq(dict, seq2, 1). +*/ +PyAPI_FUNC(int) PyDict_MergeFromSeq2(PyObject *d, + 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); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030D0000 +// Return the object from dictionary *op* which has a key *key*. +// - If the key is present, set *result to a new strong reference to the value +// and return 1. +// - If the key is missing, set *result to NULL and return 0 . +// - On error, raise an exception and return -1. +PyAPI_FUNC(int) PyDict_GetItemRef(PyObject *mp, PyObject *key, PyObject **result); +PyAPI_FUNC(int) PyDict_GetItemStringRef(PyObject *mp, const char *key, PyObject **result); +#endif + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030A0000 +PyAPI_FUNC(PyObject *) PyObject_GenericGetDict(PyObject *, void *); +#endif + +/* 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 +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_DICTOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/dynamic_annotations.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/dynamic_annotations.h new file mode 100644 index 000000000..4d4def9bf --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/dynamic_annotations.h @@ -0,0 +1,499 @@ +/* Copyright (c) 2008-2009, Google Inc. + * All rights reserved. + * + * 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. + * * Neither the name of Google Inc. 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. + * + * --- + * Author: Kostya Serebryany + * Copied to CPython by Jeffrey Yasskin, with all macros renamed to + * start with _Py_ to avoid colliding with users embedding Python, and + * with deprecated macros removed. + */ + +/* This file defines dynamic annotations for use with dynamic analysis + tool such as valgrind, PIN, etc. + + Dynamic annotation is a source code annotation that affects + the generated code (that is, the annotation is not a comment). + Each such annotation is attached to a particular + instruction and/or to a particular object (address) in the program. + + The annotations that should be used by users are macros in all upper-case + (e.g., _Py_ANNOTATE_NEW_MEMORY). + + Actual implementation of these macros may differ depending on the + dynamic analysis tool being used. + + See https://code.google.com/p/data-race-test/ for more information. + + This file supports the following dynamic analysis tools: + - None (DYNAMIC_ANNOTATIONS_ENABLED is not defined or zero). + Macros are defined empty. + - ThreadSanitizer, Helgrind, DRD (DYNAMIC_ANNOTATIONS_ENABLED is 1). + Macros are defined as calls to non-inlinable empty functions + that are intercepted by Valgrind. */ + +#ifndef __DYNAMIC_ANNOTATIONS_H__ +#define __DYNAMIC_ANNOTATIONS_H__ + +#ifndef DYNAMIC_ANNOTATIONS_ENABLED +# define DYNAMIC_ANNOTATIONS_ENABLED 0 +#endif + +#if DYNAMIC_ANNOTATIONS_ENABLED != 0 + + /* ------------------------------------------------------------- + Annotations useful when implementing condition variables such as CondVar, + using conditional critical sections (Await/LockWhen) and when constructing + user-defined synchronization mechanisms. + + The annotations _Py_ANNOTATE_HAPPENS_BEFORE() and + _Py_ANNOTATE_HAPPENS_AFTER() can be used to define happens-before arcs in + user-defined synchronization mechanisms: the race detector will infer an + arc from the former to the latter when they share the same argument + pointer. + + Example 1 (reference counting): + + void Unref() { + _Py_ANNOTATE_HAPPENS_BEFORE(&refcount_); + if (AtomicDecrementByOne(&refcount_) == 0) { + _Py_ANNOTATE_HAPPENS_AFTER(&refcount_); + delete this; + } + } + + Example 2 (message queue): + + void MyQueue::Put(Type *e) { + MutexLock lock(&mu_); + _Py_ANNOTATE_HAPPENS_BEFORE(e); + PutElementIntoMyQueue(e); + } + + Type *MyQueue::Get() { + MutexLock lock(&mu_); + Type *e = GetElementFromMyQueue(); + _Py_ANNOTATE_HAPPENS_AFTER(e); + return e; + } + + Note: when possible, please use the existing reference counting and message + queue implementations instead of inventing new ones. */ + + /* Report that wait on the condition variable at address "cv" has succeeded + and the lock at address "lock" is held. */ +#define _Py_ANNOTATE_CONDVAR_LOCK_WAIT(cv, lock) \ + AnnotateCondVarWait(__FILE__, __LINE__, cv, lock) + + /* Report that wait on the condition variable at "cv" has succeeded. Variant + w/o lock. */ +#define _Py_ANNOTATE_CONDVAR_WAIT(cv) \ + AnnotateCondVarWait(__FILE__, __LINE__, cv, NULL) + + /* Report that we are about to signal on the condition variable at address + "cv". */ +#define _Py_ANNOTATE_CONDVAR_SIGNAL(cv) \ + AnnotateCondVarSignal(__FILE__, __LINE__, cv) + + /* Report that we are about to signal_all on the condition variable at "cv". */ +#define _Py_ANNOTATE_CONDVAR_SIGNAL_ALL(cv) \ + AnnotateCondVarSignalAll(__FILE__, __LINE__, cv) + + /* Annotations for user-defined synchronization mechanisms. */ +#define _Py_ANNOTATE_HAPPENS_BEFORE(obj) _Py_ANNOTATE_CONDVAR_SIGNAL(obj) +#define _Py_ANNOTATE_HAPPENS_AFTER(obj) _Py_ANNOTATE_CONDVAR_WAIT(obj) + + /* Report that the bytes in the range [pointer, pointer+size) are about + to be published safely. The race checker will create a happens-before + arc from the call _Py_ANNOTATE_PUBLISH_MEMORY_RANGE(pointer, size) to + subsequent accesses to this memory. + Note: this annotation may not work properly if the race detector uses + sampling, i.e. does not observe all memory accesses. + */ +#define _Py_ANNOTATE_PUBLISH_MEMORY_RANGE(pointer, size) \ + AnnotatePublishMemoryRange(__FILE__, __LINE__, pointer, size) + + /* Instruct the tool to create a happens-before arc between mu->Unlock() and + mu->Lock(). This annotation may slow down the race detector and hide real + races. Normally it is used only when it would be difficult to annotate each + of the mutex's critical sections individually using the annotations above. + This annotation makes sense only for hybrid race detectors. For pure + happens-before detectors this is a no-op. For more details see + https://code.google.com/p/data-race-test/wiki/PureHappensBeforeVsHybrid . */ +#define _Py_ANNOTATE_PURE_HAPPENS_BEFORE_MUTEX(mu) \ + AnnotateMutexIsUsedAsCondVar(__FILE__, __LINE__, mu) + + /* ------------------------------------------------------------- + Annotations useful when defining memory allocators, or when memory that + was protected in one way starts to be protected in another. */ + + /* Report that a new memory at "address" of size "size" has been allocated. + This might be used when the memory has been retrieved from a free list and + is about to be reused, or when the locking discipline for a variable + changes. */ +#define _Py_ANNOTATE_NEW_MEMORY(address, size) \ + AnnotateNewMemory(__FILE__, __LINE__, address, size) + + /* ------------------------------------------------------------- + Annotations useful when defining FIFO queues that transfer data between + threads. */ + + /* Report that the producer-consumer queue (such as ProducerConsumerQueue) at + address "pcq" has been created. The _Py_ANNOTATE_PCQ_* annotations should + be used only for FIFO queues. For non-FIFO queues use + _Py_ANNOTATE_HAPPENS_BEFORE (for put) and _Py_ANNOTATE_HAPPENS_AFTER (for + get). */ +#define _Py_ANNOTATE_PCQ_CREATE(pcq) \ + AnnotatePCQCreate(__FILE__, __LINE__, pcq) + + /* Report that the queue at address "pcq" is about to be destroyed. */ +#define _Py_ANNOTATE_PCQ_DESTROY(pcq) \ + AnnotatePCQDestroy(__FILE__, __LINE__, pcq) + + /* Report that we are about to put an element into a FIFO queue at address + "pcq". */ +#define _Py_ANNOTATE_PCQ_PUT(pcq) \ + AnnotatePCQPut(__FILE__, __LINE__, pcq) + + /* Report that we've just got an element from a FIFO queue at address "pcq". */ +#define _Py_ANNOTATE_PCQ_GET(pcq) \ + AnnotatePCQGet(__FILE__, __LINE__, pcq) + + /* ------------------------------------------------------------- + Annotations that suppress errors. It is usually better to express the + program's synchronization using the other annotations, but these can + be used when all else fails. */ + + /* Report that we may have a benign race at "pointer", with size + "sizeof(*(pointer))". "pointer" must be a non-void* pointer. Insert at the + point where "pointer" has been allocated, preferably close to the point + where the race happens. See also _Py_ANNOTATE_BENIGN_RACE_STATIC. */ +#define _Py_ANNOTATE_BENIGN_RACE(pointer, description) \ + AnnotateBenignRaceSized(__FILE__, __LINE__, pointer, \ + sizeof(*(pointer)), description) + + /* Same as _Py_ANNOTATE_BENIGN_RACE(address, description), but applies to + the memory range [address, address+size). */ +#define _Py_ANNOTATE_BENIGN_RACE_SIZED(address, size, description) \ + AnnotateBenignRaceSized(__FILE__, __LINE__, address, size, description) + + /* Request the analysis tool to ignore all reads in the current thread + until _Py_ANNOTATE_IGNORE_READS_END is called. + Useful to ignore intentional racey reads, while still checking + other reads and all writes. + See also _Py_ANNOTATE_UNPROTECTED_READ. */ +#define _Py_ANNOTATE_IGNORE_READS_BEGIN() \ + AnnotateIgnoreReadsBegin(__FILE__, __LINE__) + + /* Stop ignoring reads. */ +#define _Py_ANNOTATE_IGNORE_READS_END() \ + AnnotateIgnoreReadsEnd(__FILE__, __LINE__) + + /* Similar to _Py_ANNOTATE_IGNORE_READS_BEGIN, but ignore writes. */ +#define _Py_ANNOTATE_IGNORE_WRITES_BEGIN() \ + AnnotateIgnoreWritesBegin(__FILE__, __LINE__) + + /* Stop ignoring writes. */ +#define _Py_ANNOTATE_IGNORE_WRITES_END() \ + AnnotateIgnoreWritesEnd(__FILE__, __LINE__) + + /* Start ignoring all memory accesses (reads and writes). */ +#define _Py_ANNOTATE_IGNORE_READS_AND_WRITES_BEGIN() \ + do {\ + _Py_ANNOTATE_IGNORE_READS_BEGIN();\ + _Py_ANNOTATE_IGNORE_WRITES_BEGIN();\ + }while(0)\ + + /* Stop ignoring all memory accesses. */ +#define _Py_ANNOTATE_IGNORE_READS_AND_WRITES_END() \ + do {\ + _Py_ANNOTATE_IGNORE_WRITES_END();\ + _Py_ANNOTATE_IGNORE_READS_END();\ + }while(0)\ + + /* Similar to _Py_ANNOTATE_IGNORE_READS_BEGIN, but ignore synchronization events: + RWLOCK* and CONDVAR*. */ +#define _Py_ANNOTATE_IGNORE_SYNC_BEGIN() \ + AnnotateIgnoreSyncBegin(__FILE__, __LINE__) + + /* Stop ignoring sync events. */ +#define _Py_ANNOTATE_IGNORE_SYNC_END() \ + AnnotateIgnoreSyncEnd(__FILE__, __LINE__) + + + /* Enable (enable!=0) or disable (enable==0) race detection for all threads. + This annotation could be useful if you want to skip expensive race analysis + during some period of program execution, e.g. during initialization. */ +#define _Py_ANNOTATE_ENABLE_RACE_DETECTION(enable) \ + AnnotateEnableRaceDetection(__FILE__, __LINE__, enable) + + /* ------------------------------------------------------------- + Annotations useful for debugging. */ + + /* Request to trace every access to "address". */ +#define _Py_ANNOTATE_TRACE_MEMORY(address) \ + AnnotateTraceMemory(__FILE__, __LINE__, address) + + /* Report the current thread name to a race detector. */ +#define _Py_ANNOTATE_THREAD_NAME(name) \ + AnnotateThreadName(__FILE__, __LINE__, name) + + /* ------------------------------------------------------------- + Annotations useful when implementing locks. They are not + normally needed by modules that merely use locks. + The "lock" argument is a pointer to the lock object. */ + + /* Report that a lock has been created at address "lock". */ +#define _Py_ANNOTATE_RWLOCK_CREATE(lock) \ + AnnotateRWLockCreate(__FILE__, __LINE__, lock) + + /* Report that the lock at address "lock" is about to be destroyed. */ +#define _Py_ANNOTATE_RWLOCK_DESTROY(lock) \ + AnnotateRWLockDestroy(__FILE__, __LINE__, lock) + + /* Report that the lock at address "lock" has been acquired. + is_w=1 for writer lock, is_w=0 for reader lock. */ +#define _Py_ANNOTATE_RWLOCK_ACQUIRED(lock, is_w) \ + AnnotateRWLockAcquired(__FILE__, __LINE__, lock, is_w) + + /* Report that the lock at address "lock" is about to be released. */ +#define _Py_ANNOTATE_RWLOCK_RELEASED(lock, is_w) \ + AnnotateRWLockReleased(__FILE__, __LINE__, lock, is_w) + + /* ------------------------------------------------------------- + Annotations useful when implementing barriers. They are not + normally needed by modules that merely use barriers. + The "barrier" argument is a pointer to the barrier object. */ + + /* Report that the "barrier" has been initialized with initial "count". + If 'reinitialization_allowed' is true, initialization is allowed to happen + multiple times w/o calling barrier_destroy() */ +#define _Py_ANNOTATE_BARRIER_INIT(barrier, count, reinitialization_allowed) \ + AnnotateBarrierInit(__FILE__, __LINE__, barrier, count, \ + reinitialization_allowed) + + /* Report that we are about to enter barrier_wait("barrier"). */ +#define _Py_ANNOTATE_BARRIER_WAIT_BEFORE(barrier) \ + AnnotateBarrierWaitBefore(__FILE__, __LINE__, barrier) + + /* Report that we just exited barrier_wait("barrier"). */ +#define _Py_ANNOTATE_BARRIER_WAIT_AFTER(barrier) \ + AnnotateBarrierWaitAfter(__FILE__, __LINE__, barrier) + + /* Report that the "barrier" has been destroyed. */ +#define _Py_ANNOTATE_BARRIER_DESTROY(barrier) \ + AnnotateBarrierDestroy(__FILE__, __LINE__, barrier) + + /* ------------------------------------------------------------- + Annotations useful for testing race detectors. */ + + /* Report that we expect a race on the variable at "address". + Use only in unit tests for a race detector. */ +#define _Py_ANNOTATE_EXPECT_RACE(address, description) \ + AnnotateExpectRace(__FILE__, __LINE__, address, description) + + /* A no-op. Insert where you like to test the interceptors. */ +#define _Py_ANNOTATE_NO_OP(arg) \ + AnnotateNoOp(__FILE__, __LINE__, arg) + + /* Force the race detector to flush its state. The actual effect depends on + * the implementation of the detector. */ +#define _Py_ANNOTATE_FLUSH_STATE() \ + AnnotateFlushState(__FILE__, __LINE__) + + +#else /* DYNAMIC_ANNOTATIONS_ENABLED == 0 */ + +#define _Py_ANNOTATE_RWLOCK_CREATE(lock) /* empty */ +#define _Py_ANNOTATE_RWLOCK_DESTROY(lock) /* empty */ +#define _Py_ANNOTATE_RWLOCK_ACQUIRED(lock, is_w) /* empty */ +#define _Py_ANNOTATE_RWLOCK_RELEASED(lock, is_w) /* empty */ +#define _Py_ANNOTATE_BARRIER_INIT(barrier, count, reinitialization_allowed) /* */ +#define _Py_ANNOTATE_BARRIER_WAIT_BEFORE(barrier) /* empty */ +#define _Py_ANNOTATE_BARRIER_WAIT_AFTER(barrier) /* empty */ +#define _Py_ANNOTATE_BARRIER_DESTROY(barrier) /* empty */ +#define _Py_ANNOTATE_CONDVAR_LOCK_WAIT(cv, lock) /* empty */ +#define _Py_ANNOTATE_CONDVAR_WAIT(cv) /* empty */ +#define _Py_ANNOTATE_CONDVAR_SIGNAL(cv) /* empty */ +#define _Py_ANNOTATE_CONDVAR_SIGNAL_ALL(cv) /* empty */ +#define _Py_ANNOTATE_HAPPENS_BEFORE(obj) /* empty */ +#define _Py_ANNOTATE_HAPPENS_AFTER(obj) /* empty */ +#define _Py_ANNOTATE_PUBLISH_MEMORY_RANGE(address, size) /* empty */ +#define _Py_ANNOTATE_UNPUBLISH_MEMORY_RANGE(address, size) /* empty */ +#define _Py_ANNOTATE_SWAP_MEMORY_RANGE(address, size) /* empty */ +#define _Py_ANNOTATE_PCQ_CREATE(pcq) /* empty */ +#define _Py_ANNOTATE_PCQ_DESTROY(pcq) /* empty */ +#define _Py_ANNOTATE_PCQ_PUT(pcq) /* empty */ +#define _Py_ANNOTATE_PCQ_GET(pcq) /* empty */ +#define _Py_ANNOTATE_NEW_MEMORY(address, size) /* empty */ +#define _Py_ANNOTATE_EXPECT_RACE(address, description) /* empty */ +#define _Py_ANNOTATE_BENIGN_RACE(address, description) /* empty */ +#define _Py_ANNOTATE_BENIGN_RACE_SIZED(address, size, description) /* empty */ +#define _Py_ANNOTATE_PURE_HAPPENS_BEFORE_MUTEX(mu) /* empty */ +#define _Py_ANNOTATE_MUTEX_IS_USED_AS_CONDVAR(mu) /* empty */ +#define _Py_ANNOTATE_TRACE_MEMORY(arg) /* empty */ +#define _Py_ANNOTATE_THREAD_NAME(name) /* empty */ +#define _Py_ANNOTATE_IGNORE_READS_BEGIN() /* empty */ +#define _Py_ANNOTATE_IGNORE_READS_END() /* empty */ +#define _Py_ANNOTATE_IGNORE_WRITES_BEGIN() /* empty */ +#define _Py_ANNOTATE_IGNORE_WRITES_END() /* empty */ +#define _Py_ANNOTATE_IGNORE_READS_AND_WRITES_BEGIN() /* empty */ +#define _Py_ANNOTATE_IGNORE_READS_AND_WRITES_END() /* empty */ +#define _Py_ANNOTATE_IGNORE_SYNC_BEGIN() /* empty */ +#define _Py_ANNOTATE_IGNORE_SYNC_END() /* empty */ +#define _Py_ANNOTATE_ENABLE_RACE_DETECTION(enable) /* empty */ +#define _Py_ANNOTATE_NO_OP(arg) /* empty */ +#define _Py_ANNOTATE_FLUSH_STATE() /* empty */ + +#endif /* DYNAMIC_ANNOTATIONS_ENABLED */ + +/* Use the macros above rather than using these functions directly. */ +#ifdef __cplusplus +extern "C" { +#endif +void AnnotateRWLockCreate(const char *file, int line, + const volatile void *lock); +void AnnotateRWLockDestroy(const char *file, int line, + const volatile void *lock); +void AnnotateRWLockAcquired(const char *file, int line, + const volatile void *lock, long is_w); +void AnnotateRWLockReleased(const char *file, int line, + const volatile void *lock, long is_w); +void AnnotateBarrierInit(const char *file, int line, + const volatile void *barrier, long count, + long reinitialization_allowed); +void AnnotateBarrierWaitBefore(const char *file, int line, + const volatile void *barrier); +void AnnotateBarrierWaitAfter(const char *file, int line, + const volatile void *barrier); +void AnnotateBarrierDestroy(const char *file, int line, + const volatile void *barrier); +void AnnotateCondVarWait(const char *file, int line, + const volatile void *cv, + const volatile void *lock); +void AnnotateCondVarSignal(const char *file, int line, + const volatile void *cv); +void AnnotateCondVarSignalAll(const char *file, int line, + const volatile void *cv); +void AnnotatePublishMemoryRange(const char *file, int line, + const volatile void *address, + long size); +void AnnotateUnpublishMemoryRange(const char *file, int line, + const volatile void *address, + long size); +void AnnotatePCQCreate(const char *file, int line, + const volatile void *pcq); +void AnnotatePCQDestroy(const char *file, int line, + const volatile void *pcq); +void AnnotatePCQPut(const char *file, int line, + const volatile void *pcq); +void AnnotatePCQGet(const char *file, int line, + const volatile void *pcq); +void AnnotateNewMemory(const char *file, int line, + const volatile void *address, + long size); +void AnnotateExpectRace(const char *file, int line, + const volatile void *address, + const char *description); +void AnnotateBenignRace(const char *file, int line, + const volatile void *address, + const char *description); +void AnnotateBenignRaceSized(const char *file, int line, + const volatile void *address, + long size, + const char *description); +void AnnotateMutexIsUsedAsCondVar(const char *file, int line, + const volatile void *mu); +void AnnotateTraceMemory(const char *file, int line, + const volatile void *arg); +void AnnotateThreadName(const char *file, int line, + const char *name); +void AnnotateIgnoreReadsBegin(const char *file, int line); +void AnnotateIgnoreReadsEnd(const char *file, int line); +void AnnotateIgnoreWritesBegin(const char *file, int line); +void AnnotateIgnoreWritesEnd(const char *file, int line); +void AnnotateEnableRaceDetection(const char *file, int line, int enable); +void AnnotateNoOp(const char *file, int line, + const volatile void *arg); +void AnnotateFlushState(const char *file, int line); + +/* Return non-zero value if running under valgrind. + + If "valgrind.h" is included into dynamic_annotations.c, + the regular valgrind mechanism will be used. + See http://valgrind.org/docs/manual/manual-core-adv.html about + RUNNING_ON_VALGRIND and other valgrind "client requests". + The file "valgrind.h" may be obtained by doing + svn co svn://svn.valgrind.org/valgrind/trunk/include + + If for some reason you can't use "valgrind.h" or want to fake valgrind, + there are two ways to make this function return non-zero: + - Use environment variable: export RUNNING_ON_VALGRIND=1 + - Make your tool intercept the function RunningOnValgrind() and + change its return value. + */ +int RunningOnValgrind(void); + +#ifdef __cplusplus +} +#endif + +#if DYNAMIC_ANNOTATIONS_ENABLED != 0 && defined(__cplusplus) + + /* _Py_ANNOTATE_UNPROTECTED_READ is the preferred way to annotate racey reads. + + Instead of doing + _Py_ANNOTATE_IGNORE_READS_BEGIN(); + ... = x; + _Py_ANNOTATE_IGNORE_READS_END(); + one can use + ... = _Py_ANNOTATE_UNPROTECTED_READ(x); */ + template + inline T _Py_ANNOTATE_UNPROTECTED_READ(const volatile T &x) { + _Py_ANNOTATE_IGNORE_READS_BEGIN(); + T res = x; + _Py_ANNOTATE_IGNORE_READS_END(); + return res; + } + /* Apply _Py_ANNOTATE_BENIGN_RACE_SIZED to a static variable. */ +#define _Py_ANNOTATE_BENIGN_RACE_STATIC(static_var, description) \ + namespace { \ + class static_var ## _annotator { \ + public: \ + static_var ## _annotator() { \ + _Py_ANNOTATE_BENIGN_RACE_SIZED(&static_var, \ + sizeof(static_var), \ + # static_var ": " description); \ + } \ + }; \ + static static_var ## _annotator the ## static_var ## _annotator;\ + } +#else /* DYNAMIC_ANNOTATIONS_ENABLED == 0 */ + +#define _Py_ANNOTATE_UNPROTECTED_READ(x) (x) +#define _Py_ANNOTATE_BENIGN_RACE_STATIC(static_var, description) /* empty */ + +#endif /* DYNAMIC_ANNOTATIONS_ENABLED */ + +#endif /* __DYNAMIC_ANNOTATIONS_H__ */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/enumobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/enumobject.h new file mode 100644 index 000000000..c14dbfc8c --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/enumobject.h @@ -0,0 +1,17 @@ +#ifndef Py_ENUMOBJECT_H +#define Py_ENUMOBJECT_H + +/* Enumerate Object */ + +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_DATA(PyTypeObject) PyEnum_Type; +PyAPI_DATA(PyTypeObject) PyReversed_Type; + +#ifdef __cplusplus +} +#endif + +#endif /* !Py_ENUMOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/errcode.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/errcode.h new file mode 100644 index 000000000..dac5cf068 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/errcode.h @@ -0,0 +1,45 @@ +// Error codes passed around between file input, tokenizer, parser and +// interpreter. This is necessary so we can turn them into Python +// exceptions at a higher level. Note that some errors have a +// slightly different meaning when passed from the tokenizer to the +// parser than when passed from the parser to the interpreter; e.g. +// the parser only returns E_EOF when it hits EOF immediately, and it +// never returns E_OK. +// +// The public PyRun_InteractiveOneObjectEx() function can return E_EOF, +// same as its variants: +// +// * PyRun_InteractiveOneObject() +// * PyRun_InteractiveOneFlags() +// * PyRun_InteractiveOne() + +#ifndef Py_ERRCODE_H +#define Py_ERRCODE_H +#ifdef __cplusplus +extern "C" { +#endif + +#define E_OK 10 /* No error */ +#define E_EOF 11 /* End Of File */ +#define E_INTR 12 /* Interrupted */ +#define E_TOKEN 13 /* Bad token */ +#define E_SYNTAX 14 /* Syntax error */ +#define E_NOMEM 15 /* Ran out of memory */ +#define E_DONE 16 /* Parsing complete */ +#define E_ERROR 17 /* Execution error */ +#define E_TABSPACE 18 /* Inconsistent mixing of tabs and spaces */ +#define E_OVERFLOW 19 /* Node had too many children */ +#define E_TOODEEP 20 /* Too many indentation levels */ +#define E_DEDENT 21 /* No matching outer block for dedent */ +#define E_DECODE 22 /* Error in decoding into Unicode */ +#define E_EOFS 23 /* EOF in triple-quoted string */ +#define E_EOLS 24 /* EOL in single-quoted string */ +#define E_LINECONT 25 /* Unexpected characters after a line continuation */ +#define E_BADSINGLE 27 /* Ill-formed single statement input */ +#define E_INTERACT_STOP 28 /* Interactive mode stopped tokenization */ +#define E_COLUMNOVERFLOW 29 /* Column offset overflow */ + +#ifdef __cplusplus +} +#endif +#endif /* !Py_ERRCODE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/exports.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/exports.h new file mode 100644 index 000000000..ce601216f --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/exports.h @@ -0,0 +1,108 @@ +#ifndef Py_EXPORTS_H +#define Py_EXPORTS_H + +/* Declarations for symbol visibility. + + PyAPI_FUNC(type): Declares a public Python API function and return type + PyAPI_DATA(type): Declares public Python data and its type + PyMODINIT_FUNC: A Python module init function. If these functions are + inside the Python core, they are private to the core. + If in an extension module, it may be declared with + external linkage depending on the platform. + + As a number of platforms support/require "__declspec(dllimport/dllexport)", + we support a HAVE_DECLSPEC_DLL macro to save duplication. +*/ + +/* + All windows ports, except cygwin, are handled in PC/pyconfig.h. + + Cygwin is the only other autoconf platform requiring special + linkage handling and it uses __declspec(). +*/ +#if defined(__CYGWIN__) +# define HAVE_DECLSPEC_DLL +#endif + +#if defined(_WIN32) || defined(__CYGWIN__) + #if defined(Py_ENABLE_SHARED) + #define Py_IMPORTED_SYMBOL __declspec(dllimport) + #define Py_EXPORTED_SYMBOL __declspec(dllexport) + #define Py_LOCAL_SYMBOL + #else + #define Py_IMPORTED_SYMBOL + #define Py_EXPORTED_SYMBOL + #define Py_LOCAL_SYMBOL + #endif +#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 + +/* 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 + /* 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* +# else /* __CYGWIN__ */ +# define PyMODINIT_FUNC PyObject* +# endif /* __CYGWIN__ */ +# else /* Py_BUILD_CORE */ + /* Building an extension module, or an embedded situation */ + /* public Python functions and data are imported */ + /* Under Cygwin, auto-import functions to prevent compilation */ + /* 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 +# endif /* !__CYGWIN__ */ +# 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* +# else /* __cplusplus */ +# define PyMODINIT_FUNC Py_EXPORTED_SYMBOL PyObject* +# endif /* __cplusplus */ +# endif /* Py_BUILD_CORE */ +# endif /* HAVE_DECLSPEC_DLL */ +#endif /* Py_ENABLE_SHARED */ + +/* If no external linkage macros defined by now, create defaults */ +#ifndef PyAPI_FUNC +# define PyAPI_FUNC(RTYPE) Py_EXPORTED_SYMBOL RTYPE +#endif +#ifndef PyAPI_DATA +# 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* +# else /* __cplusplus */ +# define PyMODINIT_FUNC Py_EXPORTED_SYMBOL PyObject* +# endif /* __cplusplus */ +#endif + + +#endif /* Py_EXPORTS_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/fileobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/fileobject.h new file mode 100644 index 000000000..6a6d11409 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/fileobject.h @@ -0,0 +1,41 @@ +/* File object interface (what's left of it -- see io.py) */ + +#ifndef Py_FILEOBJECT_H +#define Py_FILEOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#define PY_STDIOTEXTMODE "b" + +PyAPI_FUNC(PyObject *) PyFile_FromFd(int, const char *, const char *, int, + const char *, const char *, + const char *, int); +PyAPI_FUNC(PyObject *) PyFile_GetLine(PyObject *, int); +PyAPI_FUNC(int) PyFile_WriteObject(PyObject *, PyObject *, int); +PyAPI_FUNC(int) PyFile_WriteString(const char *, PyObject *); +PyAPI_FUNC(int) PyObject_AsFileDescriptor(PyObject *); + +/* The default encoding used by the platform file system APIs + If non-NULL, this is different than the default encoding for strings +*/ +Py_DEPRECATED(3.12) PyAPI_DATA(const char *) Py_FileSystemDefaultEncoding; +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03060000 +Py_DEPRECATED(3.12) PyAPI_DATA(const char *) Py_FileSystemDefaultEncodeErrors; +#endif +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_HasFileSystemDefaultEncoding; + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03070000 +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_UTF8Mode; +#endif + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_FILEOBJECT_H +# include "cpython/fileobject.h" +# undef Py_CPYTHON_FILEOBJECT_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_FILEOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/fileutils.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/fileutils.h new file mode 100644 index 000000000..1509198e4 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/fileutils.h @@ -0,0 +1,62 @@ +#ifndef Py_FILEUTILS_H +#define Py_FILEUTILS_H + +/******************************* + * stat() and fstat() fiddling * + *******************************/ + +#ifdef HAVE_SYS_STAT_H +# include // S_ISREG() +#elif defined(HAVE_STAT_H) +# include // S_ISREG() +#endif + +#ifndef S_IFMT + // VisualAge C/C++ Failed to Define MountType Field in sys/stat.h. +# define S_IFMT 0170000 +#endif +#ifndef S_IFLNK + // Windows doesn't define S_IFLNK, but posixmodule.c maps + // IO_REPARSE_TAG_SYMLINK to S_IFLNK. +# define S_IFLNK 0120000 +#endif +#ifndef S_ISREG +# define S_ISREG(x) (((x) & S_IFMT) == S_IFREG) +#endif +#ifndef S_ISDIR +# define S_ISDIR(x) (((x) & S_IFMT) == S_IFDIR) +#endif +#ifndef S_ISCHR +# define S_ISCHR(x) (((x) & S_IFMT) == S_IFCHR) +#endif +#ifndef S_ISLNK +# define S_ISLNK(x) (((x) & S_IFMT) == S_IFLNK) +#endif + + +// Move this down here since some C++ #include's don't like to be included +// inside an extern "C". +#ifdef __cplusplus +extern "C" { +#endif + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 +PyAPI_FUNC(wchar_t *) Py_DecodeLocale( + const char *arg, + size_t *size); + +PyAPI_FUNC(char*) Py_EncodeLocale( + const wchar_t *text, + size_t *error_pos); +#endif + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_FILEUTILS_H +# include "cpython/fileutils.h" +# undef Py_CPYTHON_FILEUTILS_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_FILEUTILS_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/floatobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/floatobject.h new file mode 100644 index 000000000..8963c1683 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/floatobject.h @@ -0,0 +1,54 @@ + +/* Float object interface */ + +/* +PyFloatObject represents a (double precision) floating-point number. +*/ + +#ifndef Py_FLOATOBJECT_H +#define Py_FLOATOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +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 Py_RETURN_NAN return PyFloat_FromDouble(Py_NAN) + +#define Py_RETURN_INF(sign) \ + do { \ + if (copysign(1., sign) == 1.) { \ + return PyFloat_FromDouble(Py_HUGE_VAL); \ + } \ + else { \ + return PyFloat_FromDouble(-Py_HUGE_VAL); \ + } \ + } while(0) + +PyAPI_FUNC(double) PyFloat_GetMax(void); +PyAPI_FUNC(double) PyFloat_GetMin(void); +PyAPI_FUNC(PyObject*) PyFloat_GetInfo(void); + +/* Return Python float from string PyObject. */ +PyAPI_FUNC(PyObject*) PyFloat_FromString(PyObject*); + +/* Return Python float from C double. */ +PyAPI_FUNC(PyObject*) PyFloat_FromDouble(double); + +/* Extract C double from Python float. The macro version trades safety for + speed. */ +PyAPI_FUNC(double) PyFloat_AsDouble(PyObject*); + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_FLOATOBJECT_H +# include "cpython/floatobject.h" +# undef Py_CPYTHON_FLOATOBJECT_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_FLOATOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/frameobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/frameobject.h new file mode 100644 index 000000000..adb628f63 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/frameobject.h @@ -0,0 +1,20 @@ +/* Frame object interface */ + +#ifndef Py_FRAMEOBJECT_H +#define Py_FRAMEOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#include "pyframe.h" + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_FRAMEOBJECT_H +# include "cpython/frameobject.h" +# undef Py_CPYTHON_FRAMEOBJECT_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_FRAMEOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/genericaliasobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/genericaliasobject.h new file mode 100644 index 000000000..cf002976b --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/genericaliasobject.h @@ -0,0 +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 */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/import.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/import.h new file mode 100644 index 000000000..24b23b911 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/import.h @@ -0,0 +1,103 @@ +/* Module definition and import interface */ + +#ifndef Py_IMPORT_H +#define Py_IMPORT_H +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_FUNC(long) PyImport_GetMagicNumber(void); +PyAPI_FUNC(const char *) PyImport_GetMagicTag(void); +PyAPI_FUNC(PyObject *) PyImport_ExecCodeModule( + const char *name, /* UTF-8 encoded string */ + PyObject *co + ); +PyAPI_FUNC(PyObject *) PyImport_ExecCodeModuleEx( + const char *name, /* UTF-8 encoded string */ + PyObject *co, + const char *pathname /* decoded from the filesystem encoding */ + ); +PyAPI_FUNC(PyObject *) PyImport_ExecCodeModuleWithPathnames( + const char *name, /* UTF-8 encoded string */ + PyObject *co, + const char *pathname, /* decoded from the filesystem encoding */ + const char *cpathname /* decoded from the filesystem encoding */ + ); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +PyAPI_FUNC(PyObject *) PyImport_ExecCodeModuleObject( + PyObject *name, + PyObject *co, + PyObject *pathname, + PyObject *cpathname + ); +#endif +PyAPI_FUNC(PyObject *) PyImport_GetModuleDict(void); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03070000 +PyAPI_FUNC(PyObject *) PyImport_GetModule(PyObject *name); +#endif +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +PyAPI_FUNC(PyObject *) PyImport_AddModuleObject( + PyObject *name + ); +#endif +PyAPI_FUNC(PyObject *) PyImport_AddModule( + const char *name /* UTF-8 encoded string */ + ); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030d0000 +PyAPI_FUNC(PyObject *) PyImport_AddModuleRef( + const char *name /* UTF-8 encoded string */ + ); +#endif +PyAPI_FUNC(PyObject *) PyImport_ImportModule( + const char *name /* UTF-8 encoded string */ + ); +Py_DEPRECATED(3.13) PyAPI_FUNC(PyObject *) PyImport_ImportModuleNoBlock( + const char *name /* UTF-8 encoded string */ + ); +PyAPI_FUNC(PyObject *) PyImport_ImportModuleLevel( + const char *name, /* UTF-8 encoded string */ + PyObject *globals, + PyObject *locals, + PyObject *fromlist, + int level + ); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 +PyAPI_FUNC(PyObject *) PyImport_ImportModuleLevelObject( + PyObject *name, + PyObject *globals, + PyObject *locals, + PyObject *fromlist, + int level + ); +#endif + +#define PyImport_ImportModuleEx(n, g, l, f) \ + PyImport_ImportModuleLevel((n), (g), (l), (f), 0) + +PyAPI_FUNC(PyObject *) PyImport_GetImporter(PyObject *path); +PyAPI_FUNC(PyObject *) PyImport_Import(PyObject *name); +PyAPI_FUNC(PyObject *) PyImport_ReloadModule(PyObject *m); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +PyAPI_FUNC(int) PyImport_ImportFrozenModuleObject( + PyObject *name + ); +#endif +PyAPI_FUNC(int) PyImport_ImportFrozenModule( + const char *name /* UTF-8 encoded string */ + ); + +PyAPI_FUNC(int) PyImport_AppendInittab( + const char *name, /* ASCII encoded string */ + PyObject* (*initfunc)(void) + ); + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_IMPORT_H +# include "cpython/import.h" +# undef Py_CPYTHON_IMPORT_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_IMPORT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/mimalloc/mimalloc.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/mimalloc/mimalloc.h new file mode 100644 index 000000000..821129e76 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/mimalloc/mimalloc.h @@ -0,0 +1,565 @@ +/* ---------------------------------------------------------------------------- +Copyright (c) 2018-2023, Microsoft Research, Daan Leijen +This is free software; you can redistribute it and/or modify it under the +terms of the MIT license. A copy of the license can be found in the file +"LICENSE" at the root of this distribution. +-----------------------------------------------------------------------------*/ +#pragma once +#ifndef MIMALLOC_H +#define MIMALLOC_H + +#define MI_MALLOC_VERSION 212 // major + 2 digits minor + +// ------------------------------------------------------ +// Compiler specific attributes +// ------------------------------------------------------ + +#ifdef __cplusplus + #if (__cplusplus >= 201103L) || (_MSC_VER > 1900) // C++11 + #define mi_attr_noexcept noexcept + #else + #define mi_attr_noexcept throw() + #endif +#else + #define mi_attr_noexcept +#endif + +#if defined(__cplusplus) && (__cplusplus >= 201703) + #define mi_decl_nodiscard [[nodiscard]] +#elif (defined(__GNUC__) && (__GNUC__ >= 4)) || defined(__clang__) // includes clang, icc, and clang-cl + #define mi_decl_nodiscard __attribute__((warn_unused_result)) +#elif defined(_HAS_NODISCARD) + #define mi_decl_nodiscard _NODISCARD +#elif (_MSC_VER >= 1700) + #define mi_decl_nodiscard _Check_return_ +#else + #define mi_decl_nodiscard +#endif + +#if defined(_MSC_VER) || defined(__MINGW32__) + #if !defined(MI_SHARED_LIB) + #define mi_decl_export + #elif defined(MI_SHARED_LIB_EXPORT) + #define mi_decl_export __declspec(dllexport) + #else + #define mi_decl_export __declspec(dllimport) + #endif + #if defined(__MINGW32__) + #define mi_decl_restrict + #define mi_attr_malloc __attribute__((malloc)) + #else + #if (_MSC_VER >= 1900) && !defined(__EDG__) + #define mi_decl_restrict __declspec(allocator) __declspec(restrict) + #else + #define mi_decl_restrict __declspec(restrict) + #endif + #define mi_attr_malloc + #endif + #define mi_cdecl __cdecl + #define mi_attr_alloc_size(s) + #define mi_attr_alloc_size2(s1,s2) + #define mi_attr_alloc_align(p) +#elif defined(__GNUC__) // includes clang and icc + #if defined(MI_SHARED_LIB) && defined(MI_SHARED_LIB_EXPORT) + #define mi_decl_export __attribute__((visibility("default"))) + #else + #define mi_decl_export + #endif + #define mi_cdecl // leads to warnings... __attribute__((cdecl)) + #define mi_decl_restrict + #define mi_attr_malloc __attribute__((malloc)) + #if (defined(__clang_major__) && (__clang_major__ < 4)) || (__GNUC__ < 5) + #define mi_attr_alloc_size(s) + #define mi_attr_alloc_size2(s1,s2) + #define mi_attr_alloc_align(p) + #elif defined(__INTEL_COMPILER) + #define mi_attr_alloc_size(s) __attribute__((alloc_size(s))) + #define mi_attr_alloc_size2(s1,s2) __attribute__((alloc_size(s1,s2))) + #define mi_attr_alloc_align(p) + #else + #define mi_attr_alloc_size(s) __attribute__((alloc_size(s))) + #define mi_attr_alloc_size2(s1,s2) __attribute__((alloc_size(s1,s2))) + #define mi_attr_alloc_align(p) __attribute__((alloc_align(p))) + #endif +#else + #define mi_cdecl + #define mi_decl_export + #define mi_decl_restrict + #define mi_attr_malloc + #define mi_attr_alloc_size(s) + #define mi_attr_alloc_size2(s1,s2) + #define mi_attr_alloc_align(p) +#endif + +// ------------------------------------------------------ +// Includes +// ------------------------------------------------------ + +#include // size_t +#include // bool +#include // INTPTR_MAX + +#ifdef __cplusplus +extern "C" { +#endif + +// ------------------------------------------------------ +// Standard malloc interface +// ------------------------------------------------------ + +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_malloc(size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(1); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_calloc(size_t count, size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size2(1,2); +mi_decl_nodiscard mi_decl_export void* mi_realloc(void* p, size_t newsize) mi_attr_noexcept mi_attr_alloc_size(2); +mi_decl_export void* mi_expand(void* p, size_t newsize) mi_attr_noexcept mi_attr_alloc_size(2); + +mi_decl_export void mi_free(void* p) mi_attr_noexcept; +mi_decl_nodiscard mi_decl_export mi_decl_restrict char* mi_strdup(const char* s) mi_attr_noexcept mi_attr_malloc; +mi_decl_nodiscard mi_decl_export mi_decl_restrict char* mi_strndup(const char* s, size_t n) mi_attr_noexcept mi_attr_malloc; +mi_decl_nodiscard mi_decl_export mi_decl_restrict char* mi_realpath(const char* fname, char* resolved_name) mi_attr_noexcept mi_attr_malloc; + +// ------------------------------------------------------ +// Extended functionality +// ------------------------------------------------------ +#define MI_SMALL_WSIZE_MAX (128) +#define MI_SMALL_SIZE_MAX (MI_SMALL_WSIZE_MAX*sizeof(void*)) + +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_malloc_small(size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(1); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_zalloc_small(size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(1); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_zalloc(size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(1); + +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_mallocn(size_t count, size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size2(1,2); +mi_decl_nodiscard mi_decl_export void* mi_reallocn(void* p, size_t count, size_t size) mi_attr_noexcept mi_attr_alloc_size2(2,3); +mi_decl_nodiscard mi_decl_export void* mi_reallocf(void* p, size_t newsize) mi_attr_noexcept mi_attr_alloc_size(2); + +mi_decl_nodiscard mi_decl_export size_t mi_usable_size(const void* p) mi_attr_noexcept; +mi_decl_nodiscard mi_decl_export size_t mi_good_size(size_t size) mi_attr_noexcept; + + +// ------------------------------------------------------ +// Internals +// ------------------------------------------------------ + +typedef void (mi_cdecl mi_deferred_free_fun)(bool force, unsigned long long heartbeat, void* arg); +mi_decl_export void mi_register_deferred_free(mi_deferred_free_fun* deferred_free, void* arg) mi_attr_noexcept; + +typedef void (mi_cdecl mi_output_fun)(const char* msg, void* arg); +mi_decl_export void mi_register_output(mi_output_fun* out, void* arg) mi_attr_noexcept; + +typedef void (mi_cdecl mi_error_fun)(int err, void* arg); +mi_decl_export void mi_register_error(mi_error_fun* fun, void* arg); + +mi_decl_export void mi_collect(bool force) mi_attr_noexcept; +mi_decl_export int mi_version(void) mi_attr_noexcept; +mi_decl_export void mi_stats_reset(void) mi_attr_noexcept; +mi_decl_export void mi_stats_merge(void) mi_attr_noexcept; +mi_decl_export void mi_stats_print(void* out) mi_attr_noexcept; // backward compatibility: `out` is ignored and should be NULL +mi_decl_export void mi_stats_print_out(mi_output_fun* out, void* arg) mi_attr_noexcept; + +mi_decl_export void mi_process_init(void) mi_attr_noexcept; +mi_decl_export void mi_thread_init(void) mi_attr_noexcept; +mi_decl_export void mi_thread_done(void) mi_attr_noexcept; +mi_decl_export void mi_thread_stats_print_out(mi_output_fun* out, void* arg) mi_attr_noexcept; + +mi_decl_export void mi_process_info(size_t* elapsed_msecs, size_t* user_msecs, size_t* system_msecs, + size_t* current_rss, size_t* peak_rss, + size_t* current_commit, size_t* peak_commit, size_t* page_faults) mi_attr_noexcept; + +// ------------------------------------------------------------------------------------- +// Aligned allocation +// Note that `alignment` always follows `size` for consistency with unaligned +// allocation, but unfortunately this differs from `posix_memalign` and `aligned_alloc`. +// ------------------------------------------------------------------------------------- + +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_malloc_aligned(size_t size, size_t alignment) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(1) mi_attr_alloc_align(2); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_malloc_aligned_at(size_t size, size_t alignment, size_t offset) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(1); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_zalloc_aligned(size_t size, size_t alignment) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(1) mi_attr_alloc_align(2); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_zalloc_aligned_at(size_t size, size_t alignment, size_t offset) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(1); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_calloc_aligned(size_t count, size_t size, size_t alignment) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size2(1,2) mi_attr_alloc_align(3); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_calloc_aligned_at(size_t count, size_t size, size_t alignment, size_t offset) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size2(1,2); +mi_decl_nodiscard mi_decl_export void* mi_realloc_aligned(void* p, size_t newsize, size_t alignment) mi_attr_noexcept mi_attr_alloc_size(2) mi_attr_alloc_align(3); +mi_decl_nodiscard mi_decl_export void* mi_realloc_aligned_at(void* p, size_t newsize, size_t alignment, size_t offset) mi_attr_noexcept mi_attr_alloc_size(2); + + +// ------------------------------------------------------------------------------------- +// Heaps: first-class, but can only allocate from the same thread that created it. +// ------------------------------------------------------------------------------------- + +struct mi_heap_s; +typedef struct mi_heap_s mi_heap_t; + +mi_decl_nodiscard mi_decl_export mi_heap_t* mi_heap_new(void); +mi_decl_export void mi_heap_delete(mi_heap_t* heap); +mi_decl_export void mi_heap_destroy(mi_heap_t* heap); +mi_decl_export mi_heap_t* mi_heap_set_default(mi_heap_t* heap); +mi_decl_export mi_heap_t* mi_heap_get_default(void); +mi_decl_export mi_heap_t* mi_heap_get_backing(void); +mi_decl_export void mi_heap_collect(mi_heap_t* heap, bool force) mi_attr_noexcept; + +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_heap_malloc(mi_heap_t* heap, size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(2); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_heap_zalloc(mi_heap_t* heap, size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(2); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_heap_calloc(mi_heap_t* heap, size_t count, size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size2(2, 3); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_heap_mallocn(mi_heap_t* heap, size_t count, size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size2(2, 3); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_heap_malloc_small(mi_heap_t* heap, size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(2); + +mi_decl_nodiscard mi_decl_export void* mi_heap_realloc(mi_heap_t* heap, void* p, size_t newsize) mi_attr_noexcept mi_attr_alloc_size(3); +mi_decl_nodiscard mi_decl_export void* mi_heap_reallocn(mi_heap_t* heap, void* p, size_t count, size_t size) mi_attr_noexcept mi_attr_alloc_size2(3,4); +mi_decl_nodiscard mi_decl_export void* mi_heap_reallocf(mi_heap_t* heap, void* p, size_t newsize) mi_attr_noexcept mi_attr_alloc_size(3); + +mi_decl_nodiscard mi_decl_export mi_decl_restrict char* mi_heap_strdup(mi_heap_t* heap, const char* s) mi_attr_noexcept mi_attr_malloc; +mi_decl_nodiscard mi_decl_export mi_decl_restrict char* mi_heap_strndup(mi_heap_t* heap, const char* s, size_t n) mi_attr_noexcept mi_attr_malloc; +mi_decl_nodiscard mi_decl_export mi_decl_restrict char* mi_heap_realpath(mi_heap_t* heap, const char* fname, char* resolved_name) mi_attr_noexcept mi_attr_malloc; + +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_heap_malloc_aligned(mi_heap_t* heap, size_t size, size_t alignment) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(2) mi_attr_alloc_align(3); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_heap_malloc_aligned_at(mi_heap_t* heap, size_t size, size_t alignment, size_t offset) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(2); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_heap_zalloc_aligned(mi_heap_t* heap, size_t size, size_t alignment) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(2) mi_attr_alloc_align(3); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_heap_zalloc_aligned_at(mi_heap_t* heap, size_t size, size_t alignment, size_t offset) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(2); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_heap_calloc_aligned(mi_heap_t* heap, size_t count, size_t size, size_t alignment) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size2(2, 3) mi_attr_alloc_align(4); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_heap_calloc_aligned_at(mi_heap_t* heap, size_t count, size_t size, size_t alignment, size_t offset) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size2(2, 3); +mi_decl_nodiscard mi_decl_export void* mi_heap_realloc_aligned(mi_heap_t* heap, void* p, size_t newsize, size_t alignment) mi_attr_noexcept mi_attr_alloc_size(3) mi_attr_alloc_align(4); +mi_decl_nodiscard mi_decl_export void* mi_heap_realloc_aligned_at(mi_heap_t* heap, void* p, size_t newsize, size_t alignment, size_t offset) mi_attr_noexcept mi_attr_alloc_size(3); + + +// -------------------------------------------------------------------------------- +// Zero initialized re-allocation. +// Only valid on memory that was originally allocated with zero initialization too. +// e.g. `mi_calloc`, `mi_zalloc`, `mi_zalloc_aligned` etc. +// see +// -------------------------------------------------------------------------------- + +mi_decl_nodiscard mi_decl_export void* mi_rezalloc(void* p, size_t newsize) mi_attr_noexcept mi_attr_alloc_size(2); +mi_decl_nodiscard mi_decl_export void* mi_recalloc(void* p, size_t newcount, size_t size) mi_attr_noexcept mi_attr_alloc_size2(2,3); + +mi_decl_nodiscard mi_decl_export void* mi_rezalloc_aligned(void* p, size_t newsize, size_t alignment) mi_attr_noexcept mi_attr_alloc_size(2) mi_attr_alloc_align(3); +mi_decl_nodiscard mi_decl_export void* mi_rezalloc_aligned_at(void* p, size_t newsize, size_t alignment, size_t offset) mi_attr_noexcept mi_attr_alloc_size(2); +mi_decl_nodiscard mi_decl_export void* mi_recalloc_aligned(void* p, size_t newcount, size_t size, size_t alignment) mi_attr_noexcept mi_attr_alloc_size2(2,3) mi_attr_alloc_align(4); +mi_decl_nodiscard mi_decl_export void* mi_recalloc_aligned_at(void* p, size_t newcount, size_t size, size_t alignment, size_t offset) mi_attr_noexcept mi_attr_alloc_size2(2,3); + +mi_decl_nodiscard mi_decl_export void* mi_heap_rezalloc(mi_heap_t* heap, void* p, size_t newsize) mi_attr_noexcept mi_attr_alloc_size(3); +mi_decl_nodiscard mi_decl_export void* mi_heap_recalloc(mi_heap_t* heap, void* p, size_t newcount, size_t size) mi_attr_noexcept mi_attr_alloc_size2(3,4); + +mi_decl_nodiscard mi_decl_export void* mi_heap_rezalloc_aligned(mi_heap_t* heap, void* p, size_t newsize, size_t alignment) mi_attr_noexcept mi_attr_alloc_size(3) mi_attr_alloc_align(4); +mi_decl_nodiscard mi_decl_export void* mi_heap_rezalloc_aligned_at(mi_heap_t* heap, void* p, size_t newsize, size_t alignment, size_t offset) mi_attr_noexcept mi_attr_alloc_size(3); +mi_decl_nodiscard mi_decl_export void* mi_heap_recalloc_aligned(mi_heap_t* heap, void* p, size_t newcount, size_t size, size_t alignment) mi_attr_noexcept mi_attr_alloc_size2(3,4) mi_attr_alloc_align(5); +mi_decl_nodiscard mi_decl_export void* mi_heap_recalloc_aligned_at(mi_heap_t* heap, void* p, size_t newcount, size_t size, size_t alignment, size_t offset) mi_attr_noexcept mi_attr_alloc_size2(3,4); + + +// ------------------------------------------------------ +// Analysis +// ------------------------------------------------------ + +mi_decl_export bool mi_heap_contains_block(mi_heap_t* heap, const void* p); +mi_decl_export bool mi_heap_check_owned(mi_heap_t* heap, const void* p); +mi_decl_export bool mi_check_owned(const void* p); + +// An area of heap space contains blocks of a single size. +typedef struct mi_heap_area_s { + void* blocks; // start of the area containing heap blocks + size_t reserved; // bytes reserved for this area (virtual) + size_t committed; // current available bytes for this area + size_t used; // number of allocated blocks + size_t block_size; // size in bytes of each block + size_t full_block_size; // size in bytes of a full block including padding and metadata. +} mi_heap_area_t; + +typedef bool (mi_cdecl mi_block_visit_fun)(const mi_heap_t* heap, const mi_heap_area_t* area, void* block, size_t block_size, void* arg); + +mi_decl_export bool mi_heap_visit_blocks(const mi_heap_t* heap, bool visit_all_blocks, mi_block_visit_fun* visitor, void* arg); + +// Experimental +mi_decl_nodiscard mi_decl_export bool mi_is_in_heap_region(const void* p) mi_attr_noexcept; +mi_decl_nodiscard mi_decl_export bool mi_is_redirected(void) mi_attr_noexcept; + +mi_decl_export int mi_reserve_huge_os_pages_interleave(size_t pages, size_t numa_nodes, size_t timeout_msecs) mi_attr_noexcept; +mi_decl_export int mi_reserve_huge_os_pages_at(size_t pages, int numa_node, size_t timeout_msecs) mi_attr_noexcept; + +mi_decl_export int mi_reserve_os_memory(size_t size, bool commit, bool allow_large) mi_attr_noexcept; +mi_decl_export bool mi_manage_os_memory(void* start, size_t size, bool is_committed, bool is_large, bool is_zero, int numa_node) mi_attr_noexcept; + +mi_decl_export void mi_debug_show_arenas(void) mi_attr_noexcept; + +// Experimental: heaps associated with specific memory arena's +typedef int mi_arena_id_t; +mi_decl_export void* mi_arena_area(mi_arena_id_t arena_id, size_t* size); +mi_decl_export int mi_reserve_huge_os_pages_at_ex(size_t pages, int numa_node, size_t timeout_msecs, bool exclusive, mi_arena_id_t* arena_id) mi_attr_noexcept; +mi_decl_export int mi_reserve_os_memory_ex(size_t size, bool commit, bool allow_large, bool exclusive, mi_arena_id_t* arena_id) mi_attr_noexcept; +mi_decl_export bool mi_manage_os_memory_ex(void* start, size_t size, bool is_committed, bool is_large, bool is_zero, int numa_node, bool exclusive, mi_arena_id_t* arena_id) mi_attr_noexcept; + +#if MI_MALLOC_VERSION >= 182 +// Create a heap that only allocates in the specified arena +mi_decl_nodiscard mi_decl_export mi_heap_t* mi_heap_new_in_arena(mi_arena_id_t arena_id); +#endif + +// deprecated +mi_decl_export int mi_reserve_huge_os_pages(size_t pages, double max_secs, size_t* pages_reserved) mi_attr_noexcept; + + +// ------------------------------------------------------ +// Convenience +// ------------------------------------------------------ + +#define mi_malloc_tp(tp) ((tp*)mi_malloc(sizeof(tp))) +#define mi_zalloc_tp(tp) ((tp*)mi_zalloc(sizeof(tp))) +#define mi_calloc_tp(tp,n) ((tp*)mi_calloc(n,sizeof(tp))) +#define mi_mallocn_tp(tp,n) ((tp*)mi_mallocn(n,sizeof(tp))) +#define mi_reallocn_tp(p,tp,n) ((tp*)mi_reallocn(p,n,sizeof(tp))) +#define mi_recalloc_tp(p,tp,n) ((tp*)mi_recalloc(p,n,sizeof(tp))) + +#define mi_heap_malloc_tp(hp,tp) ((tp*)mi_heap_malloc(hp,sizeof(tp))) +#define mi_heap_zalloc_tp(hp,tp) ((tp*)mi_heap_zalloc(hp,sizeof(tp))) +#define mi_heap_calloc_tp(hp,tp,n) ((tp*)mi_heap_calloc(hp,n,sizeof(tp))) +#define mi_heap_mallocn_tp(hp,tp,n) ((tp*)mi_heap_mallocn(hp,n,sizeof(tp))) +#define mi_heap_reallocn_tp(hp,p,tp,n) ((tp*)mi_heap_reallocn(hp,p,n,sizeof(tp))) +#define mi_heap_recalloc_tp(hp,p,tp,n) ((tp*)mi_heap_recalloc(hp,p,n,sizeof(tp))) + + +// ------------------------------------------------------ +// Options +// ------------------------------------------------------ + +typedef enum mi_option_e { + // stable options + mi_option_show_errors, // print error messages + mi_option_show_stats, // print statistics on termination + mi_option_verbose, // print verbose messages + // the following options are experimental (see src/options.h) + mi_option_eager_commit, // eager commit segments? (after `eager_commit_delay` segments) (=1) + mi_option_arena_eager_commit, // eager commit arenas? Use 2 to enable just on overcommit systems (=2) + mi_option_purge_decommits, // should a memory purge decommit (or only reset) (=1) + mi_option_allow_large_os_pages, // allow large (2MiB) OS pages, implies eager commit + mi_option_reserve_huge_os_pages, // reserve N huge OS pages (1GiB/page) at startup + mi_option_reserve_huge_os_pages_at, // reserve huge OS pages at a specific NUMA node + mi_option_reserve_os_memory, // reserve specified amount of OS memory in an arena at startup + mi_option_deprecated_segment_cache, + mi_option_deprecated_page_reset, + mi_option_abandoned_page_purge, // immediately purge delayed purges on thread termination + mi_option_deprecated_segment_reset, + mi_option_eager_commit_delay, + mi_option_purge_delay, // memory purging is delayed by N milli seconds; use 0 for immediate purging or -1 for no purging at all. + mi_option_use_numa_nodes, // 0 = use all available numa nodes, otherwise use at most N nodes. + mi_option_limit_os_alloc, // 1 = do not use OS memory for allocation (but only programmatically reserved arenas) + mi_option_os_tag, // tag used for OS logging (macOS only for now) + mi_option_max_errors, // issue at most N error messages + mi_option_max_warnings, // issue at most N warning messages + mi_option_max_segment_reclaim, + mi_option_destroy_on_exit, // if set, release all memory on exit; sometimes used for dynamic unloading but can be unsafe. + mi_option_arena_reserve, // initial memory size in KiB for arena reservation (1GiB on 64-bit) + mi_option_arena_purge_mult, + mi_option_purge_extend_delay, + _mi_option_last, + // legacy option names + mi_option_large_os_pages = mi_option_allow_large_os_pages, + mi_option_eager_region_commit = mi_option_arena_eager_commit, + mi_option_reset_decommits = mi_option_purge_decommits, + mi_option_reset_delay = mi_option_purge_delay, + mi_option_abandoned_page_reset = mi_option_abandoned_page_purge +} mi_option_t; + + +mi_decl_nodiscard mi_decl_export bool mi_option_is_enabled(mi_option_t option); +mi_decl_export void mi_option_enable(mi_option_t option); +mi_decl_export void mi_option_disable(mi_option_t option); +mi_decl_export void mi_option_set_enabled(mi_option_t option, bool enable); +mi_decl_export void mi_option_set_enabled_default(mi_option_t option, bool enable); + +mi_decl_nodiscard mi_decl_export long mi_option_get(mi_option_t option); +mi_decl_nodiscard mi_decl_export long mi_option_get_clamp(mi_option_t option, long min, long max); +mi_decl_nodiscard mi_decl_export size_t mi_option_get_size(mi_option_t option); +mi_decl_export void mi_option_set(mi_option_t option, long value); +mi_decl_export void mi_option_set_default(mi_option_t option, long value); + + +// ------------------------------------------------------------------------------------------------------- +// "mi" prefixed implementations of various posix, Unix, Windows, and C++ allocation functions. +// (This can be convenient when providing overrides of these functions as done in `mimalloc-override.h`.) +// note: we use `mi_cfree` as "checked free" and it checks if the pointer is in our heap before free-ing. +// ------------------------------------------------------------------------------------------------------- + +mi_decl_export void mi_cfree(void* p) mi_attr_noexcept; +mi_decl_export void* mi__expand(void* p, size_t newsize) mi_attr_noexcept; +mi_decl_nodiscard mi_decl_export size_t mi_malloc_size(const void* p) mi_attr_noexcept; +mi_decl_nodiscard mi_decl_export size_t mi_malloc_good_size(size_t size) mi_attr_noexcept; +mi_decl_nodiscard mi_decl_export size_t mi_malloc_usable_size(const void *p) mi_attr_noexcept; + +mi_decl_export int mi_posix_memalign(void** p, size_t alignment, size_t size) mi_attr_noexcept; +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_memalign(size_t alignment, size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(2) mi_attr_alloc_align(1); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_valloc(size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(1); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_pvalloc(size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(1); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_aligned_alloc(size_t alignment, size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(2) mi_attr_alloc_align(1); + +mi_decl_nodiscard mi_decl_export void* mi_reallocarray(void* p, size_t count, size_t size) mi_attr_noexcept mi_attr_alloc_size2(2,3); +mi_decl_nodiscard mi_decl_export int mi_reallocarr(void* p, size_t count, size_t size) mi_attr_noexcept; +mi_decl_nodiscard mi_decl_export void* mi_aligned_recalloc(void* p, size_t newcount, size_t size, size_t alignment) mi_attr_noexcept; +mi_decl_nodiscard mi_decl_export void* mi_aligned_offset_recalloc(void* p, size_t newcount, size_t size, size_t alignment, size_t offset) mi_attr_noexcept; + +mi_decl_nodiscard mi_decl_export mi_decl_restrict unsigned short* mi_wcsdup(const unsigned short* s) mi_attr_noexcept mi_attr_malloc; +mi_decl_nodiscard mi_decl_export mi_decl_restrict unsigned char* mi_mbsdup(const unsigned char* s) mi_attr_noexcept mi_attr_malloc; +mi_decl_export int mi_dupenv_s(char** buf, size_t* size, const char* name) mi_attr_noexcept; +mi_decl_export int mi_wdupenv_s(unsigned short** buf, size_t* size, const unsigned short* name) mi_attr_noexcept; + +mi_decl_export void mi_free_size(void* p, size_t size) mi_attr_noexcept; +mi_decl_export void mi_free_size_aligned(void* p, size_t size, size_t alignment) mi_attr_noexcept; +mi_decl_export void mi_free_aligned(void* p, size_t alignment) mi_attr_noexcept; + +// The `mi_new` wrappers implement C++ semantics on out-of-memory instead of directly returning `NULL`. +// (and call `std::get_new_handler` and potentially raise a `std::bad_alloc` exception). +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_new(size_t size) mi_attr_malloc mi_attr_alloc_size(1); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_new_aligned(size_t size, size_t alignment) mi_attr_malloc mi_attr_alloc_size(1) mi_attr_alloc_align(2); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_new_nothrow(size_t size) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(1); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_new_aligned_nothrow(size_t size, size_t alignment) mi_attr_noexcept mi_attr_malloc mi_attr_alloc_size(1) mi_attr_alloc_align(2); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_new_n(size_t count, size_t size) mi_attr_malloc mi_attr_alloc_size2(1, 2); +mi_decl_nodiscard mi_decl_export void* mi_new_realloc(void* p, size_t newsize) mi_attr_alloc_size(2); +mi_decl_nodiscard mi_decl_export void* mi_new_reallocn(void* p, size_t newcount, size_t size) mi_attr_alloc_size2(2, 3); + +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_heap_alloc_new(mi_heap_t* heap, size_t size) mi_attr_malloc mi_attr_alloc_size(2); +mi_decl_nodiscard mi_decl_export mi_decl_restrict void* mi_heap_alloc_new_n(mi_heap_t* heap, size_t count, size_t size) mi_attr_malloc mi_attr_alloc_size2(2, 3); + +#ifdef __cplusplus +} +#endif + +// --------------------------------------------------------------------------------------------- +// Implement the C++ std::allocator interface for use in STL containers. +// (note: see `mimalloc-new-delete.h` for overriding the new/delete operators globally) +// --------------------------------------------------------------------------------------------- +#ifdef __cplusplus + +#include // std::size_t +#include // PTRDIFF_MAX +#if (__cplusplus >= 201103L) || (_MSC_VER > 1900) // C++11 +#include // std::true_type +#include // std::forward +#endif + +template struct _mi_stl_allocator_common { + typedef T value_type; + typedef std::size_t size_type; + typedef std::ptrdiff_t difference_type; + typedef value_type& reference; + typedef value_type const& const_reference; + typedef value_type* pointer; + typedef value_type const* const_pointer; + + #if ((__cplusplus >= 201103L) || (_MSC_VER > 1900)) // C++11 + using propagate_on_container_copy_assignment = std::true_type; + using propagate_on_container_move_assignment = std::true_type; + using propagate_on_container_swap = std::true_type; + template void construct(U* p, Args&& ...args) { ::new(p) U(std::forward(args)...); } + template void destroy(U* p) mi_attr_noexcept { p->~U(); } + #else + void construct(pointer p, value_type const& val) { ::new(p) value_type(val); } + void destroy(pointer p) { p->~value_type(); } + #endif + + size_type max_size() const mi_attr_noexcept { return (PTRDIFF_MAX/sizeof(value_type)); } + pointer address(reference x) const { return &x; } + const_pointer address(const_reference x) const { return &x; } +}; + +template struct mi_stl_allocator : public _mi_stl_allocator_common { + using typename _mi_stl_allocator_common::size_type; + using typename _mi_stl_allocator_common::value_type; + using typename _mi_stl_allocator_common::pointer; + template struct rebind { typedef mi_stl_allocator other; }; + + mi_stl_allocator() mi_attr_noexcept = default; + mi_stl_allocator(const mi_stl_allocator&) mi_attr_noexcept = default; + template mi_stl_allocator(const mi_stl_allocator&) mi_attr_noexcept { } + mi_stl_allocator select_on_container_copy_construction() const { return *this; } + void deallocate(T* p, size_type) { mi_free(p); } + + #if (__cplusplus >= 201703L) // C++17 + mi_decl_nodiscard T* allocate(size_type count) { return static_cast(mi_new_n(count, sizeof(T))); } + mi_decl_nodiscard T* allocate(size_type count, const void*) { return allocate(count); } + #else + mi_decl_nodiscard pointer allocate(size_type count, const void* = 0) { return static_cast(mi_new_n(count, sizeof(value_type))); } + #endif + + #if ((__cplusplus >= 201103L) || (_MSC_VER > 1900)) // C++11 + using is_always_equal = std::true_type; + #endif +}; + +template bool operator==(const mi_stl_allocator& , const mi_stl_allocator& ) mi_attr_noexcept { return true; } +template bool operator!=(const mi_stl_allocator& , const mi_stl_allocator& ) mi_attr_noexcept { return false; } + + +#if (__cplusplus >= 201103L) || (_MSC_VER >= 1900) // C++11 +#define MI_HAS_HEAP_STL_ALLOCATOR 1 + +#include // std::shared_ptr + +// Common base class for STL allocators in a specific heap +template struct _mi_heap_stl_allocator_common : public _mi_stl_allocator_common { + using typename _mi_stl_allocator_common::size_type; + using typename _mi_stl_allocator_common::value_type; + using typename _mi_stl_allocator_common::pointer; + + _mi_heap_stl_allocator_common(mi_heap_t* hp) : heap(hp) { } /* will not delete nor destroy the passed in heap */ + + #if (__cplusplus >= 201703L) // C++17 + mi_decl_nodiscard T* allocate(size_type count) { return static_cast(mi_heap_alloc_new_n(this->heap.get(), count, sizeof(T))); } + mi_decl_nodiscard T* allocate(size_type count, const void*) { return allocate(count); } + #else + mi_decl_nodiscard pointer allocate(size_type count, const void* = 0) { return static_cast(mi_heap_alloc_new_n(this->heap.get(), count, sizeof(value_type))); } + #endif + + #if ((__cplusplus >= 201103L) || (_MSC_VER > 1900)) // C++11 + using is_always_equal = std::false_type; + #endif + + void collect(bool force) { mi_heap_collect(this->heap.get(), force); } + template bool is_equal(const _mi_heap_stl_allocator_common& x) const { return (this->heap == x.heap); } + +protected: + std::shared_ptr heap; + template friend struct _mi_heap_stl_allocator_common; + + _mi_heap_stl_allocator_common() { + mi_heap_t* hp = mi_heap_new(); + this->heap.reset(hp, (_mi_destroy ? &heap_destroy : &heap_delete)); /* calls heap_delete/destroy when the refcount drops to zero */ + } + _mi_heap_stl_allocator_common(const _mi_heap_stl_allocator_common& x) mi_attr_noexcept : heap(x.heap) { } + template _mi_heap_stl_allocator_common(const _mi_heap_stl_allocator_common& x) mi_attr_noexcept : heap(x.heap) { } + +private: + static void heap_delete(mi_heap_t* hp) { if (hp != NULL) { mi_heap_delete(hp); } } + static void heap_destroy(mi_heap_t* hp) { if (hp != NULL) { mi_heap_destroy(hp); } } +}; + +// STL allocator allocation in a specific heap +template struct mi_heap_stl_allocator : public _mi_heap_stl_allocator_common { + using typename _mi_heap_stl_allocator_common::size_type; + mi_heap_stl_allocator() : _mi_heap_stl_allocator_common() { } // creates fresh heap that is deleted when the destructor is called + mi_heap_stl_allocator(mi_heap_t* hp) : _mi_heap_stl_allocator_common(hp) { } // no delete nor destroy on the passed in heap + template mi_heap_stl_allocator(const mi_heap_stl_allocator& x) mi_attr_noexcept : _mi_heap_stl_allocator_common(x) { } + + mi_heap_stl_allocator select_on_container_copy_construction() const { return *this; } + void deallocate(T* p, size_type) { mi_free(p); } + template struct rebind { typedef mi_heap_stl_allocator other; }; +}; + +template bool operator==(const mi_heap_stl_allocator& x, const mi_heap_stl_allocator& y) mi_attr_noexcept { return (x.is_equal(y)); } +template bool operator!=(const mi_heap_stl_allocator& x, const mi_heap_stl_allocator& y) mi_attr_noexcept { return (!x.is_equal(y)); } + + +// STL allocator allocation in a specific heap, where `free` does nothing and +// the heap is destroyed in one go on destruction -- use with care! +template struct mi_heap_destroy_stl_allocator : public _mi_heap_stl_allocator_common { + using typename _mi_heap_stl_allocator_common::size_type; + mi_heap_destroy_stl_allocator() : _mi_heap_stl_allocator_common() { } // creates fresh heap that is destroyed when the destructor is called + mi_heap_destroy_stl_allocator(mi_heap_t* hp) : _mi_heap_stl_allocator_common(hp) { } // no delete nor destroy on the passed in heap + template mi_heap_destroy_stl_allocator(const mi_heap_destroy_stl_allocator& x) mi_attr_noexcept : _mi_heap_stl_allocator_common(x) { } + + mi_heap_destroy_stl_allocator select_on_container_copy_construction() const { return *this; } + void deallocate(T*, size_type) { /* do nothing as we destroy the heap on destruct. */ } + template struct rebind { typedef mi_heap_destroy_stl_allocator other; }; +}; + +template bool operator==(const mi_heap_destroy_stl_allocator& x, const mi_heap_destroy_stl_allocator& y) mi_attr_noexcept { return (x.is_equal(y)); } +template bool operator!=(const mi_heap_destroy_stl_allocator& x, const mi_heap_destroy_stl_allocator& y) mi_attr_noexcept { return (!x.is_equal(y)); } + +#endif // C++11 + +#endif // __cplusplus + +#endif diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/mimalloc/mimalloc/atomic.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/mimalloc/mimalloc/atomic.h new file mode 100644 index 000000000..1093c5408 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/mimalloc/mimalloc/atomic.h @@ -0,0 +1,389 @@ +/* ---------------------------------------------------------------------------- +Copyright (c) 2018-2023 Microsoft Research, Daan Leijen +This is free software; you can redistribute it and/or modify it under the +terms of the MIT license. A copy of the license can be found in the file +"LICENSE" at the root of this distribution. +-----------------------------------------------------------------------------*/ +#pragma once +#ifndef MIMALLOC_ATOMIC_H +#define MIMALLOC_ATOMIC_H + +// -------------------------------------------------------------------------------------------- +// Atomics +// We need to be portable between C, C++, and MSVC. +// We base the primitives on the C/C++ atomics and create a mimimal wrapper for MSVC in C compilation mode. +// This is why we try to use only `uintptr_t` and `*` as atomic types. +// To gain better insight in the range of used atomics, we use explicitly named memory order operations +// instead of passing the memory order as a parameter. +// ----------------------------------------------------------------------------------------------- + +#if defined(__cplusplus) +// Use C++ atomics +#include +#define _Atomic(tp) std::atomic +#define mi_atomic(name) std::atomic_##name +#define mi_memory_order(name) std::memory_order_##name +#if (__cplusplus >= 202002L) // c++20, see issue #571 + #define MI_ATOMIC_VAR_INIT(x) x +#elif !defined(ATOMIC_VAR_INIT) + #define MI_ATOMIC_VAR_INIT(x) x +#else + #define MI_ATOMIC_VAR_INIT(x) ATOMIC_VAR_INIT(x) +#endif +#elif defined(_MSC_VER) +// Use MSVC C wrapper for C11 atomics +#define _Atomic(tp) tp +#define MI_ATOMIC_VAR_INIT(x) x +#define mi_atomic(name) mi_atomic_##name +#define mi_memory_order(name) mi_memory_order_##name +#else +// Use C11 atomics +#include +#define mi_atomic(name) atomic_##name +#define mi_memory_order(name) memory_order_##name +#if (__STDC_VERSION__ >= 201710L) // c17, see issue #735 + #define MI_ATOMIC_VAR_INIT(x) x +#elif !defined(ATOMIC_VAR_INIT) + #define MI_ATOMIC_VAR_INIT(x) x +#else + #define MI_ATOMIC_VAR_INIT(x) ATOMIC_VAR_INIT(x) +#endif +#endif + +// Various defines for all used memory orders in mimalloc +#define mi_atomic_cas_weak(p,expected,desired,mem_success,mem_fail) \ + mi_atomic(compare_exchange_weak_explicit)(p,expected,desired,mem_success,mem_fail) + +#define mi_atomic_cas_strong(p,expected,desired,mem_success,mem_fail) \ + mi_atomic(compare_exchange_strong_explicit)(p,expected,desired,mem_success,mem_fail) + +#define mi_atomic_load_acquire(p) mi_atomic(load_explicit)(p,mi_memory_order(acquire)) +#define mi_atomic_load_relaxed(p) mi_atomic(load_explicit)(p,mi_memory_order(relaxed)) +#define mi_atomic_store_release(p,x) mi_atomic(store_explicit)(p,x,mi_memory_order(release)) +#define mi_atomic_store_relaxed(p,x) mi_atomic(store_explicit)(p,x,mi_memory_order(relaxed)) +#define mi_atomic_exchange_release(p,x) mi_atomic(exchange_explicit)(p,x,mi_memory_order(release)) +#define mi_atomic_exchange_acq_rel(p,x) mi_atomic(exchange_explicit)(p,x,mi_memory_order(acq_rel)) +#define mi_atomic_cas_weak_release(p,exp,des) mi_atomic_cas_weak(p,exp,des,mi_memory_order(release),mi_memory_order(relaxed)) +#define mi_atomic_cas_weak_acq_rel(p,exp,des) mi_atomic_cas_weak(p,exp,des,mi_memory_order(acq_rel),mi_memory_order(acquire)) +#define mi_atomic_cas_strong_release(p,exp,des) mi_atomic_cas_strong(p,exp,des,mi_memory_order(release),mi_memory_order(relaxed)) +#define mi_atomic_cas_strong_acq_rel(p,exp,des) mi_atomic_cas_strong(p,exp,des,mi_memory_order(acq_rel),mi_memory_order(acquire)) + +#define mi_atomic_add_relaxed(p,x) mi_atomic(fetch_add_explicit)(p,x,mi_memory_order(relaxed)) +#define mi_atomic_sub_relaxed(p,x) mi_atomic(fetch_sub_explicit)(p,x,mi_memory_order(relaxed)) +#define mi_atomic_add_acq_rel(p,x) mi_atomic(fetch_add_explicit)(p,x,mi_memory_order(acq_rel)) +#define mi_atomic_sub_acq_rel(p,x) mi_atomic(fetch_sub_explicit)(p,x,mi_memory_order(acq_rel)) +#define mi_atomic_and_acq_rel(p,x) mi_atomic(fetch_and_explicit)(p,x,mi_memory_order(acq_rel)) +#define mi_atomic_or_acq_rel(p,x) mi_atomic(fetch_or_explicit)(p,x,mi_memory_order(acq_rel)) + +#define mi_atomic_increment_relaxed(p) mi_atomic_add_relaxed(p,(uintptr_t)1) +#define mi_atomic_decrement_relaxed(p) mi_atomic_sub_relaxed(p,(uintptr_t)1) +#define mi_atomic_increment_acq_rel(p) mi_atomic_add_acq_rel(p,(uintptr_t)1) +#define mi_atomic_decrement_acq_rel(p) mi_atomic_sub_acq_rel(p,(uintptr_t)1) + +static inline void mi_atomic_yield(void); +static inline intptr_t mi_atomic_addi(_Atomic(intptr_t)*p, intptr_t add); +static inline intptr_t mi_atomic_subi(_Atomic(intptr_t)*p, intptr_t sub); + + +#if defined(__cplusplus) || !defined(_MSC_VER) + +// In C++/C11 atomics we have polymorphic atomics so can use the typed `ptr` variants (where `tp` is the type of atomic value) +// We use these macros so we can provide a typed wrapper in MSVC in C compilation mode as well +#define mi_atomic_load_ptr_acquire(tp,p) mi_atomic_load_acquire(p) +#define mi_atomic_load_ptr_relaxed(tp,p) mi_atomic_load_relaxed(p) + +// In C++ we need to add casts to help resolve templates if NULL is passed +#if defined(__cplusplus) +#define mi_atomic_store_ptr_release(tp,p,x) mi_atomic_store_release(p,(tp*)x) +#define mi_atomic_store_ptr_relaxed(tp,p,x) mi_atomic_store_relaxed(p,(tp*)x) +#define mi_atomic_cas_ptr_weak_release(tp,p,exp,des) mi_atomic_cas_weak_release(p,exp,(tp*)des) +#define mi_atomic_cas_ptr_weak_acq_rel(tp,p,exp,des) mi_atomic_cas_weak_acq_rel(p,exp,(tp*)des) +#define mi_atomic_cas_ptr_strong_release(tp,p,exp,des) mi_atomic_cas_strong_release(p,exp,(tp*)des) +#define mi_atomic_exchange_ptr_release(tp,p,x) mi_atomic_exchange_release(p,(tp*)x) +#define mi_atomic_exchange_ptr_acq_rel(tp,p,x) mi_atomic_exchange_acq_rel(p,(tp*)x) +#else +#define mi_atomic_store_ptr_release(tp,p,x) mi_atomic_store_release(p,x) +#define mi_atomic_store_ptr_relaxed(tp,p,x) mi_atomic_store_relaxed(p,x) +#define mi_atomic_cas_ptr_weak_release(tp,p,exp,des) mi_atomic_cas_weak_release(p,exp,des) +#define mi_atomic_cas_ptr_weak_acq_rel(tp,p,exp,des) mi_atomic_cas_weak_acq_rel(p,exp,des) +#define mi_atomic_cas_ptr_strong_release(tp,p,exp,des) mi_atomic_cas_strong_release(p,exp,des) +#define mi_atomic_exchange_ptr_release(tp,p,x) mi_atomic_exchange_release(p,x) +#define mi_atomic_exchange_ptr_acq_rel(tp,p,x) mi_atomic_exchange_acq_rel(p,x) +#endif + +// These are used by the statistics +static inline int64_t mi_atomic_addi64_relaxed(volatile int64_t* p, int64_t add) { + return mi_atomic(fetch_add_explicit)((_Atomic(int64_t)*)p, add, mi_memory_order(relaxed)); +} +static inline void mi_atomic_maxi64_relaxed(volatile int64_t* p, int64_t x) { + int64_t current = mi_atomic_load_relaxed((_Atomic(int64_t)*)p); + while (current < x && !mi_atomic_cas_weak_release((_Atomic(int64_t)*)p, ¤t, x)) { /* nothing */ }; +} + +// Used by timers +#define mi_atomic_loadi64_acquire(p) mi_atomic(load_explicit)(p,mi_memory_order(acquire)) +#define mi_atomic_loadi64_relaxed(p) mi_atomic(load_explicit)(p,mi_memory_order(relaxed)) +#define mi_atomic_storei64_release(p,x) mi_atomic(store_explicit)(p,x,mi_memory_order(release)) +#define mi_atomic_storei64_relaxed(p,x) mi_atomic(store_explicit)(p,x,mi_memory_order(relaxed)) + +#define mi_atomic_casi64_strong_acq_rel(p,e,d) mi_atomic_cas_strong_acq_rel(p,e,d) +#define mi_atomic_addi64_acq_rel(p,i) mi_atomic_add_acq_rel(p,i) + + +#elif defined(_MSC_VER) + +// MSVC C compilation wrapper that uses Interlocked operations to model C11 atomics. +#define WIN32_LEAN_AND_MEAN +#include +#include +#ifdef _WIN64 +typedef LONG64 msc_intptr_t; +#define MI_64(f) f##64 +#else +typedef LONG msc_intptr_t; +#define MI_64(f) f +#endif + +typedef enum mi_memory_order_e { + mi_memory_order_relaxed, + mi_memory_order_consume, + mi_memory_order_acquire, + mi_memory_order_release, + mi_memory_order_acq_rel, + mi_memory_order_seq_cst +} mi_memory_order; + +static inline uintptr_t mi_atomic_fetch_add_explicit(_Atomic(uintptr_t)*p, uintptr_t add, mi_memory_order mo) { + (void)(mo); + return (uintptr_t)MI_64(_InterlockedExchangeAdd)((volatile msc_intptr_t*)p, (msc_intptr_t)add); +} +static inline uintptr_t mi_atomic_fetch_sub_explicit(_Atomic(uintptr_t)*p, uintptr_t sub, mi_memory_order mo) { + (void)(mo); + return (uintptr_t)MI_64(_InterlockedExchangeAdd)((volatile msc_intptr_t*)p, -((msc_intptr_t)sub)); +} +static inline uintptr_t mi_atomic_fetch_and_explicit(_Atomic(uintptr_t)*p, uintptr_t x, mi_memory_order mo) { + (void)(mo); + return (uintptr_t)MI_64(_InterlockedAnd)((volatile msc_intptr_t*)p, (msc_intptr_t)x); +} +static inline uintptr_t mi_atomic_fetch_or_explicit(_Atomic(uintptr_t)*p, uintptr_t x, mi_memory_order mo) { + (void)(mo); + return (uintptr_t)MI_64(_InterlockedOr)((volatile msc_intptr_t*)p, (msc_intptr_t)x); +} +static inline bool mi_atomic_compare_exchange_strong_explicit(_Atomic(uintptr_t)*p, uintptr_t* expected, uintptr_t desired, mi_memory_order mo1, mi_memory_order mo2) { + (void)(mo1); (void)(mo2); + uintptr_t read = (uintptr_t)MI_64(_InterlockedCompareExchange)((volatile msc_intptr_t*)p, (msc_intptr_t)desired, (msc_intptr_t)(*expected)); + if (read == *expected) { + return true; + } + else { + *expected = read; + return false; + } +} +static inline bool mi_atomic_compare_exchange_weak_explicit(_Atomic(uintptr_t)*p, uintptr_t* expected, uintptr_t desired, mi_memory_order mo1, mi_memory_order mo2) { + return mi_atomic_compare_exchange_strong_explicit(p, expected, desired, mo1, mo2); +} +static inline uintptr_t mi_atomic_exchange_explicit(_Atomic(uintptr_t)*p, uintptr_t exchange, mi_memory_order mo) { + (void)(mo); + return (uintptr_t)MI_64(_InterlockedExchange)((volatile msc_intptr_t*)p, (msc_intptr_t)exchange); +} +static inline void mi_atomic_thread_fence(mi_memory_order mo) { + (void)(mo); + _Atomic(uintptr_t) x = 0; + mi_atomic_exchange_explicit(&x, 1, mo); +} +static inline uintptr_t mi_atomic_load_explicit(_Atomic(uintptr_t) const* p, mi_memory_order mo) { + (void)(mo); +#if defined(_M_IX86) || defined(_M_X64) + return *p; +#else + uintptr_t x = *p; + if (mo > mi_memory_order_relaxed) { + while (!mi_atomic_compare_exchange_weak_explicit((_Atomic(uintptr_t)*)p, &x, x, mo, mi_memory_order_relaxed)) { /* nothing */ }; + } + return x; +#endif +} +static inline void mi_atomic_store_explicit(_Atomic(uintptr_t)*p, uintptr_t x, mi_memory_order mo) { + (void)(mo); +#if defined(_M_IX86) || defined(_M_X64) + *p = x; +#else + mi_atomic_exchange_explicit(p, x, mo); +#endif +} +static inline int64_t mi_atomic_loadi64_explicit(_Atomic(int64_t)*p, mi_memory_order mo) { + (void)(mo); +#if defined(_M_X64) + return *p; +#else + int64_t old = *p; + int64_t x = old; + while ((old = InterlockedCompareExchange64(p, x, old)) != x) { + x = old; + } + return x; +#endif +} +static inline void mi_atomic_storei64_explicit(_Atomic(int64_t)*p, int64_t x, mi_memory_order mo) { + (void)(mo); +#if defined(x_M_IX86) || defined(_M_X64) + *p = x; +#else + InterlockedExchange64(p, x); +#endif +} + +// These are used by the statistics +static inline int64_t mi_atomic_addi64_relaxed(volatile _Atomic(int64_t)*p, int64_t add) { +#ifdef _WIN64 + return (int64_t)mi_atomic_addi((int64_t*)p, add); +#else + int64_t current; + int64_t sum; + do { + current = *p; + sum = current + add; + } while (_InterlockedCompareExchange64(p, sum, current) != current); + return current; +#endif +} +static inline void mi_atomic_maxi64_relaxed(volatile _Atomic(int64_t)*p, int64_t x) { + int64_t current; + do { + current = *p; + } while (current < x && _InterlockedCompareExchange64(p, x, current) != current); +} + +static inline void mi_atomic_addi64_acq_rel(volatile _Atomic(int64_t*)p, int64_t i) { + mi_atomic_addi64_relaxed(p, i); +} + +static inline bool mi_atomic_casi64_strong_acq_rel(volatile _Atomic(int64_t*)p, int64_t* exp, int64_t des) { + int64_t read = _InterlockedCompareExchange64(p, des, *exp); + if (read == *exp) { + return true; + } + else { + *exp = read; + return false; + } +} + +// The pointer macros cast to `uintptr_t`. +#define mi_atomic_load_ptr_acquire(tp,p) (tp*)mi_atomic_load_acquire((_Atomic(uintptr_t)*)(p)) +#define mi_atomic_load_ptr_relaxed(tp,p) (tp*)mi_atomic_load_relaxed((_Atomic(uintptr_t)*)(p)) +#define mi_atomic_store_ptr_release(tp,p,x) mi_atomic_store_release((_Atomic(uintptr_t)*)(p),(uintptr_t)(x)) +#define mi_atomic_store_ptr_relaxed(tp,p,x) mi_atomic_store_relaxed((_Atomic(uintptr_t)*)(p),(uintptr_t)(x)) +#define mi_atomic_cas_ptr_weak_release(tp,p,exp,des) mi_atomic_cas_weak_release((_Atomic(uintptr_t)*)(p),(uintptr_t*)exp,(uintptr_t)des) +#define mi_atomic_cas_ptr_weak_acq_rel(tp,p,exp,des) mi_atomic_cas_weak_acq_rel((_Atomic(uintptr_t)*)(p),(uintptr_t*)exp,(uintptr_t)des) +#define mi_atomic_cas_ptr_strong_release(tp,p,exp,des) mi_atomic_cas_strong_release((_Atomic(uintptr_t)*)(p),(uintptr_t*)exp,(uintptr_t)des) +#define mi_atomic_exchange_ptr_release(tp,p,x) (tp*)mi_atomic_exchange_release((_Atomic(uintptr_t)*)(p),(uintptr_t)x) +#define mi_atomic_exchange_ptr_acq_rel(tp,p,x) (tp*)mi_atomic_exchange_acq_rel((_Atomic(uintptr_t)*)(p),(uintptr_t)x) + +#define mi_atomic_loadi64_acquire(p) mi_atomic(loadi64_explicit)(p,mi_memory_order(acquire)) +#define mi_atomic_loadi64_relaxed(p) mi_atomic(loadi64_explicit)(p,mi_memory_order(relaxed)) +#define mi_atomic_storei64_release(p,x) mi_atomic(storei64_explicit)(p,x,mi_memory_order(release)) +#define mi_atomic_storei64_relaxed(p,x) mi_atomic(storei64_explicit)(p,x,mi_memory_order(relaxed)) + + +#endif + + +// Atomically add a signed value; returns the previous value. +static inline intptr_t mi_atomic_addi(_Atomic(intptr_t)*p, intptr_t add) { + return (intptr_t)mi_atomic_add_acq_rel((_Atomic(uintptr_t)*)p, (uintptr_t)add); +} + +// Atomically subtract a signed value; returns the previous value. +static inline intptr_t mi_atomic_subi(_Atomic(intptr_t)*p, intptr_t sub) { + return (intptr_t)mi_atomic_addi(p, -sub); +} + +typedef _Atomic(uintptr_t) mi_atomic_once_t; + +// Returns true only on the first invocation +static inline bool mi_atomic_once( mi_atomic_once_t* once ) { + if (mi_atomic_load_relaxed(once) != 0) return false; // quick test + uintptr_t expected = 0; + return mi_atomic_cas_strong_acq_rel(once, &expected, (uintptr_t)1); // try to set to 1 +} + +typedef _Atomic(uintptr_t) mi_atomic_guard_t; + +// Allows only one thread to execute at a time +#define mi_atomic_guard(guard) \ + uintptr_t _mi_guard_expected = 0; \ + for(bool _mi_guard_once = true; \ + _mi_guard_once && mi_atomic_cas_strong_acq_rel(guard,&_mi_guard_expected,(uintptr_t)1); \ + (mi_atomic_store_release(guard,(uintptr_t)0), _mi_guard_once = false) ) + + + +// Yield +#if defined(__cplusplus) +#include +static inline void mi_atomic_yield(void) { + std::this_thread::yield(); +} +#elif defined(_WIN32) +#define WIN32_LEAN_AND_MEAN +#include +static inline void mi_atomic_yield(void) { + YieldProcessor(); +} +#elif defined(__SSE2__) +#include +static inline void mi_atomic_yield(void) { + _mm_pause(); +} +#elif (defined(__GNUC__) || defined(__clang__)) && \ + (defined(__x86_64__) || defined(__i386__) || defined(__arm__) || defined(__armel__) || defined(__ARMEL__) || \ + defined(__aarch64__) || defined(__powerpc__) || defined(__ppc__) || defined(__PPC__)) || defined(__POWERPC__) +#if defined(__x86_64__) || defined(__i386__) +static inline void mi_atomic_yield(void) { + __asm__ volatile ("pause" ::: "memory"); +} +#elif defined(__aarch64__) +static inline void mi_atomic_yield(void) { + __asm__ volatile("wfe"); +} +#elif (defined(__arm__) && __ARM_ARCH__ >= 7) +static inline void mi_atomic_yield(void) { + __asm__ volatile("yield" ::: "memory"); +} +#elif defined(__powerpc__) || defined(__ppc__) || defined(__PPC__) || defined(__POWERPC__) +#ifdef __APPLE__ +static inline void mi_atomic_yield(void) { + __asm__ volatile ("or r27,r27,r27" ::: "memory"); +} +#else +static inline void mi_atomic_yield(void) { + __asm__ __volatile__ ("or 27,27,27" ::: "memory"); +} +#endif +#elif defined(__armel__) || defined(__ARMEL__) +static inline void mi_atomic_yield(void) { + __asm__ volatile ("nop" ::: "memory"); +} +#endif +#elif defined(__sun) +// Fallback for other archs +#include +static inline void mi_atomic_yield(void) { + smt_pause(); +} +#elif defined(__wasi__) +#include +static inline void mi_atomic_yield(void) { + sched_yield(); +} +#else +#include +static inline void mi_atomic_yield(void) { + sleep(0); +} +#endif + + +#endif // __MIMALLOC_ATOMIC_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/mimalloc/mimalloc/internal.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/mimalloc/mimalloc/internal.h new file mode 100644 index 000000000..94f88fb60 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/mimalloc/mimalloc/internal.h @@ -0,0 +1,969 @@ +/* ---------------------------------------------------------------------------- +Copyright (c) 2018-2023, Microsoft Research, Daan Leijen +This is free software; you can redistribute it and/or modify it under the +terms of the MIT license. A copy of the license can be found in the file +"LICENSE" at the root of this distribution. +-----------------------------------------------------------------------------*/ +#pragma once +#ifndef MIMALLOC_INTERNAL_H +#define MIMALLOC_INTERNAL_H + + +// -------------------------------------------------------------------------- +// This file contains the interal API's of mimalloc and various utility +// functions and macros. +// -------------------------------------------------------------------------- + +#include "types.h" +#include "track.h" + +#if (MI_DEBUG>0) +#define mi_trace_message(...) _mi_trace_message(__VA_ARGS__) +#else +#define mi_trace_message(...) +#endif + +#if defined(__EMSCRIPTEN__) && !defined(__wasi__) +#define __wasi__ +#endif + +#if defined(__cplusplus) +#define mi_decl_externc extern "C" +#else +#define mi_decl_externc +#endif + +// pthreads +#if !defined(_WIN32) && !defined(__wasi__) +#define MI_USE_PTHREADS +#include +#endif + +// "options.c" +void _mi_fputs(mi_output_fun* out, void* arg, const char* prefix, const char* message); +void _mi_fprintf(mi_output_fun* out, void* arg, const char* fmt, ...); +void _mi_warning_message(const char* fmt, ...); +void _mi_verbose_message(const char* fmt, ...); +void _mi_trace_message(const char* fmt, ...); +void _mi_options_init(void); +void _mi_error_message(int err, const char* fmt, ...); + +// random.c +void _mi_random_init(mi_random_ctx_t* ctx); +void _mi_random_init_weak(mi_random_ctx_t* ctx); +void _mi_random_reinit_if_weak(mi_random_ctx_t * ctx); +void _mi_random_split(mi_random_ctx_t* ctx, mi_random_ctx_t* new_ctx); +uintptr_t _mi_random_next(mi_random_ctx_t* ctx); +uintptr_t _mi_heap_random_next(mi_heap_t* heap); +uintptr_t _mi_os_random_weak(uintptr_t extra_seed); +static inline uintptr_t _mi_random_shuffle(uintptr_t x); + +// init.c +extern mi_decl_cache_align mi_stats_t _mi_stats_main; +extern mi_decl_cache_align const mi_page_t _mi_page_empty; +bool _mi_is_main_thread(void); +size_t _mi_current_thread_count(void); +bool _mi_preloading(void); // true while the C runtime is not initialized yet +mi_threadid_t _mi_thread_id(void) mi_attr_noexcept; +mi_heap_t* _mi_heap_main_get(void); // statically allocated main backing heap +void _mi_thread_done(mi_heap_t* heap); +void _mi_thread_data_collect(void); +void _mi_tld_init(mi_tld_t* tld, mi_heap_t* bheap); + +// os.c +void _mi_os_init(void); // called from process init +void* _mi_os_alloc(size_t size, mi_memid_t* memid, mi_stats_t* stats); +void _mi_os_free(void* p, size_t size, mi_memid_t memid, mi_stats_t* stats); +void _mi_os_free_ex(void* p, size_t size, bool still_committed, mi_memid_t memid, mi_stats_t* stats); + +size_t _mi_os_page_size(void); +size_t _mi_os_good_alloc_size(size_t size); +bool _mi_os_has_overcommit(void); +bool _mi_os_has_virtual_reserve(void); + +bool _mi_os_purge(void* p, size_t size, mi_stats_t* stats); +bool _mi_os_reset(void* addr, size_t size, mi_stats_t* tld_stats); +bool _mi_os_commit(void* p, size_t size, bool* is_zero, mi_stats_t* stats); +bool _mi_os_decommit(void* addr, size_t size, mi_stats_t* stats); +bool _mi_os_protect(void* addr, size_t size); +bool _mi_os_unprotect(void* addr, size_t size); +bool _mi_os_purge(void* p, size_t size, mi_stats_t* stats); +bool _mi_os_purge_ex(void* p, size_t size, bool allow_reset, mi_stats_t* stats); + +void* _mi_os_alloc_aligned(size_t size, size_t alignment, bool commit, bool allow_large, mi_memid_t* memid, mi_stats_t* stats); +void* _mi_os_alloc_aligned_at_offset(size_t size, size_t alignment, size_t align_offset, bool commit, bool allow_large, mi_memid_t* memid, mi_stats_t* tld_stats); + +void* _mi_os_get_aligned_hint(size_t try_alignment, size_t size); +bool _mi_os_use_large_page(size_t size, size_t alignment); +size_t _mi_os_large_page_size(void); + +void* _mi_os_alloc_huge_os_pages(size_t pages, int numa_node, mi_msecs_t max_secs, size_t* pages_reserved, size_t* psize, mi_memid_t* memid); + +// arena.c +mi_arena_id_t _mi_arena_id_none(void); +void _mi_arena_free(void* p, size_t size, size_t still_committed_size, mi_memid_t memid, mi_stats_t* stats); +void* _mi_arena_alloc(size_t size, bool commit, bool allow_large, mi_arena_id_t req_arena_id, mi_memid_t* memid, mi_os_tld_t* tld); +void* _mi_arena_alloc_aligned(size_t size, size_t alignment, size_t align_offset, bool commit, bool allow_large, mi_arena_id_t req_arena_id, mi_memid_t* memid, mi_os_tld_t* tld); +bool _mi_arena_memid_is_suitable(mi_memid_t memid, mi_arena_id_t request_arena_id); +bool _mi_arena_contains(const void* p); +void _mi_arena_collect(bool force_purge, mi_stats_t* stats); +void _mi_arena_unsafe_destroy_all(mi_stats_t* stats); + +// "segment-map.c" +void _mi_segment_map_allocated_at(const mi_segment_t* segment); +void _mi_segment_map_freed_at(const mi_segment_t* segment); + +// "segment.c" +extern mi_abandoned_pool_t _mi_abandoned_default; // global abandoned pool +mi_page_t* _mi_segment_page_alloc(mi_heap_t* heap, size_t block_size, size_t page_alignment, mi_segments_tld_t* tld, mi_os_tld_t* os_tld); +void _mi_segment_page_free(mi_page_t* page, bool force, mi_segments_tld_t* tld); +void _mi_segment_page_abandon(mi_page_t* page, mi_segments_tld_t* tld); +bool _mi_segment_try_reclaim_abandoned( mi_heap_t* heap, bool try_all, mi_segments_tld_t* tld); +void _mi_segment_thread_collect(mi_segments_tld_t* tld); +bool _mi_abandoned_pool_visit_blocks(mi_abandoned_pool_t* pool, uint8_t page_tag, bool visit_blocks, mi_block_visit_fun* visitor, void* arg); + + +#if MI_HUGE_PAGE_ABANDON +void _mi_segment_huge_page_free(mi_segment_t* segment, mi_page_t* page, mi_block_t* block); +#else +void _mi_segment_huge_page_reset(mi_segment_t* segment, mi_page_t* page, mi_block_t* block); +#endif + +uint8_t* _mi_segment_page_start(const mi_segment_t* segment, const mi_page_t* page, size_t* page_size); // page start for any page +void _mi_abandoned_reclaim_all(mi_heap_t* heap, mi_segments_tld_t* tld); +void _mi_abandoned_await_readers(mi_abandoned_pool_t *pool); +void _mi_abandoned_collect(mi_heap_t* heap, bool force, mi_segments_tld_t* tld); + +// "page.c" +void* _mi_malloc_generic(mi_heap_t* heap, size_t size, bool zero, size_t huge_alignment) mi_attr_noexcept mi_attr_malloc; + +void _mi_page_retire(mi_page_t* page) mi_attr_noexcept; // free the page if there are no other pages with many free blocks +void _mi_page_unfull(mi_page_t* page); +void _mi_page_free(mi_page_t* page, mi_page_queue_t* pq, bool force); // free the page +void _mi_page_abandon(mi_page_t* page, mi_page_queue_t* pq); // abandon the page, to be picked up by another thread... +void _mi_heap_delayed_free_all(mi_heap_t* heap); +bool _mi_heap_delayed_free_partial(mi_heap_t* heap); +void _mi_heap_collect_retired(mi_heap_t* heap, bool force); + +void _mi_page_use_delayed_free(mi_page_t* page, mi_delayed_t delay, bool override_never); +bool _mi_page_try_use_delayed_free(mi_page_t* page, mi_delayed_t delay, bool override_never); +size_t _mi_page_queue_append(mi_heap_t* heap, mi_page_queue_t* pq, mi_page_queue_t* append); +void _mi_deferred_free(mi_heap_t* heap, bool force); + +void _mi_page_free_collect(mi_page_t* page,bool force); +void _mi_page_reclaim(mi_heap_t* heap, mi_page_t* page); // callback from segments + +size_t _mi_bin_size(uint8_t bin); // for stats +uint8_t _mi_bin(size_t size); // for stats + +// "heap.c" +void _mi_heap_init_ex(mi_heap_t* heap, mi_tld_t* tld, mi_arena_id_t arena_id, bool no_reclaim, uint8_t tag); +void _mi_heap_destroy_pages(mi_heap_t* heap); +void _mi_heap_collect_abandon(mi_heap_t* heap); +void _mi_heap_set_default_direct(mi_heap_t* heap); +bool _mi_heap_memid_is_suitable(mi_heap_t* heap, mi_memid_t memid); +void _mi_heap_unsafe_destroy_all(void); +void _mi_heap_area_init(mi_heap_area_t* area, mi_page_t* page); +bool _mi_heap_area_visit_blocks(const mi_heap_area_t* area, mi_page_t *page, mi_block_visit_fun* visitor, void* arg); + +// "stats.c" +void _mi_stats_done(mi_stats_t* stats); +mi_msecs_t _mi_clock_now(void); +mi_msecs_t _mi_clock_end(mi_msecs_t start); +mi_msecs_t _mi_clock_start(void); + +// "alloc.c" +void* _mi_page_malloc(mi_heap_t* heap, mi_page_t* page, size_t size, bool zero) mi_attr_noexcept; // called from `_mi_malloc_generic` +void* _mi_heap_malloc_zero(mi_heap_t* heap, size_t size, bool zero) mi_attr_noexcept; +void* _mi_heap_malloc_zero_ex(mi_heap_t* heap, size_t size, bool zero, size_t huge_alignment) mi_attr_noexcept; // called from `_mi_heap_malloc_aligned` +void* _mi_heap_realloc_zero(mi_heap_t* heap, void* p, size_t newsize, bool zero) mi_attr_noexcept; +mi_block_t* _mi_page_ptr_unalign(const mi_segment_t* segment, const mi_page_t* page, const void* p); +bool _mi_free_delayed_block(mi_block_t* block); +void _mi_free_generic(const mi_segment_t* segment, mi_page_t* page, bool is_local, void* p) mi_attr_noexcept; // for runtime integration +void _mi_padding_shrink(const mi_page_t* page, const mi_block_t* block, const size_t min_size); + +// option.c, c primitives +char _mi_toupper(char c); +int _mi_strnicmp(const char* s, const char* t, size_t n); +void _mi_strlcpy(char* dest, const char* src, size_t dest_size); +void _mi_strlcat(char* dest, const char* src, size_t dest_size); +size_t _mi_strlen(const char* s); +size_t _mi_strnlen(const char* s, size_t max_len); + + +#if MI_DEBUG>1 +bool _mi_page_is_valid(mi_page_t* page); +#endif + + +// ------------------------------------------------------ +// Branches +// ------------------------------------------------------ + +#if defined(__GNUC__) || defined(__clang__) +#define mi_unlikely(x) (__builtin_expect(!!(x),false)) +#define mi_likely(x) (__builtin_expect(!!(x),true)) +#elif (defined(__cplusplus) && (__cplusplus >= 202002L)) || (defined(_MSVC_LANG) && _MSVC_LANG >= 202002L) +#define mi_unlikely(x) (x) [[unlikely]] +#define mi_likely(x) (x) [[likely]] +#else +#define mi_unlikely(x) (x) +#define mi_likely(x) (x) +#endif + +#ifndef __has_builtin +#define __has_builtin(x) 0 +#endif + + +/* ----------------------------------------------------------- + Error codes passed to `_mi_fatal_error` + All are recoverable but EFAULT is a serious error and aborts by default in secure mode. + For portability define undefined error codes using common Unix codes: + +----------------------------------------------------------- */ +#include +#ifndef EAGAIN // double free +#define EAGAIN (11) +#endif +#ifndef ENOMEM // out of memory +#define ENOMEM (12) +#endif +#ifndef EFAULT // corrupted free-list or meta-data +#define EFAULT (14) +#endif +#ifndef EINVAL // trying to free an invalid pointer +#define EINVAL (22) +#endif +#ifndef EOVERFLOW // count*size overflow +#define EOVERFLOW (75) +#endif + + +/* ----------------------------------------------------------- + Inlined definitions +----------------------------------------------------------- */ +#define MI_UNUSED(x) (void)(x) +#if (MI_DEBUG>0) +#define MI_UNUSED_RELEASE(x) +#else +#define MI_UNUSED_RELEASE(x) MI_UNUSED(x) +#endif + +#define MI_INIT4(x) x(),x(),x(),x() +#define MI_INIT8(x) MI_INIT4(x),MI_INIT4(x) +#define MI_INIT16(x) MI_INIT8(x),MI_INIT8(x) +#define MI_INIT32(x) MI_INIT16(x),MI_INIT16(x) +#define MI_INIT64(x) MI_INIT32(x),MI_INIT32(x) +#define MI_INIT128(x) MI_INIT64(x),MI_INIT64(x) +#define MI_INIT256(x) MI_INIT128(x),MI_INIT128(x) + + +#include +// initialize a local variable to zero; use memset as compilers optimize constant sized memset's +#define _mi_memzero_var(x) memset(&x,0,sizeof(x)) + +// Is `x` a power of two? (0 is considered a power of two) +static inline bool _mi_is_power_of_two(uintptr_t x) { + return ((x & (x - 1)) == 0); +} + +// Is a pointer aligned? +static inline bool _mi_is_aligned(void* p, size_t alignment) { + mi_assert_internal(alignment != 0); + return (((uintptr_t)p % alignment) == 0); +} + +// Align upwards +static inline uintptr_t _mi_align_up(uintptr_t sz, size_t alignment) { + mi_assert_internal(alignment != 0); + uintptr_t mask = alignment - 1; + if ((alignment & mask) == 0) { // power of two? + return ((sz + mask) & ~mask); + } + else { + return (((sz + mask)/alignment)*alignment); + } +} + +// Align downwards +static inline uintptr_t _mi_align_down(uintptr_t sz, size_t alignment) { + mi_assert_internal(alignment != 0); + uintptr_t mask = alignment - 1; + if ((alignment & mask) == 0) { // power of two? + return (sz & ~mask); + } + else { + return ((sz / alignment) * alignment); + } +} + +// Divide upwards: `s <= _mi_divide_up(s,d)*d < s+d`. +static inline uintptr_t _mi_divide_up(uintptr_t size, size_t divider) { + mi_assert_internal(divider != 0); + return (divider == 0 ? size : ((size + divider - 1) / divider)); +} + +// Is memory zero initialized? +static inline bool mi_mem_is_zero(const void* p, size_t size) { + for (size_t i = 0; i < size; i++) { + if (((uint8_t*)p)[i] != 0) return false; + } + return true; +} + + +// Align a byte size to a size in _machine words_, +// i.e. byte size == `wsize*sizeof(void*)`. +static inline size_t _mi_wsize_from_size(size_t size) { + mi_assert_internal(size <= SIZE_MAX - sizeof(uintptr_t)); + return (size + sizeof(uintptr_t) - 1) / sizeof(uintptr_t); +} + +// Overflow detecting multiply +#if __has_builtin(__builtin_umul_overflow) || (defined(__GNUC__) && (__GNUC__ >= 5)) +#include // UINT_MAX, ULONG_MAX +#if defined(_CLOCK_T) // for Illumos +#undef _CLOCK_T +#endif +static inline bool mi_mul_overflow(size_t count, size_t size, size_t* total) { + #if (SIZE_MAX == ULONG_MAX) + return __builtin_umull_overflow(count, size, (unsigned long *)total); + #elif (SIZE_MAX == UINT_MAX) + return __builtin_umul_overflow(count, size, (unsigned int *)total); + #else + return __builtin_umulll_overflow(count, size, (unsigned long long *)total); + #endif +} +#else /* __builtin_umul_overflow is unavailable */ +static inline bool mi_mul_overflow(size_t count, size_t size, size_t* total) { + #define MI_MUL_NO_OVERFLOW ((size_t)1 << (4*sizeof(size_t))) // sqrt(SIZE_MAX) + *total = count * size; + // note: gcc/clang optimize this to directly check the overflow flag + return ((size >= MI_MUL_NO_OVERFLOW || count >= MI_MUL_NO_OVERFLOW) && size > 0 && (SIZE_MAX / size) < count); +} +#endif + +// Safe multiply `count*size` into `total`; return `true` on overflow. +static inline bool mi_count_size_overflow(size_t count, size_t size, size_t* total) { + if (count==1) { // quick check for the case where count is one (common for C++ allocators) + *total = size; + return false; + } + else if mi_unlikely(mi_mul_overflow(count, size, total)) { + #if MI_DEBUG > 0 + _mi_error_message(EOVERFLOW, "allocation request is too large (%zu * %zu bytes)\n", count, size); + #endif + *total = SIZE_MAX; + return true; + } + else return false; +} + + +/*---------------------------------------------------------------------------------------- + Heap functions +------------------------------------------------------------------------------------------- */ + +extern const mi_heap_t _mi_heap_empty; // read-only empty heap, initial value of the thread local default heap + +static inline bool mi_heap_is_backing(const mi_heap_t* heap) { + return (heap->tld->heap_backing == heap); +} + +static inline bool mi_heap_is_initialized(mi_heap_t* heap) { + mi_assert_internal(heap != NULL); + return (heap != &_mi_heap_empty); +} + +static inline uintptr_t _mi_ptr_cookie(const void* p) { + extern mi_heap_t _mi_heap_main; + mi_assert_internal(_mi_heap_main.cookie != 0); + return ((uintptr_t)p ^ _mi_heap_main.cookie); +} + +/* ----------------------------------------------------------- + Pages +----------------------------------------------------------- */ + +static inline mi_page_t* _mi_heap_get_free_small_page(mi_heap_t* heap, size_t size) { + mi_assert_internal(size <= (MI_SMALL_SIZE_MAX + MI_PADDING_SIZE)); + const size_t idx = _mi_wsize_from_size(size); + mi_assert_internal(idx < MI_PAGES_DIRECT); + return heap->pages_free_direct[idx]; +} + +// Segment that contains the pointer +// Large aligned blocks may be aligned at N*MI_SEGMENT_SIZE (inside a huge segment > MI_SEGMENT_SIZE), +// and we need align "down" to the segment info which is `MI_SEGMENT_SIZE` bytes before it; +// therefore we align one byte before `p`. +static inline mi_segment_t* _mi_ptr_segment(const void* p) { + mi_assert_internal(p != NULL); + return (mi_segment_t*)(((uintptr_t)p - 1) & ~MI_SEGMENT_MASK); +} + +static inline mi_page_t* mi_slice_to_page(mi_slice_t* s) { + mi_assert_internal(s->slice_offset== 0 && s->slice_count > 0); + return (mi_page_t*)(s); +} + +static inline mi_slice_t* mi_page_to_slice(mi_page_t* p) { + mi_assert_internal(p->slice_offset== 0 && p->slice_count > 0); + return (mi_slice_t*)(p); +} + +// Segment belonging to a page +static inline mi_segment_t* _mi_page_segment(const mi_page_t* page) { + mi_segment_t* segment = _mi_ptr_segment(page); + mi_assert_internal(segment == NULL || ((mi_slice_t*)page >= segment->slices && (mi_slice_t*)page < segment->slices + segment->slice_entries)); + return segment; +} + +static inline mi_slice_t* mi_slice_first(const mi_slice_t* slice) { + mi_slice_t* start = (mi_slice_t*)((uint8_t*)slice - slice->slice_offset); + mi_assert_internal(start >= _mi_ptr_segment(slice)->slices); + mi_assert_internal(start->slice_offset == 0); + mi_assert_internal(start + start->slice_count > slice); + return start; +} + +// Get the page containing the pointer (performance critical as it is called in mi_free) +static inline mi_page_t* _mi_segment_page_of(const mi_segment_t* segment, const void* p) { + mi_assert_internal(p > (void*)segment); + ptrdiff_t diff = (uint8_t*)p - (uint8_t*)segment; + mi_assert_internal(diff > 0 && diff <= (ptrdiff_t)MI_SEGMENT_SIZE); + size_t idx = (size_t)diff >> MI_SEGMENT_SLICE_SHIFT; + mi_assert_internal(idx <= segment->slice_entries); + mi_slice_t* slice0 = (mi_slice_t*)&segment->slices[idx]; + mi_slice_t* slice = mi_slice_first(slice0); // adjust to the block that holds the page data + mi_assert_internal(slice->slice_offset == 0); + mi_assert_internal(slice >= segment->slices && slice < segment->slices + segment->slice_entries); + return mi_slice_to_page(slice); +} + +// Quick page start for initialized pages +static inline uint8_t* _mi_page_start(const mi_segment_t* segment, const mi_page_t* page, size_t* page_size) { + return _mi_segment_page_start(segment, page, page_size); +} + +// Get the page containing the pointer +static inline mi_page_t* _mi_ptr_page(void* p) { + return _mi_segment_page_of(_mi_ptr_segment(p), p); +} + +// Get the block size of a page (special case for huge objects) +static inline size_t mi_page_block_size(const mi_page_t* page) { + const size_t bsize = page->xblock_size; + mi_assert_internal(bsize > 0); + if mi_likely(bsize < MI_HUGE_BLOCK_SIZE) { + return bsize; + } + else { + size_t psize; + _mi_segment_page_start(_mi_page_segment(page), page, &psize); + return psize; + } +} + +static inline bool mi_page_is_huge(const mi_page_t* page) { + return (_mi_page_segment(page)->kind == MI_SEGMENT_HUGE); +} + +// Get the usable block size of a page without fixed padding. +// This may still include internal padding due to alignment and rounding up size classes. +static inline size_t mi_page_usable_block_size(const mi_page_t* page) { + return mi_page_block_size(page) - MI_PADDING_SIZE; +} + +// size of a segment +static inline size_t mi_segment_size(mi_segment_t* segment) { + return segment->segment_slices * MI_SEGMENT_SLICE_SIZE; +} + +static inline uint8_t* mi_segment_end(mi_segment_t* segment) { + return (uint8_t*)segment + mi_segment_size(segment); +} + +// Thread free access +static inline mi_block_t* mi_page_thread_free(const mi_page_t* page) { + return (mi_block_t*)(mi_atomic_load_relaxed(&((mi_page_t*)page)->xthread_free) & ~3); +} + +static inline mi_delayed_t mi_page_thread_free_flag(const mi_page_t* page) { + return (mi_delayed_t)(mi_atomic_load_relaxed(&((mi_page_t*)page)->xthread_free) & 3); +} + +// Heap access +static inline mi_heap_t* mi_page_heap(const mi_page_t* page) { + return (mi_heap_t*)(mi_atomic_load_relaxed(&((mi_page_t*)page)->xheap)); +} + +static inline void mi_page_set_heap(mi_page_t* page, mi_heap_t* heap) { + mi_assert_internal(mi_page_thread_free_flag(page) != MI_DELAYED_FREEING); + mi_atomic_store_release(&page->xheap,(uintptr_t)heap); +} + +// Thread free flag helpers +static inline mi_block_t* mi_tf_block(mi_thread_free_t tf) { + return (mi_block_t*)(tf & ~0x03); +} +static inline mi_delayed_t mi_tf_delayed(mi_thread_free_t tf) { + return (mi_delayed_t)(tf & 0x03); +} +static inline mi_thread_free_t mi_tf_make(mi_block_t* block, mi_delayed_t delayed) { + return (mi_thread_free_t)((uintptr_t)block | (uintptr_t)delayed); +} +static inline mi_thread_free_t mi_tf_set_delayed(mi_thread_free_t tf, mi_delayed_t delayed) { + return mi_tf_make(mi_tf_block(tf),delayed); +} +static inline mi_thread_free_t mi_tf_set_block(mi_thread_free_t tf, mi_block_t* block) { + return mi_tf_make(block, mi_tf_delayed(tf)); +} + +// are all blocks in a page freed? +// note: needs up-to-date used count, (as the `xthread_free` list may not be empty). see `_mi_page_collect_free`. +static inline bool mi_page_all_free(const mi_page_t* page) { + mi_assert_internal(page != NULL); + return (page->used == 0); +} + +// are there any available blocks? +static inline bool mi_page_has_any_available(const mi_page_t* page) { + mi_assert_internal(page != NULL && page->reserved > 0); + return (page->used < page->reserved || (mi_page_thread_free(page) != NULL)); +} + +// are there immediately available blocks, i.e. blocks available on the free list. +static inline bool mi_page_immediate_available(const mi_page_t* page) { + mi_assert_internal(page != NULL); + return (page->free != NULL); +} + +// is more than 7/8th of a page in use? +static inline bool mi_page_mostly_used(const mi_page_t* page) { + if (page==NULL) return true; + uint16_t frac = page->reserved / 8U; + return (page->reserved - page->used <= frac); +} + +static inline mi_page_queue_t* mi_page_queue(const mi_heap_t* heap, size_t size) { + return &((mi_heap_t*)heap)->pages[_mi_bin(size)]; +} + + + +//----------------------------------------------------------- +// Page flags +//----------------------------------------------------------- +static inline bool mi_page_is_in_full(const mi_page_t* page) { + return page->flags.x.in_full; +} + +static inline void mi_page_set_in_full(mi_page_t* page, bool in_full) { + page->flags.x.in_full = in_full; +} + +static inline bool mi_page_has_aligned(const mi_page_t* page) { + return page->flags.x.has_aligned; +} + +static inline void mi_page_set_has_aligned(mi_page_t* page, bool has_aligned) { + page->flags.x.has_aligned = has_aligned; +} + + +/* ------------------------------------------------------------------- +Encoding/Decoding the free list next pointers + +This is to protect against buffer overflow exploits where the +free list is mutated. Many hardened allocators xor the next pointer `p` +with a secret key `k1`, as `p^k1`. This prevents overwriting with known +values but might be still too weak: if the attacker can guess +the pointer `p` this can reveal `k1` (since `p^k1^p == k1`). +Moreover, if multiple blocks can be read as well, the attacker can +xor both as `(p1^k1) ^ (p2^k1) == p1^p2` which may reveal a lot +about the pointers (and subsequently `k1`). + +Instead mimalloc uses an extra key `k2` and encodes as `((p^k2)<<> (MI_INTPTR_BITS - shift)))); +} +static inline uintptr_t mi_rotr(uintptr_t x, uintptr_t shift) { + shift %= MI_INTPTR_BITS; + return (shift==0 ? x : ((x >> shift) | (x << (MI_INTPTR_BITS - shift)))); +} + +static inline void* mi_ptr_decode(const void* null, const mi_encoded_t x, const uintptr_t* keys) { + void* p = (void*)(mi_rotr(x - keys[0], keys[0]) ^ keys[1]); + return (p==null ? NULL : p); +} + +static inline mi_encoded_t mi_ptr_encode(const void* null, const void* p, const uintptr_t* keys) { + uintptr_t x = (uintptr_t)(p==NULL ? null : p); + return mi_rotl(x ^ keys[1], keys[0]) + keys[0]; +} + +static inline mi_block_t* mi_block_nextx( const void* null, const mi_block_t* block, const uintptr_t* keys ) { + mi_track_mem_defined(block,sizeof(mi_block_t)); + mi_block_t* next; + #ifdef MI_ENCODE_FREELIST + next = (mi_block_t*)mi_ptr_decode(null, block->next, keys); + #else + MI_UNUSED(keys); MI_UNUSED(null); + next = (mi_block_t*)block->next; + #endif + mi_track_mem_noaccess(block,sizeof(mi_block_t)); + return next; +} + +static inline void mi_block_set_nextx(const void* null, mi_block_t* block, const mi_block_t* next, const uintptr_t* keys) { + mi_track_mem_undefined(block,sizeof(mi_block_t)); + #ifdef MI_ENCODE_FREELIST + block->next = mi_ptr_encode(null, next, keys); + #else + MI_UNUSED(keys); MI_UNUSED(null); + block->next = (mi_encoded_t)next; + #endif + mi_track_mem_noaccess(block,sizeof(mi_block_t)); +} + +static inline mi_block_t* mi_block_next(const mi_page_t* page, const mi_block_t* block) { + #ifdef MI_ENCODE_FREELIST + mi_block_t* next = mi_block_nextx(page,block,page->keys); + // check for free list corruption: is `next` at least in the same page? + // TODO: check if `next` is `page->block_size` aligned? + if mi_unlikely(next!=NULL && !mi_is_in_same_page(block, next)) { + _mi_error_message(EFAULT, "corrupted free list entry of size %zub at %p: value 0x%zx\n", mi_page_block_size(page), block, (uintptr_t)next); + next = NULL; + } + return next; + #else + MI_UNUSED(page); + return mi_block_nextx(page,block,NULL); + #endif +} + +static inline void mi_block_set_next(const mi_page_t* page, mi_block_t* block, const mi_block_t* next) { + #ifdef MI_ENCODE_FREELIST + mi_block_set_nextx(page,block,next, page->keys); + #else + MI_UNUSED(page); + mi_block_set_nextx(page,block,next,NULL); + #endif +} + + +// ------------------------------------------------------------------- +// commit mask +// ------------------------------------------------------------------- + +static inline void mi_commit_mask_create_empty(mi_commit_mask_t* cm) { + for (size_t i = 0; i < MI_COMMIT_MASK_FIELD_COUNT; i++) { + cm->mask[i] = 0; + } +} + +static inline void mi_commit_mask_create_full(mi_commit_mask_t* cm) { + for (size_t i = 0; i < MI_COMMIT_MASK_FIELD_COUNT; i++) { + cm->mask[i] = ~((size_t)0); + } +} + +static inline bool mi_commit_mask_is_empty(const mi_commit_mask_t* cm) { + for (size_t i = 0; i < MI_COMMIT_MASK_FIELD_COUNT; i++) { + if (cm->mask[i] != 0) return false; + } + return true; +} + +static inline bool mi_commit_mask_is_full(const mi_commit_mask_t* cm) { + for (size_t i = 0; i < MI_COMMIT_MASK_FIELD_COUNT; i++) { + if (cm->mask[i] != ~((size_t)0)) return false; + } + return true; +} + +// defined in `segment.c`: +size_t _mi_commit_mask_committed_size(const mi_commit_mask_t* cm, size_t total); +size_t _mi_commit_mask_next_run(const mi_commit_mask_t* cm, size_t* idx); + +#define mi_commit_mask_foreach(cm,idx,count) \ + idx = 0; \ + while ((count = _mi_commit_mask_next_run(cm,&idx)) > 0) { + +#define mi_commit_mask_foreach_end() \ + idx += count; \ + } + + + +/* ----------------------------------------------------------- + memory id's +----------------------------------------------------------- */ + +static inline mi_memid_t _mi_memid_create(mi_memkind_t memkind) { + mi_memid_t memid; + _mi_memzero_var(memid); + memid.memkind = memkind; + return memid; +} + +static inline mi_memid_t _mi_memid_none(void) { + return _mi_memid_create(MI_MEM_NONE); +} + +static inline mi_memid_t _mi_memid_create_os(bool committed, bool is_zero, bool is_large) { + mi_memid_t memid = _mi_memid_create(MI_MEM_OS); + memid.initially_committed = committed; + memid.initially_zero = is_zero; + memid.is_pinned = is_large; + return memid; +} + + +// ------------------------------------------------------------------- +// Fast "random" shuffle +// ------------------------------------------------------------------- + +static inline uintptr_t _mi_random_shuffle(uintptr_t x) { + if (x==0) { x = 17; } // ensure we don't get stuck in generating zeros +#if (MI_INTPTR_SIZE==8) + // by Sebastiano Vigna, see: + x ^= x >> 30; + x *= 0xbf58476d1ce4e5b9UL; + x ^= x >> 27; + x *= 0x94d049bb133111ebUL; + x ^= x >> 31; +#elif (MI_INTPTR_SIZE==4) + // by Chris Wellons, see: + x ^= x >> 16; + x *= 0x7feb352dUL; + x ^= x >> 15; + x *= 0x846ca68bUL; + x ^= x >> 16; +#endif + return x; +} + +// ------------------------------------------------------------------- +// Optimize numa node access for the common case (= one node) +// ------------------------------------------------------------------- + +int _mi_os_numa_node_get(mi_os_tld_t* tld); +size_t _mi_os_numa_node_count_get(void); + +extern _Atomic(size_t) _mi_numa_node_count; +static inline int _mi_os_numa_node(mi_os_tld_t* tld) { + if mi_likely(mi_atomic_load_relaxed(&_mi_numa_node_count) == 1) { return 0; } + else return _mi_os_numa_node_get(tld); +} +static inline size_t _mi_os_numa_node_count(void) { + const size_t count = mi_atomic_load_relaxed(&_mi_numa_node_count); + if mi_likely(count > 0) { return count; } + else return _mi_os_numa_node_count_get(); +} + + + +// ----------------------------------------------------------------------- +// Count bits: trailing or leading zeros (with MI_INTPTR_BITS on all zero) +// ----------------------------------------------------------------------- + +#if defined(__GNUC__) + +#include // LONG_MAX +#define MI_HAVE_FAST_BITSCAN +static inline size_t mi_clz(uintptr_t x) { + if (x==0) return MI_INTPTR_BITS; +#if (INTPTR_MAX == LONG_MAX) + return __builtin_clzl(x); +#else + return __builtin_clzll(x); +#endif +} +static inline size_t mi_ctz(uintptr_t x) { + if (x==0) return MI_INTPTR_BITS; +#if (INTPTR_MAX == LONG_MAX) + return __builtin_ctzl(x); +#else + return __builtin_ctzll(x); +#endif +} + +#elif defined(_MSC_VER) + +#include // LONG_MAX +#include // BitScanReverse64 +#define MI_HAVE_FAST_BITSCAN +static inline size_t mi_clz(uintptr_t x) { + if (x==0) return MI_INTPTR_BITS; + unsigned long idx; +#if (INTPTR_MAX == LONG_MAX) + _BitScanReverse(&idx, x); +#else + _BitScanReverse64(&idx, x); +#endif + return ((MI_INTPTR_BITS - 1) - idx); +} +static inline size_t mi_ctz(uintptr_t x) { + if (x==0) return MI_INTPTR_BITS; + unsigned long idx; +#if (INTPTR_MAX == LONG_MAX) + _BitScanForward(&idx, x); +#else + _BitScanForward64(&idx, x); +#endif + return idx; +} + +#else +static inline size_t mi_ctz32(uint32_t x) { + // de Bruijn multiplication, see + static const unsigned char debruijn[32] = { + 0, 1, 28, 2, 29, 14, 24, 3, 30, 22, 20, 15, 25, 17, 4, 8, + 31, 27, 13, 23, 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, 10, 9 + }; + if (x==0) return 32; + return debruijn[((x & -(int32_t)x) * 0x077CB531UL) >> 27]; +} +static inline size_t mi_clz32(uint32_t x) { + // de Bruijn multiplication, see + static const uint8_t debruijn[32] = { + 31, 22, 30, 21, 18, 10, 29, 2, 20, 17, 15, 13, 9, 6, 28, 1, + 23, 19, 11, 3, 16, 14, 7, 24, 12, 4, 8, 25, 5, 26, 27, 0 + }; + if (x==0) return 32; + x |= x >> 1; + x |= x >> 2; + x |= x >> 4; + x |= x >> 8; + x |= x >> 16; + return debruijn[(uint32_t)(x * 0x07C4ACDDUL) >> 27]; +} + +static inline size_t mi_clz(uintptr_t x) { + if (x==0) return MI_INTPTR_BITS; +#if (MI_INTPTR_BITS <= 32) + return mi_clz32((uint32_t)x); +#else + size_t count = mi_clz32((uint32_t)(x >> 32)); + if (count < 32) return count; + return (32 + mi_clz32((uint32_t)x)); +#endif +} +static inline size_t mi_ctz(uintptr_t x) { + if (x==0) return MI_INTPTR_BITS; +#if (MI_INTPTR_BITS <= 32) + return mi_ctz32((uint32_t)x); +#else + size_t count = mi_ctz32((uint32_t)x); + if (count < 32) return count; + return (32 + mi_ctz32((uint32_t)(x>>32))); +#endif +} + +#endif + +// "bit scan reverse": Return index of the highest bit (or MI_INTPTR_BITS if `x` is zero) +static inline size_t mi_bsr(uintptr_t x) { + return (x==0 ? MI_INTPTR_BITS : MI_INTPTR_BITS - 1 - mi_clz(x)); +} + + +// --------------------------------------------------------------------------------- +// Provide our own `_mi_memcpy` for potential performance optimizations. +// +// For now, only on Windows with msvc/clang-cl we optimize to `rep movsb` if +// we happen to run on x86/x64 cpu's that have "fast short rep movsb" (FSRM) support +// (AMD Zen3+ (~2020) or Intel Ice Lake+ (~2017). See also issue #201 and pr #253. +// --------------------------------------------------------------------------------- + +#if !MI_TRACK_ENABLED && defined(_WIN32) && (defined(_M_IX86) || defined(_M_X64)) +#include +extern bool _mi_cpu_has_fsrm; +static inline void _mi_memcpy(void* dst, const void* src, size_t n) { + if (_mi_cpu_has_fsrm) { + __movsb((unsigned char*)dst, (const unsigned char*)src, n); + } + else { + memcpy(dst, src, n); + } +} +static inline void _mi_memzero(void* dst, size_t n) { + if (_mi_cpu_has_fsrm) { + __stosb((unsigned char*)dst, 0, n); + } + else { + memset(dst, 0, n); + } +} +#else +static inline void _mi_memcpy(void* dst, const void* src, size_t n) { + memcpy(dst, src, n); +} +static inline void _mi_memzero(void* dst, size_t n) { + memset(dst, 0, n); +} +#endif + +// ------------------------------------------------------------------------------- +// The `_mi_memcpy_aligned` can be used if the pointers are machine-word aligned +// This is used for example in `mi_realloc`. +// ------------------------------------------------------------------------------- + +#if (defined(__GNUC__) && (__GNUC__ >= 4)) || defined(__clang__) +// On GCC/CLang we provide a hint that the pointers are word aligned. +static inline void _mi_memcpy_aligned(void* dst, const void* src, size_t n) { + mi_assert_internal(((uintptr_t)dst % MI_INTPTR_SIZE == 0) && ((uintptr_t)src % MI_INTPTR_SIZE == 0)); + void* adst = __builtin_assume_aligned(dst, MI_INTPTR_SIZE); + const void* asrc = __builtin_assume_aligned(src, MI_INTPTR_SIZE); + _mi_memcpy(adst, asrc, n); +} + +static inline void _mi_memzero_aligned(void* dst, size_t n) { + mi_assert_internal((uintptr_t)dst % MI_INTPTR_SIZE == 0); + void* adst = __builtin_assume_aligned(dst, MI_INTPTR_SIZE); + _mi_memzero(adst, n); +} +#else +// Default fallback on `_mi_memcpy` +static inline void _mi_memcpy_aligned(void* dst, const void* src, size_t n) { + mi_assert_internal(((uintptr_t)dst % MI_INTPTR_SIZE == 0) && ((uintptr_t)src % MI_INTPTR_SIZE == 0)); + _mi_memcpy(dst, src, n); +} + +static inline void _mi_memzero_aligned(void* dst, size_t n) { + mi_assert_internal((uintptr_t)dst % MI_INTPTR_SIZE == 0); + _mi_memzero(dst, n); +} +#endif + + +#endif diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/mimalloc/mimalloc/prim.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/mimalloc/mimalloc/prim.h new file mode 100644 index 000000000..8a60d5284 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/mimalloc/mimalloc/prim.h @@ -0,0 +1,329 @@ +/* ---------------------------------------------------------------------------- +Copyright (c) 2018-2023, Microsoft Research, Daan Leijen +This is free software; you can redistribute it and/or modify it under the +terms of the MIT license. A copy of the license can be found in the file +"LICENSE" at the root of this distribution. +-----------------------------------------------------------------------------*/ +#pragma once +#ifndef MIMALLOC_PRIM_H +#define MIMALLOC_PRIM_H + + +// -------------------------------------------------------------------------- +// This file specifies the primitive portability API. +// Each OS/host needs to implement these primitives, see `src/prim` +// for implementations on Window, macOS, WASI, and Linux/Unix. +// +// note: on all primitive functions, we always have result parameters != NUL, and: +// addr != NULL and page aligned +// size > 0 and page aligned +// return value is an error code an int where 0 is success. +// -------------------------------------------------------------------------- + +// OS memory configuration +typedef struct mi_os_mem_config_s { + size_t page_size; // 4KiB + size_t large_page_size; // 2MiB + size_t alloc_granularity; // smallest allocation size (on Windows 64KiB) + bool has_overcommit; // can we reserve more memory than can be actually committed? + bool must_free_whole; // must allocated blocks be freed as a whole (false for mmap, true for VirtualAlloc) + bool has_virtual_reserve; // supports virtual address space reservation? (if true we can reserve virtual address space without using commit or physical memory) +} mi_os_mem_config_t; + +// Initialize +void _mi_prim_mem_init( mi_os_mem_config_t* config ); + +// Free OS memory +int _mi_prim_free(void* addr, size_t size ); + +// Allocate OS memory. Return NULL on error. +// The `try_alignment` is just a hint and the returned pointer does not have to be aligned. +// If `commit` is false, the virtual memory range only needs to be reserved (with no access) +// which will later be committed explicitly using `_mi_prim_commit`. +// `is_zero` is set to true if the memory was zero initialized (as on most OS's) +// pre: !commit => !allow_large +// try_alignment >= _mi_os_page_size() and a power of 2 +int _mi_prim_alloc(size_t size, size_t try_alignment, bool commit, bool allow_large, bool* is_large, bool* is_zero, void** addr); + +// Commit memory. Returns error code or 0 on success. +// For example, on Linux this would make the memory PROT_READ|PROT_WRITE. +// `is_zero` is set to true if the memory was zero initialized (e.g. on Windows) +int _mi_prim_commit(void* addr, size_t size, bool* is_zero); + +// Decommit memory. Returns error code or 0 on success. The `needs_recommit` result is true +// if the memory would need to be re-committed. For example, on Windows this is always true, +// but on Linux we could use MADV_DONTNEED to decommit which does not need a recommit. +// pre: needs_recommit != NULL +int _mi_prim_decommit(void* addr, size_t size, bool* needs_recommit); + +// Reset memory. The range keeps being accessible but the content might be reset. +// Returns error code or 0 on success. +int _mi_prim_reset(void* addr, size_t size); + +// Protect memory. Returns error code or 0 on success. +int _mi_prim_protect(void* addr, size_t size, bool protect); + +// Allocate huge (1GiB) pages possibly associated with a NUMA node. +// `is_zero` is set to true if the memory was zero initialized (as on most OS's) +// pre: size > 0 and a multiple of 1GiB. +// numa_node is either negative (don't care), or a numa node number. +int _mi_prim_alloc_huge_os_pages(void* hint_addr, size_t size, int numa_node, bool* is_zero, void** addr); + +// Return the current NUMA node +size_t _mi_prim_numa_node(void); + +// Return the number of logical NUMA nodes +size_t _mi_prim_numa_node_count(void); + +// Clock ticks +mi_msecs_t _mi_prim_clock_now(void); + +// Return process information (only for statistics) +typedef struct mi_process_info_s { + mi_msecs_t elapsed; + mi_msecs_t utime; + mi_msecs_t stime; + size_t current_rss; + size_t peak_rss; + size_t current_commit; + size_t peak_commit; + size_t page_faults; +} mi_process_info_t; + +void _mi_prim_process_info(mi_process_info_t* pinfo); + +// Default stderr output. (only for warnings etc. with verbose enabled) +// msg != NULL && _mi_strlen(msg) > 0 +void _mi_prim_out_stderr( const char* msg ); + +// Get an environment variable. (only for options) +// name != NULL, result != NULL, result_size >= 64 +bool _mi_prim_getenv(const char* name, char* result, size_t result_size); + + +// Fill a buffer with strong randomness; return `false` on error or if +// there is no strong randomization available. +bool _mi_prim_random_buf(void* buf, size_t buf_len); + +// Called on the first thread start, and should ensure `_mi_thread_done` is called on thread termination. +void _mi_prim_thread_init_auto_done(void); + +// Called on process exit and may take action to clean up resources associated with the thread auto done. +void _mi_prim_thread_done_auto_done(void); + +// Called when the default heap for a thread changes +void _mi_prim_thread_associate_default_heap(mi_heap_t* heap); + + +//------------------------------------------------------------------- +// Thread id: `_mi_prim_thread_id()` +// +// Getting the thread id should be performant as it is called in the +// fast path of `_mi_free` and we specialize for various platforms as +// inlined definitions. Regular code should call `init.c:_mi_thread_id()`. +// We only require _mi_prim_thread_id() to return a unique id +// for each thread (unequal to zero). +//------------------------------------------------------------------- + +// defined in `init.c`; do not use these directly +extern mi_decl_thread mi_heap_t* _mi_heap_default; // default heap to allocate from +extern bool _mi_process_is_initialized; // has mi_process_init been called? + +static inline mi_threadid_t _mi_prim_thread_id(void) mi_attr_noexcept; + +#ifdef MI_PRIM_THREAD_ID + +static inline mi_threadid_t _mi_prim_thread_id(void) mi_attr_noexcept { + return MI_PRIM_THREAD_ID(); +} + +#elif defined(_WIN32) + +#define WIN32_LEAN_AND_MEAN +#include +static inline mi_threadid_t _mi_prim_thread_id(void) mi_attr_noexcept { + // Windows: works on Intel and ARM in both 32- and 64-bit + return (uintptr_t)NtCurrentTeb(); +} + +// We use assembly for a fast thread id on the main platforms. The TLS layout depends on +// both the OS and libc implementation so we use specific tests for each main platform. +// If you test on another platform and it works please send a PR :-) +// see also https://akkadia.org/drepper/tls.pdf for more info on the TLS register. +#elif defined(__GNUC__) && ( \ + (defined(__GLIBC__) && (defined(__x86_64__) || defined(__i386__) || defined(__arm__) || defined(__aarch64__))) \ + || (defined(__APPLE__) && (defined(__x86_64__) || defined(__aarch64__))) \ + || (defined(__BIONIC__) && (defined(__x86_64__) || defined(__i386__) || defined(__arm__) || defined(__aarch64__))) \ + || (defined(__FreeBSD__) && (defined(__x86_64__) || defined(__i386__) || defined(__aarch64__))) \ + || (defined(__OpenBSD__) && (defined(__x86_64__) || defined(__i386__) || defined(__aarch64__))) \ + ) + +static inline void* mi_prim_tls_slot(size_t slot) mi_attr_noexcept { + void* res; + const size_t ofs = (slot*sizeof(void*)); + #if defined(__i386__) + __asm__("movl %%gs:%1, %0" : "=r" (res) : "m" (*((void**)ofs)) : ); // x86 32-bit always uses GS + #elif defined(__APPLE__) && defined(__x86_64__) + __asm__("movq %%gs:%1, %0" : "=r" (res) : "m" (*((void**)ofs)) : ); // x86_64 macOSX uses GS + #elif defined(__x86_64__) && (MI_INTPTR_SIZE==4) + __asm__("movl %%fs:%1, %0" : "=r" (res) : "m" (*((void**)ofs)) : ); // x32 ABI + #elif defined(__x86_64__) + __asm__("movq %%fs:%1, %0" : "=r" (res) : "m" (*((void**)ofs)) : ); // x86_64 Linux, BSD uses FS + #elif defined(__arm__) + void** tcb; MI_UNUSED(ofs); + __asm__ volatile ("mrc p15, 0, %0, c13, c0, 3\nbic %0, %0, #3" : "=r" (tcb)); + res = tcb[slot]; + #elif defined(__aarch64__) + void** tcb; MI_UNUSED(ofs); + #if defined(__APPLE__) // M1, issue #343 + __asm__ volatile ("mrs %0, tpidrro_el0\nbic %0, %0, #7" : "=r" (tcb)); + #else + __asm__ volatile ("mrs %0, tpidr_el0" : "=r" (tcb)); + #endif + res = tcb[slot]; + #endif + return res; +} + +// setting a tls slot is only used on macOS for now +static inline void mi_prim_tls_slot_set(size_t slot, void* value) mi_attr_noexcept { + const size_t ofs = (slot*sizeof(void*)); + #if defined(__i386__) + __asm__("movl %1,%%gs:%0" : "=m" (*((void**)ofs)) : "rn" (value) : ); // 32-bit always uses GS + #elif defined(__APPLE__) && defined(__x86_64__) + __asm__("movq %1,%%gs:%0" : "=m" (*((void**)ofs)) : "rn" (value) : ); // x86_64 macOS uses GS + #elif defined(__x86_64__) && (MI_INTPTR_SIZE==4) + __asm__("movl %1,%%fs:%0" : "=m" (*((void**)ofs)) : "rn" (value) : ); // x32 ABI + #elif defined(__x86_64__) + __asm__("movq %1,%%fs:%0" : "=m" (*((void**)ofs)) : "rn" (value) : ); // x86_64 Linux, BSD uses FS + #elif defined(__arm__) + void** tcb; MI_UNUSED(ofs); + __asm__ volatile ("mrc p15, 0, %0, c13, c0, 3\nbic %0, %0, #3" : "=r" (tcb)); + tcb[slot] = value; + #elif defined(__aarch64__) + void** tcb; MI_UNUSED(ofs); + #if defined(__APPLE__) // M1, issue #343 + __asm__ volatile ("mrs %0, tpidrro_el0\nbic %0, %0, #7" : "=r" (tcb)); + #else + __asm__ volatile ("mrs %0, tpidr_el0" : "=r" (tcb)); + #endif + tcb[slot] = value; + #endif +} + +static inline mi_threadid_t _mi_prim_thread_id(void) mi_attr_noexcept { + #if defined(__BIONIC__) + // issue #384, #495: on the Bionic libc (Android), slot 1 is the thread id + // see: https://github.com/aosp-mirror/platform_bionic/blob/c44b1d0676ded732df4b3b21c5f798eacae93228/libc/platform/bionic/tls_defines.h#L86 + return (uintptr_t)mi_prim_tls_slot(1); + #else + // in all our other targets, slot 0 is the thread id + // glibc: https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=sysdeps/x86_64/nptl/tls.h + // apple: https://github.com/apple/darwin-xnu/blob/main/libsyscall/os/tsd.h#L36 + return (uintptr_t)mi_prim_tls_slot(0); + #endif +} + +#else + +// otherwise use portable C, taking the address of a thread local variable (this is still very fast on most platforms). +static inline mi_threadid_t _mi_prim_thread_id(void) mi_attr_noexcept { + return (uintptr_t)&_mi_heap_default; +} + +#endif + + + +/* ---------------------------------------------------------------------------------------- +The thread local default heap: `_mi_prim_get_default_heap()` +This is inlined here as it is on the fast path for allocation functions. + +On most platforms (Windows, Linux, FreeBSD, NetBSD, etc), this just returns a +__thread local variable (`_mi_heap_default`). With the initial-exec TLS model this ensures +that the storage will always be available (allocated on the thread stacks). + +On some platforms though we cannot use that when overriding `malloc` since the underlying +TLS implementation (or the loader) will call itself `malloc` on a first access and recurse. +We try to circumvent this in an efficient way: +- macOSX : we use an unused TLS slot from the OS allocated slots (MI_TLS_SLOT). On OSX, the + loader itself calls `malloc` even before the modules are initialized. +- OpenBSD: we use an unused slot from the pthread block (MI_TLS_PTHREAD_SLOT_OFS). +- DragonFly: defaults are working but seem slow compared to freeBSD (see PR #323) +------------------------------------------------------------------------------------------- */ + +static inline mi_heap_t* mi_prim_get_default_heap(void); + +#if defined(MI_MALLOC_OVERRIDE) +#if defined(__APPLE__) // macOS + #define MI_TLS_SLOT 89 // seems unused? + // #define MI_TLS_RECURSE_GUARD 1 + // other possible unused ones are 9, 29, __PTK_FRAMEWORK_JAVASCRIPTCORE_KEY4 (94), __PTK_FRAMEWORK_GC_KEY9 (112) and __PTK_FRAMEWORK_OLDGC_KEY9 (89) + // see +#elif defined(__OpenBSD__) + // use end bytes of a name; goes wrong if anyone uses names > 23 characters (ptrhread specifies 16) + // see + #define MI_TLS_PTHREAD_SLOT_OFS (6*sizeof(int) + 4*sizeof(void*) + 24) + // #elif defined(__DragonFly__) + // #warning "mimalloc is not working correctly on DragonFly yet." + // #define MI_TLS_PTHREAD_SLOT_OFS (4 + 1*sizeof(void*)) // offset `uniqueid` (also used by gdb?) +#elif defined(__ANDROID__) + // See issue #381 + #define MI_TLS_PTHREAD +#endif +#endif + + +#if defined(MI_TLS_SLOT) + +static inline mi_heap_t* mi_prim_get_default_heap(void) { + mi_heap_t* heap = (mi_heap_t*)mi_prim_tls_slot(MI_TLS_SLOT); + if mi_unlikely(heap == NULL) { + #ifdef __GNUC__ + __asm(""); // prevent conditional load of the address of _mi_heap_empty + #endif + heap = (mi_heap_t*)&_mi_heap_empty; + } + return heap; +} + +#elif defined(MI_TLS_PTHREAD_SLOT_OFS) + +static inline mi_heap_t** mi_prim_tls_pthread_heap_slot(void) { + pthread_t self = pthread_self(); + #if defined(__DragonFly__) + if (self==NULL) return NULL; + #endif + return (mi_heap_t**)((uint8_t*)self + MI_TLS_PTHREAD_SLOT_OFS); +} + +static inline mi_heap_t* mi_prim_get_default_heap(void) { + mi_heap_t** pheap = mi_prim_tls_pthread_heap_slot(); + if mi_unlikely(pheap == NULL) return _mi_heap_main_get(); + mi_heap_t* heap = *pheap; + if mi_unlikely(heap == NULL) return (mi_heap_t*)&_mi_heap_empty; + return heap; +} + +#elif defined(MI_TLS_PTHREAD) + +extern pthread_key_t _mi_heap_default_key; +static inline mi_heap_t* mi_prim_get_default_heap(void) { + mi_heap_t* heap = (mi_unlikely(_mi_heap_default_key == (pthread_key_t)(-1)) ? _mi_heap_main_get() : (mi_heap_t*)pthread_getspecific(_mi_heap_default_key)); + return (mi_unlikely(heap == NULL) ? (mi_heap_t*)&_mi_heap_empty : heap); +} + +#else // default using a thread local variable; used on most platforms. + +static inline mi_heap_t* mi_prim_get_default_heap(void) { + #if defined(MI_TLS_RECURSE_GUARD) + if (mi_unlikely(!_mi_process_is_initialized)) return _mi_heap_main_get(); + #endif + return _mi_heap_default; +} + +#endif // mi_prim_get_default_heap() + + + +#endif // MIMALLOC_PRIM_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/mimalloc/mimalloc/track.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/mimalloc/mimalloc/track.h new file mode 100644 index 000000000..fa1a048d8 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/mimalloc/mimalloc/track.h @@ -0,0 +1,147 @@ +/* ---------------------------------------------------------------------------- +Copyright (c) 2018-2023, Microsoft Research, Daan Leijen +This is free software; you can redistribute it and/or modify it under the +terms of the MIT license. A copy of the license can be found in the file +"LICENSE" at the root of this distribution. +-----------------------------------------------------------------------------*/ +#pragma once +#ifndef MIMALLOC_TRACK_H +#define MIMALLOC_TRACK_H + +/* ------------------------------------------------------------------------------------------------------ +Track memory ranges with macros for tools like Valgrind address sanitizer, or other memory checkers. +These can be defined for tracking allocation: + + #define mi_track_malloc_size(p,reqsize,size,zero) + #define mi_track_free_size(p,_size) + +The macros are set up such that the size passed to `mi_track_free_size` +always matches the size of `mi_track_malloc_size`. (currently, `size == mi_usable_size(p)`). +The `reqsize` is what the user requested, and `size >= reqsize`. +The `size` is either byte precise (and `size==reqsize`) if `MI_PADDING` is enabled, +or otherwise it is the usable block size which may be larger than the original request. +Use `_mi_block_size_of(void* p)` to get the full block size that was allocated (including padding etc). +The `zero` parameter is `true` if the allocated block is zero initialized. + +Optional: + + #define mi_track_align(p,alignedp,offset,size) + #define mi_track_resize(p,oldsize,newsize) + #define mi_track_init() + +The `mi_track_align` is called right after a `mi_track_malloc` for aligned pointers in a block. +The corresponding `mi_track_free` still uses the block start pointer and original size (corresponding to the `mi_track_malloc`). +The `mi_track_resize` is currently unused but could be called on reallocations within a block. +`mi_track_init` is called at program start. + +The following macros are for tools like asan and valgrind to track whether memory is +defined, undefined, or not accessible at all: + + #define mi_track_mem_defined(p,size) + #define mi_track_mem_undefined(p,size) + #define mi_track_mem_noaccess(p,size) + +-------------------------------------------------------------------------------------------------------*/ + +#if MI_TRACK_VALGRIND +// valgrind tool + +#define MI_TRACK_ENABLED 1 +#define MI_TRACK_HEAP_DESTROY 1 // track free of individual blocks on heap_destroy +#define MI_TRACK_TOOL "valgrind" + +#include +#include + +#define mi_track_malloc_size(p,reqsize,size,zero) VALGRIND_MALLOCLIKE_BLOCK(p,size,MI_PADDING_SIZE /*red zone*/,zero) +#define mi_track_free_size(p,_size) VALGRIND_FREELIKE_BLOCK(p,MI_PADDING_SIZE /*red zone*/) +#define mi_track_resize(p,oldsize,newsize) VALGRIND_RESIZEINPLACE_BLOCK(p,oldsize,newsize,MI_PADDING_SIZE /*red zone*/) +#define mi_track_mem_defined(p,size) VALGRIND_MAKE_MEM_DEFINED(p,size) +#define mi_track_mem_undefined(p,size) VALGRIND_MAKE_MEM_UNDEFINED(p,size) +#define mi_track_mem_noaccess(p,size) VALGRIND_MAKE_MEM_NOACCESS(p,size) + +#elif MI_TRACK_ASAN +// address sanitizer + +#define MI_TRACK_ENABLED 1 +#define MI_TRACK_HEAP_DESTROY 0 +#define MI_TRACK_TOOL "asan" + +#include + +#define mi_track_malloc_size(p,reqsize,size,zero) ASAN_UNPOISON_MEMORY_REGION(p,size) +#define mi_track_free_size(p,size) ASAN_POISON_MEMORY_REGION(p,size) +#define mi_track_mem_defined(p,size) ASAN_UNPOISON_MEMORY_REGION(p,size) +#define mi_track_mem_undefined(p,size) ASAN_UNPOISON_MEMORY_REGION(p,size) +#define mi_track_mem_noaccess(p,size) ASAN_POISON_MEMORY_REGION(p,size) + +#elif MI_TRACK_ETW +// windows event tracing + +#define MI_TRACK_ENABLED 1 +#define MI_TRACK_HEAP_DESTROY 1 +#define MI_TRACK_TOOL "ETW" + +#define WIN32_LEAN_AND_MEAN +#include +#include "../src/prim/windows/etw.h" + +#define mi_track_init() EventRegistermicrosoft_windows_mimalloc(); +#define mi_track_malloc_size(p,reqsize,size,zero) EventWriteETW_MI_ALLOC((UINT64)(p), size) +#define mi_track_free_size(p,size) EventWriteETW_MI_FREE((UINT64)(p), size) + +#else +// no tracking + +#define MI_TRACK_ENABLED 0 +#define MI_TRACK_HEAP_DESTROY 0 +#define MI_TRACK_TOOL "none" + +#define mi_track_malloc_size(p,reqsize,size,zero) +#define mi_track_free_size(p,_size) + +#endif + +// ------------------- +// Utility definitions + +#ifndef mi_track_resize +#define mi_track_resize(p,oldsize,newsize) mi_track_free_size(p,oldsize); mi_track_malloc(p,newsize,false) +#endif + +#ifndef mi_track_align +#define mi_track_align(p,alignedp,offset,size) mi_track_mem_noaccess(p,offset) +#endif + +#ifndef mi_track_init +#define mi_track_init() +#endif + +#ifndef mi_track_mem_defined +#define mi_track_mem_defined(p,size) +#endif + +#ifndef mi_track_mem_undefined +#define mi_track_mem_undefined(p,size) +#endif + +#ifndef mi_track_mem_noaccess +#define mi_track_mem_noaccess(p,size) +#endif + + +#if MI_PADDING +#define mi_track_malloc(p,reqsize,zero) \ + if ((p)!=NULL) { \ + mi_assert_internal(mi_usable_size(p)==(reqsize)); \ + mi_track_malloc_size(p,reqsize,reqsize,zero); \ + } +#else +#define mi_track_malloc(p,reqsize,zero) \ + if ((p)!=NULL) { \ + mi_assert_internal(mi_usable_size(p)>=(reqsize)); \ + mi_track_malloc_size(p,reqsize,mi_usable_size(p),zero); \ + } +#endif + +#endif diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/mimalloc/mimalloc/types.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/mimalloc/mimalloc/types.h new file mode 100644 index 000000000..354839ba9 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/mimalloc/mimalloc/types.h @@ -0,0 +1,721 @@ +/* ---------------------------------------------------------------------------- +Copyright (c) 2018-2023, Microsoft Research, Daan Leijen +This is free software; you can redistribute it and/or modify it under the +terms of the MIT license. A copy of the license can be found in the file +"LICENSE" at the root of this distribution. +-----------------------------------------------------------------------------*/ +#pragma once +#ifndef MIMALLOC_TYPES_H +#define MIMALLOC_TYPES_H + +// -------------------------------------------------------------------------- +// This file contains the main type definitions for mimalloc: +// mi_heap_t : all data for a thread-local heap, contains +// lists of all managed heap pages. +// mi_segment_t : a larger chunk of memory (32GiB) from where pages +// are allocated. +// mi_page_t : a mimalloc page (usually 64KiB or 512KiB) from +// where objects are allocated. +// -------------------------------------------------------------------------- + + +#include // ptrdiff_t +#include // uintptr_t, uint16_t, etc +#include "atomic.h" // _Atomic + +#ifdef _MSC_VER +#pragma warning(disable:4214) // bitfield is not int +#endif + +// Minimal alignment necessary. On most platforms 16 bytes are needed +// due to SSE registers for example. This must be at least `sizeof(void*)` +#ifndef MI_MAX_ALIGN_SIZE +#define MI_MAX_ALIGN_SIZE 16 // sizeof(max_align_t) +#endif + +#define MI_CACHE_LINE 64 +#if defined(_MSC_VER) +#pragma warning(disable:4127) // suppress constant conditional warning (due to MI_SECURE paths) +#pragma warning(disable:26812) // unscoped enum warning +#define mi_decl_noinline __declspec(noinline) +#define mi_decl_thread __declspec(thread) +#define mi_decl_cache_align __declspec(align(MI_CACHE_LINE)) +#elif (defined(__GNUC__) && (__GNUC__ >= 3)) || defined(__clang__) // includes clang and icc +#define mi_decl_noinline __attribute__((noinline)) +#define mi_decl_thread __thread +#define mi_decl_cache_align __attribute__((aligned(MI_CACHE_LINE))) +#else +#define mi_decl_noinline +#define mi_decl_thread __thread // hope for the best :-) +#define mi_decl_cache_align +#endif + +// ------------------------------------------------------ +// Variants +// ------------------------------------------------------ + +// Define NDEBUG in the release version to disable assertions. +// #define NDEBUG + +// Define MI_TRACK_ to enable tracking support +// #define MI_TRACK_VALGRIND 1 +// #define MI_TRACK_ASAN 1 +// #define MI_TRACK_ETW 1 + +// Define MI_STAT as 1 to maintain statistics; set it to 2 to have detailed statistics (but costs some performance). +// #define MI_STAT 1 + +// Define MI_SECURE to enable security mitigations +// #define MI_SECURE 1 // guard page around metadata +// #define MI_SECURE 2 // guard page around each mimalloc page +// #define MI_SECURE 3 // encode free lists (detect corrupted free list (buffer overflow), and invalid pointer free) +// #define MI_SECURE 4 // checks for double free. (may be more expensive) + +#if !defined(MI_SECURE) +#define MI_SECURE 0 +#endif + +// Define MI_DEBUG for debug mode +// #define MI_DEBUG 1 // basic assertion checks and statistics, check double free, corrupted free list, and invalid pointer free. +// #define MI_DEBUG 2 // + internal assertion checks +// #define MI_DEBUG 3 // + extensive internal invariant checking (cmake -DMI_DEBUG_FULL=ON) +#if !defined(MI_DEBUG) +#if !defined(NDEBUG) || defined(_DEBUG) +#define MI_DEBUG 2 +#else +#define MI_DEBUG 0 +#endif +#endif + +// Reserve extra padding at the end of each block to be more resilient against heap block overflows. +// The padding can detect buffer overflow on free. +#if !defined(MI_PADDING) && (MI_SECURE>=3 || MI_DEBUG>=1 || (MI_TRACK_VALGRIND || MI_TRACK_ASAN || MI_TRACK_ETW)) +#define MI_PADDING 1 +#endif + +// Check padding bytes; allows byte-precise buffer overflow detection +#if !defined(MI_PADDING_CHECK) && MI_PADDING && (MI_SECURE>=3 || MI_DEBUG>=1) +#define MI_PADDING_CHECK 1 +#endif + + +// Encoded free lists allow detection of corrupted free lists +// and can detect buffer overflows, modify after free, and double `free`s. +#if (MI_SECURE>=3 || MI_DEBUG>=1) +#define MI_ENCODE_FREELIST 1 +#endif + + +// We used to abandon huge pages but to eagerly deallocate if freed from another thread, +// but that makes it not possible to visit them during a heap walk or include them in a +// `mi_heap_destroy`. We therefore instead reset/decommit the huge blocks if freed from +// another thread so most memory is available until it gets properly freed by the owning thread. +// #define MI_HUGE_PAGE_ABANDON 1 + + +// ------------------------------------------------------ +// Platform specific values +// ------------------------------------------------------ + +// ------------------------------------------------------ +// Size of a pointer. +// We assume that `sizeof(void*)==sizeof(intptr_t)` +// and it holds for all platforms we know of. +// +// However, the C standard only requires that: +// p == (void*)((intptr_t)p)) +// but we also need: +// i == (intptr_t)((void*)i) +// or otherwise one might define an intptr_t type that is larger than a pointer... +// ------------------------------------------------------ + +#if INTPTR_MAX > INT64_MAX +# define MI_INTPTR_SHIFT (4) // assume 128-bit (as on arm CHERI for example) +#elif INTPTR_MAX == INT64_MAX +# define MI_INTPTR_SHIFT (3) +#elif INTPTR_MAX == INT32_MAX +# define MI_INTPTR_SHIFT (2) +#else +#error platform pointers must be 32, 64, or 128 bits +#endif + +#if SIZE_MAX == UINT64_MAX +# define MI_SIZE_SHIFT (3) +typedef int64_t mi_ssize_t; +#elif SIZE_MAX == UINT32_MAX +# define MI_SIZE_SHIFT (2) +typedef int32_t mi_ssize_t; +#else +#error platform objects must be 32 or 64 bits +#endif + +#if (SIZE_MAX/2) > LONG_MAX +# define MI_ZU(x) x##ULL +# define MI_ZI(x) x##LL +#else +# define MI_ZU(x) x##UL +# define MI_ZI(x) x##L +#endif + +#define MI_INTPTR_SIZE (1< 4 +#define MI_SEGMENT_SHIFT ( 9 + MI_SEGMENT_SLICE_SHIFT) // 32MiB +#else +#define MI_SEGMENT_SHIFT ( 7 + MI_SEGMENT_SLICE_SHIFT) // 4MiB on 32-bit +#endif + +#define MI_SMALL_PAGE_SHIFT (MI_SEGMENT_SLICE_SHIFT) // 64KiB +#define MI_MEDIUM_PAGE_SHIFT ( 3 + MI_SMALL_PAGE_SHIFT) // 512KiB + + +// Derived constants +#define MI_SEGMENT_SIZE (MI_ZU(1)<= 655360) +#error "mimalloc internal: define more bins" +#endif + +// Maximum slice offset (15) +#define MI_MAX_SLICE_OFFSET ((MI_ALIGNMENT_MAX / MI_SEGMENT_SLICE_SIZE) - 1) + +// Used as a special value to encode block sizes in 32 bits. +#define MI_HUGE_BLOCK_SIZE ((uint32_t)(2*MI_GiB)) + +// blocks up to this size are always allocated aligned +#define MI_MAX_ALIGN_GUARANTEE (8*MI_MAX_ALIGN_SIZE) + +// Alignments over MI_ALIGNMENT_MAX are allocated in dedicated huge page segments +#define MI_ALIGNMENT_MAX (MI_SEGMENT_SIZE >> 1) + + +// ------------------------------------------------------ +// Mimalloc pages contain allocated blocks +// ------------------------------------------------------ + +// The free lists use encoded next fields +// (Only actually encodes when MI_ENCODED_FREELIST is defined.) +typedef uintptr_t mi_encoded_t; + +// thread id's +typedef size_t mi_threadid_t; + +// free lists contain blocks +typedef struct mi_block_s { + mi_encoded_t next; +} mi_block_t; + + +// The delayed flags are used for efficient multi-threaded free-ing +typedef enum mi_delayed_e { + MI_USE_DELAYED_FREE = 0, // push on the owning heap thread delayed list + MI_DELAYED_FREEING = 1, // temporary: another thread is accessing the owning heap + MI_NO_DELAYED_FREE = 2, // optimize: push on page local thread free queue if another block is already in the heap thread delayed free list + MI_NEVER_DELAYED_FREE = 3 // sticky, only resets on page reclaim +} mi_delayed_t; + + +// The `in_full` and `has_aligned` page flags are put in a union to efficiently +// test if both are false (`full_aligned == 0`) in the `mi_free` routine. +#if !MI_TSAN +typedef union mi_page_flags_s { + uint8_t full_aligned; + struct { + uint8_t in_full : 1; + uint8_t has_aligned : 1; + } x; +} mi_page_flags_t; +#else +// under thread sanitizer, use a byte for each flag to suppress warning, issue #130 +typedef union mi_page_flags_s { + uint16_t full_aligned; + struct { + uint8_t in_full; + uint8_t has_aligned; + } x; +} mi_page_flags_t; +#endif + +// Thread free list. +// We use the bottom 2 bits of the pointer for mi_delayed_t flags +typedef uintptr_t mi_thread_free_t; + +// A page contains blocks of one specific size (`block_size`). +// Each page has three list of free blocks: +// `free` for blocks that can be allocated, +// `local_free` for freed blocks that are not yet available to `mi_malloc` +// `thread_free` for freed blocks by other threads +// The `local_free` and `thread_free` lists are migrated to the `free` list +// when it is exhausted. The separate `local_free` list is necessary to +// implement a monotonic heartbeat. The `thread_free` list is needed for +// avoiding atomic operations in the common case. +// +// +// `used - |thread_free|` == actual blocks that are in use (alive) +// `used - |thread_free| + |free| + |local_free| == capacity` +// +// We don't count `freed` (as |free|) but use `used` to reduce +// the number of memory accesses in the `mi_page_all_free` function(s). +// +// Notes: +// - Access is optimized for `mi_free` and `mi_page_alloc` (in `alloc.c`) +// - Using `uint16_t` does not seem to slow things down +// - The size is 8 words on 64-bit which helps the page index calculations +// (and 10 words on 32-bit, and encoded free lists add 2 words. Sizes 10 +// and 12 are still good for address calculation) +// - To limit the structure size, the `xblock_size` is 32-bits only; for +// blocks > MI_HUGE_BLOCK_SIZE the size is determined from the segment page size +// - `thread_free` uses the bottom bits as a delayed-free flags to optimize +// concurrent frees where only the first concurrent free adds to the owning +// heap `thread_delayed_free` list (see `alloc.c:mi_free_block_mt`). +// The invariant is that no-delayed-free is only set if there is +// at least one block that will be added, or as already been added, to +// the owning heap `thread_delayed_free` list. This guarantees that pages +// will be freed correctly even if only other threads free blocks. +typedef struct mi_page_s { + // "owned" by the segment + uint32_t slice_count; // slices in this page (0 if not a page) + uint32_t slice_offset; // distance from the actual page data slice (0 if a page) + uint8_t is_committed : 1; // `true` if the page virtual memory is committed + uint8_t is_zero_init : 1; // `true` if the page was initially zero initialized + uint8_t use_qsbr : 1; // delay page freeing using qsbr + uint8_t tag : 4; // tag from the owning heap + uint8_t debug_offset; // number of bytes to preserve when filling freed or uninitialized memory + + // layout like this to optimize access in `mi_malloc` and `mi_free` + uint16_t capacity; // number of blocks committed, must be the first field, see `segment.c:page_clear` + uint16_t reserved; // number of blocks reserved in memory + mi_page_flags_t flags; // `in_full` and `has_aligned` flags (8 bits) + uint8_t free_is_zero : 1; // `true` if the blocks in the free list are zero initialized + uint8_t retire_expire : 7; // expiration count for retired blocks + + mi_block_t* free; // list of available free blocks (`malloc` allocates from this list) + uint32_t used; // number of blocks in use (including blocks in `local_free` and `thread_free`) + uint32_t xblock_size; // size available in each block (always `>0`) + mi_block_t* local_free; // list of deferred free blocks by this thread (migrates to `free`) + + #if (MI_ENCODE_FREELIST || MI_PADDING) + uintptr_t keys[2]; // two random keys to encode the free lists (see `_mi_block_next`) or padding canary + #endif + + _Atomic(mi_thread_free_t) xthread_free; // list of deferred free blocks freed by other threads + _Atomic(uintptr_t) xheap; + + struct mi_page_s* next; // next page owned by this thread with the same `block_size` + struct mi_page_s* prev; // previous page owned by this thread with the same `block_size` + +#ifdef Py_GIL_DISABLED + struct llist_node qsbr_node; + uint64_t qsbr_goal; +#endif + + // 64-bit 9 words, 32-bit 12 words, (+2 for secure) + #if MI_INTPTR_SIZE==8 && !defined(Py_GIL_DISABLED) + uintptr_t padding[1]; + #endif +} mi_page_t; + + + +// ------------------------------------------------------ +// Mimalloc segments contain mimalloc pages +// ------------------------------------------------------ + +typedef enum mi_page_kind_e { + MI_PAGE_SMALL, // small blocks go into 64KiB pages inside a segment + MI_PAGE_MEDIUM, // medium blocks go into medium pages inside a segment + MI_PAGE_LARGE, // larger blocks go into a page of just one block + MI_PAGE_HUGE, // huge blocks (> 16 MiB) are put into a single page in a single segment. +} mi_page_kind_t; + +typedef enum mi_segment_kind_e { + MI_SEGMENT_NORMAL, // MI_SEGMENT_SIZE size with pages inside. + MI_SEGMENT_HUGE, // > MI_LARGE_SIZE_MAX segment with just one huge page inside. +} mi_segment_kind_t; + +// ------------------------------------------------------ +// A segment holds a commit mask where a bit is set if +// the corresponding MI_COMMIT_SIZE area is committed. +// The MI_COMMIT_SIZE must be a multiple of the slice +// size. If it is equal we have the most fine grained +// decommit (but setting it higher can be more efficient). +// The MI_MINIMAL_COMMIT_SIZE is the minimal amount that will +// be committed in one go which can be set higher than +// MI_COMMIT_SIZE for efficiency (while the decommit mask +// is still tracked in fine-grained MI_COMMIT_SIZE chunks) +// ------------------------------------------------------ + +#define MI_MINIMAL_COMMIT_SIZE (1*MI_SEGMENT_SLICE_SIZE) +#define MI_COMMIT_SIZE (MI_SEGMENT_SLICE_SIZE) // 64KiB +#define MI_COMMIT_MASK_BITS (MI_SEGMENT_SIZE / MI_COMMIT_SIZE) +#define MI_COMMIT_MASK_FIELD_BITS MI_SIZE_BITS +#define MI_COMMIT_MASK_FIELD_COUNT (MI_COMMIT_MASK_BITS / MI_COMMIT_MASK_FIELD_BITS) + +#if (MI_COMMIT_MASK_BITS != (MI_COMMIT_MASK_FIELD_COUNT * MI_COMMIT_MASK_FIELD_BITS)) +#error "the segment size must be exactly divisible by the (commit size * size_t bits)" +#endif + +typedef struct mi_commit_mask_s { + size_t mask[MI_COMMIT_MASK_FIELD_COUNT]; +} mi_commit_mask_t; + +typedef mi_page_t mi_slice_t; +typedef int64_t mi_msecs_t; + + +// Memory can reside in arena's, direct OS allocated, or statically allocated. The memid keeps track of this. +typedef enum mi_memkind_e { + MI_MEM_NONE, // not allocated + MI_MEM_EXTERNAL, // not owned by mimalloc but provided externally (via `mi_manage_os_memory` for example) + MI_MEM_STATIC, // allocated in a static area and should not be freed (for arena meta data for example) + MI_MEM_OS, // allocated from the OS + MI_MEM_OS_HUGE, // allocated as huge os pages + MI_MEM_OS_REMAP, // allocated in a remapable area (i.e. using `mremap`) + MI_MEM_ARENA // allocated from an arena (the usual case) +} mi_memkind_t; + +static inline bool mi_memkind_is_os(mi_memkind_t memkind) { + return (memkind >= MI_MEM_OS && memkind <= MI_MEM_OS_REMAP); +} + +typedef struct mi_memid_os_info { + void* base; // actual base address of the block (used for offset aligned allocations) + size_t alignment; // alignment at allocation +} mi_memid_os_info_t; + +typedef struct mi_memid_arena_info { + size_t block_index; // index in the arena + mi_arena_id_t id; // arena id (>= 1) + bool is_exclusive; // the arena can only be used for specific arena allocations +} mi_memid_arena_info_t; + +typedef struct mi_memid_s { + union { + mi_memid_os_info_t os; // only used for MI_MEM_OS + mi_memid_arena_info_t arena; // only used for MI_MEM_ARENA + } mem; + bool is_pinned; // `true` if we cannot decommit/reset/protect in this memory (e.g. when allocated using large OS pages) + bool initially_committed;// `true` if the memory was originally allocated as committed + bool initially_zero; // `true` if the memory was originally zero initialized + mi_memkind_t memkind; +} mi_memid_t; + + +// Segments are large allocated memory blocks (8mb on 64 bit) from +// the OS. Inside segments we allocated fixed size _pages_ that +// contain blocks. +typedef struct mi_segment_s { + // constant fields + mi_memid_t memid; // memory id for arena allocation + bool allow_decommit; + bool allow_purge; + size_t segment_size; + + // segment fields + mi_msecs_t purge_expire; + mi_commit_mask_t purge_mask; + mi_commit_mask_t commit_mask; + + _Atomic(struct mi_segment_s*) abandoned_next; + + // from here is zero initialized + struct mi_segment_s* next; // the list of freed segments in the cache (must be first field, see `segment.c:mi_segment_init`) + + size_t abandoned; // abandoned pages (i.e. the original owning thread stopped) (`abandoned <= used`) + size_t abandoned_visits; // count how often this segment is visited in the abandoned list (to force reclaim it it is too long) + size_t used; // count of pages in use + uintptr_t cookie; // verify addresses in debug mode: `mi_ptr_cookie(segment) == segment->cookie` + + size_t segment_slices; // for huge segments this may be different from `MI_SLICES_PER_SEGMENT` + size_t segment_info_slices; // initial slices we are using segment info and possible guard pages. + + // layout like this to optimize access in `mi_free` + mi_segment_kind_t kind; + size_t slice_entries; // entries in the `slices` array, at most `MI_SLICES_PER_SEGMENT` + _Atomic(mi_threadid_t) thread_id; // unique id of the thread owning this segment + + mi_slice_t slices[MI_SLICES_PER_SEGMENT+1]; // one more for huge blocks with large alignment +} mi_segment_t; + +typedef uintptr_t mi_tagged_segment_t; + +// Segments unowned by any thread are put in a shared pool +typedef struct mi_abandoned_pool_s { + // This is a list of visited abandoned pages that were full at the time. + // this list migrates to `abandoned` when that becomes NULL. The use of + // this list reduces contention and the rate at which segments are visited. + mi_decl_cache_align _Atomic(mi_segment_t*) abandoned_visited; // = NULL + + // The abandoned page list (tagged as it supports pop) + mi_decl_cache_align _Atomic(mi_tagged_segment_t) abandoned; // = NULL + + // Maintain these for debug purposes (these counts may be a bit off) + mi_decl_cache_align _Atomic(size_t) abandoned_count; + mi_decl_cache_align _Atomic(size_t) abandoned_visited_count; + + // We also maintain a count of current readers of the abandoned list + // in order to prevent resetting/decommitting segment memory if it might + // still be read. + mi_decl_cache_align _Atomic(size_t) abandoned_readers; // = 0 +} mi_abandoned_pool_t; + + +// ------------------------------------------------------ +// Heaps +// Provide first-class heaps to allocate from. +// A heap just owns a set of pages for allocation and +// can only be allocate/reallocate from the thread that created it. +// Freeing blocks can be done from any thread though. +// Per thread, the segments are shared among its heaps. +// Per thread, there is always a default heap that is +// used for allocation; it is initialized to statically +// point to an empty heap to avoid initialization checks +// in the fast path. +// ------------------------------------------------------ + +// Thread local data +typedef struct mi_tld_s mi_tld_t; + +// Pages of a certain block size are held in a queue. +typedef struct mi_page_queue_s { + mi_page_t* first; + mi_page_t* last; + size_t block_size; +} mi_page_queue_t; + +#define MI_BIN_FULL (MI_BIN_HUGE+1) + +// Random context +typedef struct mi_random_cxt_s { + uint32_t input[16]; + uint32_t output[16]; + int output_available; + bool weak; +} mi_random_ctx_t; + + +// In debug mode there is a padding structure at the end of the blocks to check for buffer overflows +#if (MI_PADDING) +typedef struct mi_padding_s { + uint32_t canary; // encoded block value to check validity of the padding (in case of overflow) + uint32_t delta; // padding bytes before the block. (mi_usable_size(p) - delta == exact allocated bytes) +} mi_padding_t; +#define MI_PADDING_SIZE (sizeof(mi_padding_t)) +#define MI_PADDING_WSIZE ((MI_PADDING_SIZE + MI_INTPTR_SIZE - 1) / MI_INTPTR_SIZE) +#else +#define MI_PADDING_SIZE 0 +#define MI_PADDING_WSIZE 0 +#endif + +#define MI_PAGES_DIRECT (MI_SMALL_WSIZE_MAX + MI_PADDING_WSIZE + 1) + + +// A heap owns a set of pages. +struct mi_heap_s { + mi_tld_t* tld; + mi_page_t* pages_free_direct[MI_PAGES_DIRECT]; // optimize: array where every entry points a page with possibly free blocks in the corresponding queue for that size. + mi_page_queue_t pages[MI_BIN_FULL + 1]; // queue of pages for each size class (or "bin") + _Atomic(mi_block_t*) thread_delayed_free; + mi_threadid_t thread_id; // thread this heap belongs too + mi_arena_id_t arena_id; // arena id if the heap belongs to a specific arena (or 0) + uintptr_t cookie; // random cookie to verify pointers (see `_mi_ptr_cookie`) + uintptr_t keys[2]; // two random keys used to encode the `thread_delayed_free` list + mi_random_ctx_t random; // random number context used for secure allocation + size_t page_count; // total number of pages in the `pages` queues. + size_t page_retired_min; // smallest retired index (retired pages are fully free, but still in the page queues) + size_t page_retired_max; // largest retired index into the `pages` array. + mi_heap_t* next; // list of heaps per thread + bool no_reclaim; // `true` if this heap should not reclaim abandoned pages + uint8_t tag; // custom identifier for this heap + uint8_t debug_offset; // number of bytes to preserve when filling freed or uninitialized memory + bool page_use_qsbr; // should freeing pages be delayed using QSBR +}; + + + +// ------------------------------------------------------ +// Debug +// ------------------------------------------------------ + +#if !defined(MI_DEBUG_UNINIT) +#define MI_DEBUG_UNINIT (0xD0) +#endif +#if !defined(MI_DEBUG_FREED) +#define MI_DEBUG_FREED (0xDF) +#endif +#if !defined(MI_DEBUG_PADDING) +#define MI_DEBUG_PADDING (0xDE) +#endif + +#if (MI_DEBUG) +// use our own assertion to print without memory allocation +void _mi_assert_fail(const char* assertion, const char* fname, unsigned int line, const char* func ); +#define mi_assert(expr) ((expr) ? (void)0 : _mi_assert_fail(#expr,__FILE__,__LINE__,__func__)) +#else +#define mi_assert(x) +#endif + +#if (MI_DEBUG>1) +#define mi_assert_internal mi_assert +#else +#define mi_assert_internal(x) +#endif + +#if (MI_DEBUG>2) +#define mi_assert_expensive mi_assert +#else +#define mi_assert_expensive(x) +#endif + +// ------------------------------------------------------ +// Statistics +// ------------------------------------------------------ + +#ifndef MI_STAT +#if (MI_DEBUG>0) +#define MI_STAT 2 +#else +#define MI_STAT 0 +#endif +#endif + +typedef struct mi_stat_count_s { + int64_t allocated; + int64_t freed; + int64_t peak; + int64_t current; +} mi_stat_count_t; + +typedef struct mi_stat_counter_s { + int64_t total; + int64_t count; +} mi_stat_counter_t; + +typedef struct mi_stats_s { + mi_stat_count_t segments; + mi_stat_count_t pages; + mi_stat_count_t reserved; + mi_stat_count_t committed; + mi_stat_count_t reset; + mi_stat_count_t purged; + mi_stat_count_t page_committed; + mi_stat_count_t segments_abandoned; + mi_stat_count_t pages_abandoned; + mi_stat_count_t threads; + mi_stat_count_t normal; + mi_stat_count_t huge; + mi_stat_count_t large; + mi_stat_count_t malloc; + mi_stat_count_t segments_cache; + mi_stat_counter_t pages_extended; + mi_stat_counter_t mmap_calls; + mi_stat_counter_t commit_calls; + mi_stat_counter_t reset_calls; + mi_stat_counter_t purge_calls; + mi_stat_counter_t page_no_retire; + mi_stat_counter_t searches; + mi_stat_counter_t normal_count; + mi_stat_counter_t huge_count; + mi_stat_counter_t large_count; +#if MI_STAT>1 + mi_stat_count_t normal_bins[MI_BIN_HUGE+1]; +#endif +} mi_stats_t; + + +void _mi_stat_increase(mi_stat_count_t* stat, size_t amount); +void _mi_stat_decrease(mi_stat_count_t* stat, size_t amount); +void _mi_stat_counter_increase(mi_stat_counter_t* stat, size_t amount); + +#if (MI_STAT) +#define mi_stat_increase(stat,amount) _mi_stat_increase( &(stat), amount) +#define mi_stat_decrease(stat,amount) _mi_stat_decrease( &(stat), amount) +#define mi_stat_counter_increase(stat,amount) _mi_stat_counter_increase( &(stat), amount) +#else +#define mi_stat_increase(stat,amount) (void)0 +#define mi_stat_decrease(stat,amount) (void)0 +#define mi_stat_counter_increase(stat,amount) (void)0 +#endif + +#define mi_heap_stat_counter_increase(heap,stat,amount) mi_stat_counter_increase( (heap)->tld->stats.stat, amount) +#define mi_heap_stat_increase(heap,stat,amount) mi_stat_increase( (heap)->tld->stats.stat, amount) +#define mi_heap_stat_decrease(heap,stat,amount) mi_stat_decrease( (heap)->tld->stats.stat, amount) + +// ------------------------------------------------------ +// Thread Local data +// ------------------------------------------------------ + +// A "span" is is an available range of slices. The span queues keep +// track of slice spans of at most the given `slice_count` (but more than the previous size class). +typedef struct mi_span_queue_s { + mi_slice_t* first; + mi_slice_t* last; + size_t slice_count; +} mi_span_queue_t; + +#define MI_SEGMENT_BIN_MAX (35) // 35 == mi_segment_bin(MI_SLICES_PER_SEGMENT) + +// OS thread local data +typedef struct mi_os_tld_s { + size_t region_idx; // start point for next allocation + mi_stats_t* stats; // points to tld stats +} mi_os_tld_t; + + +// Segments thread local data +typedef struct mi_segments_tld_s { + mi_span_queue_t spans[MI_SEGMENT_BIN_MAX+1]; // free slice spans inside segments + size_t count; // current number of segments; + size_t peak_count; // peak number of segments + size_t current_size; // current size of all segments + size_t peak_size; // peak size of all segments + mi_stats_t* stats; // points to tld stats + mi_os_tld_t* os; // points to os stats + mi_abandoned_pool_t* abandoned; // pool of abandoned segments +} mi_segments_tld_t; + +// Thread local data +struct mi_tld_s { + unsigned long long heartbeat; // monotonic heartbeat count + bool recurse; // true if deferred was called; used to prevent infinite recursion. + mi_heap_t* heap_backing; // backing heap of this thread (cannot be deleted) + mi_heap_t* heaps; // list of heaps in this thread (so we can abandon all when the thread terminates) + mi_segments_tld_t segments; // segment tld + mi_os_tld_t os; // os tld + mi_stats_t stats; // statistics +}; + +#endif diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_abstract.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_abstract.h new file mode 100644 index 000000000..3cc0afac4 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_abstract.h @@ -0,0 +1,61 @@ +#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); +} + +PyObject *_PyNumber_PowerNoMod(PyObject *lhs, PyObject *rhs); +PyObject *_PyNumber_InPlacePowerNoMod(PyObject *lhs, PyObject *rhs); + +extern int _PyObject_HasLen(PyObject *o); + +/* === Sequence protocol ================================================ */ + +#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. */ +extern Py_ssize_t _PySequence_IterSearch(PyObject *seq, + PyObject *obj, int operation); + +/* === Mapping protocol ================================================= */ + +extern int _PyObject_RealIsInstance(PyObject *inst, PyObject *cls); + +extern int _PyObject_RealIsSubclass(PyObject *derived, PyObject *cls); + +// Convert Python int to Py_ssize_t. Do nothing if the argument is None. +// Export for '_bisect' shared extension. +PyAPI_FUNC(int) _Py_convert_optional_to_ssize_t(PyObject *, void *); + +// Same as PyNumber_Index() but can return an instance of a subclass of int. +// Export for 'math' shared extension. +PyAPI_FUNC(PyObject*) _PyNumber_Index(PyObject *o); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_ABSTRACT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_asdl.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_asdl.h new file mode 100644 index 000000000..afeada88d --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_asdl.h @@ -0,0 +1,112 @@ +#ifndef Py_INTERNAL_ASDL_H +#define Py_INTERNAL_ASDL_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_pyarena.h" // _PyArena_Malloc() + +typedef PyObject * identifier; +typedef PyObject * string; +typedef PyObject * object; +typedef PyObject * constant; + +/* It would be nice if the code generated by asdl_c.py was completely + independent of Python, but it is a goal the requires too much work + at this stage. So, for example, I'll represent identifiers as + interned Python strings. +*/ + +#define _ASDL_SEQ_HEAD \ + Py_ssize_t size; \ + void **elements; + +typedef struct { + _ASDL_SEQ_HEAD +} asdl_seq; + +typedef struct { + _ASDL_SEQ_HEAD + void *typed_elements[1]; +} asdl_generic_seq; + +typedef struct { + _ASDL_SEQ_HEAD + PyObject *typed_elements[1]; +} asdl_identifier_seq; + +typedef struct { + _ASDL_SEQ_HEAD + int typed_elements[1]; +} asdl_int_seq; + +asdl_generic_seq *_Py_asdl_generic_seq_new(Py_ssize_t size, PyArena *arena); +asdl_identifier_seq *_Py_asdl_identifier_seq_new(Py_ssize_t size, PyArena *arena); +asdl_int_seq *_Py_asdl_int_seq_new(Py_ssize_t size, PyArena *arena); + + +#define GENERATE_ASDL_SEQ_CONSTRUCTOR(NAME, TYPE) \ +asdl_ ## NAME ## _seq *_Py_asdl_ ## NAME ## _seq_new(Py_ssize_t size, PyArena *arena) \ +{ \ + asdl_ ## NAME ## _seq *seq = NULL; \ + size_t n; \ + /* check size is sane */ \ + if (size < 0 || \ + (size && (((size_t)size - 1) > (SIZE_MAX / sizeof(void *))))) { \ + PyErr_NoMemory(); \ + return NULL; \ + } \ + n = (size ? (sizeof(TYPE *) * (size - 1)) : 0); \ + /* check if size can be added safely */ \ + if (n > SIZE_MAX - sizeof(asdl_ ## NAME ## _seq)) { \ + PyErr_NoMemory(); \ + return NULL; \ + } \ + n += sizeof(asdl_ ## NAME ## _seq); \ + seq = (asdl_ ## NAME ## _seq *)_PyArena_Malloc(arena, n); \ + if (!seq) { \ + PyErr_NoMemory(); \ + return NULL; \ + } \ + memset(seq, 0, n); \ + seq->size = size; \ + seq->elements = (void**)seq->typed_elements; \ + return seq; \ +} + +#define asdl_seq_GET_UNTYPED(S, I) _Py_RVALUE((S)->elements[(I)]) +#define asdl_seq_GET(S, I) _Py_RVALUE((S)->typed_elements[(I)]) +#define asdl_seq_LEN(S) _Py_RVALUE(((S) == NULL ? 0 : (S)->size)) + +#ifdef Py_DEBUG +# define asdl_seq_SET(S, I, V) \ + do { \ + Py_ssize_t _asdl_i = (I); \ + assert((S) != NULL); \ + assert(0 <= _asdl_i && _asdl_i < (S)->size); \ + (S)->typed_elements[_asdl_i] = (V); \ + } while (0) +#else +# define asdl_seq_SET(S, I, V) _Py_RVALUE((S)->typed_elements[(I)] = (V)) +#endif + +#ifdef Py_DEBUG +# define asdl_seq_SET_UNTYPED(S, I, V) \ + do { \ + Py_ssize_t _asdl_i = (I); \ + assert((S) != NULL); \ + assert(0 <= _asdl_i && _asdl_i < (S)->size); \ + (S)->elements[_asdl_i] = (V); \ + } while (0) +#else +# define asdl_seq_SET_UNTYPED(S, I, V) _Py_RVALUE((S)->elements[(I)] = (V)) +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_ASDL_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_ast.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_ast.h new file mode 100644 index 000000000..f5bf1205a --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_ast.h @@ -0,0 +1,926 @@ +// File automatically generated by Parser/asdl_c.py. + +#ifndef Py_INTERNAL_AST_H +#define Py_INTERNAL_AST_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_asdl.h" // _ASDL_SEQ_HEAD + +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 _boolop { And=1, Or=2 } boolop_ty; + +typedef enum _operator { Add=1, Sub=2, Mult=3, MatMult=4, Div=5, Mod=6, Pow=7, + LShift=8, RShift=9, BitOr=10, BitXor=11, BitAnd=12, + FloorDiv=13 } operator_ty; + +typedef enum _unaryop { Invert=1, Not=2, UAdd=3, USub=4 } unaryop_ty; + +typedef enum _cmpop { Eq=1, NotEq=2, Lt=3, LtE=4, Gt=5, GtE=6, Is=7, IsNot=8, + In=9, NotIn=10 } cmpop_ty; + +typedef struct _comprehension *comprehension_ty; + +typedef struct _excepthandler *excepthandler_ty; + +typedef struct _arguments *arguments_ty; + +typedef struct _arg *arg_ty; + +typedef struct _keyword *keyword_ty; + +typedef struct _alias *alias_ty; + +typedef struct _withitem *withitem_ty; + +typedef struct _match_case *match_case_ty; + +typedef struct _pattern *pattern_ty; + +typedef struct _type_ignore *type_ignore_ty; + +typedef struct _type_param *type_param_ty; + + +typedef struct { + _ASDL_SEQ_HEAD + mod_ty typed_elements[1]; +} asdl_mod_seq; + +asdl_mod_seq *_Py_asdl_mod_seq_new(Py_ssize_t size, PyArena *arena); + +typedef struct { + _ASDL_SEQ_HEAD + stmt_ty typed_elements[1]; +} asdl_stmt_seq; + +asdl_stmt_seq *_Py_asdl_stmt_seq_new(Py_ssize_t size, PyArena *arena); + +typedef struct { + _ASDL_SEQ_HEAD + expr_ty typed_elements[1]; +} asdl_expr_seq; + +asdl_expr_seq *_Py_asdl_expr_seq_new(Py_ssize_t size, PyArena *arena); + +typedef struct { + _ASDL_SEQ_HEAD + comprehension_ty typed_elements[1]; +} asdl_comprehension_seq; + +asdl_comprehension_seq *_Py_asdl_comprehension_seq_new(Py_ssize_t size, PyArena + *arena); + +typedef struct { + _ASDL_SEQ_HEAD + excepthandler_ty typed_elements[1]; +} asdl_excepthandler_seq; + +asdl_excepthandler_seq *_Py_asdl_excepthandler_seq_new(Py_ssize_t size, PyArena + *arena); + +typedef struct { + _ASDL_SEQ_HEAD + arguments_ty typed_elements[1]; +} asdl_arguments_seq; + +asdl_arguments_seq *_Py_asdl_arguments_seq_new(Py_ssize_t size, PyArena *arena); + +typedef struct { + _ASDL_SEQ_HEAD + arg_ty typed_elements[1]; +} asdl_arg_seq; + +asdl_arg_seq *_Py_asdl_arg_seq_new(Py_ssize_t size, PyArena *arena); + +typedef struct { + _ASDL_SEQ_HEAD + keyword_ty typed_elements[1]; +} asdl_keyword_seq; + +asdl_keyword_seq *_Py_asdl_keyword_seq_new(Py_ssize_t size, PyArena *arena); + +typedef struct { + _ASDL_SEQ_HEAD + alias_ty typed_elements[1]; +} asdl_alias_seq; + +asdl_alias_seq *_Py_asdl_alias_seq_new(Py_ssize_t size, PyArena *arena); + +typedef struct { + _ASDL_SEQ_HEAD + withitem_ty typed_elements[1]; +} asdl_withitem_seq; + +asdl_withitem_seq *_Py_asdl_withitem_seq_new(Py_ssize_t size, PyArena *arena); + +typedef struct { + _ASDL_SEQ_HEAD + match_case_ty typed_elements[1]; +} asdl_match_case_seq; + +asdl_match_case_seq *_Py_asdl_match_case_seq_new(Py_ssize_t size, PyArena + *arena); + +typedef struct { + _ASDL_SEQ_HEAD + pattern_ty typed_elements[1]; +} asdl_pattern_seq; + +asdl_pattern_seq *_Py_asdl_pattern_seq_new(Py_ssize_t size, PyArena *arena); + +typedef struct { + _ASDL_SEQ_HEAD + type_ignore_ty typed_elements[1]; +} asdl_type_ignore_seq; + +asdl_type_ignore_seq *_Py_asdl_type_ignore_seq_new(Py_ssize_t size, PyArena + *arena); + +typedef struct { + _ASDL_SEQ_HEAD + type_param_ty typed_elements[1]; +} asdl_type_param_seq; + +asdl_type_param_seq *_Py_asdl_type_param_seq_new(Py_ssize_t size, PyArena + *arena); + + +enum _mod_kind {Module_kind=1, Interactive_kind=2, Expression_kind=3, + FunctionType_kind=4}; +struct _mod { + enum _mod_kind kind; + union { + struct { + asdl_stmt_seq *body; + asdl_type_ignore_seq *type_ignores; + } Module; + + struct { + asdl_stmt_seq *body; + } Interactive; + + struct { + expr_ty body; + } Expression; + + struct { + asdl_expr_seq *argtypes; + expr_ty returns; + } FunctionType; + + } v; +}; + +enum _stmt_kind {FunctionDef_kind=1, AsyncFunctionDef_kind=2, ClassDef_kind=3, + Return_kind=4, Delete_kind=5, Assign_kind=6, + TypeAlias_kind=7, AugAssign_kind=8, AnnAssign_kind=9, + For_kind=10, AsyncFor_kind=11, While_kind=12, If_kind=13, + With_kind=14, AsyncWith_kind=15, Match_kind=16, + Raise_kind=17, Try_kind=18, TryStar_kind=19, Assert_kind=20, + Import_kind=21, ImportFrom_kind=22, Global_kind=23, + Nonlocal_kind=24, Expr_kind=25, Pass_kind=26, Break_kind=27, + Continue_kind=28}; +struct _stmt { + enum _stmt_kind kind; + union { + struct { + identifier name; + arguments_ty args; + asdl_stmt_seq *body; + asdl_expr_seq *decorator_list; + expr_ty returns; + string type_comment; + asdl_type_param_seq *type_params; + } FunctionDef; + + struct { + identifier name; + arguments_ty args; + asdl_stmt_seq *body; + asdl_expr_seq *decorator_list; + expr_ty returns; + string type_comment; + asdl_type_param_seq *type_params; + } AsyncFunctionDef; + + struct { + identifier name; + asdl_expr_seq *bases; + asdl_keyword_seq *keywords; + asdl_stmt_seq *body; + asdl_expr_seq *decorator_list; + asdl_type_param_seq *type_params; + } ClassDef; + + struct { + expr_ty value; + } Return; + + struct { + asdl_expr_seq *targets; + } Delete; + + struct { + asdl_expr_seq *targets; + expr_ty value; + string type_comment; + } Assign; + + struct { + expr_ty name; + asdl_type_param_seq *type_params; + expr_ty value; + } TypeAlias; + + struct { + expr_ty target; + operator_ty op; + expr_ty value; + } AugAssign; + + struct { + expr_ty target; + expr_ty annotation; + expr_ty value; + int simple; + } AnnAssign; + + struct { + expr_ty target; + expr_ty iter; + asdl_stmt_seq *body; + asdl_stmt_seq *orelse; + string type_comment; + } For; + + struct { + expr_ty target; + expr_ty iter; + asdl_stmt_seq *body; + asdl_stmt_seq *orelse; + string type_comment; + } AsyncFor; + + struct { + expr_ty test; + asdl_stmt_seq *body; + asdl_stmt_seq *orelse; + } While; + + struct { + expr_ty test; + asdl_stmt_seq *body; + asdl_stmt_seq *orelse; + } If; + + struct { + asdl_withitem_seq *items; + asdl_stmt_seq *body; + string type_comment; + } With; + + struct { + asdl_withitem_seq *items; + asdl_stmt_seq *body; + string type_comment; + } AsyncWith; + + struct { + expr_ty subject; + asdl_match_case_seq *cases; + } Match; + + struct { + expr_ty exc; + expr_ty cause; + } Raise; + + struct { + asdl_stmt_seq *body; + asdl_excepthandler_seq *handlers; + asdl_stmt_seq *orelse; + asdl_stmt_seq *finalbody; + } Try; + + struct { + asdl_stmt_seq *body; + asdl_excepthandler_seq *handlers; + asdl_stmt_seq *orelse; + asdl_stmt_seq *finalbody; + } TryStar; + + struct { + expr_ty test; + expr_ty msg; + } Assert; + + struct { + asdl_alias_seq *names; + } Import; + + struct { + identifier module; + asdl_alias_seq *names; + int level; + } ImportFrom; + + struct { + asdl_identifier_seq *names; + } Global; + + struct { + asdl_identifier_seq *names; + } Nonlocal; + + struct { + expr_ty value; + } Expr; + + } v; + int lineno; + int 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}; +struct _expr { + enum _expr_kind kind; + union { + struct { + boolop_ty op; + asdl_expr_seq *values; + } BoolOp; + + struct { + expr_ty target; + expr_ty value; + } NamedExpr; + + struct { + expr_ty left; + operator_ty op; + expr_ty right; + } BinOp; + + struct { + unaryop_ty op; + expr_ty operand; + } UnaryOp; + + struct { + arguments_ty args; + expr_ty body; + } Lambda; + + struct { + expr_ty test; + expr_ty body; + expr_ty orelse; + } IfExp; + + struct { + asdl_expr_seq *keys; + asdl_expr_seq *values; + } Dict; + + struct { + asdl_expr_seq *elts; + } Set; + + struct { + expr_ty elt; + asdl_comprehension_seq *generators; + } ListComp; + + struct { + expr_ty elt; + asdl_comprehension_seq *generators; + } SetComp; + + struct { + expr_ty key; + expr_ty value; + asdl_comprehension_seq *generators; + } DictComp; + + struct { + expr_ty elt; + asdl_comprehension_seq *generators; + } GeneratorExp; + + struct { + expr_ty value; + } Await; + + struct { + expr_ty value; + } Yield; + + struct { + expr_ty value; + } YieldFrom; + + struct { + expr_ty left; + asdl_int_seq *ops; + asdl_expr_seq *comparators; + } Compare; + + struct { + expr_ty func; + asdl_expr_seq *args; + asdl_keyword_seq *keywords; + } Call; + + struct { + expr_ty value; + int conversion; + expr_ty format_spec; + } FormattedValue; + + struct { + asdl_expr_seq *values; + } JoinedStr; + + struct { + constant value; + string kind; + } Constant; + + struct { + expr_ty value; + identifier attr; + expr_context_ty ctx; + } Attribute; + + struct { + expr_ty value; + expr_ty slice; + expr_context_ty ctx; + } Subscript; + + struct { + expr_ty value; + expr_context_ty ctx; + } Starred; + + struct { + identifier id; + expr_context_ty ctx; + } Name; + + struct { + asdl_expr_seq *elts; + expr_context_ty ctx; + } List; + + struct { + asdl_expr_seq *elts; + expr_context_ty ctx; + } Tuple; + + struct { + expr_ty lower; + expr_ty upper; + expr_ty step; + } Slice; + + } v; + int lineno; + int col_offset; + int end_lineno; + int end_col_offset; +}; + +struct _comprehension { + expr_ty target; + expr_ty iter; + asdl_expr_seq *ifs; + int is_async; +}; + +enum _excepthandler_kind {ExceptHandler_kind=1}; +struct _excepthandler { + enum _excepthandler_kind kind; + union { + struct { + expr_ty type; + identifier name; + asdl_stmt_seq *body; + } ExceptHandler; + + } v; + int lineno; + int col_offset; + int end_lineno; + int end_col_offset; +}; + +struct _arguments { + asdl_arg_seq *posonlyargs; + asdl_arg_seq *args; + arg_ty vararg; + asdl_arg_seq *kwonlyargs; + asdl_expr_seq *kw_defaults; + arg_ty kwarg; + asdl_expr_seq *defaults; +}; + +struct _arg { + identifier arg; + expr_ty annotation; + string type_comment; + int lineno; + int 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; +}; + +struct _alias { + identifier name; + identifier asname; + int lineno; + int col_offset; + int end_lineno; + int end_col_offset; +}; + +struct _withitem { + expr_ty context_expr; + expr_ty optional_vars; +}; + +struct _match_case { + pattern_ty pattern; + expr_ty guard; + asdl_stmt_seq *body; +}; + +enum _pattern_kind {MatchValue_kind=1, MatchSingleton_kind=2, + MatchSequence_kind=3, MatchMapping_kind=4, + MatchClass_kind=5, MatchStar_kind=6, MatchAs_kind=7, + MatchOr_kind=8}; +struct _pattern { + enum _pattern_kind kind; + union { + struct { + expr_ty value; + } MatchValue; + + struct { + constant value; + } MatchSingleton; + + struct { + asdl_pattern_seq *patterns; + } MatchSequence; + + struct { + asdl_expr_seq *keys; + asdl_pattern_seq *patterns; + identifier rest; + } MatchMapping; + + struct { + expr_ty cls; + asdl_pattern_seq *patterns; + asdl_identifier_seq *kwd_attrs; + asdl_pattern_seq *kwd_patterns; + } MatchClass; + + struct { + identifier name; + } MatchStar; + + struct { + pattern_ty pattern; + identifier name; + } MatchAs; + + struct { + asdl_pattern_seq *patterns; + } MatchOr; + + } v; + int lineno; + int col_offset; + int end_lineno; + int end_col_offset; +}; + +enum _type_ignore_kind {TypeIgnore_kind=1}; +struct _type_ignore { + enum _type_ignore_kind kind; + union { + struct { + int lineno; + string tag; + } TypeIgnore; + + } v; +}; + +enum _type_param_kind {TypeVar_kind=1, ParamSpec_kind=2, TypeVarTuple_kind=3}; +struct _type_param { + enum _type_param_kind kind; + union { + struct { + identifier name; + expr_ty bound; + expr_ty default_value; + } TypeVar; + + struct { + identifier name; + expr_ty default_value; + } ParamSpec; + + struct { + identifier name; + expr_ty default_value; + } TypeVarTuple; + + } v; + int lineno; + int col_offset; + int end_lineno; + int end_col_offset; +}; + + +// Note: these macros affect function definitions, not only call sites. +mod_ty _PyAST_Module(asdl_stmt_seq * body, asdl_type_ignore_seq * type_ignores, + PyArena *arena); +mod_ty _PyAST_Interactive(asdl_stmt_seq * body, PyArena *arena); +mod_ty _PyAST_Expression(expr_ty body, PyArena *arena); +mod_ty _PyAST_FunctionType(asdl_expr_seq * argtypes, expr_ty returns, PyArena + *arena); +stmt_ty _PyAST_FunctionDef(identifier name, arguments_ty args, asdl_stmt_seq * + body, asdl_expr_seq * decorator_list, expr_ty + returns, string type_comment, asdl_type_param_seq * + type_params, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); +stmt_ty _PyAST_AsyncFunctionDef(identifier name, arguments_ty args, + asdl_stmt_seq * body, asdl_expr_seq * + decorator_list, expr_ty returns, string + type_comment, asdl_type_param_seq * + type_params, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); +stmt_ty _PyAST_ClassDef(identifier name, asdl_expr_seq * bases, + asdl_keyword_seq * keywords, asdl_stmt_seq * body, + asdl_expr_seq * decorator_list, asdl_type_param_seq * + type_params, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); +stmt_ty _PyAST_Return(expr_ty value, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); +stmt_ty _PyAST_Delete(asdl_expr_seq * targets, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); +stmt_ty _PyAST_Assign(asdl_expr_seq * targets, expr_ty value, string + type_comment, int lineno, int col_offset, int end_lineno, + int end_col_offset, PyArena *arena); +stmt_ty _PyAST_TypeAlias(expr_ty name, asdl_type_param_seq * type_params, + expr_ty value, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); +stmt_ty _PyAST_AugAssign(expr_ty target, operator_ty op, expr_ty value, int + lineno, int col_offset, int end_lineno, int + end_col_offset, PyArena *arena); +stmt_ty _PyAST_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); +stmt_ty _PyAST_For(expr_ty target, expr_ty iter, asdl_stmt_seq * body, + asdl_stmt_seq * orelse, string type_comment, int lineno, int + col_offset, int end_lineno, int end_col_offset, PyArena + *arena); +stmt_ty _PyAST_AsyncFor(expr_ty target, expr_ty iter, asdl_stmt_seq * body, + asdl_stmt_seq * orelse, string type_comment, int + lineno, int col_offset, int end_lineno, int + end_col_offset, PyArena *arena); +stmt_ty _PyAST_While(expr_ty test, asdl_stmt_seq * body, asdl_stmt_seq * + orelse, int lineno, int col_offset, int end_lineno, int + end_col_offset, PyArena *arena); +stmt_ty _PyAST_If(expr_ty test, asdl_stmt_seq * body, asdl_stmt_seq * orelse, + int lineno, int col_offset, int end_lineno, int + end_col_offset, PyArena *arena); +stmt_ty _PyAST_With(asdl_withitem_seq * items, asdl_stmt_seq * body, string + type_comment, int lineno, int col_offset, int end_lineno, + int end_col_offset, PyArena *arena); +stmt_ty _PyAST_AsyncWith(asdl_withitem_seq * items, asdl_stmt_seq * body, + string type_comment, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); +stmt_ty _PyAST_Match(expr_ty subject, asdl_match_case_seq * cases, int lineno, + int col_offset, int end_lineno, int end_col_offset, + PyArena *arena); +stmt_ty _PyAST_Raise(expr_ty exc, expr_ty cause, int lineno, int col_offset, + int end_lineno, int end_col_offset, PyArena *arena); +stmt_ty _PyAST_Try(asdl_stmt_seq * body, asdl_excepthandler_seq * handlers, + asdl_stmt_seq * orelse, asdl_stmt_seq * finalbody, int + lineno, int col_offset, int end_lineno, int end_col_offset, + PyArena *arena); +stmt_ty _PyAST_TryStar(asdl_stmt_seq * body, asdl_excepthandler_seq * handlers, + asdl_stmt_seq * orelse, asdl_stmt_seq * finalbody, int + lineno, int col_offset, int end_lineno, int + end_col_offset, PyArena *arena); +stmt_ty _PyAST_Assert(expr_ty test, expr_ty msg, int lineno, int col_offset, + int end_lineno, int end_col_offset, PyArena *arena); +stmt_ty _PyAST_Import(asdl_alias_seq * names, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); +stmt_ty _PyAST_ImportFrom(identifier module, asdl_alias_seq * names, int level, + int lineno, int col_offset, int end_lineno, int + end_col_offset, PyArena *arena); +stmt_ty _PyAST_Global(asdl_identifier_seq * names, int lineno, int col_offset, + int end_lineno, int end_col_offset, PyArena *arena); +stmt_ty _PyAST_Nonlocal(asdl_identifier_seq * names, int lineno, int + col_offset, int end_lineno, int end_col_offset, PyArena + *arena); +stmt_ty _PyAST_Expr(expr_ty value, int lineno, int col_offset, int end_lineno, + int end_col_offset, PyArena *arena); +stmt_ty _PyAST_Pass(int lineno, int col_offset, int end_lineno, int + end_col_offset, PyArena *arena); +stmt_ty _PyAST_Break(int lineno, int col_offset, int end_lineno, int + end_col_offset, PyArena *arena); +stmt_ty _PyAST_Continue(int lineno, int col_offset, int end_lineno, int + end_col_offset, PyArena *arena); +expr_ty _PyAST_BoolOp(boolop_ty op, asdl_expr_seq * values, int lineno, int + col_offset, int end_lineno, int end_col_offset, PyArena + *arena); +expr_ty _PyAST_NamedExpr(expr_ty target, expr_ty value, int lineno, int + col_offset, int end_lineno, int end_col_offset, + PyArena *arena); +expr_ty _PyAST_BinOp(expr_ty left, operator_ty op, expr_ty right, int lineno, + int col_offset, int end_lineno, int end_col_offset, + PyArena *arena); +expr_ty _PyAST_UnaryOp(unaryop_ty op, expr_ty operand, int lineno, int + col_offset, int end_lineno, int end_col_offset, PyArena + *arena); +expr_ty _PyAST_Lambda(arguments_ty args, expr_ty body, int lineno, int + col_offset, int end_lineno, int end_col_offset, PyArena + *arena); +expr_ty _PyAST_IfExp(expr_ty test, expr_ty body, expr_ty orelse, int lineno, + int col_offset, int end_lineno, int end_col_offset, + PyArena *arena); +expr_ty _PyAST_Dict(asdl_expr_seq * keys, asdl_expr_seq * values, int lineno, + int col_offset, int end_lineno, int end_col_offset, PyArena + *arena); +expr_ty _PyAST_Set(asdl_expr_seq * elts, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); +expr_ty _PyAST_ListComp(expr_ty elt, asdl_comprehension_seq * generators, int + lineno, int col_offset, int end_lineno, int + end_col_offset, PyArena *arena); +expr_ty _PyAST_SetComp(expr_ty elt, asdl_comprehension_seq * generators, int + lineno, int col_offset, int end_lineno, int + end_col_offset, PyArena *arena); +expr_ty _PyAST_DictComp(expr_ty key, expr_ty value, asdl_comprehension_seq * + generators, int lineno, int col_offset, int end_lineno, + int end_col_offset, PyArena *arena); +expr_ty _PyAST_GeneratorExp(expr_ty elt, asdl_comprehension_seq * generators, + int lineno, int col_offset, int end_lineno, int + end_col_offset, PyArena *arena); +expr_ty _PyAST_Await(expr_ty value, int lineno, int col_offset, int end_lineno, + int end_col_offset, PyArena *arena); +expr_ty _PyAST_Yield(expr_ty value, int lineno, int col_offset, int end_lineno, + int end_col_offset, PyArena *arena); +expr_ty _PyAST_YieldFrom(expr_ty value, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); +expr_ty _PyAST_Compare(expr_ty left, asdl_int_seq * ops, asdl_expr_seq * + comparators, int lineno, int col_offset, int end_lineno, + int end_col_offset, PyArena *arena); +expr_ty _PyAST_Call(expr_ty func, asdl_expr_seq * args, asdl_keyword_seq * + keywords, int lineno, int col_offset, int end_lineno, int + end_col_offset, PyArena *arena); +expr_ty _PyAST_FormattedValue(expr_ty value, int conversion, expr_ty + format_spec, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); +expr_ty _PyAST_JoinedStr(asdl_expr_seq * values, int lineno, int col_offset, + int end_lineno, int end_col_offset, PyArena *arena); +expr_ty _PyAST_Constant(constant value, string kind, int lineno, int + col_offset, int end_lineno, int end_col_offset, PyArena + *arena); +expr_ty _PyAST_Attribute(expr_ty value, identifier attr, expr_context_ty ctx, + int lineno, int col_offset, int end_lineno, int + end_col_offset, PyArena *arena); +expr_ty _PyAST_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 _PyAST_Starred(expr_ty value, expr_context_ty ctx, int lineno, int + col_offset, int end_lineno, int end_col_offset, PyArena + *arena); +expr_ty _PyAST_Name(identifier id, expr_context_ty ctx, int lineno, int + col_offset, int end_lineno, int end_col_offset, PyArena + *arena); +expr_ty _PyAST_List(asdl_expr_seq * elts, expr_context_ty ctx, int lineno, int + col_offset, int end_lineno, int end_col_offset, PyArena + *arena); +expr_ty _PyAST_Tuple(asdl_expr_seq * elts, expr_context_ty ctx, int lineno, int + col_offset, int end_lineno, int end_col_offset, PyArena + *arena); +expr_ty _PyAST_Slice(expr_ty lower, expr_ty upper, expr_ty step, int lineno, + int col_offset, int end_lineno, int end_col_offset, + PyArena *arena); +comprehension_ty _PyAST_comprehension(expr_ty target, expr_ty iter, + asdl_expr_seq * ifs, int is_async, + PyArena *arena); +excepthandler_ty _PyAST_ExceptHandler(expr_ty type, identifier name, + asdl_stmt_seq * body, int lineno, int + col_offset, int end_lineno, int + end_col_offset, PyArena *arena); +arguments_ty _PyAST_arguments(asdl_arg_seq * posonlyargs, asdl_arg_seq * args, + arg_ty vararg, asdl_arg_seq * kwonlyargs, + asdl_expr_seq * kw_defaults, arg_ty kwarg, + asdl_expr_seq * defaults, PyArena *arena); +arg_ty _PyAST_arg(identifier arg, expr_ty annotation, string type_comment, int + lineno, int col_offset, int end_lineno, int end_col_offset, + PyArena *arena); +keyword_ty _PyAST_keyword(identifier arg, expr_ty value, int lineno, int + col_offset, int end_lineno, int end_col_offset, + PyArena *arena); +alias_ty _PyAST_alias(identifier name, identifier asname, int lineno, int + col_offset, int end_lineno, int end_col_offset, PyArena + *arena); +withitem_ty _PyAST_withitem(expr_ty context_expr, expr_ty optional_vars, + PyArena *arena); +match_case_ty _PyAST_match_case(pattern_ty pattern, expr_ty guard, + asdl_stmt_seq * body, PyArena *arena); +pattern_ty _PyAST_MatchValue(expr_ty value, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); +pattern_ty _PyAST_MatchSingleton(constant value, int lineno, int col_offset, + int end_lineno, int end_col_offset, PyArena + *arena); +pattern_ty _PyAST_MatchSequence(asdl_pattern_seq * patterns, int lineno, int + col_offset, int end_lineno, int end_col_offset, + PyArena *arena); +pattern_ty _PyAST_MatchMapping(asdl_expr_seq * keys, asdl_pattern_seq * + patterns, identifier rest, int lineno, int + col_offset, int end_lineno, int end_col_offset, + PyArena *arena); +pattern_ty _PyAST_MatchClass(expr_ty cls, asdl_pattern_seq * patterns, + asdl_identifier_seq * kwd_attrs, asdl_pattern_seq + * kwd_patterns, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); +pattern_ty _PyAST_MatchStar(identifier name, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); +pattern_ty _PyAST_MatchAs(pattern_ty pattern, identifier name, int lineno, int + col_offset, int end_lineno, int end_col_offset, + PyArena *arena); +pattern_ty _PyAST_MatchOr(asdl_pattern_seq * patterns, int lineno, int + col_offset, int end_lineno, int end_col_offset, + PyArena *arena); +type_ignore_ty _PyAST_TypeIgnore(int lineno, string tag, PyArena *arena); +type_param_ty _PyAST_TypeVar(identifier name, expr_ty bound, expr_ty + default_value, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); +type_param_ty _PyAST_ParamSpec(identifier name, expr_ty default_value, int + lineno, int col_offset, int end_lineno, int + end_col_offset, PyArena *arena); +type_param_ty _PyAST_TypeVarTuple(identifier name, expr_ty default_value, int + lineno, int col_offset, int end_lineno, int + end_col_offset, PyArena *arena); + + +PyObject* PyAST_mod2obj(mod_ty t); +mod_ty PyAST_obj2mod(PyObject* ast, PyArena* arena, int mode); +int PyAST_Check(PyObject* obj); + +extern int _PyAST_Validate(mod_ty); + +/* _PyAST_ExprAsUnicode is defined in ast_unparse.c */ +extern 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. */ +extern PyObject* _PyAST_GetDocString(asdl_stmt_seq *); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_AST_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_ast_state.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_ast_state.h new file mode 100644 index 000000000..09ae95465 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_ast_state.h @@ -0,0 +1,268 @@ +// File automatically generated by Parser/asdl_c.py. + +#ifndef Py_INTERNAL_AST_STATE_H +#define Py_INTERNAL_AST_STATE_H + +#include "pycore_lock.h" // _PyOnceFlag + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +struct ast_state { + _PyOnceFlag once; + int finalized; + 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 *MatchAs_type; + PyObject *MatchClass_type; + PyObject *MatchMapping_type; + PyObject *MatchOr_type; + PyObject *MatchSequence_type; + PyObject *MatchSingleton_type; + PyObject *MatchStar_type; + PyObject *MatchValue_type; + PyObject *Match_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 *ParamSpec_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 *TryStar_type; + PyObject *Try_type; + PyObject *Tuple_type; + PyObject *TypeAlias_type; + PyObject *TypeIgnore_type; + PyObject *TypeVarTuple_type; + PyObject *TypeVar_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 *__match_args__; + 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 *bound; + PyObject *cases; + PyObject *cause; + PyObject *cls; + PyObject *cmpop_type; + PyObject *col_offset; + PyObject *comparators; + PyObject *comprehension_type; + PyObject *context_expr; + PyObject *conversion; + PyObject *ctx; + PyObject *decorator_list; + PyObject *default_value; + 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 *guard; + 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 *kwd_attrs; + PyObject *kwd_patterns; + PyObject *kwonlyargs; + PyObject *left; + PyObject *level; + PyObject *lineno; + PyObject *lower; + PyObject *match_case_type; + 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 *pattern; + PyObject *pattern_type; + PyObject *patterns; + PyObject *posonlyargs; + PyObject *rest; + PyObject *returns; + PyObject *right; + PyObject *simple; + PyObject *slice; + PyObject *step; + PyObject *stmt_type; + PyObject *subject; + PyObject *tag; + PyObject *target; + PyObject *targets; + PyObject *test; + PyObject *type; + PyObject *type_comment; + PyObject *type_ignore_type; + PyObject *type_ignores; + PyObject *type_param_type; + PyObject *type_params; + PyObject *unaryop_type; + PyObject *upper; + PyObject *value; + PyObject *values; + PyObject *vararg; + PyObject *withitem_type; +}; + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_AST_STATE_H */ + diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_atexit.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_atexit.h new file mode 100644 index 000000000..507a5c03c --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_atexit.h @@ -0,0 +1,66 @@ +#ifndef Py_INTERNAL_ATEXIT_H +#define Py_INTERNAL_ATEXIT_H + +#include "pycore_lock.h" // PyMutex + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +//############### +// runtime atexit + +typedef void (*atexit_callbackfunc)(void); + +struct _atexit_runtime_state { + PyMutex mutex; +#define NEXITFUNCS 32 + atexit_callbackfunc callbacks[NEXITFUNCS]; + int ncallbacks; +}; + + +//################### +// interpreter atexit + +typedef void (*atexit_datacallbackfunc)(void *); + +typedef struct atexit_callback { + atexit_datacallbackfunc func; + void *data; + struct atexit_callback *next; +} atexit_callback; + +typedef struct { + PyObject *func; + PyObject *args; + PyObject *kwargs; +} atexit_py_callback; + +struct atexit_state { + atexit_callback *ll_callbacks; + atexit_callback *last_ll_callback; + + // XXX The rest of the state could be moved to the atexit module state + // and a low-level callback added for it during module exec. + // For the moment we leave it here. + atexit_py_callback **callbacks; + int ncallbacks; + int callback_len; +}; + +// Export for '_interpchannels' shared extension +PyAPI_FUNC(int) _Py_AtExit( + PyInterpreterState *interp, + atexit_datacallbackfunc func, + void *data); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_ATEXIT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_backoff.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_backoff.h new file mode 100644 index 000000000..0bcca1e76 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_backoff.h @@ -0,0 +1,145 @@ + +#ifndef Py_INTERNAL_BACKOFF_H +#define Py_INTERNAL_BACKOFF_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include +#include +#include + + +typedef struct { + union { + struct { + uint16_t backoff : 4; + uint16_t value : 12; + }; + uint16_t as_counter; // For printf("%#x", ...) + }; +} _Py_BackoffCounter; + + +/* 16-bit countdown counters using exponential backoff. + + These are used by the adaptive specializer to count down until + it is time to specialize an instruction. If specialization fails + the counter is reset using exponential backoff. + + Another use is for the Tier 2 optimizer to decide when to create + a new Tier 2 trace (executor). Again, exponential backoff is used. + + The 16-bit counter is structured as a 12-bit unsigned 'value' + and a 4-bit 'backoff' field. When resetting the counter, the + backoff field is incremented (until it reaches a limit) and the + value is set to a bit mask representing the value 2**backoff - 1. + The maximum backoff is 12 (the number of value bits). + + There is an exceptional value which must not be updated, 0xFFFF. +*/ + +#define UNREACHABLE_BACKOFF 0xFFFF + +static inline bool +is_unreachable_backoff_counter(_Py_BackoffCounter counter) +{ + return counter.as_counter == UNREACHABLE_BACKOFF; +} + +static inline _Py_BackoffCounter +make_backoff_counter(uint16_t value, uint16_t backoff) +{ + assert(backoff <= 15); + assert(value <= 0xFFF); + _Py_BackoffCounter result; + result.value = value; + result.backoff = backoff; + return result; +} + +static inline _Py_BackoffCounter +forge_backoff_counter(uint16_t counter) +{ + _Py_BackoffCounter result; + result.as_counter = counter; + return result; +} + +static inline _Py_BackoffCounter +restart_backoff_counter(_Py_BackoffCounter counter) +{ + assert(!is_unreachable_backoff_counter(counter)); + if (counter.backoff < 12) { + return make_backoff_counter((1 << (counter.backoff + 1)) - 1, counter.backoff + 1); + } + else { + return make_backoff_counter((1 << 12) - 1, 12); + } +} + +static inline _Py_BackoffCounter +pause_backoff_counter(_Py_BackoffCounter counter) +{ + return make_backoff_counter(counter.value | 1, counter.backoff); +} + +static inline _Py_BackoffCounter +advance_backoff_counter(_Py_BackoffCounter counter) +{ + if (!is_unreachable_backoff_counter(counter)) { + return make_backoff_counter((counter.value - 1) & 0xFFF, counter.backoff); + } + else { + return counter; + } +} + +static inline bool +backoff_counter_triggers(_Py_BackoffCounter counter) +{ + return counter.value == 0; +} + +/* Initial JUMP_BACKWARD counter. + * This determines when we create a trace for a loop. +* Backoff sequence 16, 32, 64, 128, 256, 512, 1024, 2048, 4096. */ +#define JUMP_BACKWARD_INITIAL_VALUE 16 +#define JUMP_BACKWARD_INITIAL_BACKOFF 4 +static inline _Py_BackoffCounter +initial_jump_backoff_counter(void) +{ + return make_backoff_counter(JUMP_BACKWARD_INITIAL_VALUE, + JUMP_BACKWARD_INITIAL_BACKOFF); +} + +/* Initial exit temperature. + * Must be larger than ADAPTIVE_COOLDOWN_VALUE, + * otherwise when a side exit warms up we may construct + * a new trace before the Tier 1 code has properly re-specialized. + * Backoff sequence 64, 128, 256, 512, 1024, 2048, 4096. */ +#define COLD_EXIT_INITIAL_VALUE 64 +#define COLD_EXIT_INITIAL_BACKOFF 6 + +static inline _Py_BackoffCounter +initial_temperature_backoff_counter(void) +{ + return make_backoff_counter(COLD_EXIT_INITIAL_VALUE, + COLD_EXIT_INITIAL_BACKOFF); +} + +/* Unreachable backoff counter. */ +static inline _Py_BackoffCounter +initial_unreachable_backoff_counter(void) +{ + return forge_backoff_counter(UNREACHABLE_BACKOFF); +} + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_BACKOFF_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_bitutils.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_bitutils.h new file mode 100644 index 000000000..50f693775 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_bitutils.h @@ -0,0 +1,186 @@ +/* Bit and bytes utilities. + + Bytes swap functions, reverse order of bytes: + + - _Py_bswap16(uint16_t) + - _Py_bswap32(uint32_t) + - _Py_bswap64(uint64_t) +*/ + +#ifndef Py_INTERNAL_BITUTILS_H +#define Py_INTERNAL_BITUTILS_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 +# include // _byteswap_uint64() +#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 +} + + +// Population count: count the number of 1's in 'x' +// (number of bits set to 1), also known as the hamming weight. +// +// Implementation note. CPUID is not used, to test if x86 POPCNT instruction +// can be used, to keep the implementation simple. For example, Visual Studio +// __popcnt() is not used this reason. The clang and GCC builtin function can +// use the x86 POPCNT instruction if the target architecture has SSE4a or +// newer. +static inline int +_Py_popcount32(uint32_t x) +{ +#if (defined(__clang__) || defined(__GNUC__)) + +#if SIZEOF_INT >= 4 + Py_BUILD_ASSERT(sizeof(x) <= sizeof(unsigned int)); + return __builtin_popcount(x); +#else + // The C standard guarantees that unsigned long will always be big enough + // to hold a uint32_t value without losing information. + Py_BUILD_ASSERT(sizeof(x) <= sizeof(unsigned long)); + return __builtin_popcountl(x); +#endif + +#else + // 32-bit SWAR (SIMD Within A Register) popcount + + // Binary: 0 1 0 1 ... + const uint32_t M1 = 0x55555555; + // Binary: 00 11 00 11. .. + const uint32_t M2 = 0x33333333; + // Binary: 0000 1111 0000 1111 ... + const uint32_t M4 = 0x0F0F0F0F; + + // Put count of each 2 bits into those 2 bits + x = x - ((x >> 1) & M1); + // Put count of each 4 bits into those 4 bits + x = (x & M2) + ((x >> 2) & M2); + // Put count of each 8 bits into those 8 bits + x = (x + (x >> 4)) & M4; + // Sum of the 4 byte counts. + // Take care when considering changes to the next line. Portability and + // correctness are delicate here, thanks to C's "integer promotions" (C99 + // §6.3.1.1p2). On machines where the `int` type has width greater than 32 + // bits, `x` will be promoted to an `int`, and following C's "usual + // arithmetic conversions" (C99 §6.3.1.8), the multiplication will be + // performed as a multiplication of two `unsigned int` operands. In this + // case it's critical that we cast back to `uint32_t` in order to keep only + // the least significant 32 bits. On machines where the `int` type has + // width no greater than 32, the multiplication is of two 32-bit unsigned + // integer types, and the (uint32_t) cast is a no-op. In both cases, we + // avoid the risk of undefined behaviour due to overflow of a + // multiplication of signed integer types. + return (uint32_t)(x * 0x01010101U) >> 24; +#endif +} + + +// Return the index of the most significant 1 bit in 'x'. This is the smallest +// integer k such that x < 2**k. Equivalent to floor(log2(x)) + 1 for x != 0. +static inline int +_Py_bit_length(unsigned long x) +{ +#if (defined(__clang__) || defined(__GNUC__)) + if (x != 0) { + // __builtin_clzl() is available since GCC 3.4. + // Undefined behavior for x == 0. + return (int)sizeof(unsigned long) * 8 - __builtin_clzl(x); + } + else { + return 0; + } +#elif defined(_MSC_VER) + // _BitScanReverse() is documented to search 32 bits. + Py_BUILD_ASSERT(sizeof(unsigned long) <= 4); + unsigned long msb; + if (_BitScanReverse(&msb, x)) { + return (int)msb + 1; + } + else { + return 0; + } +#else + const int BIT_LENGTH_TABLE[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 + }; + int msb = 0; + while (x >= 32) { + msb += 6; + x >>= 6; + } + msb += BIT_LENGTH_TABLE[x]; + return msb; +#endif +} + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_BITUTILS_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_blocks_output_buffer.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_blocks_output_buffer.h new file mode 100644 index 000000000..573e10359 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_blocks_output_buffer.h @@ -0,0 +1,321 @@ +/* + _BlocksOutputBuffer is used to maintain an output buffer + that has unpredictable size. Suitable for compression/decompression + API (bz2/lzma/zlib) that has stream->next_out and stream->avail_out: + + stream->next_out: point to the next output position. + stream->avail_out: the number of available bytes left in the buffer. + + It maintains a list of bytes object, so there is no overhead of resizing + the buffer. + + Usage: + + 1, Initialize the struct instance like this: + _BlocksOutputBuffer buffer = {.list = NULL}; + Set .list to NULL for _BlocksOutputBuffer_OnError() + + 2, Initialize the buffer use one of these functions: + _BlocksOutputBuffer_InitAndGrow() + _BlocksOutputBuffer_InitWithSize() + + 3, If (avail_out == 0), grow the buffer: + _BlocksOutputBuffer_Grow() + + 4, Get the current outputted data size: + _BlocksOutputBuffer_GetDataSize() + + 5, Finish the buffer, and return a bytes object: + _BlocksOutputBuffer_Finish() + + 6, Clean up the buffer when an error occurred: + _BlocksOutputBuffer_OnError() +*/ + +#ifndef Py_INTERNAL_BLOCKS_OUTPUT_BUFFER_H +#define Py_INTERNAL_BLOCKS_OUTPUT_BUFFER_H +#ifdef __cplusplus +extern "C" { +#endif + +#include "Python.h" + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +typedef struct { + // List of bytes objects + PyObject *list; + // Number of whole allocated size + Py_ssize_t allocated; + // Max length of the buffer, negative number means unlimited length. + Py_ssize_t max_length; +} _BlocksOutputBuffer; + +static const char unable_allocate_msg[] = "Unable to allocate output buffer."; + +/* In 32-bit build, the max block size should <= INT32_MAX. */ +#define OUTPUT_BUFFER_MAX_BLOCK_SIZE (256*1024*1024) + +/* Block size sequence */ +#define KB (1024) +#define MB (1024*1024) +static const Py_ssize_t BUFFER_BLOCK_SIZE[] = + { 32*KB, 64*KB, 256*KB, 1*MB, 4*MB, 8*MB, 16*MB, 16*MB, + 32*MB, 32*MB, 32*MB, 32*MB, 64*MB, 64*MB, 128*MB, 128*MB, + OUTPUT_BUFFER_MAX_BLOCK_SIZE }; +#undef KB +#undef MB + +/* According to the block sizes defined by BUFFER_BLOCK_SIZE, the whole + allocated size growth step is: + 1 32 KB +32 KB + 2 96 KB +64 KB + 3 352 KB +256 KB + 4 1.34 MB +1 MB + 5 5.34 MB +4 MB + 6 13.34 MB +8 MB + 7 29.34 MB +16 MB + 8 45.34 MB +16 MB + 9 77.34 MB +32 MB + 10 109.34 MB +32 MB + 11 141.34 MB +32 MB + 12 173.34 MB +32 MB + 13 237.34 MB +64 MB + 14 301.34 MB +64 MB + 15 429.34 MB +128 MB + 16 557.34 MB +128 MB + 17 813.34 MB +256 MB + 18 1069.34 MB +256 MB + 19 1325.34 MB +256 MB + 20 1581.34 MB +256 MB + 21 1837.34 MB +256 MB + 22 2093.34 MB +256 MB + ... +*/ + +/* Initialize the buffer, and grow the buffer. + + max_length: Max length of the buffer, -1 for unlimited length. + + On success, return allocated size (>=0) + On failure, return -1 +*/ +static inline Py_ssize_t +_BlocksOutputBuffer_InitAndGrow(_BlocksOutputBuffer *buffer, + const Py_ssize_t max_length, + void **next_out) +{ + PyObject *b; + Py_ssize_t block_size; + + // ensure .list was set to NULL + assert(buffer->list == NULL); + + // get block size + if (0 <= max_length && max_length < BUFFER_BLOCK_SIZE[0]) { + block_size = max_length; + } else { + block_size = BUFFER_BLOCK_SIZE[0]; + } + + // the first block + b = PyBytes_FromStringAndSize(NULL, block_size); + if (b == NULL) { + return -1; + } + + // create the list + buffer->list = PyList_New(1); + if (buffer->list == NULL) { + Py_DECREF(b); + return -1; + } + PyList_SET_ITEM(buffer->list, 0, b); + + // set variables + buffer->allocated = block_size; + buffer->max_length = max_length; + + *next_out = PyBytes_AS_STRING(b); + return block_size; +} + +/* Initialize the buffer, with an initial size. + + Check block size limit in the outer wrapper function. For example, some libs + accept UINT32_MAX as the maximum block size, then init_size should <= it. + + On success, return allocated size (>=0) + On failure, return -1 +*/ +static inline Py_ssize_t +_BlocksOutputBuffer_InitWithSize(_BlocksOutputBuffer *buffer, + const Py_ssize_t init_size, + void **next_out) +{ + PyObject *b; + + // ensure .list was set to NULL + assert(buffer->list == NULL); + + // the first block + b = PyBytes_FromStringAndSize(NULL, init_size); + if (b == NULL) { + PyErr_SetString(PyExc_MemoryError, unable_allocate_msg); + return -1; + } + + // create the list + buffer->list = PyList_New(1); + if (buffer->list == NULL) { + Py_DECREF(b); + return -1; + } + PyList_SET_ITEM(buffer->list, 0, b); + + // set variables + buffer->allocated = init_size; + buffer->max_length = -1; + + *next_out = PyBytes_AS_STRING(b); + return init_size; +} + +/* Grow the buffer. The avail_out must be 0, please check it before calling. + + On success, return allocated size (>=0) + On failure, return -1 +*/ +static inline Py_ssize_t +_BlocksOutputBuffer_Grow(_BlocksOutputBuffer *buffer, + void **next_out, + const Py_ssize_t avail_out) +{ + PyObject *b; + const Py_ssize_t list_len = Py_SIZE(buffer->list); + Py_ssize_t block_size; + + // ensure no gaps in the data + if (avail_out != 0) { + PyErr_SetString(PyExc_SystemError, + "avail_out is non-zero in _BlocksOutputBuffer_Grow()."); + return -1; + } + + // get block size + if (list_len < (Py_ssize_t) Py_ARRAY_LENGTH(BUFFER_BLOCK_SIZE)) { + block_size = BUFFER_BLOCK_SIZE[list_len]; + } else { + block_size = BUFFER_BLOCK_SIZE[Py_ARRAY_LENGTH(BUFFER_BLOCK_SIZE) - 1]; + } + + // check max_length + if (buffer->max_length >= 0) { + // if (rest == 0), should not grow the buffer. + Py_ssize_t rest = buffer->max_length - buffer->allocated; + assert(rest > 0); + + // block_size of the last block + if (block_size > rest) { + block_size = rest; + } + } + + // check buffer->allocated overflow + if (block_size > PY_SSIZE_T_MAX - buffer->allocated) { + PyErr_SetString(PyExc_MemoryError, unable_allocate_msg); + return -1; + } + + // create the block + b = PyBytes_FromStringAndSize(NULL, block_size); + if (b == NULL) { + PyErr_SetString(PyExc_MemoryError, unable_allocate_msg); + return -1; + } + if (PyList_Append(buffer->list, b) < 0) { + Py_DECREF(b); + return -1; + } + Py_DECREF(b); + + // set variables + buffer->allocated += block_size; + + *next_out = PyBytes_AS_STRING(b); + return block_size; +} + +/* Return the current outputted data size. */ +static inline Py_ssize_t +_BlocksOutputBuffer_GetDataSize(_BlocksOutputBuffer *buffer, + const Py_ssize_t avail_out) +{ + return buffer->allocated - avail_out; +} + +/* Finish the buffer. + + Return a bytes object on success + Return NULL on failure +*/ +static inline PyObject * +_BlocksOutputBuffer_Finish(_BlocksOutputBuffer *buffer, + const Py_ssize_t avail_out) +{ + PyObject *result, *block; + const Py_ssize_t list_len = Py_SIZE(buffer->list); + + // fast path for single block + if ((list_len == 1 && avail_out == 0) || + (list_len == 2 && Py_SIZE(PyList_GET_ITEM(buffer->list, 1)) == avail_out)) + { + block = PyList_GET_ITEM(buffer->list, 0); + Py_INCREF(block); + + Py_CLEAR(buffer->list); + return block; + } + + // final bytes object + result = PyBytes_FromStringAndSize(NULL, buffer->allocated - avail_out); + if (result == NULL) { + PyErr_SetString(PyExc_MemoryError, unable_allocate_msg); + return NULL; + } + + // memory copy + if (list_len > 0) { + char *posi = PyBytes_AS_STRING(result); + + // blocks except the last one + Py_ssize_t i = 0; + for (; i < list_len-1; i++) { + block = PyList_GET_ITEM(buffer->list, i); + memcpy(posi, PyBytes_AS_STRING(block), Py_SIZE(block)); + posi += Py_SIZE(block); + } + // the last block + block = PyList_GET_ITEM(buffer->list, i); + memcpy(posi, PyBytes_AS_STRING(block), Py_SIZE(block) - avail_out); + } else { + assert(Py_SIZE(result) == 0); + } + + Py_CLEAR(buffer->list); + return result; +} + +/* Clean up the buffer when an error occurred. */ +static inline void +_BlocksOutputBuffer_OnError(_BlocksOutputBuffer *buffer) +{ + Py_CLEAR(buffer->list); +} + +#ifdef __cplusplus +} +#endif +#endif /* Py_INTERNAL_BLOCKS_OUTPUT_BUFFER_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_brc.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_brc.h new file mode 100644 index 000000000..3453d83b5 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_brc.h @@ -0,0 +1,74 @@ +#ifndef Py_INTERNAL_BRC_H +#define Py_INTERNAL_BRC_H + +#include +#include "pycore_llist.h" // struct llist_node +#include "pycore_lock.h" // PyMutex +#include "pycore_object_stack.h" // _PyObjectStack + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#ifdef Py_GIL_DISABLED + +// Prime number to avoid correlations with memory addresses. +#define _Py_BRC_NUM_BUCKETS 257 + +// Hash table bucket +struct _brc_bucket { + // Mutex protects both the bucket and thread state queues in this bucket. + PyMutex mutex; + + // Linked list of _PyThreadStateImpl objects hashed to this bucket. + struct llist_node root; +}; + +// Per-interpreter biased reference counting state +struct _brc_state { + // Hash table of thread states by thread-id. Thread states within a bucket + // are chained using a doubly-linked list. + struct _brc_bucket table[_Py_BRC_NUM_BUCKETS]; +}; + +// Per-thread biased reference counting state +struct _brc_thread_state { + // Linked-list of thread states per hash bucket + struct llist_node bucket_node; + + // Thread-id as determined by _PyThread_Id() + uintptr_t tid; + + // Objects with refcounts to be merged (protected by bucket mutex) + _PyObjectStack objects_to_merge; + + // Local stack of objects to be merged (not accessed by other threads) + _PyObjectStack local_objects_to_merge; +}; + +// Initialize/finalize the per-thread biased reference counting state +void _Py_brc_init_thread(PyThreadState *tstate); +void _Py_brc_remove_thread(PyThreadState *tstate); + +// Initialize per-interpreter state +void _Py_brc_init_state(PyInterpreterState *interp); + +void _Py_brc_after_fork(PyInterpreterState *interp); + +// Enqueues an object to be merged by it's owning thread (tid). This +// steals a reference to the object. +void _Py_brc_queue_object(PyObject *ob); + +// Merge the refcounts of queued objects for the current thread. +void _Py_brc_merge_refcounts(PyThreadState *tstate); + +#endif /* Py_GIL_DISABLED */ + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_BRC_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_bytes_methods.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_bytes_methods.h new file mode 100644 index 000000000..059dc2599 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_bytes_methods.h @@ -0,0 +1,82 @@ +#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 *sub, + Py_ssize_t start, Py_ssize_t end); +extern PyObject *_Py_bytes_index(const char *str, Py_ssize_t len, PyObject *sub, + Py_ssize_t start, Py_ssize_t end); +extern PyObject *_Py_bytes_rfind(const char *str, Py_ssize_t len, PyObject *sub, + Py_ssize_t start, Py_ssize_t end); +extern PyObject *_Py_bytes_rindex(const char *str, Py_ssize_t len, PyObject *sub, + Py_ssize_t start, Py_ssize_t end); +extern PyObject *_Py_bytes_count(const char *str, Py_ssize_t len, PyObject *sub, + Py_ssize_t start, Py_ssize_t end); +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 *subobj, Py_ssize_t start, + Py_ssize_t end); +extern PyObject *_Py_bytes_endswith(const char *str, Py_ssize_t len, + PyObject *subobj, Py_ssize_t start, + Py_ssize_t end); + +/* 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/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_bytesobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_bytesobject.h new file mode 100644 index 000000000..300e7f489 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_bytesobject.h @@ -0,0 +1,148 @@ +#ifndef Py_INTERNAL_BYTESOBJECT_H +#define Py_INTERNAL_BYTESOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +extern PyObject* _PyBytes_FormatEx( + const char *format, + Py_ssize_t format_len, + PyObject *args, + int use_bytearray); + +extern PyObject* _PyBytes_FromHex( + PyObject *string, + int use_bytearray); + +// Helper for PyBytes_DecodeEscape that detects invalid escape chars. +// Export for test_peg_generator. +PyAPI_FUNC(PyObject*) _PyBytes_DecodeEscape(const char *, Py_ssize_t, + const char *, const char **); + + +// Substring Search. +// +// Returns the index of the first occurrence of +// a substring ("needle") in a larger text ("haystack"). +// If the needle is not found, return -1. +// If the needle is found, add offset to the index. +// +// Export for 'mmap' shared extension. +PyAPI_FUNC(Py_ssize_t) +_PyBytes_Find(const char *haystack, Py_ssize_t len_haystack, + const char *needle, Py_ssize_t len_needle, + Py_ssize_t offset); + +// Same as above, but search right-to-left. +// Export for 'mmap' shared extension. +PyAPI_FUNC(Py_ssize_t) +_PyBytes_ReverseFind(const char *haystack, Py_ssize_t len_haystack, + const char *needle, Py_ssize_t len_needle, + Py_ssize_t offset); + + +// Helper function to implement the repeat and inplace repeat methods on a +// buffer. +// +// len_dest is assumed to be an integer multiple of len_src. +// If src equals dest, then assume the operation is inplace. +// +// This method repeately doubles the number of bytes copied to reduce +// the number of invocations of memcpy. +// +// Export for 'array' shared extension. +PyAPI_FUNC(void) +_PyBytes_Repeat(char* dest, Py_ssize_t len_dest, + const char* src, Py_ssize_t len_src); + +/* --- _PyBytesWriter ----------------------------------------------------- */ + +/* 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. + + Export _PyBytesWriter API for '_pickle' shared extension. */ +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); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_BYTESOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_call.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_call.h new file mode 100644 index 000000000..c92028a01 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_call.h @@ -0,0 +1,205 @@ +#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 + +#include "pycore_identifier.h" // _Py_Identifier +#include "pycore_pystate.h" // _PyThreadState_GET() + +/* 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 + + +// Export for 'math' shared extension, used via _PyObject_VectorcallTstate() +// static inline function. +PyAPI_FUNC(PyObject*) _Py_CheckFunctionResult( + PyThreadState *tstate, + PyObject *callable, + PyObject *result, + const char *where); + +extern PyObject* _PyObject_Call_Prepend( + PyThreadState *tstate, + PyObject *callable, + PyObject *obj, + PyObject *args, + PyObject *kwargs); + +extern PyObject* _PyObject_VectorcallDictTstate( + PyThreadState *tstate, + PyObject *callable, + PyObject *const *args, + size_t nargsf, + PyObject *kwargs); + +extern PyObject* _PyObject_Call( + PyThreadState *tstate, + PyObject *callable, + PyObject *args, + PyObject *kwargs); + +extern PyObject * _PyObject_CallMethodFormat( + PyThreadState *tstate, + PyObject *callable, + const char *format, + ...); + +// Export for 'array' shared extension +PyAPI_FUNC(PyObject*) _PyObject_CallMethod( + PyObject *obj, + PyObject *name, + const char *format, ...); + +extern PyObject* _PyObject_CallMethodIdObjArgs( + PyObject *obj, + _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 _Py_NULL; + } + return PyObject_VectorcallMethod(oname, args, nargsf, kwnames); +} + +static inline PyObject * +_PyObject_CallMethodIdNoArgs(PyObject *self, _Py_Identifier *name) +{ + size_t nargsf = 1 | PY_VECTORCALL_ARGUMENTS_OFFSET; + return _PyObject_VectorcallMethodId(name, &self, nargsf, _Py_NULL); +} + +static inline PyObject * +_PyObject_CallMethodIdOneArg(PyObject *self, _Py_Identifier *name, PyObject *arg) +{ + PyObject *args[2] = {self, arg}; + size_t nargsf = 2 | PY_VECTORCALL_ARGUMENTS_OFFSET; + assert(arg != NULL); + return _PyObject_VectorcallMethodId(name, args, nargsf, _Py_NULL); +} + + +/* === Vectorcall protocol (PEP 590) ============================= */ + +// Call callable using tp_call. Arguments are like PyObject_Vectorcall(), +// except that nargs is plainly the number of arguments without flags. +// +// Export for 'math' shared extension, used via _PyObject_VectorcallTstate() +// static inline function. +PyAPI_FUNC(PyObject*) _PyObject_MakeTpCall( + PyThreadState *tstate, + PyObject *callable, + PyObject *const *args, Py_ssize_t nargs, + PyObject *keywords); + +// Static inline variant of public PyVectorcall_Function(). +static inline vectorcallfunc +_PyVectorcall_FunctionInline(PyObject *callable) +{ + assert(callable != NULL); + + PyTypeObject *tp = Py_TYPE(callable); + if (!PyType_HasFeature(tp, Py_TPFLAGS_HAVE_VECTORCALL)) { + return NULL; + } + assert(PyCallable_Check(callable)); + + Py_ssize_t offset = tp->tp_vectorcall_offset; + assert(offset > 0); + + vectorcallfunc ptr; + 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_FunctionInline(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_CallNoArgsTstate(PyThreadState *tstate, PyObject *func) { + return _PyObject_VectorcallTstate(tstate, func, NULL, 0, NULL); +} + + +// Private static inline function variant of public PyObject_CallNoArgs() +static inline PyObject * +_PyObject_CallNoArgs(PyObject *func) { + EVAL_CALL_STAT_INC_IF_FUNCTION(EVAL_CALL_API, func); + PyThreadState *tstate = _PyThreadState_GET(); + return _PyObject_VectorcallTstate(tstate, func, NULL, 0, NULL); +} + + +extern PyObject *const * +_PyStack_UnpackDict(PyThreadState *tstate, + PyObject *const *args, Py_ssize_t nargs, + PyObject *kwargs, PyObject **p_kwnames); + +extern void _PyStack_UnpackDict_Free( + PyObject *const *stack, + Py_ssize_t nargs, + PyObject *kwnames); + +extern void _PyStack_UnpackDict_FreeNoDecRef( + PyObject *const *stack, + PyObject *kwnames); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_CALL_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_capsule.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_capsule.h new file mode 100644 index 000000000..aa2c67f3a --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_capsule.h @@ -0,0 +1,17 @@ +#ifndef Py_INTERNAL_PYCAPSULE_H +#define Py_INTERNAL_PYCAPSULE_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +// Export for '_socket' shared extension +PyAPI_FUNC(int) _PyCapsule_SetTraverse(PyObject *op, traverseproc traverse_func, inquiry clear_func); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_PYCAPSULE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_cell.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_cell.h new file mode 100644 index 000000000..27f67d57b --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_cell.h @@ -0,0 +1,48 @@ +#ifndef Py_INTERNAL_CELL_H +#define Py_INTERNAL_CELL_H + +#include "pycore_critical_section.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +// Sets the cell contents to `value` and return previous contents. Steals a +// reference to `value`. +static inline PyObject * +PyCell_SwapTakeRef(PyCellObject *cell, PyObject *value) +{ + PyObject *old_value; + Py_BEGIN_CRITICAL_SECTION(cell); + old_value = cell->ob_ref; + cell->ob_ref = value; + Py_END_CRITICAL_SECTION(); + return old_value; +} + +static inline void +PyCell_SetTakeRef(PyCellObject *cell, PyObject *value) +{ + PyObject *old_value = PyCell_SwapTakeRef(cell, value); + Py_XDECREF(old_value); +} + +// Gets the cell contents. Returns a new reference. +static inline PyObject * +PyCell_GetRef(PyCellObject *cell) +{ + PyObject *res; + Py_BEGIN_CRITICAL_SECTION(cell); + res = Py_XNewRef(cell->ob_ref); + Py_END_CRITICAL_SECTION(); + return res; +} + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_CELL_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_ceval.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_ceval.h new file mode 100644 index 000000000..043f5957d --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_ceval.h @@ -0,0 +1,303 @@ +#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 + +#include "dynamic_annotations.h" // _Py_ANNOTATE_RWLOCK_CREATE + +#include "pycore_interp.h" // PyInterpreterState.eval_frame +#include "pycore_pystate.h" // _PyThreadState_GET() + +/* Forward declarations */ +struct pyruntimestate; +struct _ceval_runtime_state; + +// Export for '_lsprof' shared extension +PyAPI_FUNC(int) _PyEval_SetProfile(PyThreadState *tstate, Py_tracefunc func, PyObject *arg); + +extern int _PyEval_SetTrace(PyThreadState *tstate, Py_tracefunc func, PyObject *arg); + +extern int _PyEval_SetOpcodeTrace(PyFrameObject *f, bool enable); + +// Helper to look up a builtin object +// Export for 'array' shared extension +PyAPI_FUNC(PyObject*) _PyEval_GetBuiltin(PyObject *); + +extern PyObject* _PyEval_GetBuiltinId(_Py_Identifier *); + +extern void _PyEval_SetSwitchInterval(unsigned long microseconds); +extern unsigned long _PyEval_GetSwitchInterval(void); + +// Export for '_queue' shared extension +PyAPI_FUNC(int) _PyEval_MakePendingCalls(PyThreadState *); + +#ifndef Py_DEFAULT_RECURSION_LIMIT +# define Py_DEFAULT_RECURSION_LIMIT 1000 +#endif + +extern void _Py_FinishPendingCalls(PyThreadState *tstate); +extern void _PyEval_InitState(PyInterpreterState *); +extern void _PyEval_SignalReceived(void); + +// bitwise flags: +#define _Py_PENDING_MAINTHREADONLY 1 +#define _Py_PENDING_RAWFREE 2 + +typedef int _Py_add_pending_call_result; +#define _Py_ADD_PENDING_SUCCESS 0 +#define _Py_ADD_PENDING_FULL -1 + +// Export for '_testinternalcapi' shared extension +PyAPI_FUNC(_Py_add_pending_call_result) _PyEval_AddPendingCall( + PyInterpreterState *interp, + _Py_pending_call_func func, + void *arg, + int flags); + +#ifdef HAVE_FORK +extern PyStatus _PyEval_ReInitThreads(PyThreadState *tstate); +#endif + +// Used by sys.call_tracing() +extern PyObject* _PyEval_CallTracing(PyObject *func, PyObject *args); + +// Used by sys.get_asyncgen_hooks() +extern PyObject* _PyEval_GetAsyncGenFirstiter(void); +extern PyObject* _PyEval_GetAsyncGenFinalizer(void); + +// Used by sys.set_asyncgen_hooks() +extern int _PyEval_SetAsyncGenFirstiter(PyObject *); +extern int _PyEval_SetAsyncGenFinalizer(PyObject *); + +// Used by sys.get_coroutine_origin_tracking_depth() +// and sys.set_coroutine_origin_tracking_depth() +extern int _PyEval_GetCoroutineOriginTrackingDepth(void); +extern int _PyEval_SetCoroutineOriginTrackingDepth(int depth); + +extern void _PyEval_Fini(void); + + +extern PyObject* _PyEval_GetBuiltins(PyThreadState *tstate); +extern PyObject* _PyEval_BuiltinsFromGlobals( + PyThreadState *tstate, + PyObject *globals); + +// Trampoline API + +typedef struct { + // Callback to initialize the trampoline state + void* (*init_state)(void); + // Callback to register every trampoline being created + void (*write_state)(void* state, const void *code_addr, + unsigned int code_size, PyCodeObject* code); + // Callback to free the trampoline state + int (*free_state)(void* state); +} _PyPerf_Callbacks; + +extern int _PyPerfTrampoline_SetCallbacks(_PyPerf_Callbacks *); +extern void _PyPerfTrampoline_GetCallbacks(_PyPerf_Callbacks *); +extern int _PyPerfTrampoline_Init(int activate); +extern int _PyPerfTrampoline_Fini(void); +extern void _PyPerfTrampoline_FreeArenas(void); +extern int _PyIsPerfTrampolineActive(void); +extern PyStatus _PyPerfTrampoline_AfterFork_Child(void); +#ifdef PY_HAVE_PERF_TRAMPOLINE +extern _PyPerf_Callbacks _Py_perfmap_callbacks; +extern _PyPerf_Callbacks _Py_perfmap_jit_callbacks; +#endif + +static inline PyObject* +_PyEval_EvalFrame(PyThreadState *tstate, struct _PyInterpreterFrame *frame, int throwflag) +{ + EVAL_CALL_STAT_INC(EVAL_CALL_TOTAL); + if (tstate->interp->eval_frame == NULL) { + return _PyEval_EvalFrameDefault(tstate, frame, throwflag); + } + return tstate->interp->eval_frame(tstate, frame, throwflag); +} + +extern PyObject* +_PyEval_Vector(PyThreadState *tstate, + PyFunctionObject *func, PyObject *locals, + PyObject* const* args, size_t argcount, + PyObject *kwnames); + +extern int _PyEval_ThreadsInitialized(void); +extern void _PyEval_InitGIL(PyThreadState *tstate, int own_gil); +extern void _PyEval_FiniGIL(PyInterpreterState *interp); + +extern void _PyEval_AcquireLock(PyThreadState *tstate); + +extern void _PyEval_ReleaseLock(PyInterpreterState *, PyThreadState *, + int final_release); + +#ifdef Py_GIL_DISABLED +// Returns 0 or 1 if the GIL for the given thread's interpreter is disabled or +// enabled, respectively. +// +// The enabled state of the GIL will not change while one or more threads are +// attached. +static inline int +_PyEval_IsGILEnabled(PyThreadState *tstate) +{ + struct _gil_runtime_state *gil = tstate->interp->ceval.gil; + return _Py_atomic_load_int_relaxed(&gil->enabled) != 0; +} + +// Enable or disable the GIL used by the interpreter that owns tstate, which +// must be the current thread. This may affect other interpreters, if the GIL +// is shared. All three functions will be no-ops (and return 0) if the +// interpreter's `enable_gil' config is not _PyConfig_GIL_DEFAULT. +// +// Every call to _PyEval_EnableGILTransient() must be paired with exactly one +// call to either _PyEval_EnableGILPermanent() or +// _PyEval_DisableGIL(). _PyEval_EnableGILPermanent() and _PyEval_DisableGIL() +// must only be called while the GIL is enabled from a call to +// _PyEval_EnableGILTransient(). +// +// _PyEval_EnableGILTransient() returns 1 if it enabled the GIL, or 0 if the +// GIL was already enabled, whether transiently or permanently. The caller will +// hold the GIL upon return. +// +// _PyEval_EnableGILPermanent() returns 1 if it permanently enabled the GIL +// (which must already be enabled), or 0 if it was already permanently +// enabled. Once _PyEval_EnableGILPermanent() has been called once, all +// subsequent calls to any of the three functions will be no-ops. +// +// _PyEval_DisableGIL() returns 1 if it disabled the GIL, or 0 if the GIL was +// kept enabled because of another request, whether transient or permanent. +// +// All three functions must be called by an attached thread (this implies that +// if the GIL is enabled, the current thread must hold it). +extern int _PyEval_EnableGILTransient(PyThreadState *tstate); +extern int _PyEval_EnableGILPermanent(PyThreadState *tstate); +extern int _PyEval_DisableGIL(PyThreadState *state); +#endif + +extern void _PyEval_DeactivateOpCache(void); + + +/* --- _Py_EnterRecursiveCall() ----------------------------------------- */ + +#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->c_recursion_remaining-- < 0 + || (tstate->c_recursion_remaining & 63) == 0); +} +#else +static inline int _Py_MakeRecCheck(PyThreadState *tstate) { + return tstate->c_recursion_remaining-- < 0; +} +#endif + +// Export for '_json' shared extension, used via _Py_EnterRecursiveCall() +// static inline function. +PyAPI_FUNC(int) _Py_CheckRecursiveCall( + PyThreadState *tstate, + const char *where); + +int _Py_CheckRecursiveCallPy( + PyThreadState *tstate); + +static inline int _Py_EnterRecursiveCallTstate(PyThreadState *tstate, + const char *where) { + return (_Py_MakeRecCheck(tstate) && _Py_CheckRecursiveCall(tstate, where)); +} + +static inline void _Py_EnterRecursiveCallTstateUnchecked(PyThreadState *tstate) { + assert(tstate->c_recursion_remaining > 0); + tstate->c_recursion_remaining--; +} + +static inline int _Py_EnterRecursiveCall(const char *where) { + PyThreadState *tstate = _PyThreadState_GET(); + return _Py_EnterRecursiveCallTstate(tstate, where); +} + +static inline void _Py_LeaveRecursiveCallTstate(PyThreadState *tstate) { + tstate->c_recursion_remaining++; +} + +static inline void _Py_LeaveRecursiveCall(void) { + PyThreadState *tstate = _PyThreadState_GET(); + _Py_LeaveRecursiveCallTstate(tstate); +} + +extern struct _PyInterpreterFrame* _PyEval_GetFrame(void); + +PyAPI_FUNC(PyObject *)_Py_MakeCoro(PyFunctionObject *func); + +/* Handle signals, pending calls, GIL drop request + and asynchronous exception */ +PyAPI_FUNC(int) _Py_HandlePending(PyThreadState *tstate); + +extern PyObject * _PyEval_GetFrameLocals(void); + +typedef PyObject *(*conversion_func)(PyObject *); + +PyAPI_DATA(const binaryfunc) _PyEval_BinaryOps[]; +PyAPI_DATA(const conversion_func) _PyEval_ConversionFuncs[]; + +PyAPI_FUNC(int) _PyEval_CheckExceptStarTypeValid(PyThreadState *tstate, PyObject* right); +PyAPI_FUNC(int) _PyEval_CheckExceptTypeValid(PyThreadState *tstate, PyObject* right); +PyAPI_FUNC(int) _PyEval_ExceptionGroupMatch(PyObject* exc_value, PyObject *match_type, PyObject **match, PyObject **rest); +PyAPI_FUNC(void) _PyEval_FormatAwaitableError(PyThreadState *tstate, PyTypeObject *type, int oparg); +PyAPI_FUNC(void) _PyEval_FormatExcCheckArg(PyThreadState *tstate, PyObject *exc, const char *format_str, PyObject *obj); +PyAPI_FUNC(void) _PyEval_FormatExcUnbound(PyThreadState *tstate, PyCodeObject *co, int oparg); +PyAPI_FUNC(void) _PyEval_FormatKwargsError(PyThreadState *tstate, PyObject *func, PyObject *kwargs); +PyAPI_FUNC(PyObject *)_PyEval_MatchClass(PyThreadState *tstate, PyObject *subject, PyObject *type, Py_ssize_t nargs, PyObject *kwargs); +PyAPI_FUNC(PyObject *)_PyEval_MatchKeys(PyThreadState *tstate, PyObject *map, PyObject *keys); +PyAPI_FUNC(int) _PyEval_UnpackIterable(PyThreadState *tstate, PyObject *v, int argcnt, int argcntafter, PyObject **sp); +PyAPI_FUNC(void) _PyEval_MonitorRaise(PyThreadState *tstate, _PyInterpreterFrame *frame, _Py_CODEUNIT *instr); +PyAPI_FUNC(void) _PyEval_FrameClearAndPop(PyThreadState *tstate, _PyInterpreterFrame *frame); + + +/* Bits that can be set in PyThreadState.eval_breaker */ +#define _PY_GIL_DROP_REQUEST_BIT (1U << 0) +#define _PY_SIGNALS_PENDING_BIT (1U << 1) +#define _PY_CALLS_TO_DO_BIT (1U << 2) +#define _PY_ASYNC_EXCEPTION_BIT (1U << 3) +#define _PY_GC_SCHEDULED_BIT (1U << 4) +#define _PY_EVAL_PLEASE_STOP_BIT (1U << 5) +#define _PY_EVAL_EXPLICIT_MERGE_BIT (1U << 6) + +/* Reserve a few bits for future use */ +#define _PY_EVAL_EVENTS_BITS 8 +#define _PY_EVAL_EVENTS_MASK ((1 << _PY_EVAL_EVENTS_BITS)-1) + +static inline void +_Py_set_eval_breaker_bit(PyThreadState *tstate, uintptr_t bit) +{ + _Py_atomic_or_uintptr(&tstate->eval_breaker, bit); +} + +static inline void +_Py_unset_eval_breaker_bit(PyThreadState *tstate, uintptr_t bit) +{ + _Py_atomic_and_uintptr(&tstate->eval_breaker, ~bit); +} + +static inline int +_Py_eval_breaker_bit_is_set(PyThreadState *tstate, uintptr_t bit) +{ + uintptr_t b = _Py_atomic_load_uintptr_relaxed(&tstate->eval_breaker); + return (b & bit) != 0; +} + +// Free-threaded builds use these functions to set or unset a bit on all +// threads in the given interpreter. +void _Py_set_eval_breaker_bit_all(PyInterpreterState *interp, uintptr_t bit); +void _Py_unset_eval_breaker_bit_all(PyInterpreterState *interp, uintptr_t bit); + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_CEVAL_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_ceval_state.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_ceval_state.h new file mode 100644 index 000000000..009a1ea41 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_ceval_state.h @@ -0,0 +1,134 @@ +#ifndef Py_INTERNAL_CEVAL_STATE_H +#define Py_INTERNAL_CEVAL_STATE_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_lock.h" // PyMutex +#include "pycore_gil.h" // struct _gil_runtime_state + + +typedef int (*_Py_pending_call_func)(void *); + +struct _pending_call { + _Py_pending_call_func func; + void *arg; + int flags; +}; + +#define PENDINGCALLSARRAYSIZE 300 + +#define MAXPENDINGCALLS PENDINGCALLSARRAYSIZE +/* For interpreter-level pending calls, we want to avoid spending too + much time on pending calls in any one thread, so we apply a limit. */ +#if MAXPENDINGCALLS > 100 +# define MAXPENDINGCALLSLOOP 100 +#else +# define MAXPENDINGCALLSLOOP MAXPENDINGCALLS +#endif + +/* We keep the number small to preserve as much compatibility + as possible with earlier versions. */ +#define MAXPENDINGCALLS_MAIN 32 +/* For the main thread, we want to make sure all pending calls are + run at once, for the sake of prompt signal handling. This is + unlikely to cause any problems since there should be very few + pending calls for the main thread. */ +#define MAXPENDINGCALLSLOOP_MAIN 0 + +struct _pending_calls { + PyThreadState *handling_thread; + PyMutex mutex; + /* Request for running pending calls. */ + int32_t npending; + /* The maximum allowed number of pending calls. + If the queue fills up to this point then _PyEval_AddPendingCall() + will return _Py_ADD_PENDING_FULL. */ + int32_t max; + /* We don't want a flood of pending calls to interrupt any one thread + for too long, so we keep a limit on the number handled per pass. + A value of 0 means there is no limit (other than the maximum + size of the list of pending calls). */ + int32_t maxloop; + struct _pending_call calls[PENDINGCALLSARRAYSIZE]; + int first; + int next; +}; + + +typedef enum { + PERF_STATUS_FAILED = -1, // Perf trampoline is in an invalid state + PERF_STATUS_NO_INIT = 0, // Perf trampoline is not initialized + PERF_STATUS_OK = 1, // Perf trampoline is ready to be executed +} perf_status_t; + +#ifdef PY_HAVE_PERF_TRAMPOLINE +struct code_arena_st; + +struct trampoline_api_st { + void* (*init_state)(void); + void (*write_state)(void* state, const void *code_addr, + unsigned int code_size, PyCodeObject* code); + int (*free_state)(void* state); + void *state; + Py_ssize_t code_padding; +}; +#endif + + +struct _ceval_runtime_state { + struct { +#ifdef PY_HAVE_PERF_TRAMPOLINE + perf_status_t status; + int perf_trampoline_type; + Py_ssize_t extra_code_index; + struct code_arena_st *code_arena; + struct trampoline_api_st trampoline_api; + FILE *map_file; + Py_ssize_t persist_after_fork; +#else + int _not_used; +#endif + } perf; + /* Pending calls to be made only on the main thread. */ + // The signal machinery falls back on this + // so it must be especially stable and efficient. + // For example, we use a preallocated array + // for the list of pending calls. + struct _pending_calls pending_mainthread; + PyMutex sys_trace_profile_mutex; +}; + + +#ifdef PY_HAVE_PERF_TRAMPOLINE +# define _PyEval_RUNTIME_PERF_INIT \ + { \ + .status = PERF_STATUS_NO_INIT, \ + .extra_code_index = -1, \ + .persist_after_fork = 0, \ + } +#else +# define _PyEval_RUNTIME_PERF_INIT {0} +#endif + + +struct _ceval_state { + /* This variable holds the global instrumentation version. When a thread is + running, this value is overlaid onto PyThreadState.eval_breaker so that + changes in the instrumentation version will trigger the eval breaker. */ + uintptr_t instrumentation_version; + int recursion_limit; + struct _gil_runtime_state *gil; + int own_gil; + struct _pending_calls pending; +}; + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_CEVAL_STATE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_code.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_code.h new file mode 100644 index 000000000..1fb8cc473 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_code.h @@ -0,0 +1,596 @@ +#ifndef Py_INTERNAL_CODE_H +#define Py_INTERNAL_CODE_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_lock.h" // PyMutex +#include "pycore_backoff.h" // _Py_BackoffCounter + + +/* Each instruction in a code object is a fixed-width value, + * currently 2 bytes: 1-byte opcode + 1-byte oparg. The EXTENDED_ARG + * opcode allows for larger values but the current limit is 3 uses + * of EXTENDED_ARG (see Python/compile.c), for a maximum + * 32-bit value. This aligns with the note in Python/compile.c + * (compiler_addop_i_line) indicating that the max oparg value is + * 2**32 - 1, rather than INT_MAX. + */ + +typedef union { + uint16_t cache; + struct { + uint8_t code; + uint8_t arg; + } op; + _Py_BackoffCounter counter; // First cache entry of specializable op +} _Py_CODEUNIT; + +#define _PyCode_CODE(CO) _Py_RVALUE((_Py_CODEUNIT *)(CO)->co_code_adaptive) +#define _PyCode_NBYTES(CO) (Py_SIZE(CO) * (Py_ssize_t)sizeof(_Py_CODEUNIT)) + + +/* These macros only remain defined for compatibility. */ +#define _Py_OPCODE(word) ((word).op.code) +#define _Py_OPARG(word) ((word).op.arg) + +static inline _Py_CODEUNIT +_py_make_codeunit(uint8_t opcode, uint8_t oparg) +{ + // No designated initialisers because of C++ compat + _Py_CODEUNIT word; + word.op.code = opcode; + word.op.arg = oparg; + return word; +} + +static inline void +_py_set_opcode(_Py_CODEUNIT *word, uint8_t opcode) +{ + word->op.code = opcode; +} + +#define _Py_MAKE_CODEUNIT(opcode, oparg) _py_make_codeunit((opcode), (oparg)) +#define _Py_SET_OPCODE(word, opcode) _py_set_opcode(&(word), (opcode)) + + +// We hide some of the newer PyCodeObject fields behind macros. +// This helps with backporting certain changes to 3.12. +#define _PyCode_HAS_EXECUTORS(CODE) \ + (CODE->co_executors != NULL) +#define _PyCode_HAS_INSTRUMENTATION(CODE) \ + (CODE->_co_instrumentation_version > 0) + +struct _py_code_state { + PyMutex mutex; + // Interned constants from code objects. Used by the free-threaded build. + struct _Py_hashtable_t *constants; +}; + +extern PyStatus _PyCode_Init(PyInterpreterState *interp); +extern void _PyCode_Fini(PyInterpreterState *interp); + +#define CODE_MAX_WATCHERS 8 + +/* PEP 659 + * Specialization and quickening structs and helper functions + */ + + +// Inline caches. If you change the number of cache entries for an instruction, +// you must *also* update the number of cache entries in Lib/opcode.py and bump +// the magic number in Lib/importlib/_bootstrap_external.py! + +#define CACHE_ENTRIES(cache) (sizeof(cache)/sizeof(_Py_CODEUNIT)) + +typedef struct { + _Py_BackoffCounter counter; + uint16_t module_keys_version; + uint16_t builtin_keys_version; + uint16_t index; +} _PyLoadGlobalCache; + +#define INLINE_CACHE_ENTRIES_LOAD_GLOBAL CACHE_ENTRIES(_PyLoadGlobalCache) + +typedef struct { + _Py_BackoffCounter counter; +} _PyBinaryOpCache; + +#define INLINE_CACHE_ENTRIES_BINARY_OP CACHE_ENTRIES(_PyBinaryOpCache) + +typedef struct { + _Py_BackoffCounter counter; +} _PyUnpackSequenceCache; + +#define INLINE_CACHE_ENTRIES_UNPACK_SEQUENCE \ + CACHE_ENTRIES(_PyUnpackSequenceCache) + +typedef struct { + _Py_BackoffCounter counter; +} _PyCompareOpCache; + +#define INLINE_CACHE_ENTRIES_COMPARE_OP CACHE_ENTRIES(_PyCompareOpCache) + +typedef struct { + _Py_BackoffCounter counter; +} _PyBinarySubscrCache; + +#define INLINE_CACHE_ENTRIES_BINARY_SUBSCR CACHE_ENTRIES(_PyBinarySubscrCache) + +typedef struct { + _Py_BackoffCounter counter; +} _PySuperAttrCache; + +#define INLINE_CACHE_ENTRIES_LOAD_SUPER_ATTR CACHE_ENTRIES(_PySuperAttrCache) + +typedef struct { + _Py_BackoffCounter counter; + uint16_t version[2]; + uint16_t index; +} _PyAttrCache; + +typedef struct { + _Py_BackoffCounter counter; + uint16_t type_version[2]; + union { + uint16_t keys_version[2]; + uint16_t dict_offset; + }; + uint16_t descr[4]; +} _PyLoadMethodCache; + + +// MUST be the max(_PyAttrCache, _PyLoadMethodCache) +#define INLINE_CACHE_ENTRIES_LOAD_ATTR CACHE_ENTRIES(_PyLoadMethodCache) + +#define INLINE_CACHE_ENTRIES_STORE_ATTR CACHE_ENTRIES(_PyAttrCache) + +typedef struct { + _Py_BackoffCounter counter; + uint16_t func_version[2]; +} _PyCallCache; + +#define INLINE_CACHE_ENTRIES_CALL CACHE_ENTRIES(_PyCallCache) + +typedef struct { + _Py_BackoffCounter counter; +} _PyStoreSubscrCache; + +#define INLINE_CACHE_ENTRIES_STORE_SUBSCR CACHE_ENTRIES(_PyStoreSubscrCache) + +typedef struct { + _Py_BackoffCounter counter; +} _PyForIterCache; + +#define INLINE_CACHE_ENTRIES_FOR_ITER CACHE_ENTRIES(_PyForIterCache) + +typedef struct { + _Py_BackoffCounter counter; +} _PySendCache; + +#define INLINE_CACHE_ENTRIES_SEND CACHE_ENTRIES(_PySendCache) + +typedef struct { + _Py_BackoffCounter counter; + uint16_t version[2]; +} _PyToBoolCache; + +#define INLINE_CACHE_ENTRIES_TO_BOOL CACHE_ENTRIES(_PyToBoolCache) + +typedef struct { + _Py_BackoffCounter counter; +} _PyContainsOpCache; + +#define INLINE_CACHE_ENTRIES_CONTAINS_OP CACHE_ENTRIES(_PyContainsOpCache) + +// Borrowed references to common callables: +struct callable_cache { + PyObject *isinstance; + PyObject *len; + PyObject *list_append; + PyObject *object__getattribute__; +}; + +/* "Locals plus" for a code object is the set of locals + cell vars + + * free vars. This relates to variable names as well as offsets into + * the "fast locals" storage array of execution frames. The compiler + * builds the list of names, their offsets, and the corresponding + * kind of local. + * + * Those kinds represent the source of the initial value and the + * variable's scope (as related to closures). A "local" is an + * argument or other variable defined in the current scope. A "free" + * variable is one that is defined in an outer scope and comes from + * the function's closure. A "cell" variable is a local that escapes + * into an inner function as part of a closure, and thus must be + * wrapped in a cell. Any "local" can also be a "cell", but the + * "free" kind is mutually exclusive with both. + */ + +// Note that these all fit within a byte, as do combinations. +// Later, we will use the smaller numbers to differentiate the different +// kinds of locals (e.g. pos-only arg, varkwargs, local-only). +#define CO_FAST_HIDDEN 0x10 +#define CO_FAST_LOCAL 0x20 +#define CO_FAST_CELL 0x40 +#define CO_FAST_FREE 0x80 + +typedef unsigned char _PyLocals_Kind; + +static inline _PyLocals_Kind +_PyLocals_GetKind(PyObject *kinds, int i) +{ + assert(PyBytes_Check(kinds)); + assert(0 <= i && i < PyBytes_GET_SIZE(kinds)); + char *ptr = PyBytes_AS_STRING(kinds); + return (_PyLocals_Kind)(ptr[i]); +} + +static inline void +_PyLocals_SetKind(PyObject *kinds, int i, _PyLocals_Kind kind) +{ + assert(PyBytes_Check(kinds)); + assert(0 <= i && i < PyBytes_GET_SIZE(kinds)); + char *ptr = PyBytes_AS_STRING(kinds); + ptr[i] = (char) kind; +} + + +struct _PyCodeConstructor { + /* metadata */ + PyObject *filename; + PyObject *name; + PyObject *qualname; + int flags; + + /* the code */ + PyObject *code; + int firstlineno; + PyObject *linetable; + + /* used by the code */ + PyObject *consts; + PyObject *names; + + /* mapping frame offsets to information */ + PyObject *localsplusnames; // Tuple of strings + PyObject *localspluskinds; // Bytes object, one byte per variable + + /* args (within varnames) */ + int argcount; + int posonlyargcount; + // XXX Replace argcount with posorkwargcount (argcount - posonlyargcount). + int kwonlyargcount; + + /* needed to create the frame */ + int stacksize; + + /* used by the eval loop */ + PyObject *exceptiontable; +}; + +// Using an "arguments struct" like this is helpful for maintainability +// in a case such as this with many parameters. It does bear a risk: +// if the struct changes and callers are not updated properly then the +// compiler will not catch problems (like a missing argument). This can +// cause hard-to-debug problems. The risk is mitigated by the use of +// check_code() in codeobject.c. However, we may decide to switch +// back to a regular function signature. Regardless, this approach +// wouldn't be appropriate if this weren't a strictly internal API. +// (See the comments in https://github.com/python/cpython/pull/26258.) +extern int _PyCode_Validate(struct _PyCodeConstructor *); +extern PyCodeObject* _PyCode_New(struct _PyCodeConstructor *); + + +/* Private API */ + +/* Getters for internal PyCodeObject data. */ +extern PyObject* _PyCode_GetVarnames(PyCodeObject *); +extern PyObject* _PyCode_GetCellvars(PyCodeObject *); +extern PyObject* _PyCode_GetFreevars(PyCodeObject *); +extern PyObject* _PyCode_GetCode(PyCodeObject *); + +/** API for initializing the line number tables. */ +extern int _PyCode_InitAddressRange(PyCodeObject* co, PyCodeAddressRange *bounds); + +/** Out of process API for initializing the location table. */ +extern void _PyLineTable_InitAddressRange( + const char *linetable, + Py_ssize_t length, + int firstlineno, + PyCodeAddressRange *range); + +/** API for traversing the line number table. */ +extern int _PyLineTable_NextAddressRange(PyCodeAddressRange *range); +extern int _PyLineTable_PreviousAddressRange(PyCodeAddressRange *range); + +/** API for executors */ +extern void _PyCode_Clear_Executors(PyCodeObject *code); + +#ifdef Py_GIL_DISABLED +// gh-115999 tracks progress on addressing this. +#define ENABLE_SPECIALIZATION 0 +#else +#define ENABLE_SPECIALIZATION 1 +#endif + +/* Specialization functions */ + +extern void _Py_Specialize_LoadSuperAttr(PyObject *global_super, PyObject *cls, + _Py_CODEUNIT *instr, int load_method); +extern void _Py_Specialize_LoadAttr(PyObject *owner, _Py_CODEUNIT *instr, + PyObject *name); +extern void _Py_Specialize_StoreAttr(PyObject *owner, _Py_CODEUNIT *instr, + PyObject *name); +extern void _Py_Specialize_LoadGlobal(PyObject *globals, PyObject *builtins, + _Py_CODEUNIT *instr, PyObject *name); +extern void _Py_Specialize_BinarySubscr(PyObject *sub, PyObject *container, + _Py_CODEUNIT *instr); +extern void _Py_Specialize_StoreSubscr(PyObject *container, PyObject *sub, + _Py_CODEUNIT *instr); +extern void _Py_Specialize_Call(PyObject *callable, _Py_CODEUNIT *instr, + int nargs); +extern void _Py_Specialize_BinaryOp(PyObject *lhs, PyObject *rhs, _Py_CODEUNIT *instr, + int oparg, PyObject **locals); +extern void _Py_Specialize_CompareOp(PyObject *lhs, PyObject *rhs, + _Py_CODEUNIT *instr, int oparg); +extern void _Py_Specialize_UnpackSequence(PyObject *seq, _Py_CODEUNIT *instr, + int oparg); +extern void _Py_Specialize_ForIter(PyObject *iter, _Py_CODEUNIT *instr, int oparg); +extern void _Py_Specialize_Send(PyObject *receiver, _Py_CODEUNIT *instr); +extern void _Py_Specialize_ToBool(PyObject *value, _Py_CODEUNIT *instr); +extern void _Py_Specialize_ContainsOp(PyObject *value, _Py_CODEUNIT *instr); + +#ifdef Py_STATS + +#include "pycore_bitutils.h" // _Py_bit_length + +#define STAT_INC(opname, name) do { if (_Py_stats) _Py_stats->opcode_stats[opname].specialization.name++; } while (0) +#define STAT_DEC(opname, name) do { if (_Py_stats) _Py_stats->opcode_stats[opname].specialization.name--; } while (0) +#define OPCODE_EXE_INC(opname) do { if (_Py_stats) _Py_stats->opcode_stats[opname].execution_count++; } while (0) +#define CALL_STAT_INC(name) do { if (_Py_stats) _Py_stats->call_stats.name++; } while (0) +#define OBJECT_STAT_INC(name) do { if (_Py_stats) _Py_stats->object_stats.name++; } while (0) +#define OBJECT_STAT_INC_COND(name, cond) \ + do { if (_Py_stats && cond) _Py_stats->object_stats.name++; } while (0) +#define EVAL_CALL_STAT_INC(name) do { if (_Py_stats) _Py_stats->call_stats.eval_calls[name]++; } while (0) +#define EVAL_CALL_STAT_INC_IF_FUNCTION(name, callable) \ + do { if (_Py_stats && PyFunction_Check(callable)) _Py_stats->call_stats.eval_calls[name]++; } while (0) +#define GC_STAT_ADD(gen, name, n) do { if (_Py_stats) _Py_stats->gc_stats[(gen)].name += (n); } while (0) +#define OPT_STAT_INC(name) do { if (_Py_stats) _Py_stats->optimization_stats.name++; } while (0) +#define UOP_STAT_INC(opname, name) do { if (_Py_stats) { assert(opname < 512); _Py_stats->optimization_stats.opcode[opname].name++; } } while (0) +#define UOP_PAIR_INC(uopcode, lastuop) \ + do { \ + if (lastuop && _Py_stats) { \ + _Py_stats->optimization_stats.opcode[lastuop].pair_count[uopcode]++; \ + } \ + lastuop = uopcode; \ + } while (0) +#define OPT_UNSUPPORTED_OPCODE(opname) do { if (_Py_stats) _Py_stats->optimization_stats.unsupported_opcode[opname]++; } while (0) +#define OPT_ERROR_IN_OPCODE(opname) do { if (_Py_stats) _Py_stats->optimization_stats.error_in_opcode[opname]++; } while (0) +#define OPT_HIST(length, name) \ + do { \ + if (_Py_stats) { \ + int bucket = _Py_bit_length(length >= 1 ? length - 1 : 0); \ + bucket = (bucket >= _Py_UOP_HIST_SIZE) ? _Py_UOP_HIST_SIZE - 1 : bucket; \ + _Py_stats->optimization_stats.name[bucket]++; \ + } \ + } while (0) +#define RARE_EVENT_STAT_INC(name) do { if (_Py_stats) _Py_stats->rare_event_stats.name++; } while (0) + +// Export for '_opcode' shared extension +PyAPI_FUNC(PyObject*) _Py_GetSpecializationStats(void); + +#else +#define STAT_INC(opname, name) ((void)0) +#define STAT_DEC(opname, name) ((void)0) +#define OPCODE_EXE_INC(opname) ((void)0) +#define CALL_STAT_INC(name) ((void)0) +#define OBJECT_STAT_INC(name) ((void)0) +#define OBJECT_STAT_INC_COND(name, cond) ((void)0) +#define EVAL_CALL_STAT_INC(name) ((void)0) +#define EVAL_CALL_STAT_INC_IF_FUNCTION(name, callable) ((void)0) +#define GC_STAT_ADD(gen, name, n) ((void)0) +#define OPT_STAT_INC(name) ((void)0) +#define UOP_STAT_INC(opname, name) ((void)0) +#define UOP_PAIR_INC(uopcode, lastuop) ((void)0) +#define OPT_UNSUPPORTED_OPCODE(opname) ((void)0) +#define OPT_ERROR_IN_OPCODE(opname) ((void)0) +#define OPT_HIST(length, name) ((void)0) +#define RARE_EVENT_STAT_INC(name) ((void)0) +#endif // !Py_STATS + +// Utility functions for reading/writing 32/64-bit values in the inline caches. +// Great care should be taken to ensure that these functions remain correct and +// performant! They should compile to just "move" instructions on all supported +// compilers and platforms. + +// We use memcpy to let the C compiler handle unaligned accesses and endianness +// issues for us. It also seems to produce better code than manual copying for +// most compilers (see https://blog.regehr.org/archives/959 for more info). + +static inline void +write_u32(uint16_t *p, uint32_t val) +{ + memcpy(p, &val, sizeof(val)); +} + +static inline void +write_u64(uint16_t *p, uint64_t val) +{ + memcpy(p, &val, sizeof(val)); +} + +static inline void +write_obj(uint16_t *p, PyObject *val) +{ + memcpy(p, &val, sizeof(val)); +} + +static inline uint16_t +read_u16(uint16_t *p) +{ + return *p; +} + +static inline uint32_t +read_u32(uint16_t *p) +{ + uint32_t val; + memcpy(&val, p, sizeof(val)); + return val; +} + +static inline uint64_t +read_u64(uint16_t *p) +{ + uint64_t val; + memcpy(&val, p, sizeof(val)); + return val; +} + +static inline PyObject * +read_obj(uint16_t *p) +{ + PyObject *val; + memcpy(&val, p, sizeof(val)); + return val; +} + +/* See Objects/exception_handling_notes.txt for details. + */ +static inline unsigned char * +parse_varint(unsigned char *p, int *result) { + int val = p[0] & 63; + while (p[0] & 64) { + p++; + val = (val << 6) | (p[0] & 63); + } + *result = val; + return p+1; +} + +static inline int +write_varint(uint8_t *ptr, unsigned int val) +{ + int written = 1; + while (val >= 64) { + *ptr++ = 64 | (val & 63); + val >>= 6; + written++; + } + *ptr = (uint8_t)val; + return written; +} + +static inline int +write_signed_varint(uint8_t *ptr, int val) +{ + unsigned int uval; + if (val < 0) { + // (unsigned int)(-val) has an undefined behavior for INT_MIN + uval = ((0 - (unsigned int)val) << 1) | 1; + } + else { + uval = (unsigned int)val << 1; + } + return write_varint(ptr, uval); +} + +static inline int +write_location_entry_start(uint8_t *ptr, int code, int length) +{ + assert((code & 15) == code); + *ptr = 128 | (uint8_t)(code << 3) | (uint8_t)(length - 1); + return 1; +} + + +/** Counters + * The first 16-bit value in each inline cache is a counter. + * + * When counting executions until the next specialization attempt, + * exponential backoff is used to reduce the number of specialization failures. + * See pycore_backoff.h for more details. + * On a specialization failure, the backoff counter is restarted. + */ + +#include "pycore_backoff.h" + +// A value of 1 means that we attempt to specialize the *second* time each +// instruction is executed. Executing twice is a much better indicator of +// "hotness" than executing once, but additional warmup delays only prevent +// specialization. Most types stabilize by the second execution, too: +#define ADAPTIVE_WARMUP_VALUE 1 +#define ADAPTIVE_WARMUP_BACKOFF 1 + +// A value of 52 means that we attempt to re-specialize after 53 misses (a prime +// number, useful for avoiding artifacts if every nth value is a different type +// or something). Setting the backoff to 0 means that the counter is reset to +// the same state as a warming-up instruction (value == 1, backoff == 1) after +// deoptimization. This isn't strictly necessary, but it is bit easier to reason +// about when thinking about the opcode transitions as a state machine: +#define ADAPTIVE_COOLDOWN_VALUE 52 +#define ADAPTIVE_COOLDOWN_BACKOFF 0 + +// Can't assert this in pycore_backoff.h because of header order dependencies +#if COLD_EXIT_INITIAL_VALUE <= ADAPTIVE_COOLDOWN_VALUE +# error "Cold exit value should be larger than adaptive cooldown value" +#endif + +static inline _Py_BackoffCounter +adaptive_counter_bits(uint16_t value, uint16_t backoff) { + return make_backoff_counter(value, backoff); +} + +static inline _Py_BackoffCounter +adaptive_counter_warmup(void) { + return adaptive_counter_bits(ADAPTIVE_WARMUP_VALUE, + ADAPTIVE_WARMUP_BACKOFF); +} + +static inline _Py_BackoffCounter +adaptive_counter_cooldown(void) { + return adaptive_counter_bits(ADAPTIVE_COOLDOWN_VALUE, + ADAPTIVE_COOLDOWN_BACKOFF); +} + +static inline _Py_BackoffCounter +adaptive_counter_backoff(_Py_BackoffCounter counter) { + return restart_backoff_counter(counter); +} + + +/* Comparison bit masks. */ + +/* Note this evaluates its arguments twice each */ +#define COMPARISON_BIT(x, y) (1 << (2 * ((x) >= (y)) + ((x) <= (y)))) + +/* + * The following bits are chosen so that the value of + * COMPARSION_BIT(left, right) + * masked by the values below will be non-zero if the + * comparison is true, and zero if it is false */ + +/* This is for values that are unordered, ie. NaN, not types that are unordered, e.g. sets */ +#define COMPARISON_UNORDERED 1 + +#define COMPARISON_LESS_THAN 2 +#define COMPARISON_GREATER_THAN 4 +#define COMPARISON_EQUALS 8 + +#define COMPARISON_NOT_EQUALS (COMPARISON_UNORDERED | COMPARISON_LESS_THAN | COMPARISON_GREATER_THAN) + +extern int _Py_Instrument(PyCodeObject *co, PyInterpreterState *interp); + +extern int _Py_GetBaseOpcode(PyCodeObject *code, int offset); + +extern int _PyInstruction_GetLength(PyCodeObject *code, int offset); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_CODE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_codecs.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_codecs.h new file mode 100644 index 000000000..5e2d5c5ce --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_codecs.h @@ -0,0 +1,86 @@ +#ifndef Py_INTERNAL_CODECS_H +#define Py_INTERNAL_CODECS_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_lock.h" // PyMutex + +/* Initialize codecs-related state for the given interpreter, including + registering the first codec search function. Must be called before any other + PyCodec-related functions, and while only one thread is active. */ +extern PyStatus _PyCodec_InitRegistry(PyInterpreterState *interp); + +/* Finalize codecs-related state for the given interpreter. No PyCodec-related + functions other than PyCodec_Unregister() may be called after this. */ +extern void _PyCodec_Fini(PyInterpreterState *interp); + +extern PyObject* _PyCodec_Lookup(const char *encoding); + +/* Text codec specific encoding and decoding API. + + Checks the encoding against a list of codecs which do not + implement a str<->bytes encoding before attempting the + operation. + + Please note that these APIs are internal and should not + be used in Python C extensions. + + XXX (ncoghlan): should we make these, or something like them, public + in Python 3.5+? + + */ +extern PyObject* _PyCodec_LookupTextEncoding( + const char *encoding, + const char *alternate_command); + +extern PyObject* _PyCodec_EncodeText( + PyObject *object, + const char *encoding, + const char *errors); + +extern PyObject* _PyCodec_DecodeText( + PyObject *object, + const char *encoding, + const char *errors); + +/* These two aren't actually text encoding specific, but _io.TextIOWrapper + * is the only current API consumer. + */ +extern PyObject* _PyCodecInfo_GetIncrementalDecoder( + PyObject *codec_info, + const char *errors); + +extern PyObject* _PyCodecInfo_GetIncrementalEncoder( + PyObject *codec_info, + const char *errors); + +// Per-interpreter state used by codecs.c. +struct codecs_state { + // A list of callable objects used to search for codecs. + PyObject *search_path; + + // A dict mapping codec names to codecs returned from a callable in + // search_path. + PyObject *search_cache; + + // A dict mapping error handling strategies to functions to implement them. + PyObject *error_registry; + +#ifdef Py_GIL_DISABLED + // Used to safely delete a specific item from search_path. + PyMutex search_path_mutex; +#endif + + // Whether or not the rest of the state is initialized. + int initialized; +}; + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_CODECS_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_compile.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_compile.h new file mode 100644 index 000000000..3c21f83a1 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_compile.h @@ -0,0 +1,118 @@ +#ifndef Py_INTERNAL_COMPILE_H +#define Py_INTERNAL_COMPILE_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_symtable.h" // _Py_SourceLocation +#include "pycore_instruction_sequence.h" + +struct _arena; // Type defined in pycore_pyarena.h +struct _mod; // Type defined in pycore_ast.h + +// Export for 'test_peg_generator' shared extension +PyAPI_FUNC(PyCodeObject*) _PyAST_Compile( + struct _mod *mod, + PyObject *filename, + PyCompilerFlags *flags, + int optimize, + struct _arena *arena); + +/* AST optimizations */ +extern int _PyCompile_AstOptimize( + struct _mod *mod, + PyObject *filename, + PyCompilerFlags *flags, + int optimize, + struct _arena *arena); + +struct _Py_SourceLocation; + +extern int _PyAST_Optimize( + struct _mod *, + struct _arena *arena, + int optimize, + int ff_features); + + +typedef struct { + PyObject *u_name; + PyObject *u_qualname; /* dot-separated qualified name (lazy) */ + + /* The following fields are dicts that map objects to + the index of them in co_XXX. The index is used as + the argument for opcodes that refer to those collections. + */ + PyObject *u_consts; /* all constants */ + PyObject *u_names; /* all names */ + PyObject *u_varnames; /* local variables */ + PyObject *u_cellvars; /* cell variables */ + PyObject *u_freevars; /* free variables */ + PyObject *u_fasthidden; /* dict; keys are names that are fast-locals only + temporarily within an inlined comprehension. When + value is True, treat as fast-local. */ + + 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_kwonlyargcount; /* number of keyword only arguments for block */ + + int u_firstlineno; /* the first lineno of the block */ +} _PyCompile_CodeUnitMetadata; + + +/* Utility for a number of growing arrays used in the compiler */ +int _PyCompile_EnsureArrayLargeEnough( + int idx, + void **array, + int *alloc, + int default_alloc, + size_t item_size); + +int _PyCompile_ConstCacheMergeOne(PyObject *const_cache, PyObject **obj); + + +// Export for '_opcode' extension module +PyAPI_FUNC(int) _PyCompile_OpcodeIsValid(int opcode); +PyAPI_FUNC(int) _PyCompile_OpcodeHasArg(int opcode); +PyAPI_FUNC(int) _PyCompile_OpcodeHasConst(int opcode); +PyAPI_FUNC(int) _PyCompile_OpcodeHasName(int opcode); +PyAPI_FUNC(int) _PyCompile_OpcodeHasJump(int opcode); +PyAPI_FUNC(int) _PyCompile_OpcodeHasFree(int opcode); +PyAPI_FUNC(int) _PyCompile_OpcodeHasLocal(int opcode); +PyAPI_FUNC(int) _PyCompile_OpcodeHasExc(int opcode); + +PyAPI_FUNC(PyObject*) _PyCompile_GetUnaryIntrinsicName(int index); +PyAPI_FUNC(PyObject*) _PyCompile_GetBinaryIntrinsicName(int index); + +/* Access compiler internals for unit testing */ + +// Export for '_testinternalcapi' shared extension +PyAPI_FUNC(PyObject*) _PyCompile_CleanDoc(PyObject *doc); + +// Export for '_testinternalcapi' shared extension +PyAPI_FUNC(PyObject*) _PyCompile_CodeGen( + PyObject *ast, + PyObject *filename, + PyCompilerFlags *flags, + int optimize, + int compile_mode); + +// Export for '_testinternalcapi' shared extension +PyAPI_FUNC(PyObject*) _PyCompile_OptimizeCfg( + PyObject *instructions, + PyObject *consts, + int nlocals); + +// Export for '_testinternalcapi' shared extension +PyAPI_FUNC(PyCodeObject*) +_PyCompile_Assemble(_PyCompile_CodeUnitMetadata *umd, PyObject *filename, + PyObject *instructions); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_COMPILE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_complexobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_complexobject.h new file mode 100644 index 000000000..54713536e --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_complexobject.h @@ -0,0 +1,25 @@ +#ifndef Py_INTERNAL_COMPLEXOBJECT_H +#define Py_INTERNAL_COMPLEXOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_unicodeobject.h" // _PyUnicodeWriter + +/* Format the object based on the format_spec, as defined in PEP 3101 + (Advanced String Formatting). */ +extern int _PyComplex_FormatAdvancedWriter( + _PyUnicodeWriter *writer, + PyObject *obj, + PyObject *format_spec, + Py_ssize_t start, + Py_ssize_t end); + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_COMPLEXOBJECT_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_condvar.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_condvar.h new file mode 100644 index 000000000..ee9533484 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_condvar.h @@ -0,0 +1,91 @@ +#ifndef Py_INTERNAL_CONDVAR_H +#define Py_INTERNAL_CONDVAR_H + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_pythread.h" // _POSIX_THREADS + + +#ifdef _POSIX_THREADS +/* + * POSIX support + */ +#define Py_HAVE_CONDVAR + +#ifdef HAVE_PTHREAD_H +# include // pthread_mutex_t +#endif + +#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 // CRITICAL_SECTION + +/* options */ +/* emulated condition variables are provided for those that want + * to target Windows XP or earlier. Modify this macro to enable them. + */ +#ifndef _PY_EMULATED_WIN_CV +#define _PY_EMULATED_WIN_CV 0 /* use non-emulated condition variables */ +#endif + +/* fall back to emulation if targeting earlier than 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-reset 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 Windows primitives if build target is Vista 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/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_context.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_context.h new file mode 100644 index 000000000..10c1f1e52 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_context.h @@ -0,0 +1,61 @@ +#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_freelist.h" // _PyFreeListState +#include "pycore_hamt.h" // PyHamtObject + + +extern PyTypeObject _PyContextTokenMissing_Type; + +/* runtime lifecycle */ + +PyStatus _PyContext_Init(PyInterpreterState *); + + +/* other API */ + +typedef struct { + PyObject_HEAD +} _PyContextTokenMissing; + +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; +#ifndef Py_GIL_DISABLED + PyObject *var_cached; + uint64_t var_cached_tsid; + uint64_t var_cached_tsver; +#endif + Py_hash_t var_hash; +}; + + +struct _pycontexttokenobject { + PyObject_HEAD + PyContext *tok_ctx; + PyContextVar *tok_var; + PyObject *tok_oldval; + int tok_used; +}; + + +// _testinternalcapi.hamt() used by tests. +// Export for '_testcapi' shared extension +PyAPI_FUNC(PyObject*) _PyContext_NewHamtForTests(void); + + +#endif /* !Py_INTERNAL_CONTEXT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_critical_section.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_critical_section.h new file mode 100644 index 000000000..78cd0d549 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_critical_section.h @@ -0,0 +1,233 @@ +#ifndef Py_INTERNAL_CRITICAL_SECTION_H +#define Py_INTERNAL_CRITICAL_SECTION_H + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_lock.h" // PyMutex +#include "pycore_pystate.h" // _PyThreadState_GET() +#include + +#ifdef __cplusplus +extern "C" { +#endif + +// Tagged pointers to critical sections use the two least significant bits to +// mark if the pointed-to critical section is inactive and whether it is a +// PyCriticalSection2 object. +#define _Py_CRITICAL_SECTION_INACTIVE 0x1 +#define _Py_CRITICAL_SECTION_TWO_MUTEXES 0x2 +#define _Py_CRITICAL_SECTION_MASK 0x3 + +#ifdef Py_GIL_DISABLED +# define Py_BEGIN_CRITICAL_SECTION_MUT(mutex) \ + { \ + PyCriticalSection _py_cs; \ + _PyCriticalSection_BeginMutex(&_py_cs, mutex) + +# define Py_BEGIN_CRITICAL_SECTION2_MUT(m1, m2) \ + { \ + PyCriticalSection2 _py_cs2; \ + _PyCriticalSection2_BeginMutex(&_py_cs2, m1, m2) + +// Specialized version of critical section locking to safely use +// PySequence_Fast APIs without the GIL. For performance, the argument *to* +// PySequence_Fast() is provided to the macro, not the *result* of +// PySequence_Fast(), which would require an extra test to determine if the +// lock must be acquired. +# define Py_BEGIN_CRITICAL_SECTION_SEQUENCE_FAST(original) \ + { \ + PyObject *_orig_seq = _PyObject_CAST(original); \ + const bool _should_lock_cs = PyList_CheckExact(_orig_seq); \ + PyCriticalSection _cs; \ + if (_should_lock_cs) { \ + _PyCriticalSection_Begin(&_cs, _orig_seq); \ + } + +# define Py_END_CRITICAL_SECTION_SEQUENCE_FAST() \ + if (_should_lock_cs) { \ + PyCriticalSection_End(&_cs); \ + } \ + } + +// Asserts that the mutex is locked. The mutex must be held by the +// top-most critical section otherwise there's the possibility +// that the mutex would be swalled out in some code paths. +#define _Py_CRITICAL_SECTION_ASSERT_MUTEX_LOCKED(mutex) \ + _PyCriticalSection_AssertHeld(mutex) + +// Asserts that the mutex for the given object is locked. The mutex must +// be held by the top-most critical section otherwise there's the +// possibility that the mutex would be swalled out in some code paths. +#ifdef Py_DEBUG + +# define _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED(op) \ + if (Py_REFCNT(op) != 1) { \ + _Py_CRITICAL_SECTION_ASSERT_MUTEX_LOCKED(&_PyObject_CAST(op)->ob_mutex); \ + } + +#else /* Py_DEBUG */ + +# define _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED(op) + +#endif /* Py_DEBUG */ + +#else /* !Py_GIL_DISABLED */ +// The critical section APIs are no-ops with the GIL. +# define Py_BEGIN_CRITICAL_SECTION_MUT(mut) { +# define Py_BEGIN_CRITICAL_SECTION2_MUT(m1, m2) { +# define Py_BEGIN_CRITICAL_SECTION_SEQUENCE_FAST(original) { +# define Py_END_CRITICAL_SECTION_SEQUENCE_FAST() } +# define _Py_CRITICAL_SECTION_ASSERT_MUTEX_LOCKED(mutex) +# define _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED(op) +#endif /* !Py_GIL_DISABLED */ + +// Resumes the top-most critical section. +PyAPI_FUNC(void) +_PyCriticalSection_Resume(PyThreadState *tstate); + +// (private) slow path for locking the mutex +PyAPI_FUNC(void) +_PyCriticalSection_BeginSlow(PyCriticalSection *c, PyMutex *m); + +PyAPI_FUNC(void) +_PyCriticalSection2_BeginSlow(PyCriticalSection2 *c, PyMutex *m1, PyMutex *m2, + int is_m1_locked); + +PyAPI_FUNC(void) +_PyCriticalSection_SuspendAll(PyThreadState *tstate); + +#ifdef Py_GIL_DISABLED + +static inline int +_PyCriticalSection_IsActive(uintptr_t tag) +{ + return tag != 0 && (tag & _Py_CRITICAL_SECTION_INACTIVE) == 0; +} + +static inline void +_PyCriticalSection_BeginMutex(PyCriticalSection *c, PyMutex *m) +{ + if (PyMutex_LockFast(&m->_bits)) { + PyThreadState *tstate = _PyThreadState_GET(); + c->_cs_mutex = m; + c->_cs_prev = tstate->critical_section; + tstate->critical_section = (uintptr_t)c; + } + else { + _PyCriticalSection_BeginSlow(c, m); + } +} + +static inline void +_PyCriticalSection_Begin(PyCriticalSection *c, PyObject *op) +{ + _PyCriticalSection_BeginMutex(c, &op->ob_mutex); +} +#define PyCriticalSection_Begin _PyCriticalSection_Begin + +// Removes the top-most critical section from the thread's stack of critical +// sections. If the new top-most critical section is inactive, then it is +// resumed. +static inline void +_PyCriticalSection_Pop(PyCriticalSection *c) +{ + PyThreadState *tstate = _PyThreadState_GET(); + uintptr_t prev = c->_cs_prev; + tstate->critical_section = prev; + + if ((prev & _Py_CRITICAL_SECTION_INACTIVE) != 0) { + _PyCriticalSection_Resume(tstate); + } +} + +static inline void +_PyCriticalSection_End(PyCriticalSection *c) +{ + PyMutex_Unlock(c->_cs_mutex); + _PyCriticalSection_Pop(c); +} +#define PyCriticalSection_End _PyCriticalSection_End + +static inline void +_PyCriticalSection2_BeginMutex(PyCriticalSection2 *c, PyMutex *m1, PyMutex *m2) +{ + if (m1 == m2) { + // If the two mutex arguments are the same, treat this as a critical + // section with a single mutex. + c->_cs_mutex2 = NULL; + _PyCriticalSection_BeginMutex(&c->_cs_base, m1); + return; + } + + if ((uintptr_t)m2 < (uintptr_t)m1) { + // Sort the mutexes so that the lower address is locked first. + // The exact order does not matter, but we need to acquire the mutexes + // in a consistent order to avoid lock ordering deadlocks. + PyMutex *tmp = m1; + m1 = m2; + m2 = tmp; + } + + if (PyMutex_LockFast(&m1->_bits)) { + if (PyMutex_LockFast(&m2->_bits)) { + PyThreadState *tstate = _PyThreadState_GET(); + c->_cs_base._cs_mutex = m1; + c->_cs_mutex2 = m2; + c->_cs_base._cs_prev = tstate->critical_section; + + uintptr_t p = (uintptr_t)c | _Py_CRITICAL_SECTION_TWO_MUTEXES; + tstate->critical_section = p; + } + else { + _PyCriticalSection2_BeginSlow(c, m1, m2, 1); + } + } + else { + _PyCriticalSection2_BeginSlow(c, m1, m2, 0); + } +} + +static inline void +_PyCriticalSection2_Begin(PyCriticalSection2 *c, PyObject *a, PyObject *b) +{ + _PyCriticalSection2_BeginMutex(c, &a->ob_mutex, &b->ob_mutex); +} +#define PyCriticalSection2_Begin _PyCriticalSection2_Begin + +static inline void +_PyCriticalSection2_End(PyCriticalSection2 *c) +{ + if (c->_cs_mutex2) { + PyMutex_Unlock(c->_cs_mutex2); + } + PyMutex_Unlock(c->_cs_base._cs_mutex); + _PyCriticalSection_Pop(&c->_cs_base); +} +#define PyCriticalSection2_End _PyCriticalSection2_End + +static inline void +_PyCriticalSection_AssertHeld(PyMutex *mutex) +{ +#ifdef Py_DEBUG + PyThreadState *tstate = _PyThreadState_GET(); + uintptr_t prev = tstate->critical_section; + if (prev & _Py_CRITICAL_SECTION_TWO_MUTEXES) { + PyCriticalSection2 *cs = (PyCriticalSection2 *)(prev & ~_Py_CRITICAL_SECTION_MASK); + assert(cs != NULL && (cs->_cs_base._cs_mutex == mutex || cs->_cs_mutex2 == mutex)); + } + else { + PyCriticalSection *cs = (PyCriticalSection *)(tstate->critical_section & ~_Py_CRITICAL_SECTION_MASK); + assert(cs != NULL && cs->_cs_mutex == mutex); + } + +#endif +} + +#endif /* Py_GIL_DISABLED */ + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_CRITICAL_SECTION_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_crossinterp.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_crossinterp.h new file mode 100644 index 000000000..2dd165eae --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_crossinterp.h @@ -0,0 +1,340 @@ +#ifndef Py_INTERNAL_CROSSINTERP_H +#define Py_INTERNAL_CROSSINTERP_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_lock.h" // PyMutex +#include "pycore_pyerrors.h" + +/**************/ +/* exceptions */ +/**************/ + +PyAPI_DATA(PyObject *) PyExc_InterpreterError; +PyAPI_DATA(PyObject *) PyExc_InterpreterNotFoundError; + + +/***************************/ +/* cross-interpreter calls */ +/***************************/ + +typedef int (*_Py_simple_func)(void *); +extern int _Py_CallInInterpreter( + PyInterpreterState *interp, + _Py_simple_func func, + void *arg); +extern int _Py_CallInInterpreterAndRawFree( + PyInterpreterState *interp, + _Py_simple_func func, + void *arg); + + +/**************************/ +/* cross-interpreter data */ +/**************************/ + +typedef struct _xid _PyCrossInterpreterData; +typedef PyObject *(*xid_newobjectfunc)(_PyCrossInterpreterData *); +typedef void (*xid_freefunc)(void *); + +// _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. +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 interpid; + // 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. + xid_newobjectfunc new_object; + // 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. + xid_freefunc free; +}; + +PyAPI_FUNC(_PyCrossInterpreterData *) _PyCrossInterpreterData_New(void); +PyAPI_FUNC(void) _PyCrossInterpreterData_Free(_PyCrossInterpreterData *data); + +#define _PyCrossInterpreterData_DATA(DATA) ((DATA)->data) +#define _PyCrossInterpreterData_OBJ(DATA) ((DATA)->obj) +#define _PyCrossInterpreterData_INTERPID(DATA) ((DATA)->interpid) +// Users should not need getters for "new_object" or "free". + + +/* defining cross-interpreter data */ + +PyAPI_FUNC(void) _PyCrossInterpreterData_Init( + _PyCrossInterpreterData *data, + PyInterpreterState *interp, void *shared, PyObject *obj, + xid_newobjectfunc new_object); +PyAPI_FUNC(int) _PyCrossInterpreterData_InitWithSize( + _PyCrossInterpreterData *, + PyInterpreterState *interp, const size_t, PyObject *, + xid_newobjectfunc); +PyAPI_FUNC(void) _PyCrossInterpreterData_Clear( + PyInterpreterState *, _PyCrossInterpreterData *); + +// Normally the Init* functions are sufficient. The only time +// additional initialization might be needed is to set the "free" func, +// though that should be infrequent. +#define _PyCrossInterpreterData_SET_FREE(DATA, FUNC) \ + do { \ + (DATA)->free = (FUNC); \ + } while (0) +// Additionally, some shareable types are essentially light wrappers +// around other shareable types. The crossinterpdatafunc of the wrapper +// can often be implemented by calling the wrapped object's +// crossinterpdatafunc and then changing the "new_object" function. +// We have _PyCrossInterpreterData_SET_NEW_OBJECT() here for that, +// but might be better to have a function like +// _PyCrossInterpreterData_AdaptToWrapper() instead. +#define _PyCrossInterpreterData_SET_NEW_OBJECT(DATA, FUNC) \ + do { \ + (DATA)->new_object = (FUNC); \ + } while (0) + + +/* using cross-interpreter data */ + +PyAPI_FUNC(int) _PyObject_CheckCrossInterpreterData(PyObject *); +PyAPI_FUNC(int) _PyObject_GetCrossInterpreterData(PyObject *, _PyCrossInterpreterData *); +PyAPI_FUNC(PyObject *) _PyCrossInterpreterData_NewObject(_PyCrossInterpreterData *); +PyAPI_FUNC(int) _PyCrossInterpreterData_Release(_PyCrossInterpreterData *); +PyAPI_FUNC(int) _PyCrossInterpreterData_ReleaseAndRawFree(_PyCrossInterpreterData *); + + +/* 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. + +typedef int (*crossinterpdatafunc)(PyThreadState *tstate, PyObject *, + _PyCrossInterpreterData *); + +struct _xidregitem; + +struct _xidregitem { + struct _xidregitem *prev; + struct _xidregitem *next; + /* This can be a dangling pointer, but only if weakref is set. */ + PyTypeObject *cls; + /* This is NULL for builtin types. */ + PyObject *weakref; + size_t refcount; + crossinterpdatafunc getdata; +}; + +struct _xidregistry { + int global; /* builtin types or heap types */ + int initialized; + PyMutex mutex; + struct _xidregitem *head; +}; + +PyAPI_FUNC(int) _PyCrossInterpreterData_RegisterClass(PyTypeObject *, crossinterpdatafunc); +PyAPI_FUNC(int) _PyCrossInterpreterData_UnregisterClass(PyTypeObject *); +PyAPI_FUNC(crossinterpdatafunc) _PyCrossInterpreterData_Lookup(PyObject *); + + +/*****************************/ +/* runtime state & lifecycle */ +/*****************************/ + +struct _xi_runtime_state { + // builtin types + // XXX Remove this field once we have a tp_* slot. + struct _xidregistry registry; +}; + +struct _xi_state { + // heap types + // XXX Remove this field once we have a tp_* slot. + struct _xidregistry registry; + + // heap types + PyObject *PyExc_NotShareableError; +}; + +extern PyStatus _PyXI_Init(PyInterpreterState *interp); +extern void _PyXI_Fini(PyInterpreterState *interp); + +extern PyStatus _PyXI_InitTypes(PyInterpreterState *interp); +extern void _PyXI_FiniTypes(PyInterpreterState *interp); + +#define _PyInterpreterState_GetXIState(interp) (&(interp)->xi) + + +/***************************/ +/* short-term data sharing */ +/***************************/ + +// 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 _excinfo { + struct _excinfo_type { + PyTypeObject *builtin; + const char *name; + const char *qualname; + const char *module; + } type; + const char *msg; + const char *errdisplay; +} _PyXI_excinfo; + +PyAPI_FUNC(int) _PyXI_InitExcInfo(_PyXI_excinfo *info, PyObject *exc); +PyAPI_FUNC(PyObject *) _PyXI_FormatExcInfo(_PyXI_excinfo *info); +PyAPI_FUNC(PyObject *) _PyXI_ExcInfoAsObject(_PyXI_excinfo *info); +PyAPI_FUNC(void) _PyXI_ClearExcInfo(_PyXI_excinfo *info); + + +typedef enum error_code { + _PyXI_ERR_NO_ERROR = 0, + _PyXI_ERR_UNCAUGHT_EXCEPTION = -1, + _PyXI_ERR_OTHER = -2, + _PyXI_ERR_NO_MEMORY = -3, + _PyXI_ERR_ALREADY_RUNNING = -4, + _PyXI_ERR_MAIN_NS_FAILURE = -5, + _PyXI_ERR_APPLY_NS_FAILURE = -6, + _PyXI_ERR_NOT_SHAREABLE = -7, +} _PyXI_errcode; + + +typedef struct _sharedexception { + // The originating interpreter. + PyInterpreterState *interp; + // The kind of error to propagate. + _PyXI_errcode code; + // The exception information to propagate, if applicable. + // This is populated only for some error codes, + // but always for _PyXI_ERR_UNCAUGHT_EXCEPTION. + _PyXI_excinfo uncaught; +} _PyXI_error; + +PyAPI_FUNC(PyObject *) _PyXI_ApplyError(_PyXI_error *err); + + +typedef struct xi_session _PyXI_session; +typedef struct _sharedns _PyXI_namespace; + +PyAPI_FUNC(void) _PyXI_FreeNamespace(_PyXI_namespace *ns); +PyAPI_FUNC(_PyXI_namespace *) _PyXI_NamespaceFromNames(PyObject *names); +PyAPI_FUNC(int) _PyXI_FillNamespaceFromDict( + _PyXI_namespace *ns, + PyObject *nsobj, + _PyXI_session *session); +PyAPI_FUNC(int) _PyXI_ApplyNamespace( + _PyXI_namespace *ns, + PyObject *nsobj, + PyObject *dflt); + + +// A cross-interpreter session involves entering an interpreter +// (_PyXI_Enter()), doing some work with it, and finally exiting +// that interpreter (_PyXI_Exit()). +// +// At the boundaries of the session, both entering and exiting, +// data may be exchanged between the previous interpreter and the +// target one in a thread-safe way that does not violate the +// isolation between interpreters. This includes setting objects +// in the target's __main__ module on the way in, and capturing +// uncaught exceptions on the way out. +struct xi_session { + // Once a session has been entered, this is the tstate that was + // current before the session. If it is different from cur_tstate + // then we must have switched interpreters. Either way, this will + // be the current tstate once we exit the session. + PyThreadState *prev_tstate; + // Once a session has been entered, this is the current tstate. + // It must be current when the session exits. + PyThreadState *init_tstate; + // This is true if init_tstate needs cleanup during exit. + int own_init_tstate; + + // This is true if, while entering the session, init_thread took + // "ownership" of the interpreter's __main__ module. This means + // it is the only thread that is allowed to run code there. + // (Caveat: for now, users may still run exec() against the + // __main__ module's dict, though that isn't advisable.) + int running; + // This is a cached reference to the __dict__ of the entered + // interpreter's __main__ module. It is looked up when at the + // beginning of the session as a convenience. + PyObject *main_ns; + + // This is set if the interpreter is entered and raised an exception + // that needs to be handled in some special way during exit. + _PyXI_errcode *error_override; + // This is set if exit captured an exception to propagate. + _PyXI_error *error; + + // -- pre-allocated memory -- + _PyXI_error _error; + _PyXI_errcode _error_override; +}; + +PyAPI_FUNC(int) _PyXI_Enter( + _PyXI_session *session, + PyInterpreterState *interp, + PyObject *nsupdates); +PyAPI_FUNC(void) _PyXI_Exit(_PyXI_session *session); + +PyAPI_FUNC(PyObject *) _PyXI_ApplyCapturedException(_PyXI_session *session); +PyAPI_FUNC(int) _PyXI_HasCapturedException(_PyXI_session *session); + + +/*************/ +/* other API */ +/*************/ + +// Export for _testinternalcapi shared extension +PyAPI_FUNC(PyInterpreterState *) _PyXI_NewInterpreter( + PyInterpreterConfig *config, + long *maybe_whence, + PyThreadState **p_tstate, + PyThreadState **p_save_tstate); +PyAPI_FUNC(void) _PyXI_EndInterpreter( + PyInterpreterState *interp, + PyThreadState *tstate, + PyThreadState **p_save_tstate); + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_CROSSINTERP_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_descrobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_descrobject.h new file mode 100644 index 000000000..3cec59a68 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_descrobject.h @@ -0,0 +1,28 @@ +#ifndef Py_INTERNAL_DESCROBJECT_H +#define Py_INTERNAL_DESCROBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +typedef struct { + PyObject_HEAD + PyObject *prop_get; + PyObject *prop_set; + PyObject *prop_del; + PyObject *prop_doc; + PyObject *prop_name; + int getter_doc; +} propertyobject; + +typedef propertyobject _PyPropertyObject; + +extern PyTypeObject _PyMethodWrapper_Type; + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_DESCROBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_dict.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_dict.h new file mode 100644 index 000000000..36da498db --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_dict.h @@ -0,0 +1,340 @@ +#ifndef Py_INTERNAL_DICT_H +#define Py_INTERNAL_DICT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_freelist.h" // _PyFreeListState +#include "pycore_identifier.h" // _Py_Identifier +#include "pycore_object.h" // PyManagedDictPointer +#include "pycore_pyatomic_ft_wrappers.h" // FT_ATOMIC_LOAD_SSIZE_ACQUIRE + +// Unsafe flavor of PyDict_GetItemWithError(): no error checking +extern PyObject* _PyDict_GetItemWithError(PyObject *dp, PyObject *key); + +// Delete an item from a dict if a predicate is true +// Returns -1 on error, 1 if the item was deleted, 0 otherwise +// Export for '_asyncio' shared extension +PyAPI_FUNC(int) _PyDict_DelItemIf(PyObject *mp, PyObject *key, + int (*predicate)(PyObject *value, void *arg), + void *arg); + +// "KnownHash" variants +// Export for '_asyncio' shared extension +PyAPI_FUNC(int) _PyDict_SetItem_KnownHash(PyObject *mp, PyObject *key, + PyObject *item, Py_hash_t hash); +// Export for '_asyncio' shared extension +PyAPI_FUNC(int) _PyDict_DelItem_KnownHash(PyObject *mp, PyObject *key, + Py_hash_t hash); +extern int _PyDict_Contains_KnownHash(PyObject *, PyObject *, Py_hash_t); + +// "Id" variants +extern PyObject* _PyDict_GetItemIdWithError(PyObject *dp, + _Py_Identifier *key); +extern int _PyDict_ContainsId(PyObject *, _Py_Identifier *); +extern int _PyDict_SetItemId(PyObject *dp, _Py_Identifier *key, PyObject *item); +extern int _PyDict_DelItemId(PyObject *mp, _Py_Identifier *key); + +extern int _PyDict_Next( + PyObject *mp, Py_ssize_t *pos, PyObject **key, PyObject **value, Py_hash_t *hash); + +extern int _PyDict_HasOnlyStringKeys(PyObject *mp); + +extern void _PyDict_MaybeUntrack(PyObject *mp); + +// Export for '_ctypes' shared extension +PyAPI_FUNC(Py_ssize_t) _PyDict_SizeOf(PyDictObject *); + +#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); + +extern void _PyDict_DebugMallocStats(FILE *out); + + +/* _PyDictView */ + +typedef struct { + PyObject_HEAD + PyDictObject *dv_dict; +} _PyDictViewObject; + +extern PyObject* _PyDictView_New(PyObject *, PyTypeObject *); +extern PyObject* _PyDictView_Intersect(PyObject* self, PyObject *other); + +/* other API */ + +typedef struct { + /* Cached hash code of me_key. */ + Py_hash_t me_hash; + PyObject *me_key; + PyObject *me_value; /* This field is only meaningful for combined tables */ +} PyDictKeyEntry; + +typedef struct { + PyObject *me_key; /* The key must be Unicode and have hash. */ + PyObject *me_value; /* This field is only meaningful for combined tables */ +} PyDictUnicodeEntry; + +extern PyDictKeysObject *_PyDict_NewKeysForClass(void); +extern PyObject *_PyDict_FromKeys(PyObject *, PyObject *, PyObject *); + +/* Gets a version number unique to the current state of the keys of dict, if possible. + * Returns the version number, or zero if it was not possible to get a version number. */ +extern uint32_t _PyDictKeys_GetVersionForCurrentState( + PyInterpreterState *interp, PyDictKeysObject *dictkeys); + +extern size_t _PyDict_KeysSize(PyDictKeysObject *keys); + +extern void _PyDictKeys_DecRef(PyDictKeysObject *keys); + +/* _Py_dict_lookup() returns index of entry which can be used like DK_ENTRIES(dk)[index]. + * -1 when no entry found, -3 when compare raises error. + */ +extern Py_ssize_t _Py_dict_lookup(PyDictObject *mp, PyObject *key, Py_hash_t hash, PyObject **value_addr); +extern Py_ssize_t _Py_dict_lookup_threadsafe(PyDictObject *mp, PyObject *key, Py_hash_t hash, PyObject **value_addr); + +extern Py_ssize_t _PyDict_LookupIndex(PyDictObject *, PyObject *); +extern Py_ssize_t _PyDictKeys_StringLookup(PyDictKeysObject* dictkeys, PyObject *key); +PyAPI_FUNC(PyObject *)_PyDict_LoadGlobal(PyDictObject *, PyDictObject *, PyObject *); + +/* Consumes references to key and value */ +PyAPI_FUNC(int) _PyDict_SetItem_Take2(PyDictObject *op, PyObject *key, PyObject *value); +extern int _PyDict_SetItem_LockHeld(PyDictObject *dict, PyObject *name, PyObject *value); +// Export for '_asyncio' shared extension +PyAPI_FUNC(int) _PyDict_SetItem_KnownHash_LockHeld(PyDictObject *mp, PyObject *key, + PyObject *value, Py_hash_t hash); +// Export for '_asyncio' shared extension +PyAPI_FUNC(int) _PyDict_GetItemRef_KnownHash_LockHeld(PyDictObject *op, PyObject *key, Py_hash_t hash, PyObject **result); +extern int _PyDict_GetItemRef_KnownHash(PyDictObject *op, PyObject *key, Py_hash_t hash, PyObject **result); +extern int _PyDict_GetItemRef_Unicode_LockHeld(PyDictObject *op, PyObject *key, PyObject **result); +extern int _PyObjectDict_SetItem(PyTypeObject *tp, PyObject *obj, PyObject **dictptr, PyObject *name, PyObject *value); + +extern int _PyDict_Pop_KnownHash( + PyDictObject *dict, + PyObject *key, + Py_hash_t hash, + PyObject **result); + +#define DKIX_EMPTY (-1) +#define DKIX_DUMMY (-2) /* Used internally */ +#define DKIX_ERROR (-3) +#define DKIX_KEY_CHANGED (-4) /* Used internally */ + +typedef enum { + DICT_KEYS_GENERAL = 0, + DICT_KEYS_UNICODE = 1, + DICT_KEYS_SPLIT = 2 +} DictKeysKind; + +/* See dictobject.c for actual layout of DictKeysObject */ +struct _dictkeysobject { + Py_ssize_t dk_refcnt; + + /* Size of the hash table (dk_indices). It must be a power of 2. */ + uint8_t dk_log2_size; + + /* Size of the hash table (dk_indices) by bytes. */ + uint8_t dk_log2_index_bytes; + + /* Kind of keys */ + uint8_t dk_kind; + +#ifdef Py_GIL_DISABLED + /* Lock used to protect shared keys */ + PyMutex dk_mutex; +#endif + + /* Version number -- Reset to 0 by any modification to keys */ + uint32_t dk_version; + + /* Number of usable entries in dk_entries. */ + Py_ssize_t dk_usable; + + /* Number of used entries in dk_entries. */ + Py_ssize_t dk_nentries; + + + /* Actual hash table of dk_size entries. It holds indices in dk_entries, + or DKIX_EMPTY(-1) or DKIX_DUMMY(-2). + + Indices must be: 0 <= indice < USABLE_FRACTION(dk_size). + + The size in bytes of an indice depends on dk_size: + + - 1 byte if dk_size <= 0xff (char*) + - 2 bytes if dk_size <= 0xffff (int16_t*) + - 4 bytes if dk_size <= 0xffffffff (int32_t*) + - 8 bytes otherwise (int64_t*) + + Dynamically sized, SIZEOF_VOID_P is minimum. */ + char dk_indices[]; /* char is required to avoid strict aliasing. */ + + /* "PyDictKeyEntry or PyDictUnicodeEntry dk_entries[USABLE_FRACTION(DK_SIZE(dk))];" array follows: + see the DK_ENTRIES() / DK_UNICODE_ENTRIES() functions below */ +}; + +/* This must be no more than 250, for the prefix size to fit in one byte. */ +#define SHARED_KEYS_MAX_SIZE 30 +#define NEXT_LOG2_SHARED_KEYS_MAX_SIZE 6 + +/* Layout of dict values: + * + * The PyObject *values are preceded by an array of bytes holding + * the insertion order and size. + * [-1] = prefix size. [-2] = used size. size[-2-n...] = insertion order. + */ +struct _dictvalues { + uint8_t capacity; + uint8_t size; + uint8_t embedded; + uint8_t valid; + PyObject *values[1]; +}; + +#define DK_LOG_SIZE(dk) _Py_RVALUE((dk)->dk_log2_size) +#if SIZEOF_VOID_P > 4 +#define DK_SIZE(dk) (((int64_t)1)<dk_indices); + size_t index = (size_t)1 << dk->dk_log2_index_bytes; + return (&indices[index]); +} + +static inline PyDictKeyEntry* DK_ENTRIES(PyDictKeysObject *dk) { + assert(dk->dk_kind == DICT_KEYS_GENERAL); + return (PyDictKeyEntry*)_DK_ENTRIES(dk); +} +static inline PyDictUnicodeEntry* DK_UNICODE_ENTRIES(PyDictKeysObject *dk) { + assert(dk->dk_kind != DICT_KEYS_GENERAL); + return (PyDictUnicodeEntry*)_DK_ENTRIES(dk); +} + +#define DK_IS_UNICODE(dk) ((dk)->dk_kind != DICT_KEYS_GENERAL) + +#define DICT_VERSION_INCREMENT (1 << (DICT_MAX_WATCHERS + DICT_WATCHED_MUTATION_BITS)) +#define DICT_WATCHER_MASK ((1 << DICT_MAX_WATCHERS) - 1) +#define DICT_WATCHER_AND_MODIFICATION_MASK ((1 << (DICT_MAX_WATCHERS + DICT_WATCHED_MUTATION_BITS)) - 1) + +#ifdef Py_GIL_DISABLED + +#define THREAD_LOCAL_DICT_VERSION_COUNT 256 +#define THREAD_LOCAL_DICT_VERSION_BATCH THREAD_LOCAL_DICT_VERSION_COUNT * DICT_VERSION_INCREMENT + +static inline uint64_t +dict_next_version(PyInterpreterState *interp) +{ + PyThreadState *tstate = PyThreadState_GET(); + uint64_t cur_progress = (tstate->dict_global_version & + (THREAD_LOCAL_DICT_VERSION_BATCH - 1)); + if (cur_progress == 0) { + uint64_t next = _Py_atomic_add_uint64(&interp->dict_state.global_version, + THREAD_LOCAL_DICT_VERSION_BATCH); + tstate->dict_global_version = next; + } + return tstate->dict_global_version += DICT_VERSION_INCREMENT; +} + +#define DICT_NEXT_VERSION(INTERP) dict_next_version(INTERP) + +#else +#define DICT_NEXT_VERSION(INTERP) \ + ((INTERP)->dict_state.global_version += DICT_VERSION_INCREMENT) +#endif + +void +_PyDict_SendEvent(int watcher_bits, + PyDict_WatchEvent event, + PyDictObject *mp, + PyObject *key, + PyObject *value); + +static inline uint64_t +_PyDict_NotifyEvent(PyInterpreterState *interp, + PyDict_WatchEvent event, + PyDictObject *mp, + PyObject *key, + PyObject *value) +{ + assert(Py_REFCNT((PyObject*)mp) > 0); + int watcher_bits = mp->ma_version_tag & DICT_WATCHER_MASK; + if (watcher_bits) { + RARE_EVENT_STAT_INC(watched_dict_modification); + _PyDict_SendEvent(watcher_bits, event, mp, key, value); + } + return DICT_NEXT_VERSION(interp) | (mp->ma_version_tag & DICT_WATCHER_AND_MODIFICATION_MASK); +} + +extern PyDictObject *_PyObject_MaterializeManagedDict(PyObject *obj); + +PyAPI_FUNC(PyObject *)_PyDict_FromItems( + PyObject *const *keys, Py_ssize_t keys_offset, + PyObject *const *values, Py_ssize_t values_offset, + Py_ssize_t length); + +static inline uint8_t * +get_insertion_order_array(PyDictValues *values) +{ + return (uint8_t *)&values->values[values->capacity]; +} + +static inline void +_PyDictValues_AddToInsertionOrder(PyDictValues *values, Py_ssize_t ix) +{ + assert(ix < SHARED_KEYS_MAX_SIZE); + int size = values->size; + uint8_t *array = get_insertion_order_array(values); + assert(size < values->capacity); + assert(((uint8_t)ix) == ix); + array[size] = (uint8_t)ix; + values->size = size+1; +} + +static inline size_t +shared_keys_usable_size(PyDictKeysObject *keys) +{ + // dk_usable will decrease for each instance that is created and each + // value that is added. dk_nentries will increase for each value that + // is added. We want to always return the right value or larger. + // We therefore increase dk_nentries first and we decrease dk_usable + // second, and conversely here we read dk_usable first and dk_entries + // second (to avoid the case where we read entries before the increment + // and read usable after the decrement) + Py_ssize_t dk_usable = FT_ATOMIC_LOAD_SSIZE_ACQUIRE(keys->dk_usable); + Py_ssize_t dk_nentries = FT_ATOMIC_LOAD_SSIZE_ACQUIRE(keys->dk_nentries); + return dk_nentries + dk_usable; +} + +static inline size_t +_PyInlineValuesSize(PyTypeObject *tp) +{ + PyDictKeysObject *keys = ((PyHeapTypeObject*)tp)->ht_cached_keys; + assert(keys != NULL); + size_t size = shared_keys_usable_size(keys); + size_t prefix_size = _Py_SIZE_ROUND_UP(size, sizeof(PyObject *)); + assert(prefix_size < 256); + return prefix_size + (size + 1) * sizeof(PyObject *); +} + +int +_PyDict_DetachFromObject(PyDictObject *dict, PyObject *obj); + +PyDictObject *_PyObject_MaterializeManagedDict_LockHeld(PyObject *); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_DICT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_dict_state.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_dict_state.h new file mode 100644 index 000000000..1a44755c7 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_dict_state.h @@ -0,0 +1,32 @@ +#ifndef Py_INTERNAL_DICT_STATE_H +#define Py_INTERNAL_DICT_STATE_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#define DICT_MAX_WATCHERS 8 +#define DICT_WATCHED_MUTATION_BITS 4 + +struct _Py_dict_state { + /*Global counter used to set ma_version_tag field of dictionary. + * It is incremented each time that a dictionary is created and each + * time that a dictionary is modified. */ + uint64_t global_version; + uint32_t next_keys_version; + PyDict_WatchCallback watchers[DICT_MAX_WATCHERS]; +}; + +#define _dict_state_INIT \ + { \ + .next_keys_version = 2, \ + } + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_DICT_STATE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_dtoa.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_dtoa.h new file mode 100644 index 000000000..e4222c526 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_dtoa.h @@ -0,0 +1,75 @@ +#ifndef Py_INTERNAL_DTOA_H +#define Py_INTERNAL_DTOA_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_pymath.h" // _PY_SHORT_FLOAT_REPR + + +typedef uint32_t ULong; + +struct +Bigint { + struct Bigint *next; + int k, maxwds, sign, wds; + ULong x[1]; +}; + +#if defined(Py_USING_MEMORY_DEBUGGER) || _PY_SHORT_FLOAT_REPR == 0 + +struct _dtoa_state { + int _not_used; +}; +#define _dtoa_state_INIT(INTERP) \ + {0} + +#else // !Py_USING_MEMORY_DEBUGGER && _PY_SHORT_FLOAT_REPR != 0 + +/* The size of the Bigint freelist */ +#define Bigint_Kmax 7 + +/* The size of the cached powers of 5 array */ +#define Bigint_Pow5size 8 + +#ifndef PRIVATE_MEM +#define PRIVATE_MEM 2304 +#endif +#define Bigint_PREALLOC_SIZE \ + ((PRIVATE_MEM+sizeof(double)-1)/sizeof(double)) + +struct _dtoa_state { + // p5s is an array of powers of 5 of the form: + // 5**(2**(i+2)) for 0 <= i < Bigint_Pow5size + struct Bigint *p5s[Bigint_Pow5size]; + // XXX This should be freed during runtime fini. + struct Bigint *freelist[Bigint_Kmax+1]; + double preallocated[Bigint_PREALLOC_SIZE]; + double *preallocated_next; +}; +#define _dtoa_state_INIT(INTERP) \ + { \ + .preallocated_next = (INTERP)->dtoa.preallocated, \ + } + +#endif // !Py_USING_MEMORY_DEBUGGER + + +extern double _Py_dg_strtod(const char *str, char **ptr); +extern char* _Py_dg_dtoa(double d, int mode, int ndigits, + int *decpt, int *sign, char **rve); +extern void _Py_dg_freedtoa(char *s); + + +extern PyStatus _PyDtoa_Init(PyInterpreterState *interp); +extern void _PyDtoa_Fini(PyInterpreterState *interp); + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_DTOA_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_emscripten_signal.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_emscripten_signal.h new file mode 100644 index 000000000..754193e21 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_emscripten_signal.h @@ -0,0 +1,30 @@ +#ifndef Py_EMSCRIPTEN_SIGNAL_H +#define Py_EMSCRIPTEN_SIGNAL_H + +#if defined(__EMSCRIPTEN__) + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +void +_Py_CheckEmscriptenSignals(void); + +void +_Py_CheckEmscriptenSignalsPeriodically(void); + +#define _Py_CHECK_EMSCRIPTEN_SIGNALS() _Py_CheckEmscriptenSignals() + +#define _Py_CHECK_EMSCRIPTEN_SIGNALS_PERIODICALLY() _Py_CheckEmscriptenSignalsPeriodically() + +extern int Py_EMSCRIPTEN_SIGNAL_HANDLING; +extern int _Py_emscripten_signal_clock; + +#else + +#define _Py_CHECK_EMSCRIPTEN_SIGNALS() +#define _Py_CHECK_EMSCRIPTEN_SIGNALS_PERIODICALLY() + +#endif // defined(__EMSCRIPTEN__) + +#endif // ndef Py_EMSCRIPTEN_SIGNAL_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_emscripten_trampoline.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_emscripten_trampoline.h new file mode 100644 index 000000000..e519c99ad --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_emscripten_trampoline.h @@ -0,0 +1,81 @@ +#ifndef Py_EMSCRIPTEN_TRAMPOLINE_H +#define Py_EMSCRIPTEN_TRAMPOLINE_H + +#include "pycore_runtime.h" // _PyRuntimeState + +/** + * C function call trampolines to mitigate bad function pointer casts. + * + * Section 6.3.2.3, paragraph 8 reads: + * + * A pointer to a function of one type may be converted to a pointer to a + * function of another type and back again; the result shall compare equal to + * the original pointer. If a converted pointer is used to call a function + * whose type is not compatible with the pointed-to type, the behavior is + * undefined. + * + * Typical native ABIs ignore additional arguments or fill in missing values + * with 0/NULL in function pointer cast. Compilers do not show warnings when a + * function pointer is explicitly casted to an incompatible type. + * + * Bad fpcasts are an issue in WebAssembly. WASM's indirect_call has strict + * function signature checks. Argument count, types, and return type must match. + * + * Third party code unintentionally rely on problematic fpcasts. The call + * trampoline mitigates common occurrences of bad fpcasts on Emscripten. + */ + +#if defined(__EMSCRIPTEN__) && defined(PY_CALL_TRAMPOLINE) + +void _Py_EmscriptenTrampoline_Init(_PyRuntimeState *runtime); + +PyObject* +_PyEM_TrampolineCall_JavaScript(PyCFunctionWithKeywords func, + PyObject* self, + PyObject* args, + PyObject* kw); + +PyObject* +_PyEM_TrampolineCall_Reflection(PyCFunctionWithKeywords func, + PyObject* self, + PyObject* args, + PyObject* kw); + +#define _PyEM_TrampolineCall(meth, self, args, kw) \ + ((_PyRuntime.wasm_type_reflection_available) ? \ + (_PyEM_TrampolineCall_Reflection((PyCFunctionWithKeywords)(meth), (self), (args), (kw))) : \ + (_PyEM_TrampolineCall_JavaScript((PyCFunctionWithKeywords)(meth), (self), (args), (kw)))) + +#define _PyCFunction_TrampolineCall(meth, self, args) \ + _PyEM_TrampolineCall( \ + (*(PyCFunctionWithKeywords)(void(*)(void))(meth)), (self), (args), NULL) + +#define _PyCFunctionWithKeywords_TrampolineCall(meth, self, args, kw) \ + _PyEM_TrampolineCall((meth), (self), (args), (kw)) + +#define descr_set_trampoline_call(set, obj, value, closure) \ + ((int)_PyEM_TrampolineCall((PyCFunctionWithKeywords)(set), (obj), (value), (PyObject*)(closure))) + +#define descr_get_trampoline_call(get, obj, closure) \ + _PyEM_TrampolineCall((PyCFunctionWithKeywords)(get), (obj), (PyObject*)(closure), NULL) + + +#else // defined(__EMSCRIPTEN__) && defined(PY_CALL_TRAMPOLINE) + +#define _Py_EmscriptenTrampoline_Init(runtime) + +#define _PyCFunction_TrampolineCall(meth, self, args) \ + (meth)((self), (args)) + +#define _PyCFunctionWithKeywords_TrampolineCall(meth, self, args, kw) \ + (meth)((self), (args), (kw)) + +#define descr_set_trampoline_call(set, obj, value, closure) \ + (set)((obj), (value), (closure)) + +#define descr_get_trampoline_call(get, obj, closure) \ + (get)((obj), (closure)) + +#endif // defined(__EMSCRIPTEN__) && defined(PY_CALL_TRAMPOLINE) + +#endif // ndef Py_EMSCRIPTEN_SIGNAL_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_exceptions.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_exceptions.h new file mode 100644 index 000000000..4a9df7091 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_exceptions.h @@ -0,0 +1,37 @@ +#ifndef Py_INTERNAL_EXCEPTIONS_H +#define Py_INTERNAL_EXCEPTIONS_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +/* runtime lifecycle */ + +extern PyStatus _PyExc_InitState(PyInterpreterState *); +extern PyStatus _PyExc_InitGlobalObjects(PyInterpreterState *); +extern int _PyExc_InitTypes(PyInterpreterState *); +extern void _PyExc_Fini(PyInterpreterState *); + + +/* other API */ + +struct _Py_exc_state { + // The dict mapping from errno codes to OSError subclasses + PyObject *errnomap; + PyBaseExceptionObject *memerrors_freelist; + int memerrors_numfree; + // The ExceptionGroup type + PyObject *PyExc_ExceptionGroup; +}; + +extern void _PyExc_ClearExceptionGroupType(PyInterpreterState *); + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_EXCEPTIONS_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_faulthandler.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_faulthandler.h new file mode 100644 index 000000000..6dd7d8d7c --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_faulthandler.h @@ -0,0 +1,99 @@ +#ifndef Py_INTERNAL_FAULTHANDLER_H +#define Py_INTERNAL_FAULTHANDLER_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#ifdef HAVE_SIGACTION +# include // sigaction +#endif + + +#ifndef MS_WINDOWS + /* register() is useless on Windows, because only SIGSEGV, SIGABRT and + SIGILL can be handled by the process, and these signals can only be used + with enable(), not using register() */ +# define FAULTHANDLER_USER +#endif + + +#ifdef HAVE_SIGACTION +/* Using an alternative stack requires sigaltstack() + and sigaction() SA_ONSTACK */ +# ifdef HAVE_SIGALTSTACK +# define FAULTHANDLER_USE_ALT_STACK +# endif +typedef struct sigaction _Py_sighandler_t; +#else +typedef PyOS_sighandler_t _Py_sighandler_t; +#endif // HAVE_SIGACTION + + +#ifdef FAULTHANDLER_USER +struct faulthandler_user_signal { + int enabled; + PyObject *file; + int fd; + int all_threads; + int chain; + _Py_sighandler_t previous; + PyInterpreterState *interp; +}; +#endif /* FAULTHANDLER_USER */ + + +struct _faulthandler_runtime_state { + struct { + int enabled; + PyObject *file; + int fd; + int all_threads; + PyInterpreterState *interp; +#ifdef MS_WINDOWS + void *exc_handler; +#endif + } fatal_error; + + struct { + PyObject *file; + int fd; + PY_TIMEOUT_T timeout_us; /* timeout in microseconds */ + int repeat; + PyInterpreterState *interp; + int exit; + char *header; + size_t header_len; + /* The main thread always holds this lock. It is only released when + faulthandler_thread() is interrupted before this thread exits, or at + Python exit. */ + PyThread_type_lock cancel_event; + /* released by child thread when joined */ + PyThread_type_lock running; + } thread; + +#ifdef FAULTHANDLER_USER + struct faulthandler_user_signal *user_signals; +#endif + +#ifdef FAULTHANDLER_USE_ALT_STACK + stack_t stack; + stack_t old_stack; +#endif +}; + +#define _faulthandler_runtime_state_INIT \ + { \ + .fatal_error = { \ + .fd = -1, \ + }, \ + } + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_FAULTHANDLER_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_fileutils.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_fileutils.h new file mode 100644 index 000000000..13f86b01b --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_fileutils.h @@ -0,0 +1,335 @@ +#ifndef Py_INTERNAL_FILEUTILS_H +#define Py_INTERNAL_FILEUTILS_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include // struct lconv + + +/* 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 */ + #define _PyIsSelectable_fd(FD) (1) +#else + #define _PyIsSelectable_fd(FD) ((unsigned int)(FD) < (unsigned int)FD_SETSIZE) +#endif + +struct _fileutils_state { + int force_ascii; +}; + +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; + +// Export for '_testinternalcapi' shared extension +PyAPI_FUNC(_Py_error_handler) _Py_GetErrorHandler(const char *errors); + +// Export for '_testinternalcapi' shared extension +PyAPI_FUNC(int) _Py_DecodeLocaleEx( + const char *arg, + wchar_t **wstr, + size_t *wlen, + const char **reason, + int current_locale, + _Py_error_handler errors); + +// Export for '_testinternalcapi' shared extension +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); + +extern char* _Py_EncodeLocaleRaw( + const wchar_t *text, + size_t *error_pos); + +extern 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 { + uint64_t 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; + time_t st_birthtime; + int st_birthtime_nsec; + unsigned long st_file_attributes; + unsigned long st_reparse_tag; + uint64_t st_ino_high; +}; +#else +# define _Py_stat_struct stat +#endif + +// Export for 'mmap' shared extension +PyAPI_FUNC(int) _Py_fstat( + int fd, + struct _Py_stat_struct *status); + +// Export for 'mmap' shared extension +PyAPI_FUNC(int) _Py_fstat_noraise( + int fd, + struct _Py_stat_struct *status); + +// Export for '_tkinter' shared extension +PyAPI_FUNC(int) _Py_stat( + PyObject *path, + struct stat *status); + +// Export for 'select' shared extension (Solaris newDevPollObject()) +PyAPI_FUNC(int) _Py_open( + const char *pathname, + int flags); + +// Export for '_posixsubprocess' shared extension +PyAPI_FUNC(int) _Py_open_noraise( + const char *pathname, + int flags); + +extern FILE* _Py_wfopen( + const wchar_t *path, + const wchar_t *mode); + +extern Py_ssize_t _Py_read( + int fd, + void *buf, + size_t count); + +// Export for 'select' shared extension (Solaris devpoll_flush()) +PyAPI_FUNC(Py_ssize_t) _Py_write( + int fd, + const void *buf, + size_t count); + +// Export for '_posixsubprocess' shared extension +PyAPI_FUNC(Py_ssize_t) _Py_write_noraise( + int fd, + const void *buf, + size_t count); + +#ifdef HAVE_READLINK +extern 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 +extern 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 + +extern wchar_t* _Py_wgetcwd( + wchar_t *buf, + /* Number of characters of 'buf' buffer + including the trailing NUL character */ + size_t buflen); + +extern int _Py_get_inheritable(int fd); + +// Export for '_socket' shared extension +PyAPI_FUNC(int) _Py_set_inheritable(int fd, int inheritable, + int *atomic_flag_works); + +// Export for '_posixsubprocess' shared extension +PyAPI_FUNC(int) _Py_set_inheritable_async_safe(int fd, int inheritable, + int *atomic_flag_works); + +// Export for '_socket' shared extension +PyAPI_FUNC(int) _Py_dup(int fd); + +extern int _Py_get_blocking(int fd); + +extern int _Py_set_blocking(int fd, int blocking); + +#ifdef MS_WINDOWS +extern void* _Py_get_osfhandle_noraise(int fd); + +// Export for '_testconsole' shared extension +PyAPI_FUNC(void*) _Py_get_osfhandle(int fd); + +extern int _Py_open_osfhandle_noraise(void *handle, int flags); + +extern int _Py_open_osfhandle(void *handle, int flags); +#endif /* MS_WINDOWS */ + +// This is used after getting NULL back from Py_DecodeLocale(). +#define DECODE_LOCALE_ERR(NAME, LEN) \ + ((LEN) == (size_t)-2) \ + ? _PyStatus_ERR("cannot decode " NAME) \ + : _PyStatus_NO_MEMORY() + +extern int _Py_HasFileSystemDefaultEncodeErrors; + +extern int _Py_DecodeUTF8Ex( + const char *arg, + Py_ssize_t arglen, + wchar_t **wstr, + size_t *wlen, + const char **reason, + _Py_error_handler errors); + +extern int _Py_EncodeUTF8Ex( + const wchar_t *text, + char **str, + size_t *error_pos, + const char **reason, + int raw_malloc, + _Py_error_handler errors); + +extern wchar_t* _Py_DecodeUTF8_surrogateescape( + const char *arg, + Py_ssize_t arglen, + size_t *wlen); + +extern int +_Py_wstat(const wchar_t *, struct stat *); + +extern 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. */ +extern void _Py_ResetForceASCII(void); + + +extern int _Py_GetLocaleconvNumeric( + struct lconv *lc, + PyObject **decimal_point, + PyObject **thousands_sep); + +// Export for '_posixsubprocess' (on macOS) +PyAPI_FUNC(void) _Py_closerange(int first, int last); + +extern wchar_t* _Py_GetLocaleEncoding(void); +extern PyObject* _Py_GetLocaleEncodingObject(void); + +#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 + +extern int _Py_isabs(const wchar_t *path); +extern int _Py_abspath(const wchar_t *path, wchar_t **abspath_p); +#ifdef MS_WINDOWS +extern int _PyOS_getfullpathname(const wchar_t *path, wchar_t **abspath_p); +#endif +extern wchar_t* _Py_join_relfile(const wchar_t *dirname, + const wchar_t *relfile); +extern int _Py_add_relfile(wchar_t *dirname, + const wchar_t *relfile, + size_t bufsize); +extern size_t _Py_find_basename(const wchar_t *filename); + +// Export for '_testinternalcapi' shared extension +PyAPI_FUNC(wchar_t*) _Py_normpath(wchar_t *path, Py_ssize_t size); + +extern wchar_t *_Py_normpath_and_size(wchar_t *path, Py_ssize_t size, Py_ssize_t *length); + +// The Windows Games API family does not provide these functions +// so provide our own implementations. Remove them in case they get added +// to the Games API family +#if defined(MS_WINDOWS_GAMES) && !defined(MS_WINDOWS_DESKTOP) +#include // HRESULT + +extern HRESULT PathCchSkipRoot(const wchar_t *pszPath, const wchar_t **ppszRootEnd); +#endif /* defined(MS_WINDOWS_GAMES) && !defined(MS_WINDOWS_DESKTOP) */ + +extern void _Py_skiproot(const wchar_t *path, Py_ssize_t size, Py_ssize_t *drvsize, Py_ssize_t *rootsize); + +// Macros to protect CRT calls against instant termination when passed an +// invalid parameter (bpo-23524). IPH stands for Invalid Parameter Handler. +// Usage: +// +// _Py_BEGIN_SUPPRESS_IPH +// ... +// _Py_END_SUPPRESS_IPH +#if defined _MSC_VER && _MSC_VER >= 1900 + +# include // _set_thread_local_invalid_parameter_handler() + + extern _invalid_parameter_handler _Py_silent_invalid_parameter_handler; +# define _Py_BEGIN_SUPPRESS_IPH \ + { _invalid_parameter_handler _Py_old_handler = \ + _set_thread_local_invalid_parameter_handler(_Py_silent_invalid_parameter_handler); +# define _Py_END_SUPPRESS_IPH \ + _set_thread_local_invalid_parameter_handler(_Py_old_handler); } +#else +# define _Py_BEGIN_SUPPRESS_IPH +# define _Py_END_SUPPRESS_IPH +#endif /* _MSC_VER >= 1900 */ + +// Export for 'select' shared extension (Argument Clinic code) +PyAPI_FUNC(int) _PyLong_FileDescriptor_Converter(PyObject *, void *); + +// Export for test_peg_generator +PyAPI_FUNC(char*) _Py_UniversalNewlineFgetsWithSize(char *, int, FILE*, PyObject *, size_t*); + +extern int _PyFile_Flush(PyObject *); + +#ifndef MS_WINDOWS +extern int _Py_GetTicksPerSecond(long *ticks_per_second); +#endif + +// Export for '_testcapi' shared extension +PyAPI_FUNC(int) _Py_IsValidFD(int fd); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_FILEUTILS_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_fileutils_windows.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_fileutils_windows.h new file mode 100644 index 000000000..b79aa9fb4 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_fileutils_windows.h @@ -0,0 +1,98 @@ +#ifndef Py_INTERNAL_FILEUTILS_WINDOWS_H +#define Py_INTERNAL_FILEUTILS_WINDOWS_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#ifdef MS_WINDOWS + +#if !defined(NTDDI_WIN10_NI) || !(NTDDI_VERSION >= NTDDI_WIN10_NI) +typedef struct _FILE_STAT_BASIC_INFORMATION { + LARGE_INTEGER FileId; + LARGE_INTEGER CreationTime; + LARGE_INTEGER LastAccessTime; + LARGE_INTEGER LastWriteTime; + LARGE_INTEGER ChangeTime; + LARGE_INTEGER AllocationSize; + LARGE_INTEGER EndOfFile; + ULONG FileAttributes; + ULONG ReparseTag; + ULONG NumberOfLinks; + ULONG DeviceType; + ULONG DeviceCharacteristics; + ULONG Reserved; + LARGE_INTEGER VolumeSerialNumber; + FILE_ID_128 FileId128; +} FILE_STAT_BASIC_INFORMATION; + +typedef enum _FILE_INFO_BY_NAME_CLASS { + FileStatByNameInfo, + FileStatLxByNameInfo, + FileCaseSensitiveByNameInfo, + FileStatBasicByNameInfo, + MaximumFileInfoByNameClass +} FILE_INFO_BY_NAME_CLASS; +#endif + +typedef BOOL (WINAPI *PGetFileInformationByName)( + PCWSTR FileName, + FILE_INFO_BY_NAME_CLASS FileInformationClass, + PVOID FileInfoBuffer, + ULONG FileInfoBufferSize +); + +static inline BOOL _Py_GetFileInformationByName( + PCWSTR FileName, + FILE_INFO_BY_NAME_CLASS FileInformationClass, + PVOID FileInfoBuffer, + ULONG FileInfoBufferSize +) { + static PGetFileInformationByName GetFileInformationByName = NULL; + static int GetFileInformationByName_init = -1; + + if (GetFileInformationByName_init < 0) { + HMODULE hMod = LoadLibraryW(L"api-ms-win-core-file-l2-1-4"); + GetFileInformationByName_init = 0; + if (hMod) { + GetFileInformationByName = (PGetFileInformationByName)GetProcAddress( + hMod, "GetFileInformationByName"); + if (GetFileInformationByName) { + GetFileInformationByName_init = 1; + } else { + FreeLibrary(hMod); + } + } + } + + if (GetFileInformationByName_init <= 0) { + SetLastError(ERROR_NOT_SUPPORTED); + return FALSE; + } + return GetFileInformationByName(FileName, FileInformationClass, FileInfoBuffer, FileInfoBufferSize); +} + +static inline BOOL _Py_GetFileInformationByName_ErrorIsTrustworthy(int error) +{ + switch(error) { + case ERROR_FILE_NOT_FOUND: + case ERROR_PATH_NOT_FOUND: + case ERROR_NOT_READY: + case ERROR_BAD_NET_NAME: + case ERROR_BAD_NETPATH: + case ERROR_BAD_PATHNAME: + case ERROR_INVALID_NAME: + case ERROR_FILENAME_EXCED_RANGE: + return TRUE; + case ERROR_NOT_SUPPORTED: + return FALSE; + } + return FALSE; +} + +#endif + +#endif diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_floatobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_floatobject.h new file mode 100644 index 000000000..f984df695 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_floatobject.h @@ -0,0 +1,62 @@ +#ifndef Py_INTERNAL_FLOATOBJECT_H +#define Py_INTERNAL_FLOATOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_freelist.h" // _PyFreeListState +#include "pycore_unicodeobject.h" // _PyUnicodeWriter + +/* runtime lifecycle */ + +extern void _PyFloat_InitState(PyInterpreterState *); +extern PyStatus _PyFloat_InitTypes(PyInterpreterState *); +extern void _PyFloat_FiniType(PyInterpreterState *); + + +/* other API */ + +enum _py_float_format_type { + _py_float_format_unknown, + _py_float_format_ieee_big_endian, + _py_float_format_ieee_little_endian, +}; + +struct _Py_float_runtime_state { + enum _py_float_format_type float_format; + enum _py_float_format_type double_format; +}; + + + + +PyAPI_FUNC(void) _PyFloat_ExactDealloc(PyObject *op); + + +extern void _PyFloat_DebugMallocStats(FILE* out); + + +/* Format the object based on the format_spec, as defined in PEP 3101 + (Advanced String Formatting). */ +extern int _PyFloat_FormatAdvancedWriter( + _PyUnicodeWriter *writer, + PyObject *obj, + PyObject *format_spec, + Py_ssize_t start, + Py_ssize_t end); + +extern PyObject* _Py_string_to_number_with_underscores( + const char *str, Py_ssize_t len, const char *what, PyObject *obj, void *arg, + PyObject *(*innerfunc)(const char *, Py_ssize_t, void *)); + +extern double _Py_parse_inf_or_nan(const char *p, char **endptr); + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_FLOATOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_flowgraph.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_flowgraph.h new file mode 100644 index 000000000..819117b83 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_flowgraph.h @@ -0,0 +1,40 @@ +#ifndef Py_INTERNAL_CFG_H +#define Py_INTERNAL_CFG_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_compile.h" +#include "pycore_instruction_sequence.h" +#include "pycore_opcode_utils.h" + +struct _PyCfgBuilder; + +int _PyCfgBuilder_UseLabel(struct _PyCfgBuilder *g, _PyJumpTargetLabel lbl); +int _PyCfgBuilder_Addop(struct _PyCfgBuilder *g, int opcode, int oparg, _Py_SourceLocation loc); + +struct _PyCfgBuilder* _PyCfgBuilder_New(void); +void _PyCfgBuilder_Free(struct _PyCfgBuilder *g); +int _PyCfgBuilder_CheckSize(struct _PyCfgBuilder* g); + +int _PyCfg_OptimizeCodeUnit(struct _PyCfgBuilder *g, PyObject *consts, PyObject *const_cache, + int nlocals, int nparams, int firstlineno); + +int _PyCfg_ToInstructionSequence(struct _PyCfgBuilder *g, _PyInstructionSequence *seq); +int _PyCfg_OptimizedCfgToInstructionSequence(struct _PyCfgBuilder *g, _PyCompile_CodeUnitMetadata *umd, + int code_flags, int *stackdepth, int *nlocalsplus, + _PyInstructionSequence *seq); + +PyCodeObject * +_PyAssemble_MakeCodeObject(_PyCompile_CodeUnitMetadata *u, PyObject *const_cache, + PyObject *consts, int maxdepth, _PyInstructionSequence *instrs, + int nlocalsplus, int code_flags, PyObject *filename); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_CFG_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_format.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_format.h new file mode 100644 index 000000000..1b8d57539 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_format.h @@ -0,0 +1,27 @@ +#ifndef Py_INTERNAL_FORMAT_H +#define Py_INTERNAL_FORMAT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +/* Format codes + * F_LJUST '-' + * F_SIGN '+' + * F_BLANK ' ' + * F_ALT '#' + * F_ZERO '0' + */ +#define F_LJUST (1<<0) +#define F_SIGN (1<<1) +#define F_BLANK (1<<2) +#define F_ALT (1<<3) +#define F_ZERO (1<<4) + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_FORMAT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_frame.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_frame.h new file mode 100644 index 000000000..af181e376 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_frame.h @@ -0,0 +1,330 @@ +#ifndef Py_INTERNAL_FRAME_H +#define Py_INTERNAL_FRAME_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include +#include // offsetof() +#include "pycore_code.h" // STATS + +/* See Objects/frame_layout.md for an explanation of the frame stack + * including explanation of the PyFrameObject and _PyInterpreterFrame + * structs. */ + + +struct _frame { + PyObject_HEAD + PyFrameObject *f_back; /* previous frame, or NULL */ + struct _PyInterpreterFrame *f_frame; /* points to the frame data */ + PyObject *f_trace; /* Trace function */ + int f_lineno; /* Current line number. Only valid if non-zero */ + char f_trace_lines; /* Emit per-line trace events? */ + char f_trace_opcodes; /* Emit per-opcode trace events? */ + PyObject *f_extra_locals; /* Dict for locals set by users using f_locals, could be NULL */ + /* This is purely for backwards compatibility for PyEval_GetLocals. + PyEval_GetLocals requires a borrowed reference so the actual reference + is stored here */ + PyObject *f_locals_cache; + /* The frame data, if this frame object owns the frame */ + PyObject *_f_frame_data[1]; +}; + +extern PyFrameObject* _PyFrame_New_NoTrack(PyCodeObject *code); + + +/* other API */ + +typedef enum _framestate { + FRAME_CREATED = -3, + FRAME_SUSPENDED = -2, + FRAME_SUSPENDED_YIELD_FROM = -1, + FRAME_EXECUTING = 0, + FRAME_COMPLETED = 1, + FRAME_CLEARED = 4 +} PyFrameState; + +#define FRAME_STATE_SUSPENDED(S) ((S) == FRAME_SUSPENDED || (S) == FRAME_SUSPENDED_YIELD_FROM) +#define FRAME_STATE_FINISHED(S) ((S) >= FRAME_COMPLETED) + +enum _frameowner { + FRAME_OWNED_BY_THREAD = 0, + FRAME_OWNED_BY_GENERATOR = 1, + FRAME_OWNED_BY_FRAME_OBJECT = 2, + FRAME_OWNED_BY_CSTACK = 3, +}; + +typedef struct _PyInterpreterFrame { + PyObject *f_executable; /* Strong reference (code object or None) */ + struct _PyInterpreterFrame *previous; + PyObject *f_funcobj; /* Strong reference. Only valid if not on C stack */ + PyObject *f_globals; /* Borrowed reference. Only valid if not on C stack */ + PyObject *f_builtins; /* Borrowed reference. Only valid if not on C stack */ + PyObject *f_locals; /* Strong reference, may be NULL. Only valid if not on C stack */ + PyFrameObject *frame_obj; /* Strong reference, may be NULL. Only valid if not on C stack */ + _Py_CODEUNIT *instr_ptr; /* Instruction currently executing (or about to begin) */ + int stacktop; /* Offset of TOS from localsplus */ + uint16_t return_offset; /* Only relevant during a function call */ + char owner; + /* Locals and stack */ + PyObject *localsplus[1]; +} _PyInterpreterFrame; + +#define _PyInterpreterFrame_LASTI(IF) \ + ((int)((IF)->instr_ptr - _PyCode_CODE(_PyFrame_GetCode(IF)))) + +static inline PyCodeObject *_PyFrame_GetCode(_PyInterpreterFrame *f) { + assert(PyCode_Check(f->f_executable)); + return (PyCodeObject *)f->f_executable; +} + +static inline PyObject **_PyFrame_Stackbase(_PyInterpreterFrame *f) { + return f->localsplus + _PyFrame_GetCode(f)->co_nlocalsplus; +} + +static inline PyObject *_PyFrame_StackPeek(_PyInterpreterFrame *f) { + assert(f->stacktop > _PyFrame_GetCode(f)->co_nlocalsplus); + assert(f->localsplus[f->stacktop-1] != NULL); + return f->localsplus[f->stacktop-1]; +} + +static inline PyObject *_PyFrame_StackPop(_PyInterpreterFrame *f) { + assert(f->stacktop > _PyFrame_GetCode(f)->co_nlocalsplus); + f->stacktop--; + return f->localsplus[f->stacktop]; +} + +static inline void _PyFrame_StackPush(_PyInterpreterFrame *f, PyObject *value) { + f->localsplus[f->stacktop] = value; + f->stacktop++; +} + +#define FRAME_SPECIALS_SIZE ((int)((sizeof(_PyInterpreterFrame)-1)/sizeof(PyObject *))) + +static inline int +_PyFrame_NumSlotsForCodeObject(PyCodeObject *code) +{ + /* This function needs to remain in sync with the calculation of + * co_framesize in Tools/build/deepfreeze.py */ + assert(code->co_framesize >= FRAME_SPECIALS_SIZE); + return code->co_framesize - FRAME_SPECIALS_SIZE; +} + +static inline void _PyFrame_Copy(_PyInterpreterFrame *src, _PyInterpreterFrame *dest) +{ + assert(src->stacktop >= _PyFrame_GetCode(src)->co_nlocalsplus); + *dest = *src; + for (int i = 1; i < src->stacktop; i++) { + dest->localsplus[i] = src->localsplus[i]; + } + // Don't leave a dangling pointer to the old frame when creating generators + // and coroutines: + dest->previous = NULL; +} + +/* Consumes reference to func and locals. + Does not initialize frame->previous, which happens + when frame is linked into the frame stack. + */ +static inline void +_PyFrame_Initialize( + _PyInterpreterFrame *frame, PyFunctionObject *func, + PyObject *locals, PyCodeObject *code, int null_locals_from) +{ + frame->f_funcobj = (PyObject *)func; + frame->f_executable = Py_NewRef(code); + frame->f_builtins = func->func_builtins; + frame->f_globals = func->func_globals; + frame->f_locals = locals; + frame->stacktop = code->co_nlocalsplus; + frame->frame_obj = NULL; + frame->instr_ptr = _PyCode_CODE(code); + frame->return_offset = 0; + frame->owner = FRAME_OWNED_BY_THREAD; + + for (int i = null_locals_from; i < code->co_nlocalsplus; i++) { + frame->localsplus[i] = NULL; + } +} + +/* Gets the pointer to the locals array + * that precedes this frame. + */ +static inline PyObject** +_PyFrame_GetLocalsArray(_PyInterpreterFrame *frame) +{ + return frame->localsplus; +} + +/* Fetches the stack pointer, and sets stacktop to -1. + Having stacktop <= 0 ensures that invalid + values are not visible to the cycle GC. + We choose -1 rather than 0 to assist debugging. */ +static inline PyObject** +_PyFrame_GetStackPointer(_PyInterpreterFrame *frame) +{ + PyObject **sp = frame->localsplus + frame->stacktop; + frame->stacktop = -1; + return sp; +} + +static inline void +_PyFrame_SetStackPointer(_PyInterpreterFrame *frame, PyObject **stack_pointer) +{ + frame->stacktop = (int)(stack_pointer - frame->localsplus); +} + +/* Determine whether a frame is incomplete. + * A frame is incomplete if it is part way through + * creating cell objects or a generator or coroutine. + * + * Frames on the frame stack are incomplete until the + * first RESUME instruction. + * Frames owned by a generator are always complete. + */ +static inline bool +_PyFrame_IsIncomplete(_PyInterpreterFrame *frame) +{ + if (frame->owner == FRAME_OWNED_BY_CSTACK) { + return true; + } + return frame->owner != FRAME_OWNED_BY_GENERATOR && + frame->instr_ptr < _PyCode_CODE(_PyFrame_GetCode(frame)) + _PyFrame_GetCode(frame)->_co_firsttraceable; +} + +static inline _PyInterpreterFrame * +_PyFrame_GetFirstComplete(_PyInterpreterFrame *frame) +{ + while (frame && _PyFrame_IsIncomplete(frame)) { + frame = frame->previous; + } + return frame; +} + +static inline _PyInterpreterFrame * +_PyThreadState_GetFrame(PyThreadState *tstate) +{ + return _PyFrame_GetFirstComplete(tstate->current_frame); +} + +/* For use by _PyFrame_GetFrameObject + Do not call directly. */ +PyFrameObject * +_PyFrame_MakeAndSetFrameObject(_PyInterpreterFrame *frame); + +/* Gets the PyFrameObject for this frame, lazily + * creating it if necessary. + * Returns a borrowed reference */ +static inline PyFrameObject * +_PyFrame_GetFrameObject(_PyInterpreterFrame *frame) +{ + + assert(!_PyFrame_IsIncomplete(frame)); + PyFrameObject *res = frame->frame_obj; + if (res != NULL) { + return res; + } + return _PyFrame_MakeAndSetFrameObject(frame); +} + +void +_PyFrame_ClearLocals(_PyInterpreterFrame *frame); + +/* Clears all references in the frame. + * If take is non-zero, then the _PyInterpreterFrame frame + * may be transferred to the frame object it references + * instead of being cleared. Either way + * the caller no longer owns the references + * in the frame. + * take should be set to 1 for heap allocated + * frames like the ones in generators and coroutines. + */ +void +_PyFrame_ClearExceptCode(_PyInterpreterFrame * frame); + +int +_PyFrame_Traverse(_PyInterpreterFrame *frame, visitproc visit, void *arg); + +bool +_PyFrame_HasHiddenLocals(_PyInterpreterFrame *frame); + +PyObject * +_PyFrame_GetLocals(_PyInterpreterFrame *frame); + +static inline bool +_PyThreadState_HasStackSpace(PyThreadState *tstate, int size) +{ + assert( + (tstate->datastack_top == NULL && tstate->datastack_limit == NULL) + || + (tstate->datastack_top != NULL && tstate->datastack_limit != NULL) + ); + return tstate->datastack_top != NULL && + size < tstate->datastack_limit - tstate->datastack_top; +} + +extern _PyInterpreterFrame * +_PyThreadState_PushFrame(PyThreadState *tstate, size_t size); + +PyAPI_FUNC(void) _PyThreadState_PopFrame(PyThreadState *tstate, _PyInterpreterFrame *frame); + +/* Pushes a frame without checking for space. + * Must be guarded by _PyThreadState_HasStackSpace() + * Consumes reference to func. */ +static inline _PyInterpreterFrame * +_PyFrame_PushUnchecked(PyThreadState *tstate, PyFunctionObject *func, int null_locals_from) +{ + CALL_STAT_INC(frames_pushed); + PyCodeObject *code = (PyCodeObject *)func->func_code; + _PyInterpreterFrame *new_frame = (_PyInterpreterFrame *)tstate->datastack_top; + tstate->datastack_top += code->co_framesize; + assert(tstate->datastack_top < tstate->datastack_limit); + _PyFrame_Initialize(new_frame, func, NULL, code, null_locals_from); + return new_frame; +} + +/* Pushes a trampoline frame without checking for space. + * Must be guarded by _PyThreadState_HasStackSpace() */ +static inline _PyInterpreterFrame * +_PyFrame_PushTrampolineUnchecked(PyThreadState *tstate, PyCodeObject *code, int stackdepth) +{ + CALL_STAT_INC(frames_pushed); + _PyInterpreterFrame *frame = (_PyInterpreterFrame *)tstate->datastack_top; + tstate->datastack_top += code->co_framesize; + assert(tstate->datastack_top < tstate->datastack_limit); + frame->f_funcobj = Py_None; + frame->f_executable = Py_NewRef(code); +#ifdef Py_DEBUG + frame->f_builtins = NULL; + frame->f_globals = NULL; +#endif + frame->f_locals = NULL; + frame->stacktop = code->co_nlocalsplus + stackdepth; + frame->frame_obj = NULL; + frame->instr_ptr = _PyCode_CODE(code); + frame->owner = FRAME_OWNED_BY_THREAD; + frame->return_offset = 0; + return frame; +} + +static inline +PyGenObject *_PyFrame_GetGenerator(_PyInterpreterFrame *frame) +{ + assert(frame->owner == FRAME_OWNED_BY_GENERATOR); + size_t offset_in_gen = offsetof(PyGenObject, gi_iframe); + return (PyGenObject *)(((char *)frame) - offset_in_gen); +} + +PyAPI_FUNC(_PyInterpreterFrame *) +_PyEvalFramePushAndInit(PyThreadState *tstate, PyFunctionObject *func, + PyObject *locals, PyObject* const* args, + size_t argcount, PyObject *kwnames); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_FRAME_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_freelist.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_freelist.h new file mode 100644 index 000000000..e684e084b --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_freelist.h @@ -0,0 +1,153 @@ +#ifndef Py_INTERNAL_FREELIST_H +#define Py_INTERNAL_FREELIST_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +// PyTuple_MAXSAVESIZE - largest tuple to save on free list +// PyTuple_MAXFREELIST - maximum number of tuples of each size to save + +#ifdef WITH_FREELISTS +// with freelists +# define PyTuple_MAXSAVESIZE 20 +# define PyTuple_NFREELISTS PyTuple_MAXSAVESIZE +# define PyTuple_MAXFREELIST 2000 +# define PyList_MAXFREELIST 80 +# define PyDict_MAXFREELIST 80 +# define PyFloat_MAXFREELIST 100 +# define PyContext_MAXFREELIST 255 +# define _PyAsyncGen_MAXFREELIST 80 +# define _PyObjectStackChunk_MAXFREELIST 4 +#else +# define PyTuple_NFREELISTS 0 +# define PyTuple_MAXFREELIST 0 +# define PyList_MAXFREELIST 0 +# define PyDict_MAXFREELIST 0 +# define PyFloat_MAXFREELIST 0 +# define PyContext_MAXFREELIST 0 +# define _PyAsyncGen_MAXFREELIST 0 +# define _PyObjectStackChunk_MAXFREELIST 0 +#endif + +struct _Py_list_freelist { +#ifdef WITH_FREELISTS + PyListObject *items[PyList_MAXFREELIST]; + int numfree; +#endif +}; + +struct _Py_tuple_freelist { +#if WITH_FREELISTS + /* There is one freelist for each size from 1 to PyTuple_MAXSAVESIZE. + The empty tuple is handled separately. + + Each tuple stored in the array is the head of the linked list + (and the next available tuple) for that size. The actual tuple + object is used as the linked list node, with its first item + (ob_item[0]) pointing to the next node (i.e. the previous head). + Each linked list is initially NULL. */ + PyTupleObject *items[PyTuple_NFREELISTS]; + int numfree[PyTuple_NFREELISTS]; +#else + char _unused; // Empty structs are not allowed. +#endif +}; + +struct _Py_float_freelist { +#ifdef WITH_FREELISTS + /* Special free list + free_list is a singly-linked list of available PyFloatObjects, + linked via abuse of their ob_type members. */ + int numfree; + PyFloatObject *items; +#endif +}; + +struct _Py_dict_freelist { +#ifdef WITH_FREELISTS + /* Dictionary reuse scheme to save calls to malloc and free */ + PyDictObject *items[PyDict_MAXFREELIST]; + int numfree; +#endif +}; + +struct _Py_dictkeys_freelist { +#ifdef WITH_FREELISTS + /* Dictionary keys reuse scheme to save calls to malloc and free */ + PyDictKeysObject *items[PyDict_MAXFREELIST]; + int numfree; +#endif +}; + +struct _Py_slice_freelist { +#ifdef WITH_FREELISTS + /* Using a cache is very effective since typically only a single slice is + created and then deleted again. */ + PySliceObject *slice_cache; +#endif +}; + +struct _Py_context_freelist { +#ifdef WITH_FREELISTS + // List of free PyContext objects + PyContext *items; + int numfree; +#endif +}; + +struct _Py_async_gen_freelist { +#ifdef WITH_FREELISTS + /* Freelists boost performance 6-10%; they also reduce memory + fragmentation, as _PyAsyncGenWrappedValue and PyAsyncGenASend + are short-living objects that are instantiated for every + __anext__() call. */ + struct _PyAsyncGenWrappedValue* items[_PyAsyncGen_MAXFREELIST]; + int numfree; +#endif +}; + +struct _Py_async_gen_asend_freelist { +#ifdef WITH_FREELISTS + struct PyAsyncGenASend* items[_PyAsyncGen_MAXFREELIST]; + int numfree; +#endif +}; + +struct _PyObjectStackChunk; + +struct _Py_object_stack_freelist { + struct _PyObjectStackChunk *items; + Py_ssize_t numfree; +}; + +struct _Py_object_freelists { + struct _Py_float_freelist floats; + struct _Py_tuple_freelist tuples; + struct _Py_list_freelist lists; + struct _Py_dict_freelist dicts; + struct _Py_dictkeys_freelist dictkeys; + struct _Py_slice_freelist slices; + struct _Py_context_freelist contexts; + struct _Py_async_gen_freelist async_gens; + struct _Py_async_gen_asend_freelist async_gen_asends; + struct _Py_object_stack_freelist object_stacks; +}; + +extern void _PyObject_ClearFreeLists(struct _Py_object_freelists *freelists, int is_finalization); +extern void _PyTuple_ClearFreeList(struct _Py_object_freelists *freelists, int is_finalization); +extern void _PyFloat_ClearFreeList(struct _Py_object_freelists *freelists, int is_finalization); +extern void _PyList_ClearFreeList(struct _Py_object_freelists *freelists, int is_finalization); +extern void _PySlice_ClearFreeList(struct _Py_object_freelists *freelists, int is_finalization); +extern void _PyDict_ClearFreeList(struct _Py_object_freelists *freelists, int is_finalization); +extern void _PyAsyncGen_ClearFreeLists(struct _Py_object_freelists *freelists, int is_finalization); +extern void _PyContext_ClearFreeList(struct _Py_object_freelists *freelists, int is_finalization); +extern void _PyObjectStackChunk_ClearFreeList(struct _Py_object_freelists *freelists, int is_finalization); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_FREELIST_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_function.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_function.h new file mode 100644 index 000000000..6d44e933e --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_function.h @@ -0,0 +1,55 @@ +#ifndef Py_INTERNAL_FUNCTION_H +#define Py_INTERNAL_FUNCTION_H +#ifdef __cplusplus +extern "C" { +#endif + +#include "pycore_lock.h" + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +extern PyObject* _PyFunction_Vectorcall( + PyObject *func, + PyObject *const *stack, + size_t nargsf, + PyObject *kwnames); + +#define FUNC_MAX_WATCHERS 8 + +#define FUNC_VERSION_CACHE_SIZE (1<<12) /* Must be a power of 2 */ + +struct _func_version_cache_item { + PyFunctionObject *func; + PyObject *code; +}; + +struct _py_func_state { +#ifdef Py_GIL_DISABLED + // Protects next_version + PyMutex mutex; +#endif + + uint32_t next_version; + // Borrowed references to function and code objects whose + // func_version % FUNC_VERSION_CACHE_SIZE + // once was equal to the index in the table. + // They are cleared when the function or code object is deallocated. + struct _func_version_cache_item func_version_cache[FUNC_VERSION_CACHE_SIZE]; +}; + +extern PyFunctionObject* _PyFunction_FromConstructor(PyFrameConstructor *constr); + +extern uint32_t _PyFunction_GetVersionForCurrentState(PyFunctionObject *func); +PyAPI_FUNC(void) _PyFunction_SetVersion(PyFunctionObject *func, uint32_t version); +void _PyFunction_ClearCodeByVersion(uint32_t version); +PyFunctionObject *_PyFunction_LookupByVersion(uint32_t version, PyObject **p_code); + +extern PyObject *_Py_set_function_type_params( + PyThreadState* unused, PyObject *func, PyObject *type_params); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_FUNCTION_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_gc.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_gc.h new file mode 100644 index 000000000..357177bcd --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_gc.h @@ -0,0 +1,365 @@ +#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 + +#include "pycore_freelist.h" // _PyFreeListState + +/* 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 _PyGC_Head_UNUSED PyGC_Head + + +/* Get an object's GC head */ +static inline PyGC_Head* _Py_AS_GC(PyObject *op) { + char *gc = ((char*)op) - sizeof(PyGC_Head); + return (PyGC_Head*)gc; +} + +/* Get the object given the GC head */ +static inline PyObject* _Py_FROM_GC(PyGC_Head *gc) { + char *op = ((char *)gc) + sizeof(PyGC_Head); + return (PyObject *)op; +} + + +/* Bit flags for ob_gc_bits (in Py_GIL_DISABLED builds) + * + * Setting the bits requires a relaxed store. The per-object lock must also be + * held, except when the object is only visible to a single thread (e.g. during + * object initialization or destruction). + * + * Reading the bits requires using a relaxed load, but does not require holding + * the per-object lock. + */ +#ifdef Py_GIL_DISABLED +# define _PyGC_BITS_TRACKED (1) // Tracked by the GC +# define _PyGC_BITS_FINALIZED (2) // tp_finalize was called +# define _PyGC_BITS_UNREACHABLE (4) +# define _PyGC_BITS_FROZEN (8) +# define _PyGC_BITS_SHARED (16) +# define _PyGC_BITS_SHARED_INLINE (32) +# define _PyGC_BITS_DEFERRED (64) // Use deferred reference counting +#endif + +#ifdef Py_GIL_DISABLED + +static inline void +_PyObject_SET_GC_BITS(PyObject *op, uint8_t new_bits) +{ + uint8_t bits = _Py_atomic_load_uint8_relaxed(&op->ob_gc_bits); + _Py_atomic_store_uint8_relaxed(&op->ob_gc_bits, bits | new_bits); +} + +static inline int +_PyObject_HAS_GC_BITS(PyObject *op, uint8_t bits) +{ + return (_Py_atomic_load_uint8_relaxed(&op->ob_gc_bits) & bits) != 0; +} + +static inline void +_PyObject_CLEAR_GC_BITS(PyObject *op, uint8_t bits_to_clear) +{ + uint8_t bits = _Py_atomic_load_uint8_relaxed(&op->ob_gc_bits); + _Py_atomic_store_uint8_relaxed(&op->ob_gc_bits, bits & ~bits_to_clear); +} + +#endif + +/* True if the object is currently tracked by the GC. */ +static inline int _PyObject_GC_IS_TRACKED(PyObject *op) { +#ifdef Py_GIL_DISABLED + return _PyObject_HAS_GC_BITS(op, _PyGC_BITS_TRACKED); +#else + PyGC_Head *gc = _Py_AS_GC(op); + return (gc->_gc_next != 0); +#endif +} +#define _PyObject_GC_IS_TRACKED(op) _PyObject_GC_IS_TRACKED(_Py_CAST(PyObject*, op)) + +/* True if the object may be tracked by the GC in the future, or already is. + This can be useful to implement some optimizations. */ +static inline int _PyObject_GC_MAY_BE_TRACKED(PyObject *obj) { + if (!PyObject_IS_GC(obj)) { + return 0; + } + if (PyTuple_CheckExact(obj)) { + return _PyObject_GC_IS_TRACKED(obj); + } + return 1; +} + +#ifdef Py_GIL_DISABLED + +/* True if memory the object references is shared between + * multiple threads and needs special purpose when freeing + * those references due to the possibility of in-flight + * lock-free reads occurring. The object is responsible + * for calling _PyMem_FreeDelayed on the referenced + * memory. */ +static inline int _PyObject_GC_IS_SHARED(PyObject *op) { + return _PyObject_HAS_GC_BITS(op, _PyGC_BITS_SHARED); +} +#define _PyObject_GC_IS_SHARED(op) _PyObject_GC_IS_SHARED(_Py_CAST(PyObject*, op)) + +static inline void _PyObject_GC_SET_SHARED(PyObject *op) { + _PyObject_SET_GC_BITS(op, _PyGC_BITS_SHARED); +} +#define _PyObject_GC_SET_SHARED(op) _PyObject_GC_SET_SHARED(_Py_CAST(PyObject*, op)) + +/* True if the memory of the object is shared between multiple + * threads and needs special purpose when freeing due to + * the possibility of in-flight lock-free reads occurring. + * Objects with this bit that are GC objects will automatically + * delay-freed by PyObject_GC_Del. */ +static inline int _PyObject_GC_IS_SHARED_INLINE(PyObject *op) { + return _PyObject_HAS_GC_BITS(op, _PyGC_BITS_SHARED_INLINE); +} +#define _PyObject_GC_IS_SHARED_INLINE(op) \ + _PyObject_GC_IS_SHARED_INLINE(_Py_CAST(PyObject*, op)) + +static inline void _PyObject_GC_SET_SHARED_INLINE(PyObject *op) { + _PyObject_SET_GC_BITS(op, _PyGC_BITS_SHARED_INLINE); +} +#define _PyObject_GC_SET_SHARED_INLINE(op) \ + _PyObject_GC_SET_SHARED_INLINE(_Py_CAST(PyObject*, op)) + +#endif + +/* 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) + +/* set for debugging information */ +#define _PyGC_DEBUG_STATS (1<<0) /* print collection statistics */ +#define _PyGC_DEBUG_COLLECTABLE (1<<1) /* print collectable objects */ +#define _PyGC_DEBUG_UNCOLLECTABLE (1<<2) /* print uncollectable objects */ +#define _PyGC_DEBUG_SAVEALL (1<<5) /* save all garbage in gc.garbage */ +#define _PyGC_DEBUG_LEAK _PyGC_DEBUG_COLLECTABLE | \ + _PyGC_DEBUG_UNCOLLECTABLE | \ + _PyGC_DEBUG_SAVEALL + +typedef enum { + // GC was triggered by heap allocation + _Py_GC_REASON_HEAP, + + // GC was called during shutdown + _Py_GC_REASON_SHUTDOWN, + + // GC was called by gc.collect() or PyGC_Collect() + _Py_GC_REASON_MANUAL +} _PyGC_Reason; + +// Lowest bit of _gc_next is used for flags only in GC. +// But it is always 0 for normal code. +static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { + uintptr_t next = gc->_gc_next; + return (PyGC_Head*)next; +} +static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { + gc->_gc_next = (uintptr_t)next; +} + +// Lowest two bits of _gc_prev is used for _PyGC_PREV_MASK_* flags. +static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { + uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); + return (PyGC_Head*)prev; +} +static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { + uintptr_t uprev = (uintptr_t)prev; + assert((uprev & ~_PyGC_PREV_MASK) == 0); + gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); +} + +static inline int _PyGC_FINALIZED(PyObject *op) { +#ifdef Py_GIL_DISABLED + return _PyObject_HAS_GC_BITS(op, _PyGC_BITS_FINALIZED); +#else + PyGC_Head *gc = _Py_AS_GC(op); + return ((gc->_gc_prev & _PyGC_PREV_MASK_FINALIZED) != 0); +#endif +} +static inline void _PyGC_SET_FINALIZED(PyObject *op) { +#ifdef Py_GIL_DISABLED + _PyObject_SET_GC_BITS(op, _PyGC_BITS_FINALIZED); +#else + PyGC_Head *gc = _Py_AS_GC(op); + gc->_gc_prev |= _PyGC_PREV_MASK_FINALIZED; +#endif +} +static inline void _PyGC_CLEAR_FINALIZED(PyObject *op) { +#ifdef Py_GIL_DISABLED + _PyObject_CLEAR_GC_BITS(op, _PyGC_BITS_FINALIZED); +#else + PyGC_Head *gc = _Py_AS_GC(op); + gc->_gc_prev &= ~_PyGC_PREV_MASK_FINALIZED; +#endif +} + + +/* 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; + + /* Is automatic collection enabled? */ + 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; + +#ifdef Py_GIL_DISABLED + /* gh-117783: Deferred reference counting is not fully implemented yet, so + as a temporary measure we treat objects using deferred reference + counting as immortal. The value may be zero, one, or a negative number: + 0: immortalize deferred RC objects once the first thread is created + 1: immortalize all deferred RC objects immediately + <0: suppressed; don't immortalize objects */ + int immortalize; +#endif +}; + +#ifdef Py_GIL_DISABLED +struct _gc_thread_state { + /* Thread-local allocation count. */ + Py_ssize_t alloc_count; +}; +#endif + + +extern void _PyGC_InitState(struct _gc_runtime_state *); + +extern Py_ssize_t _PyGC_Collect(PyThreadState *tstate, int generation, + _PyGC_Reason reason); +extern void _PyGC_CollectNoFail(PyThreadState *tstate); + +/* Freeze objects tracked by the GC and ignore them in future collections. */ +extern void _PyGC_Freeze(PyInterpreterState *interp); +/* Unfreezes objects placing them in the oldest generation */ +extern void _PyGC_Unfreeze(PyInterpreterState *interp); +/* Number of frozen objects */ +extern Py_ssize_t _PyGC_GetFreezeCount(PyInterpreterState *interp); + +extern PyObject *_PyGC_GetObjects(PyInterpreterState *interp, int generation); +extern PyObject *_PyGC_GetReferrers(PyInterpreterState *interp, PyObject *objs); + +// Functions to clear types free lists +extern void _PyGC_ClearAllFreeLists(PyInterpreterState *interp); +extern void _Py_ScheduleGC(PyThreadState *tstate); +extern void _Py_RunGC(PyThreadState *tstate); + +#ifdef Py_GIL_DISABLED +// gh-117783: Immortalize objects that use deferred reference counting +extern void _PyGC_ImmortalizeDeferredObjects(PyInterpreterState *interp); +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_GC_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_genobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_genobject.h new file mode 100644 index 000000000..9463c822a --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_genobject.h @@ -0,0 +1,32 @@ +#ifndef Py_INTERNAL_GENOBJECT_H +#define Py_INTERNAL_GENOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_freelist.h" + +PyAPI_FUNC(PyObject *)_PyGen_yf(PyGenObject *); +extern void _PyGen_Finalize(PyObject *self); + +// Export for '_asyncio' shared extension +PyAPI_FUNC(int) _PyGen_SetStopIterationValue(PyObject *); + +// Export for '_asyncio' shared extension +PyAPI_FUNC(int) _PyGen_FetchStopIterationValue(PyObject **); + +PyAPI_FUNC(PyObject *)_PyCoro_GetAwaitableIter(PyObject *o); +extern PyObject *_PyAsyncGenValueWrapperNew(PyThreadState *state, PyObject *); + +extern PyTypeObject _PyCoroWrapper_Type; +extern PyTypeObject _PyAsyncGenWrappedValue_Type; +extern PyTypeObject _PyAsyncGenAThrow_Type; + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_GENOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_getopt.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_getopt.h new file mode 100644 index 000000000..7f0dd13ae --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_getopt.h @@ -0,0 +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 */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_gil.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_gil.h new file mode 100644 index 000000000..a2de50773 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_gil.h @@ -0,0 +1,66 @@ +#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_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 { +#ifdef Py_GIL_DISABLED + /* If this GIL is disabled, enabled == 0. + + If this GIL is enabled transiently (most likely to initialize a module + of unknown safety), enabled indicates the number of active transient + requests. + + If this GIL is enabled permanently, enabled == INT_MAX. + + It must not be modified directly; use _PyEval_EnableGILTransiently(), + _PyEval_EnableGILPermanently(), and _PyEval_DisableGIL() + + It is always read and written atomically, but a thread can assume its + value will be stable as long as that thread is attached or knows that no + other threads are attached (e.g., during a stop-the-world.). */ + int enabled; +#endif + /* 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. */ + PyThreadState* 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. */ + 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/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_global_objects.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_global_objects.h new file mode 100644 index 000000000..327fcc24c --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_global_objects.h @@ -0,0 +1,105 @@ +#ifndef Py_INTERNAL_GLOBAL_OBJECTS_H +#define Py_INTERNAL_GLOBAL_OBJECTS_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_context.h" // _PyContextTokenMissing +#include "pycore_gc.h" // _PyGC_Head_UNUSED +#include "pycore_global_strings.h" // struct _Py_global_strings +#include "pycore_hamt.h" // PyHamtNode_Bitmap +#include "pycore_hashtable.h" // _Py_hashtable_t +#include "pycore_typeobject.h" // pytype_slotdef + + +// These would be in pycore_long.h if it weren't for an include cycle. +#define _PY_NSMALLPOSINTS 257 +#define _PY_NSMALLNEGINTS 5 + + +// Only immutable objects should be considered runtime-global. +// All others must be per-interpreter. + +#define _Py_GLOBAL_OBJECT(NAME) \ + _PyRuntime.static_objects.NAME +#define _Py_SINGLETON(NAME) \ + _Py_GLOBAL_OBJECT(singletons.NAME) + +struct _Py_cached_objects { + // XXX We could statically allocate the hashtable. + _Py_hashtable_t *interned_strings; +}; + +struct _Py_static_objects { + struct { + /* 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 (exclusive). + */ + PyLongObject small_ints[_PY_NSMALLNEGINTS + _PY_NSMALLPOSINTS]; + + PyBytesObject bytes_empty; + struct { + PyBytesObject ob; + char eos; + } bytes_characters[256]; + + struct _Py_global_strings strings; + + _PyGC_Head_UNUSED _tuple_empty_gc_not_used; + PyTupleObject tuple_empty; + + _PyGC_Head_UNUSED _hamt_bitmap_node_empty_gc_not_used; + PyHamtNode_Bitmap hamt_bitmap_node_empty; + _PyContextTokenMissing context_token_missing; + } singletons; +}; + +#define _Py_INTERP_CACHED_OBJECT(interp, NAME) \ + (interp)->cached_objects.NAME + +struct _Py_interp_cached_objects { + PyObject *interned_strings; + + /* AST */ + PyObject *str_replace_inf; + + /* object.__reduce__ */ + PyObject *objreduce; + PyObject *type_slots_pname; + pytype_slotdef *type_slots_ptrs[MAX_EQUIV]; + + /* TypeVar and related types */ + PyTypeObject *generic_type; + PyTypeObject *typevar_type; + PyTypeObject *typevartuple_type; + PyTypeObject *paramspec_type; + PyTypeObject *paramspecargs_type; + PyTypeObject *paramspeckwargs_type; +}; + +#define _Py_INTERP_STATIC_OBJECT(interp, NAME) \ + (interp)->static_objects.NAME +#define _Py_INTERP_SINGLETON(interp, NAME) \ + _Py_INTERP_STATIC_OBJECT(interp, singletons.NAME) + +struct _Py_interp_static_objects { + struct { + int _not_used; + // hamt_empty is here instead of global because of its weakreflist. + _PyGC_Head_UNUSED _hamt_empty_gc_not_used; + PyHamtObject hamt_empty; + PyBaseExceptionObject last_resort_memory_error; + } singletons; +}; + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_GLOBAL_OBJECTS_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_global_objects_fini_generated.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_global_objects_fini_generated.h new file mode 100644 index 000000000..006dd911b --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_global_objects_fini_generated.h @@ -0,0 +1,1553 @@ +#ifndef Py_INTERNAL_GLOBAL_OBJECTS_FINI_GENERATED_INIT_H +#define Py_INTERNAL_GLOBAL_OBJECTS_FINI_GENERATED_INIT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#ifdef Py_DEBUG +static inline void +_PyStaticObject_CheckRefcnt(PyObject *obj) { + if (Py_REFCNT(obj) < _Py_IMMORTAL_REFCNT) { + fprintf(stderr, "Immortal Object has less refcnt than expected.\n"); + _PyObject_Dump(obj); + } +} +#endif + +/* The following is auto-generated by Tools/build/generate_global_objects.py. */ +#ifdef Py_DEBUG +static inline void +_PyStaticObjects_CheckRefcnt(PyInterpreterState *interp) { + /* generated runtime-global */ + // (see pycore_runtime_init_generated.h) + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -5]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -4]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -3]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -2]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -1]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 0]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 1]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 2]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 3]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 4]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 5]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 6]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 7]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 8]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 9]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 10]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 11]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 12]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 13]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 14]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 15]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 16]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 17]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 18]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 19]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 20]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 21]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 22]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 23]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 24]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 25]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 26]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 27]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 28]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 29]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 30]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 31]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 32]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 33]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 34]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 35]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 36]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 37]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 38]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 39]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 40]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 41]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 42]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 43]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 44]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 45]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 46]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 47]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 48]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 49]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 50]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 51]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 52]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 53]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 54]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 55]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 56]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 57]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 58]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 59]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 60]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 61]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 62]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 63]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 64]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 65]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 66]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 67]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 68]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 69]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 70]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 71]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 72]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 73]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 74]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 75]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 76]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 77]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 78]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 79]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 80]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 81]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 82]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 83]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 84]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 85]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 86]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 87]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 88]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 89]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 90]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 91]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 92]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 93]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 94]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 95]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 96]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 97]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 98]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 99]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 100]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 101]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 102]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 103]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 104]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 105]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 106]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 107]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 108]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 109]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 110]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 111]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 112]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 113]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 114]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 115]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 116]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 117]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 118]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 119]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 120]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 121]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 122]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 123]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 124]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 125]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 126]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 127]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 129]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 130]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 131]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 132]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 133]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 134]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 135]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 136]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 137]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 138]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 139]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 140]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 141]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 142]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 143]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 144]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 145]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 146]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 147]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 148]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 149]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 150]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 151]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 152]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 153]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 154]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 155]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 156]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 157]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 158]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 159]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 160]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 161]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 162]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 163]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 164]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 165]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 166]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 167]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 168]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 169]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 170]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 171]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 172]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 173]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 174]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 175]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 176]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 177]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 178]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 179]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 180]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 181]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 182]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 183]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 184]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 185]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 186]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 187]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 188]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 189]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 190]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 191]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 192]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 193]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 194]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 195]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 196]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 197]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 198]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 199]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 200]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 201]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 202]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 203]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 204]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 205]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 206]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 207]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 208]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 209]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 210]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 211]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 212]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 213]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 214]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 215]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 216]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 217]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 218]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 219]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 220]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 221]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 222]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 223]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 224]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 225]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 226]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 227]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 228]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 229]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 230]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 231]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 232]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 233]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 234]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 235]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 236]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 237]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 238]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 239]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 240]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 241]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 242]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 243]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 244]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 245]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 246]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 247]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 248]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 249]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 250]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 251]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 252]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 253]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 254]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 255]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 256]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[0]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[1]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[2]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[3]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[4]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[5]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[6]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[7]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[8]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[9]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[10]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[11]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[12]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[13]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[14]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[15]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[16]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[17]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[18]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[19]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[20]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[21]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[22]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[23]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[24]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[25]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[26]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[27]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[28]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[29]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[30]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[31]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[32]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[33]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[34]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[35]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[36]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[37]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[38]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[39]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[40]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[41]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[42]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[43]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[44]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[45]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[46]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[47]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[48]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[49]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[50]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[51]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[52]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[53]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[54]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[55]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[56]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[57]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[58]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[59]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[60]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[61]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[62]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[63]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[64]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[65]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[66]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[67]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[68]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[69]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[70]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[71]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[72]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[73]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[74]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[75]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[76]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[77]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[78]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[79]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[80]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[81]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[82]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[83]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[84]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[85]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[86]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[87]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[88]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[89]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[90]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[91]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[92]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[93]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[94]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[95]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[96]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[97]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[98]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[99]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[100]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[101]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[102]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[103]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[104]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[105]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[106]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[107]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[108]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[109]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[110]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[111]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[112]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[113]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[114]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[115]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[116]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[117]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[118]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[119]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[120]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[121]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[122]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[123]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[124]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[125]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[126]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[127]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[129]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[130]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[131]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[132]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[133]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[134]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[135]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[136]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[137]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[138]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[139]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[140]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[141]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[142]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[143]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[144]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[145]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[146]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[147]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[148]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[149]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[150]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[151]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[152]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[153]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[154]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[155]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[156]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[157]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[158]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[159]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[160]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[161]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[162]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[163]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[164]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[165]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[166]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[167]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[168]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[169]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[170]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[171]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[172]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[173]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[174]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[175]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[176]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[177]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[178]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[179]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[180]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[181]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[182]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[183]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[184]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[185]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[186]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[187]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[188]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[189]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[190]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[191]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[192]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[193]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[194]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[195]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[196]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[197]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[198]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[199]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[200]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[201]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[202]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[203]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[204]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[205]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[206]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[207]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[208]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[209]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[210]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[211]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[212]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[213]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[214]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[215]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[216]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[217]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[218]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[219]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[220]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[221]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[222]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[223]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[224]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[225]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[226]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[227]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[228]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[229]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[230]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[231]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[232]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[233]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[234]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[235]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[236]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[237]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[238]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[239]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[240]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[241]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[242]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[243]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[244]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[245]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[246]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[247]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[248]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[249]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[250]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[251]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[252]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[253]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[254]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[255]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(anon_dictcomp)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(anon_genexpr)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(anon_lambda)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(anon_listcomp)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(anon_module)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(anon_null)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(anon_setcomp)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(anon_string)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(anon_unknown)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(dbl_close_br)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(dbl_open_br)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(dbl_percent)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(defaults)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(dot_locals)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(empty)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(generic_base)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(json_decoder)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(kwdefaults)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(list_err)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(type_params)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(utf_8)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(CANCELLED)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(FINISHED)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(False)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(JSONDecodeError)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(PENDING)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(Py_Repr)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(TextIOWrapper)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(True)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(WarningMessage)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_WindowsConsoleIO)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__IOBase_closed)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__abc_tpflags__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__abs__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__abstractmethods__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__add__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__aenter__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__aexit__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__aiter__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__all__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__and__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__anext__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__annotations__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__args__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__await__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__bases__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__bool__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__buffer__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__build_class__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__builtins__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__bytes__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__call__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__cantrace__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__class__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__class_getitem__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__classcell__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__classdict__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__classdictcell__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__complex__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__contains__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__copy__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__ctypes_from_outparam__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__del__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__delattr__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__delete__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__delitem__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__dict__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__dictoffset__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__dir__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__divmod__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__doc__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__enter__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__eq__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__exit__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__file__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__firstlineno__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__float__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__floordiv__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__format__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__fspath__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__ge__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__get__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__getattr__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__getattribute__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__getinitargs__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__getitem__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__getnewargs__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__getnewargs_ex__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__getstate__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__gt__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__hash__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__iadd__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__iand__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__ifloordiv__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__ilshift__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__imatmul__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__imod__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__import__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__imul__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__index__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__init__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__init_subclass__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__instancecheck__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__int__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__invert__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__ior__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__ipow__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__irshift__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__isabstractmethod__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__isub__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__iter__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__itruediv__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__ixor__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__le__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__len__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__length_hint__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__lltrace__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__loader__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__lshift__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__lt__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__main__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__match_args__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__matmul__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__missing__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__mod__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__module__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__mro_entries__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__mul__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__name__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__ne__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__neg__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__new__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__newobj__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__newobj_ex__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__next__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__notes__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__or__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__orig_class__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__origin__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__package__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__parameters__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__path__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__pos__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__pow__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__prepare__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__qualname__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__radd__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rand__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rdivmod__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__reduce__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__reduce_ex__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__release_buffer__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__repr__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__reversed__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rfloordiv__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rlshift__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rmatmul__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rmod__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rmul__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__ror__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__round__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rpow__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rrshift__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rshift__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rsub__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rtruediv__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rxor__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__set__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__set_name__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__setattr__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__setitem__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__setstate__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__sizeof__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__slotnames__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__slots__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__spec__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__static_attributes__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__str__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__sub__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__subclasscheck__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__subclasshook__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__truediv__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__trunc__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__type_params__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__typing_is_unpacked_typevartuple__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__typing_prepare_subst__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__typing_subst__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__typing_unpacked_tuple_args__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__warningregistry__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__weaklistoffset__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__weakref__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__xor__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_abc_impl)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_abstract_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_active)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_align_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_annotation)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_anonymous_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_argtypes_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_as_parameter_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_asyncio_future_blocking)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_blksize)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_bootstrap)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_check_retval_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_dealloc_warn)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_feature_version)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_field_types)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_fields_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_finalizing)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_find_and_load)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_fix_up_module)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_flags_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_get_sourcefile)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_handle_fromlist)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_initializing)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_io)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_is_text_encoding)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_length_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_limbo)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_lock_unlock_module)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_loop)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_needs_com_addref_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_only_immortal)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_pack_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_restype_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_showwarnmsg)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_shutdown)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_slotnames)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_strptime)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_strptime_datetime)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_swappedbytes_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_type_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_uninitialized_submodules)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_warn_unawaited_coroutine)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_xoptions)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(abs_tol)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(access)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(aclose)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(add)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(add_done_callback)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(after_in_child)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(after_in_parent)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(aggregate_class)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(alias)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(allow_code)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(append)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(arg)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(argdefs)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(args)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(arguments)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(argv)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(as_integer_ratio)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(asend)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(ast)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(athrow)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(attribute)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(authorizer_callback)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(autocommit)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(backtick)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(base)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(before)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(big)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(binary_form)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(block)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(bound)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(buffer)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(buffer_callback)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(buffer_size)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(buffering)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(buffers)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(bufsize)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(builtins)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(byteorder)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(bytes)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(bytes_per_sep)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(c_call)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(c_exception)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(c_return)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(cached_datetime_module)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(cached_statements)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(cadata)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(cafile)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(call)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(call_exception_handler)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(call_soon)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(callback)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(cancel)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(capath)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(category)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(cb_type)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(certfile)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(check_same_thread)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(clear)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(close)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(closed)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(closefd)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(closure)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_argcount)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_cellvars)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_code)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_consts)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_exceptiontable)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_filename)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_firstlineno)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_flags)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_freevars)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_kwonlyargcount)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_linetable)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_name)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_names)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_nlocals)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_posonlyargcount)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_qualname)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_stacksize)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_varnames)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(code)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(col_offset)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(command)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(comment_factory)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(compile_mode)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(consts)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(context)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(contravariant)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(cookie)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(copy)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(copyreg)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(coro)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(count)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(covariant)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(cwd)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(data)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(database)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(day)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(decode)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(decoder)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(default)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(defaultaction)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(delete)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(depth)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(desired_access)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(detect_types)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(deterministic)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(device)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(dict)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(dictcomp)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(difference_update)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(digest)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(digest_size)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(digestmod)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(dir_fd)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(discard)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(dispatch_table)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(displayhook)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(dklen)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(doc)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(dont_inherit)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(dst)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(dst_dir_fd)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(eager_start)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(effective_ids)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(element_factory)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(encode)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(encoding)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(end)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(end_col_offset)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(end_lineno)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(end_offset)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(endpos)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(entrypoint)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(env)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(errors)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(event)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(eventmask)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(exc_type)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(exc_value)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(excepthook)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(exception)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(existing_file_name)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(exp)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(extend)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(extra_tokens)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(facility)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(factory)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(false)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(family)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fanout)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fd)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fd2)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fdel)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fget)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(file)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(file_actions)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(filename)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fileno)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(filepath)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fillvalue)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(filter)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(filters)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(final)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(find_class)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fix_imports)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(flags)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(flush)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fold)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(follow_symlinks)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(format)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(from_param)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fromlist)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fromtimestamp)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fromutc)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fset)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(func)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(future)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(generation)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(genexpr)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(get)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(get_debug)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(get_event_loop)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(get_loop)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(get_source)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(getattr)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(getstate)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(gid)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(globals)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(groupindex)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(groups)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(handle)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(handle_seq)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(has_location)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(hash_name)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(header)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(headers)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(hi)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(hook)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(hour)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(ident)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(identity_hint)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(ignore)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(imag)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(importlib)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(in_fd)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(incoming)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(indexgroup)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(inf)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(infer_variance)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(inherit_handle)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(inheritable)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(initial)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(initial_bytes)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(initial_owner)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(initial_state)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(initial_value)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(initval)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(inner_size)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(input)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(insert_comments)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(insert_pis)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(instructions)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(intern)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(intersection)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(interval)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(is_running)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(isatty)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(isinstance)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(isoformat)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(isolation_level)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(istext)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(item)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(items)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(iter)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(iterable)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(iterations)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(join)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(jump)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(keepends)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(key)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(keyfile)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(keys)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(kind)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(kw)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(kw1)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(kw2)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(kwdefaults)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(label)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(lambda)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(last)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(last_exc)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(last_node)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(last_traceback)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(last_type)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(last_value)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(latin1)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(leaf_size)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(len)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(length)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(level)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(limit)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(line)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(line_buffering)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(lineno)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(listcomp)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(little)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(lo)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(locale)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(locals)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(logoption)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(loop)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(manual_reset)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(mapping)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(match)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(max_length)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(maxdigits)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(maxevents)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(maxlen)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(maxmem)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(maxsplit)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(maxvalue)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(memLevel)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(memlimit)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(message)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(metaclass)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(metadata)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(method)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(microsecond)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(milliseconds)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(minute)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(mod)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(mode)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(module)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(module_globals)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(modules)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(month)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(mro)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(msg)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(mutex)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(mycmp)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(n_arg)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(n_fields)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(n_sequence_fields)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(n_unnamed_fields)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(name)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(name_from)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(namespace_separator)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(namespaces)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(narg)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(ndigits)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(nested)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(new_file_name)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(new_limit)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(newline)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(newlines)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(next)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(nlocals)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(node_depth)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(node_offset)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(ns)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(nstype)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(nt)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(null)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(number)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(obj)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(object)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(offset)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(offset_dst)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(offset_src)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(on_type_read)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(onceregistry)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(only_keys)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(oparg)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(opcode)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(open)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(opener)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(operation)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(optimize)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(options)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(order)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(origin)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(out_fd)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(outgoing)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(overlapped)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(owner)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(pages)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(parent)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(password)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(path)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(pattern)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(peek)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(persistent_id)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(persistent_load)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(person)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(pi_factory)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(pid)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(policy)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(pos)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(pos1)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(pos2)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(posix)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(print_file_and_line)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(priority)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(progress)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(progress_handler)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(progress_routine)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(proto)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(protocol)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(ps1)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(ps2)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(query)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(quotetabs)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(raw)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(read)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(read1)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(readable)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(readall)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(readinto)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(readinto1)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(readline)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(readonly)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(real)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(reducer_override)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(registry)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(rel_tol)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(release)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(reload)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(repl)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(replace)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(reserved)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(reset)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(resetids)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(return)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(reverse)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(reversed)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(salt)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(sched_priority)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(scheduler)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(second)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(security_attributes)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(seek)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(seekable)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(selectors)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(self)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(send)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(sep)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(sequence)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(server_hostname)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(server_side)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(session)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(setcomp)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(setpgroup)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(setsid)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(setsigdef)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(setsigmask)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(setstate)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(shape)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(show_cmd)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(signed)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(size)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(sizehint)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(skip_file_prefixes)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(sleep)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(sock)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(sort)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(source)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(source_traceback)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(spam)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(src)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(src_dir_fd)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(stacklevel)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(start)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(statement)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(status)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(stderr)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(stdin)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(stdout)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(step)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(steps)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(store_name)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(strategy)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(strftime)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(strict)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(strict_mode)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(string)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(sub_key)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(symmetric_difference_update)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(tabsize)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(tag)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(target)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(target_is_directory)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(task)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(tb_frame)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(tb_lasti)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(tb_lineno)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(tb_next)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(tell)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(template)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(term)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(text)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(threading)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(throw)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(timeout)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(times)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(timetuple)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(top)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(trace_callback)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(traceback)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(trailers)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(translate)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(true)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(truncate)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(twice)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(txt)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(type)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(type_params)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(tz)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(tzinfo)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(tzname)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(uid)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(unlink)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(unraisablehook)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(uri)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(usedforsecurity)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(value)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(values)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(version)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(volume)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(wait_all)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(warn_on_full_buffer)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(warnings)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(warnoptions)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(wbits)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(week)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(weekday)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(which)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(who)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(withdata)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(writable)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(write)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(write_through)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(year)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(zdict)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[0]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[1]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[2]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[3]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[4]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[5]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[6]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[7]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[8]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[9]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[10]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[11]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[12]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[13]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[14]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[15]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[16]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[17]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[18]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[19]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[20]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[21]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[22]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[23]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[24]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[25]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[26]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[27]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[28]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[29]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[30]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[31]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[32]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[33]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[34]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[35]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[36]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[37]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[38]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[39]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[40]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[41]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[42]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[43]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[44]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[45]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[46]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[47]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[48]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[49]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[50]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[51]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[52]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[53]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[54]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[55]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[56]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[57]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[58]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[59]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[60]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[61]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[62]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[63]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[64]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[65]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[66]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[67]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[68]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[69]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[70]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[71]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[72]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[73]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[74]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[75]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[76]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[77]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[78]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[79]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[80]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[81]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[82]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[83]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[84]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[85]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[86]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[87]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[88]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[89]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[90]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[91]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[92]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[93]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[94]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[95]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[96]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[97]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[98]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[99]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[100]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[101]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[102]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[103]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[104]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[105]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[106]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[107]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[108]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[109]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[110]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[111]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[112]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[113]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[114]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[115]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[116]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[117]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[118]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[119]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[120]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[121]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[122]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[123]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[124]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[125]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[126]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[127]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[128 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[129 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[130 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[131 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[132 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[133 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[134 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[135 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[136 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[137 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[138 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[139 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[140 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[141 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[142 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[143 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[144 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[145 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[146 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[147 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[148 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[149 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[150 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[151 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[152 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[153 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[154 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[155 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[156 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[157 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[158 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[159 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[160 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[161 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[162 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[163 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[164 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[165 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[166 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[167 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[168 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[169 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[170 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[171 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[172 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[173 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[174 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[175 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[176 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[177 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[178 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[179 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[180 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[181 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[182 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[183 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[184 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[185 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[186 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[187 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[188 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[189 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[190 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[191 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[192 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[193 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[194 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[195 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[196 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[197 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[198 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[199 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[200 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[201 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[202 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[203 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[204 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[205 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[206 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[207 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[208 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[209 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[210 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[211 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[212 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[213 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[214 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[215 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[216 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[217 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[218 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[219 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[220 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[221 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[222 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[223 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[224 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[225 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[226 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[227 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[228 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[229 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[230 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[231 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[232 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[233 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[234 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[235 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[236 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[237 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[238 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[239 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[240 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[241 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[242 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[243 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[244 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[245 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[246 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[247 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[248 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[249 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[250 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[251 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[252 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[253 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[254 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[255 - 128]); + /* non-generated */ + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_empty)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(tuple_empty)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(hamt_bitmap_node_empty)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_INTERP_SINGLETON(interp, hamt_empty)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(context_token_missing)); +} +#endif // Py_DEBUG +/* End auto-generated code */ + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_GLOBAL_OBJECTS_FINI_GENERATED_INIT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_global_strings.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_global_strings.h new file mode 100644 index 000000000..a5436b6d6 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_global_strings.h @@ -0,0 +1,813 @@ +#ifndef Py_INTERNAL_GLOBAL_STRINGS_H +#define Py_INTERNAL_GLOBAL_STRINGS_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +// The data structure & init here are inspired by Tools/build/deepfreeze.py. + +// All field names generated by ASCII_STR() have a common prefix, +// to help avoid collisions with keywords, macros, etc. + +#define STRUCT_FOR_ASCII_STR(LITERAL) \ + struct { \ + PyASCIIObject _ascii; \ + uint8_t _data[sizeof(LITERAL)]; \ + } +#define STRUCT_FOR_STR(NAME, LITERAL) \ + STRUCT_FOR_ASCII_STR(LITERAL) _py_ ## NAME; +#define STRUCT_FOR_ID(NAME) \ + STRUCT_FOR_ASCII_STR(#NAME) _py_ ## NAME; + +// XXX Order by frequency of use? + +/* The following is auto-generated by Tools/build/generate_global_objects.py. */ +struct _Py_global_strings { + struct { + STRUCT_FOR_STR(anon_dictcomp, "") + STRUCT_FOR_STR(anon_genexpr, "") + STRUCT_FOR_STR(anon_lambda, "") + STRUCT_FOR_STR(anon_listcomp, "") + STRUCT_FOR_STR(anon_module, "") + STRUCT_FOR_STR(anon_null, "") + STRUCT_FOR_STR(anon_setcomp, "") + STRUCT_FOR_STR(anon_string, "") + STRUCT_FOR_STR(anon_unknown, "") + STRUCT_FOR_STR(dbl_close_br, "}}") + STRUCT_FOR_STR(dbl_open_br, "{{") + STRUCT_FOR_STR(dbl_percent, "%%") + STRUCT_FOR_STR(defaults, ".defaults") + STRUCT_FOR_STR(dot_locals, ".") + STRUCT_FOR_STR(empty, "") + STRUCT_FOR_STR(generic_base, ".generic_base") + STRUCT_FOR_STR(json_decoder, "json.decoder") + STRUCT_FOR_STR(kwdefaults, ".kwdefaults") + STRUCT_FOR_STR(list_err, "list index out of range") + STRUCT_FOR_STR(type_params, ".type_params") + STRUCT_FOR_STR(utf_8, "utf-8") + } literals; + + struct { + STRUCT_FOR_ID(CANCELLED) + STRUCT_FOR_ID(FINISHED) + STRUCT_FOR_ID(False) + STRUCT_FOR_ID(JSONDecodeError) + STRUCT_FOR_ID(PENDING) + STRUCT_FOR_ID(Py_Repr) + STRUCT_FOR_ID(TextIOWrapper) + STRUCT_FOR_ID(True) + STRUCT_FOR_ID(WarningMessage) + STRUCT_FOR_ID(_WindowsConsoleIO) + STRUCT_FOR_ID(__IOBase_closed) + STRUCT_FOR_ID(__abc_tpflags__) + STRUCT_FOR_ID(__abs__) + STRUCT_FOR_ID(__abstractmethods__) + STRUCT_FOR_ID(__add__) + STRUCT_FOR_ID(__aenter__) + STRUCT_FOR_ID(__aexit__) + STRUCT_FOR_ID(__aiter__) + STRUCT_FOR_ID(__all__) + STRUCT_FOR_ID(__and__) + STRUCT_FOR_ID(__anext__) + STRUCT_FOR_ID(__annotations__) + STRUCT_FOR_ID(__args__) + STRUCT_FOR_ID(__await__) + STRUCT_FOR_ID(__bases__) + STRUCT_FOR_ID(__bool__) + STRUCT_FOR_ID(__buffer__) + STRUCT_FOR_ID(__build_class__) + STRUCT_FOR_ID(__builtins__) + STRUCT_FOR_ID(__bytes__) + STRUCT_FOR_ID(__call__) + STRUCT_FOR_ID(__cantrace__) + STRUCT_FOR_ID(__class__) + STRUCT_FOR_ID(__class_getitem__) + STRUCT_FOR_ID(__classcell__) + STRUCT_FOR_ID(__classdict__) + STRUCT_FOR_ID(__classdictcell__) + STRUCT_FOR_ID(__complex__) + STRUCT_FOR_ID(__contains__) + STRUCT_FOR_ID(__copy__) + STRUCT_FOR_ID(__ctypes_from_outparam__) + STRUCT_FOR_ID(__del__) + STRUCT_FOR_ID(__delattr__) + STRUCT_FOR_ID(__delete__) + STRUCT_FOR_ID(__delitem__) + STRUCT_FOR_ID(__dict__) + STRUCT_FOR_ID(__dictoffset__) + STRUCT_FOR_ID(__dir__) + STRUCT_FOR_ID(__divmod__) + STRUCT_FOR_ID(__doc__) + STRUCT_FOR_ID(__enter__) + STRUCT_FOR_ID(__eq__) + STRUCT_FOR_ID(__exit__) + STRUCT_FOR_ID(__file__) + STRUCT_FOR_ID(__firstlineno__) + STRUCT_FOR_ID(__float__) + STRUCT_FOR_ID(__floordiv__) + STRUCT_FOR_ID(__format__) + STRUCT_FOR_ID(__fspath__) + STRUCT_FOR_ID(__ge__) + STRUCT_FOR_ID(__get__) + STRUCT_FOR_ID(__getattr__) + STRUCT_FOR_ID(__getattribute__) + STRUCT_FOR_ID(__getinitargs__) + STRUCT_FOR_ID(__getitem__) + STRUCT_FOR_ID(__getnewargs__) + STRUCT_FOR_ID(__getnewargs_ex__) + STRUCT_FOR_ID(__getstate__) + STRUCT_FOR_ID(__gt__) + STRUCT_FOR_ID(__hash__) + STRUCT_FOR_ID(__iadd__) + STRUCT_FOR_ID(__iand__) + STRUCT_FOR_ID(__ifloordiv__) + STRUCT_FOR_ID(__ilshift__) + STRUCT_FOR_ID(__imatmul__) + STRUCT_FOR_ID(__imod__) + STRUCT_FOR_ID(__import__) + STRUCT_FOR_ID(__imul__) + STRUCT_FOR_ID(__index__) + STRUCT_FOR_ID(__init__) + STRUCT_FOR_ID(__init_subclass__) + STRUCT_FOR_ID(__instancecheck__) + STRUCT_FOR_ID(__int__) + STRUCT_FOR_ID(__invert__) + STRUCT_FOR_ID(__ior__) + STRUCT_FOR_ID(__ipow__) + STRUCT_FOR_ID(__irshift__) + STRUCT_FOR_ID(__isabstractmethod__) + STRUCT_FOR_ID(__isub__) + STRUCT_FOR_ID(__iter__) + STRUCT_FOR_ID(__itruediv__) + STRUCT_FOR_ID(__ixor__) + STRUCT_FOR_ID(__le__) + STRUCT_FOR_ID(__len__) + STRUCT_FOR_ID(__length_hint__) + STRUCT_FOR_ID(__lltrace__) + STRUCT_FOR_ID(__loader__) + STRUCT_FOR_ID(__lshift__) + STRUCT_FOR_ID(__lt__) + STRUCT_FOR_ID(__main__) + STRUCT_FOR_ID(__match_args__) + STRUCT_FOR_ID(__matmul__) + STRUCT_FOR_ID(__missing__) + STRUCT_FOR_ID(__mod__) + STRUCT_FOR_ID(__module__) + STRUCT_FOR_ID(__mro_entries__) + STRUCT_FOR_ID(__mul__) + STRUCT_FOR_ID(__name__) + STRUCT_FOR_ID(__ne__) + STRUCT_FOR_ID(__neg__) + STRUCT_FOR_ID(__new__) + STRUCT_FOR_ID(__newobj__) + STRUCT_FOR_ID(__newobj_ex__) + STRUCT_FOR_ID(__next__) + STRUCT_FOR_ID(__notes__) + STRUCT_FOR_ID(__or__) + STRUCT_FOR_ID(__orig_class__) + STRUCT_FOR_ID(__origin__) + STRUCT_FOR_ID(__package__) + STRUCT_FOR_ID(__parameters__) + STRUCT_FOR_ID(__path__) + STRUCT_FOR_ID(__pos__) + STRUCT_FOR_ID(__pow__) + STRUCT_FOR_ID(__prepare__) + STRUCT_FOR_ID(__qualname__) + STRUCT_FOR_ID(__radd__) + STRUCT_FOR_ID(__rand__) + STRUCT_FOR_ID(__rdivmod__) + STRUCT_FOR_ID(__reduce__) + STRUCT_FOR_ID(__reduce_ex__) + STRUCT_FOR_ID(__release_buffer__) + STRUCT_FOR_ID(__repr__) + STRUCT_FOR_ID(__reversed__) + STRUCT_FOR_ID(__rfloordiv__) + STRUCT_FOR_ID(__rlshift__) + STRUCT_FOR_ID(__rmatmul__) + STRUCT_FOR_ID(__rmod__) + STRUCT_FOR_ID(__rmul__) + STRUCT_FOR_ID(__ror__) + STRUCT_FOR_ID(__round__) + STRUCT_FOR_ID(__rpow__) + STRUCT_FOR_ID(__rrshift__) + STRUCT_FOR_ID(__rshift__) + STRUCT_FOR_ID(__rsub__) + STRUCT_FOR_ID(__rtruediv__) + STRUCT_FOR_ID(__rxor__) + STRUCT_FOR_ID(__set__) + STRUCT_FOR_ID(__set_name__) + STRUCT_FOR_ID(__setattr__) + STRUCT_FOR_ID(__setitem__) + STRUCT_FOR_ID(__setstate__) + STRUCT_FOR_ID(__sizeof__) + STRUCT_FOR_ID(__slotnames__) + STRUCT_FOR_ID(__slots__) + STRUCT_FOR_ID(__spec__) + STRUCT_FOR_ID(__static_attributes__) + STRUCT_FOR_ID(__str__) + STRUCT_FOR_ID(__sub__) + STRUCT_FOR_ID(__subclasscheck__) + STRUCT_FOR_ID(__subclasshook__) + STRUCT_FOR_ID(__truediv__) + STRUCT_FOR_ID(__trunc__) + STRUCT_FOR_ID(__type_params__) + STRUCT_FOR_ID(__typing_is_unpacked_typevartuple__) + STRUCT_FOR_ID(__typing_prepare_subst__) + STRUCT_FOR_ID(__typing_subst__) + STRUCT_FOR_ID(__typing_unpacked_tuple_args__) + STRUCT_FOR_ID(__warningregistry__) + STRUCT_FOR_ID(__weaklistoffset__) + STRUCT_FOR_ID(__weakref__) + STRUCT_FOR_ID(__xor__) + STRUCT_FOR_ID(_abc_impl) + STRUCT_FOR_ID(_abstract_) + STRUCT_FOR_ID(_active) + STRUCT_FOR_ID(_align_) + STRUCT_FOR_ID(_annotation) + STRUCT_FOR_ID(_anonymous_) + STRUCT_FOR_ID(_argtypes_) + STRUCT_FOR_ID(_as_parameter_) + STRUCT_FOR_ID(_asyncio_future_blocking) + STRUCT_FOR_ID(_blksize) + STRUCT_FOR_ID(_bootstrap) + STRUCT_FOR_ID(_check_retval_) + STRUCT_FOR_ID(_dealloc_warn) + STRUCT_FOR_ID(_feature_version) + STRUCT_FOR_ID(_field_types) + STRUCT_FOR_ID(_fields_) + STRUCT_FOR_ID(_finalizing) + STRUCT_FOR_ID(_find_and_load) + STRUCT_FOR_ID(_fix_up_module) + STRUCT_FOR_ID(_flags_) + STRUCT_FOR_ID(_get_sourcefile) + STRUCT_FOR_ID(_handle_fromlist) + STRUCT_FOR_ID(_initializing) + STRUCT_FOR_ID(_io) + STRUCT_FOR_ID(_is_text_encoding) + STRUCT_FOR_ID(_length_) + STRUCT_FOR_ID(_limbo) + STRUCT_FOR_ID(_lock_unlock_module) + STRUCT_FOR_ID(_loop) + STRUCT_FOR_ID(_needs_com_addref_) + STRUCT_FOR_ID(_only_immortal) + STRUCT_FOR_ID(_pack_) + STRUCT_FOR_ID(_restype_) + STRUCT_FOR_ID(_showwarnmsg) + STRUCT_FOR_ID(_shutdown) + STRUCT_FOR_ID(_slotnames) + STRUCT_FOR_ID(_strptime) + STRUCT_FOR_ID(_strptime_datetime) + STRUCT_FOR_ID(_swappedbytes_) + STRUCT_FOR_ID(_type_) + STRUCT_FOR_ID(_uninitialized_submodules) + STRUCT_FOR_ID(_warn_unawaited_coroutine) + STRUCT_FOR_ID(_xoptions) + STRUCT_FOR_ID(abs_tol) + STRUCT_FOR_ID(access) + STRUCT_FOR_ID(aclose) + STRUCT_FOR_ID(add) + STRUCT_FOR_ID(add_done_callback) + STRUCT_FOR_ID(after_in_child) + STRUCT_FOR_ID(after_in_parent) + STRUCT_FOR_ID(aggregate_class) + STRUCT_FOR_ID(alias) + STRUCT_FOR_ID(allow_code) + STRUCT_FOR_ID(append) + STRUCT_FOR_ID(arg) + STRUCT_FOR_ID(argdefs) + STRUCT_FOR_ID(args) + STRUCT_FOR_ID(arguments) + STRUCT_FOR_ID(argv) + STRUCT_FOR_ID(as_integer_ratio) + STRUCT_FOR_ID(asend) + STRUCT_FOR_ID(ast) + STRUCT_FOR_ID(athrow) + STRUCT_FOR_ID(attribute) + STRUCT_FOR_ID(authorizer_callback) + STRUCT_FOR_ID(autocommit) + STRUCT_FOR_ID(backtick) + STRUCT_FOR_ID(base) + STRUCT_FOR_ID(before) + STRUCT_FOR_ID(big) + STRUCT_FOR_ID(binary_form) + STRUCT_FOR_ID(block) + STRUCT_FOR_ID(bound) + STRUCT_FOR_ID(buffer) + STRUCT_FOR_ID(buffer_callback) + STRUCT_FOR_ID(buffer_size) + STRUCT_FOR_ID(buffering) + STRUCT_FOR_ID(buffers) + STRUCT_FOR_ID(bufsize) + STRUCT_FOR_ID(builtins) + STRUCT_FOR_ID(byteorder) + STRUCT_FOR_ID(bytes) + STRUCT_FOR_ID(bytes_per_sep) + STRUCT_FOR_ID(c_call) + STRUCT_FOR_ID(c_exception) + STRUCT_FOR_ID(c_return) + STRUCT_FOR_ID(cached_datetime_module) + STRUCT_FOR_ID(cached_statements) + STRUCT_FOR_ID(cadata) + STRUCT_FOR_ID(cafile) + STRUCT_FOR_ID(call) + STRUCT_FOR_ID(call_exception_handler) + STRUCT_FOR_ID(call_soon) + STRUCT_FOR_ID(callback) + STRUCT_FOR_ID(cancel) + STRUCT_FOR_ID(capath) + STRUCT_FOR_ID(category) + STRUCT_FOR_ID(cb_type) + STRUCT_FOR_ID(certfile) + STRUCT_FOR_ID(check_same_thread) + STRUCT_FOR_ID(clear) + STRUCT_FOR_ID(close) + STRUCT_FOR_ID(closed) + STRUCT_FOR_ID(closefd) + STRUCT_FOR_ID(closure) + STRUCT_FOR_ID(co_argcount) + STRUCT_FOR_ID(co_cellvars) + STRUCT_FOR_ID(co_code) + STRUCT_FOR_ID(co_consts) + STRUCT_FOR_ID(co_exceptiontable) + STRUCT_FOR_ID(co_filename) + STRUCT_FOR_ID(co_firstlineno) + STRUCT_FOR_ID(co_flags) + STRUCT_FOR_ID(co_freevars) + STRUCT_FOR_ID(co_kwonlyargcount) + STRUCT_FOR_ID(co_linetable) + STRUCT_FOR_ID(co_name) + STRUCT_FOR_ID(co_names) + STRUCT_FOR_ID(co_nlocals) + STRUCT_FOR_ID(co_posonlyargcount) + STRUCT_FOR_ID(co_qualname) + STRUCT_FOR_ID(co_stacksize) + STRUCT_FOR_ID(co_varnames) + STRUCT_FOR_ID(code) + STRUCT_FOR_ID(col_offset) + STRUCT_FOR_ID(command) + STRUCT_FOR_ID(comment_factory) + STRUCT_FOR_ID(compile_mode) + STRUCT_FOR_ID(consts) + STRUCT_FOR_ID(context) + STRUCT_FOR_ID(contravariant) + STRUCT_FOR_ID(cookie) + STRUCT_FOR_ID(copy) + STRUCT_FOR_ID(copyreg) + STRUCT_FOR_ID(coro) + STRUCT_FOR_ID(count) + STRUCT_FOR_ID(covariant) + STRUCT_FOR_ID(cwd) + STRUCT_FOR_ID(data) + STRUCT_FOR_ID(database) + STRUCT_FOR_ID(day) + STRUCT_FOR_ID(decode) + STRUCT_FOR_ID(decoder) + STRUCT_FOR_ID(default) + STRUCT_FOR_ID(defaultaction) + STRUCT_FOR_ID(delete) + STRUCT_FOR_ID(depth) + STRUCT_FOR_ID(desired_access) + STRUCT_FOR_ID(detect_types) + STRUCT_FOR_ID(deterministic) + STRUCT_FOR_ID(device) + STRUCT_FOR_ID(dict) + STRUCT_FOR_ID(dictcomp) + STRUCT_FOR_ID(difference_update) + STRUCT_FOR_ID(digest) + STRUCT_FOR_ID(digest_size) + STRUCT_FOR_ID(digestmod) + STRUCT_FOR_ID(dir_fd) + STRUCT_FOR_ID(discard) + STRUCT_FOR_ID(dispatch_table) + STRUCT_FOR_ID(displayhook) + STRUCT_FOR_ID(dklen) + STRUCT_FOR_ID(doc) + STRUCT_FOR_ID(dont_inherit) + STRUCT_FOR_ID(dst) + STRUCT_FOR_ID(dst_dir_fd) + STRUCT_FOR_ID(eager_start) + STRUCT_FOR_ID(effective_ids) + STRUCT_FOR_ID(element_factory) + STRUCT_FOR_ID(encode) + STRUCT_FOR_ID(encoding) + STRUCT_FOR_ID(end) + STRUCT_FOR_ID(end_col_offset) + STRUCT_FOR_ID(end_lineno) + STRUCT_FOR_ID(end_offset) + STRUCT_FOR_ID(endpos) + STRUCT_FOR_ID(entrypoint) + STRUCT_FOR_ID(env) + STRUCT_FOR_ID(errors) + STRUCT_FOR_ID(event) + STRUCT_FOR_ID(eventmask) + STRUCT_FOR_ID(exc_type) + STRUCT_FOR_ID(exc_value) + STRUCT_FOR_ID(excepthook) + STRUCT_FOR_ID(exception) + STRUCT_FOR_ID(existing_file_name) + STRUCT_FOR_ID(exp) + STRUCT_FOR_ID(extend) + STRUCT_FOR_ID(extra_tokens) + STRUCT_FOR_ID(facility) + STRUCT_FOR_ID(factory) + STRUCT_FOR_ID(false) + STRUCT_FOR_ID(family) + STRUCT_FOR_ID(fanout) + STRUCT_FOR_ID(fd) + STRUCT_FOR_ID(fd2) + STRUCT_FOR_ID(fdel) + STRUCT_FOR_ID(fget) + STRUCT_FOR_ID(file) + STRUCT_FOR_ID(file_actions) + STRUCT_FOR_ID(filename) + STRUCT_FOR_ID(fileno) + STRUCT_FOR_ID(filepath) + STRUCT_FOR_ID(fillvalue) + STRUCT_FOR_ID(filter) + STRUCT_FOR_ID(filters) + STRUCT_FOR_ID(final) + STRUCT_FOR_ID(find_class) + STRUCT_FOR_ID(fix_imports) + STRUCT_FOR_ID(flags) + STRUCT_FOR_ID(flush) + STRUCT_FOR_ID(fold) + STRUCT_FOR_ID(follow_symlinks) + STRUCT_FOR_ID(format) + STRUCT_FOR_ID(from_param) + STRUCT_FOR_ID(fromlist) + STRUCT_FOR_ID(fromtimestamp) + STRUCT_FOR_ID(fromutc) + STRUCT_FOR_ID(fset) + STRUCT_FOR_ID(func) + STRUCT_FOR_ID(future) + STRUCT_FOR_ID(generation) + STRUCT_FOR_ID(genexpr) + STRUCT_FOR_ID(get) + STRUCT_FOR_ID(get_debug) + STRUCT_FOR_ID(get_event_loop) + STRUCT_FOR_ID(get_loop) + STRUCT_FOR_ID(get_source) + STRUCT_FOR_ID(getattr) + STRUCT_FOR_ID(getstate) + STRUCT_FOR_ID(gid) + STRUCT_FOR_ID(globals) + STRUCT_FOR_ID(groupindex) + STRUCT_FOR_ID(groups) + STRUCT_FOR_ID(handle) + STRUCT_FOR_ID(handle_seq) + STRUCT_FOR_ID(has_location) + STRUCT_FOR_ID(hash_name) + STRUCT_FOR_ID(header) + STRUCT_FOR_ID(headers) + STRUCT_FOR_ID(hi) + STRUCT_FOR_ID(hook) + STRUCT_FOR_ID(hour) + STRUCT_FOR_ID(ident) + STRUCT_FOR_ID(identity_hint) + STRUCT_FOR_ID(ignore) + STRUCT_FOR_ID(imag) + STRUCT_FOR_ID(importlib) + STRUCT_FOR_ID(in_fd) + STRUCT_FOR_ID(incoming) + STRUCT_FOR_ID(indexgroup) + STRUCT_FOR_ID(inf) + STRUCT_FOR_ID(infer_variance) + STRUCT_FOR_ID(inherit_handle) + STRUCT_FOR_ID(inheritable) + STRUCT_FOR_ID(initial) + STRUCT_FOR_ID(initial_bytes) + STRUCT_FOR_ID(initial_owner) + STRUCT_FOR_ID(initial_state) + STRUCT_FOR_ID(initial_value) + STRUCT_FOR_ID(initval) + STRUCT_FOR_ID(inner_size) + STRUCT_FOR_ID(input) + STRUCT_FOR_ID(insert_comments) + STRUCT_FOR_ID(insert_pis) + STRUCT_FOR_ID(instructions) + STRUCT_FOR_ID(intern) + STRUCT_FOR_ID(intersection) + STRUCT_FOR_ID(interval) + STRUCT_FOR_ID(is_running) + STRUCT_FOR_ID(isatty) + STRUCT_FOR_ID(isinstance) + STRUCT_FOR_ID(isoformat) + STRUCT_FOR_ID(isolation_level) + STRUCT_FOR_ID(istext) + STRUCT_FOR_ID(item) + STRUCT_FOR_ID(items) + STRUCT_FOR_ID(iter) + STRUCT_FOR_ID(iterable) + STRUCT_FOR_ID(iterations) + STRUCT_FOR_ID(join) + STRUCT_FOR_ID(jump) + STRUCT_FOR_ID(keepends) + STRUCT_FOR_ID(key) + STRUCT_FOR_ID(keyfile) + STRUCT_FOR_ID(keys) + STRUCT_FOR_ID(kind) + STRUCT_FOR_ID(kw) + STRUCT_FOR_ID(kw1) + STRUCT_FOR_ID(kw2) + STRUCT_FOR_ID(kwdefaults) + STRUCT_FOR_ID(label) + STRUCT_FOR_ID(lambda) + STRUCT_FOR_ID(last) + STRUCT_FOR_ID(last_exc) + STRUCT_FOR_ID(last_node) + STRUCT_FOR_ID(last_traceback) + STRUCT_FOR_ID(last_type) + STRUCT_FOR_ID(last_value) + STRUCT_FOR_ID(latin1) + STRUCT_FOR_ID(leaf_size) + STRUCT_FOR_ID(len) + STRUCT_FOR_ID(length) + STRUCT_FOR_ID(level) + STRUCT_FOR_ID(limit) + STRUCT_FOR_ID(line) + STRUCT_FOR_ID(line_buffering) + STRUCT_FOR_ID(lineno) + STRUCT_FOR_ID(listcomp) + STRUCT_FOR_ID(little) + STRUCT_FOR_ID(lo) + STRUCT_FOR_ID(locale) + STRUCT_FOR_ID(locals) + STRUCT_FOR_ID(logoption) + STRUCT_FOR_ID(loop) + STRUCT_FOR_ID(manual_reset) + STRUCT_FOR_ID(mapping) + STRUCT_FOR_ID(match) + STRUCT_FOR_ID(max_length) + STRUCT_FOR_ID(maxdigits) + STRUCT_FOR_ID(maxevents) + STRUCT_FOR_ID(maxlen) + STRUCT_FOR_ID(maxmem) + STRUCT_FOR_ID(maxsplit) + STRUCT_FOR_ID(maxvalue) + STRUCT_FOR_ID(memLevel) + STRUCT_FOR_ID(memlimit) + STRUCT_FOR_ID(message) + STRUCT_FOR_ID(metaclass) + STRUCT_FOR_ID(metadata) + STRUCT_FOR_ID(method) + STRUCT_FOR_ID(microsecond) + STRUCT_FOR_ID(milliseconds) + STRUCT_FOR_ID(minute) + STRUCT_FOR_ID(mod) + STRUCT_FOR_ID(mode) + STRUCT_FOR_ID(module) + STRUCT_FOR_ID(module_globals) + STRUCT_FOR_ID(modules) + STRUCT_FOR_ID(month) + STRUCT_FOR_ID(mro) + STRUCT_FOR_ID(msg) + STRUCT_FOR_ID(mutex) + STRUCT_FOR_ID(mycmp) + STRUCT_FOR_ID(n_arg) + STRUCT_FOR_ID(n_fields) + STRUCT_FOR_ID(n_sequence_fields) + STRUCT_FOR_ID(n_unnamed_fields) + STRUCT_FOR_ID(name) + STRUCT_FOR_ID(name_from) + STRUCT_FOR_ID(namespace_separator) + STRUCT_FOR_ID(namespaces) + STRUCT_FOR_ID(narg) + STRUCT_FOR_ID(ndigits) + STRUCT_FOR_ID(nested) + STRUCT_FOR_ID(new_file_name) + STRUCT_FOR_ID(new_limit) + STRUCT_FOR_ID(newline) + STRUCT_FOR_ID(newlines) + STRUCT_FOR_ID(next) + STRUCT_FOR_ID(nlocals) + STRUCT_FOR_ID(node_depth) + STRUCT_FOR_ID(node_offset) + STRUCT_FOR_ID(ns) + STRUCT_FOR_ID(nstype) + STRUCT_FOR_ID(nt) + STRUCT_FOR_ID(null) + STRUCT_FOR_ID(number) + STRUCT_FOR_ID(obj) + STRUCT_FOR_ID(object) + STRUCT_FOR_ID(offset) + STRUCT_FOR_ID(offset_dst) + STRUCT_FOR_ID(offset_src) + STRUCT_FOR_ID(on_type_read) + STRUCT_FOR_ID(onceregistry) + STRUCT_FOR_ID(only_keys) + STRUCT_FOR_ID(oparg) + STRUCT_FOR_ID(opcode) + STRUCT_FOR_ID(open) + STRUCT_FOR_ID(opener) + STRUCT_FOR_ID(operation) + STRUCT_FOR_ID(optimize) + STRUCT_FOR_ID(options) + STRUCT_FOR_ID(order) + STRUCT_FOR_ID(origin) + STRUCT_FOR_ID(out_fd) + STRUCT_FOR_ID(outgoing) + STRUCT_FOR_ID(overlapped) + STRUCT_FOR_ID(owner) + STRUCT_FOR_ID(pages) + STRUCT_FOR_ID(parent) + STRUCT_FOR_ID(password) + STRUCT_FOR_ID(path) + STRUCT_FOR_ID(pattern) + STRUCT_FOR_ID(peek) + STRUCT_FOR_ID(persistent_id) + STRUCT_FOR_ID(persistent_load) + STRUCT_FOR_ID(person) + STRUCT_FOR_ID(pi_factory) + STRUCT_FOR_ID(pid) + STRUCT_FOR_ID(policy) + STRUCT_FOR_ID(pos) + STRUCT_FOR_ID(pos1) + STRUCT_FOR_ID(pos2) + STRUCT_FOR_ID(posix) + STRUCT_FOR_ID(print_file_and_line) + STRUCT_FOR_ID(priority) + STRUCT_FOR_ID(progress) + STRUCT_FOR_ID(progress_handler) + STRUCT_FOR_ID(progress_routine) + STRUCT_FOR_ID(proto) + STRUCT_FOR_ID(protocol) + STRUCT_FOR_ID(ps1) + STRUCT_FOR_ID(ps2) + STRUCT_FOR_ID(query) + STRUCT_FOR_ID(quotetabs) + STRUCT_FOR_ID(raw) + STRUCT_FOR_ID(read) + STRUCT_FOR_ID(read1) + STRUCT_FOR_ID(readable) + STRUCT_FOR_ID(readall) + STRUCT_FOR_ID(readinto) + STRUCT_FOR_ID(readinto1) + STRUCT_FOR_ID(readline) + STRUCT_FOR_ID(readonly) + STRUCT_FOR_ID(real) + STRUCT_FOR_ID(reducer_override) + STRUCT_FOR_ID(registry) + STRUCT_FOR_ID(rel_tol) + STRUCT_FOR_ID(release) + STRUCT_FOR_ID(reload) + STRUCT_FOR_ID(repl) + STRUCT_FOR_ID(replace) + STRUCT_FOR_ID(reserved) + STRUCT_FOR_ID(reset) + STRUCT_FOR_ID(resetids) + STRUCT_FOR_ID(return) + STRUCT_FOR_ID(reverse) + STRUCT_FOR_ID(reversed) + STRUCT_FOR_ID(salt) + STRUCT_FOR_ID(sched_priority) + STRUCT_FOR_ID(scheduler) + STRUCT_FOR_ID(second) + STRUCT_FOR_ID(security_attributes) + STRUCT_FOR_ID(seek) + STRUCT_FOR_ID(seekable) + STRUCT_FOR_ID(selectors) + STRUCT_FOR_ID(self) + STRUCT_FOR_ID(send) + STRUCT_FOR_ID(sep) + STRUCT_FOR_ID(sequence) + STRUCT_FOR_ID(server_hostname) + STRUCT_FOR_ID(server_side) + STRUCT_FOR_ID(session) + STRUCT_FOR_ID(setcomp) + STRUCT_FOR_ID(setpgroup) + STRUCT_FOR_ID(setsid) + STRUCT_FOR_ID(setsigdef) + STRUCT_FOR_ID(setsigmask) + STRUCT_FOR_ID(setstate) + STRUCT_FOR_ID(shape) + STRUCT_FOR_ID(show_cmd) + STRUCT_FOR_ID(signed) + STRUCT_FOR_ID(size) + STRUCT_FOR_ID(sizehint) + STRUCT_FOR_ID(skip_file_prefixes) + STRUCT_FOR_ID(sleep) + STRUCT_FOR_ID(sock) + STRUCT_FOR_ID(sort) + STRUCT_FOR_ID(source) + STRUCT_FOR_ID(source_traceback) + STRUCT_FOR_ID(spam) + STRUCT_FOR_ID(src) + STRUCT_FOR_ID(src_dir_fd) + STRUCT_FOR_ID(stacklevel) + STRUCT_FOR_ID(start) + STRUCT_FOR_ID(statement) + STRUCT_FOR_ID(status) + STRUCT_FOR_ID(stderr) + STRUCT_FOR_ID(stdin) + STRUCT_FOR_ID(stdout) + STRUCT_FOR_ID(step) + STRUCT_FOR_ID(steps) + STRUCT_FOR_ID(store_name) + STRUCT_FOR_ID(strategy) + STRUCT_FOR_ID(strftime) + STRUCT_FOR_ID(strict) + STRUCT_FOR_ID(strict_mode) + STRUCT_FOR_ID(string) + STRUCT_FOR_ID(sub_key) + STRUCT_FOR_ID(symmetric_difference_update) + STRUCT_FOR_ID(tabsize) + STRUCT_FOR_ID(tag) + STRUCT_FOR_ID(target) + STRUCT_FOR_ID(target_is_directory) + STRUCT_FOR_ID(task) + STRUCT_FOR_ID(tb_frame) + STRUCT_FOR_ID(tb_lasti) + STRUCT_FOR_ID(tb_lineno) + STRUCT_FOR_ID(tb_next) + STRUCT_FOR_ID(tell) + STRUCT_FOR_ID(template) + STRUCT_FOR_ID(term) + STRUCT_FOR_ID(text) + STRUCT_FOR_ID(threading) + STRUCT_FOR_ID(throw) + STRUCT_FOR_ID(timeout) + STRUCT_FOR_ID(times) + STRUCT_FOR_ID(timetuple) + STRUCT_FOR_ID(top) + STRUCT_FOR_ID(trace_callback) + STRUCT_FOR_ID(traceback) + STRUCT_FOR_ID(trailers) + STRUCT_FOR_ID(translate) + STRUCT_FOR_ID(true) + STRUCT_FOR_ID(truncate) + STRUCT_FOR_ID(twice) + STRUCT_FOR_ID(txt) + STRUCT_FOR_ID(type) + STRUCT_FOR_ID(type_params) + STRUCT_FOR_ID(tz) + STRUCT_FOR_ID(tzinfo) + STRUCT_FOR_ID(tzname) + STRUCT_FOR_ID(uid) + STRUCT_FOR_ID(unlink) + STRUCT_FOR_ID(unraisablehook) + STRUCT_FOR_ID(uri) + STRUCT_FOR_ID(usedforsecurity) + STRUCT_FOR_ID(value) + STRUCT_FOR_ID(values) + STRUCT_FOR_ID(version) + STRUCT_FOR_ID(volume) + STRUCT_FOR_ID(wait_all) + STRUCT_FOR_ID(warn_on_full_buffer) + STRUCT_FOR_ID(warnings) + STRUCT_FOR_ID(warnoptions) + STRUCT_FOR_ID(wbits) + STRUCT_FOR_ID(week) + STRUCT_FOR_ID(weekday) + STRUCT_FOR_ID(which) + STRUCT_FOR_ID(who) + STRUCT_FOR_ID(withdata) + STRUCT_FOR_ID(writable) + STRUCT_FOR_ID(write) + STRUCT_FOR_ID(write_through) + STRUCT_FOR_ID(year) + STRUCT_FOR_ID(zdict) + } identifiers; + struct { + PyASCIIObject _ascii; + uint8_t _data[2]; + } ascii[128]; + struct { + PyCompactUnicodeObject _latin1; + uint8_t _data[2]; + } latin1[128]; +}; +/* End auto-generated code */ + +#undef ID +#undef STR + + +#define _Py_ID(NAME) \ + (_Py_SINGLETON(strings.identifiers._py_ ## NAME._ascii.ob_base)) +#define _Py_STR(NAME) \ + (_Py_SINGLETON(strings.literals._py_ ## NAME._ascii.ob_base)) +#define _Py_LATIN1_CHR(CH) \ + ((CH) < 128 \ + ? (PyObject*)&_Py_SINGLETON(strings).ascii[(CH)] \ + : (PyObject*)&_Py_SINGLETON(strings).latin1[(CH) - 128]) + +/* _Py_DECLARE_STR() should precede all uses of _Py_STR() in a function. + + This is true even if the same string has already been declared + elsewhere, even in the same file. Mismatched duplicates are detected + by Tools/scripts/generate-global-objects.py. + + Pairing _Py_DECLARE_STR() with every use of _Py_STR() makes sure the + string keeps working even if the declaration is removed somewhere + else. It also makes it clear what the actual string is at every + place it is being used. */ +#define _Py_DECLARE_STR(name, str) + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_GLOBAL_STRINGS_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_hamt.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_hamt.h new file mode 100644 index 000000000..d8742c7cb --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_hamt.h @@ -0,0 +1,134 @@ +#ifndef Py_INTERNAL_HAMT_H +#define Py_INTERNAL_HAMT_H + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +/* +HAMT tree is shaped by hashes of keys. Every group of 5 bits of a hash denotes +the exact position of the key in one level of the tree. Since we're using +32 bit hashes, we can have at most 7 such levels. Although if there are +two distinct keys with equal hashes, they will have to occupy the same +cell in the 7th level of the tree -- so we'd put them in a "collision" node. +Which brings the total possible tree depth to 8. Read more about the actual +layout of the HAMT tree in `hamt.c`. + +This constant is used to define a datastucture for storing iteration state. +*/ +#define _Py_HAMT_MAX_TREE_DEPTH 8 + + +extern PyTypeObject _PyHamt_Type; +extern PyTypeObject _PyHamt_ArrayNode_Type; +extern PyTypeObject _PyHamt_BitmapNode_Type; +extern PyTypeObject _PyHamt_CollisionNode_Type; +extern PyTypeObject _PyHamtKeys_Type; +extern PyTypeObject _PyHamtValues_Type; +extern PyTypeObject _PyHamtItems_Type; + + +/* other API */ + +#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; + + +typedef struct { + PyObject_VAR_HEAD + uint32_t b_bitmap; + PyObject *b_array[1]; +} PyHamtNode_Bitmap; + + +/* 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; + + +/* 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); + +#endif /* !Py_INTERNAL_HAMT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_hashtable.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_hashtable.h new file mode 100644 index 000000000..369d49c42 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_hashtable.h @@ -0,0 +1,150 @@ +#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_RVALUE(((_Py_slist_item_t *)(ITEM))->next) + +#define _Py_SLIST_HEAD(SLIST) _Py_RVALUE(((_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; +}; + +// Export _Py_hashtable functions for '_testinternalcapi' shared extension +PyAPI_FUNC(_Py_hashtable_t *) _Py_hashtable_new( + _Py_hashtable_hash_func hash_func, + _Py_hashtable_compare_func compare_func); + +/* 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_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); +PyAPI_FUNC(size_t) _Py_hashtable_len(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/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_identifier.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_identifier.h new file mode 100644 index 000000000..cda28810a --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_identifier.h @@ -0,0 +1,20 @@ +/* String Literals: _Py_Identifier API */ + +#ifndef Py_INTERNAL_IDENTIFIER_H +#define Py_INTERNAL_IDENTIFIER_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +extern PyObject* _PyType_LookupId(PyTypeObject *, _Py_Identifier *); +extern PyObject* _PyObject_LookupSpecialId(PyObject *, _Py_Identifier *); +extern int _PyObject_SetAttrId(PyObject *, _Py_Identifier *, PyObject *); + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_IDENTIFIER_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_import.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_import.h new file mode 100644 index 000000000..3806e0d3c --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_import.h @@ -0,0 +1,212 @@ +#ifndef Py_LIMITED_API +#ifndef Py_INTERNAL_IMPORT_H +#define Py_INTERNAL_IMPORT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_lock.h" // PyMutex +#include "pycore_hashtable.h" // _Py_hashtable_t + +extern int _PyImport_IsInitialized(PyInterpreterState *); + +// Export for 'pyexpat' shared extension +PyAPI_FUNC(int) _PyImport_SetModule(PyObject *name, PyObject *module); + +extern int _PyImport_SetModuleString(const char *name, PyObject* module); + +extern void _PyImport_AcquireLock(PyInterpreterState *interp); +extern void _PyImport_ReleaseLock(PyInterpreterState *interp); + +// This is used exclusively for the sys and builtins modules: +extern int _PyImport_FixupBuiltin( + PyThreadState *tstate, + PyObject *mod, + const char *name, /* UTF-8 encoded string */ + PyObject *modules + ); + +// Export for many shared extensions, like '_json' +PyAPI_FUNC(PyObject*) _PyImport_GetModuleAttr(PyObject *, PyObject *); + +// Export for many shared extensions, like '_datetime' +PyAPI_FUNC(PyObject*) _PyImport_GetModuleAttrString(const char *, const char *); + + +struct _import_runtime_state { + /* The builtin modules (defined in config.c). */ + struct _inittab *inittab; + /* The most recent value assigned to a PyModuleDef.m_base.m_index. + This is incremented each time PyModuleDef_Init() is called, + which is just about every time an extension module is imported. + See PyInterpreterState.modules_by_index for more info. */ + Py_ssize_t last_module_index; + struct { + /* A lock to guard the cache. */ + PyMutex mutex; + /* The actual cache of (filename, name, PyModuleDef) for modules. + Only legacy (single-phase init) extension modules are added + and only if they support multiple initialization (m_size >- 0) + or are imported in the main interpreter. + This is initialized lazily in fix_up_extension() in import.c. + Modules are added there and looked up in _imp.find_extension(). */ + _Py_hashtable_t *hashtable; + } extensions; + /* Package context -- the full module name for package imports */ + const char * pkgcontext; +}; + +struct _import_state { + /* cached sys.modules dictionary */ + PyObject *modules; + /* This is the list of module objects for all legacy (single-phase init) + extension modules ever loaded in this process (i.e. imported + in this interpreter or in any other). Py_None stands in for + modules that haven't actually been imported in this interpreter. + + A module's index (PyModuleDef.m_base.m_index) is used to look up + the corresponding module object for this interpreter, if any. + (See PyState_FindModule().) When any extension module + is initialized during import, its moduledef gets initialized by + PyModuleDef_Init(), and the first time that happens for each + PyModuleDef, its index gets set to the current value of + a global counter (see _PyRuntimeState.imports.last_module_index). + The entry for that index in this interpreter remains unset until + the module is actually imported here. (Py_None is used as + a placeholder.) Note that multi-phase init modules always get + an index for which there will never be a module set. + + This is initialized lazily in PyState_AddModule(), which is also + where modules get added. */ + PyObject *modules_by_index; + /* importlib module._bootstrap */ + PyObject *importlib; + /* override for config->use_frozen_modules (for tests) + (-1: "off", 1: "on", 0: no override) */ + int override_frozen_modules; + int override_multi_interp_extensions_check; +#ifdef HAVE_DLOPEN + int dlopenflags; +#endif + PyObject *import_func; + /* The global import lock. */ + _PyRecursiveMutex lock; + /* diagnostic info in PyImport_ImportModuleLevelObject() */ + struct { + int import_level; + PyTime_t accumulated; + int header; + } find_and_load; +}; + +#ifdef HAVE_DLOPEN +# include // RTLD_NOW, RTLD_LAZY +# if HAVE_DECL_RTLD_NOW +# define _Py_DLOPEN_FLAGS RTLD_NOW +# else +# define _Py_DLOPEN_FLAGS RTLD_LAZY +# endif +# define DLOPENFLAGS_INIT .dlopenflags = _Py_DLOPEN_FLAGS, +#else +# define _Py_DLOPEN_FLAGS 0 +# define DLOPENFLAGS_INIT +#endif + +#define IMPORTS_INIT \ + { \ + DLOPENFLAGS_INIT \ + .find_and_load = { \ + .header = 1, \ + }, \ + } + +extern void _PyImport_ClearCore(PyInterpreterState *interp); + +extern Py_ssize_t _PyImport_GetNextModuleIndex(void); +extern const char * _PyImport_ResolveNameWithPackageContext(const char *name); +extern const char * _PyImport_SwapPackageContext(const char *newcontext); + +extern int _PyImport_GetDLOpenFlags(PyInterpreterState *interp); +extern void _PyImport_SetDLOpenFlags(PyInterpreterState *interp, int new_val); + +extern PyObject * _PyImport_InitModules(PyInterpreterState *interp); +extern PyObject * _PyImport_GetModules(PyInterpreterState *interp); +extern void _PyImport_ClearModules(PyInterpreterState *interp); + +extern void _PyImport_ClearModulesByIndex(PyInterpreterState *interp); + +extern int _PyImport_InitDefaultImportFunc(PyInterpreterState *interp); +extern int _PyImport_IsDefaultImportFunc( + PyInterpreterState *interp, + PyObject *func); + +extern PyObject * _PyImport_GetImportlibLoader( + PyInterpreterState *interp, + const char *loader_name); +extern PyObject * _PyImport_GetImportlibExternalLoader( + PyInterpreterState *interp, + const char *loader_name); +extern PyObject * _PyImport_BlessMyLoader( + PyInterpreterState *interp, + PyObject *module_globals); +extern PyObject * _PyImport_ImportlibModuleRepr( + PyInterpreterState *interp, + PyObject *module); + + +extern PyStatus _PyImport_Init(void); +extern void _PyImport_Fini(void); +extern void _PyImport_Fini2(void); + +extern PyStatus _PyImport_InitCore( + PyThreadState *tstate, + PyObject *sysmod, + int importlib); +extern PyStatus _PyImport_InitExternal(PyThreadState *tstate); +extern void _PyImport_FiniCore(PyInterpreterState *interp); +extern void _PyImport_FiniExternal(PyInterpreterState *interp); + + +extern PyObject* _PyImport_GetBuiltinModuleNames(void); + +struct _module_alias { + const char *name; /* ASCII encoded string */ + const char *orig; /* ASCII encoded string */ +}; + +// Export these 3 symbols for test_ctypes +PyAPI_DATA(const struct _frozen*) _PyImport_FrozenBootstrap; +PyAPI_DATA(const struct _frozen*) _PyImport_FrozenStdlib; +PyAPI_DATA(const struct _frozen*) _PyImport_FrozenTest; + +extern const struct _module_alias * _PyImport_FrozenAliases; + +extern int _PyImport_CheckSubinterpIncompatibleExtensionAllowed( + const char *name); + + +// Export for '_testinternalcapi' shared extension +PyAPI_FUNC(int) _PyImport_ClearExtension(PyObject *name, PyObject *filename); + +#ifdef Py_GIL_DISABLED +// Assuming that the GIL is enabled from a call to +// _PyEval_EnableGILTransient(), resolve the transient request depending on the +// state of the module argument: +// - If module is NULL or a PyModuleObject with md_gil == Py_MOD_GIL_NOT_USED, +// call _PyEval_DisableGIL(). +// - Otherwise, call _PyEval_EnableGILPermanent(). If the GIL was not already +// enabled permanently, issue a warning referencing the module's name. +// +// This function may raise an exception. +extern int _PyImport_CheckGILForModule(PyObject *module, PyObject *module_name); +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_IMPORT_H */ +#endif /* !Py_LIMITED_API */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_importdl.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_importdl.h new file mode 100644 index 000000000..e5f222b37 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_importdl.h @@ -0,0 +1,135 @@ +#ifndef Py_INTERNAL_IMPORTDL_H +#define Py_INTERNAL_IMPORTDL_H + +#include "patchlevel.h" // PY_MAJOR_VERSION + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +extern const char *_PyImport_DynLoadFiletab[]; + + +typedef enum ext_module_kind { + _Py_ext_module_kind_UNKNOWN = 0, + _Py_ext_module_kind_SINGLEPHASE = 1, + _Py_ext_module_kind_MULTIPHASE = 2, + _Py_ext_module_kind_INVALID = 3, +} _Py_ext_module_kind; + +typedef enum ext_module_origin { + _Py_ext_module_origin_CORE = 1, + _Py_ext_module_origin_BUILTIN = 2, + _Py_ext_module_origin_DYNAMIC = 3, +} _Py_ext_module_origin; + +/* Input for loading an extension module. */ +struct _Py_ext_module_loader_info { + PyObject *filename; +#ifndef MS_WINDOWS + PyObject *filename_encoded; +#endif + PyObject *name; + PyObject *name_encoded; + /* path is always a borrowed ref of name or filename, + * depending on if it's builtin or not. */ + PyObject *path; + _Py_ext_module_origin origin; + const char *hook_prefix; + const char *newcontext; +}; +extern void _Py_ext_module_loader_info_clear( + struct _Py_ext_module_loader_info *info); +extern int _Py_ext_module_loader_info_init( + struct _Py_ext_module_loader_info *info, + PyObject *name, + PyObject *filename, + _Py_ext_module_origin origin); +extern int _Py_ext_module_loader_info_init_for_core( + struct _Py_ext_module_loader_info *p_info, + PyObject *name); +extern int _Py_ext_module_loader_info_init_for_builtin( + struct _Py_ext_module_loader_info *p_info, + PyObject *name); +extern int _Py_ext_module_loader_info_init_from_spec( + struct _Py_ext_module_loader_info *info, + PyObject *spec); + +/* The result from running an extension module's init function. */ +struct _Py_ext_module_loader_result { + PyModuleDef *def; + PyObject *module; + _Py_ext_module_kind kind; + struct _Py_ext_module_loader_result_error *err; + struct _Py_ext_module_loader_result_error { + enum _Py_ext_module_loader_result_error_kind { + _Py_ext_module_loader_result_EXCEPTION = 0, + _Py_ext_module_loader_result_ERR_MISSING = 1, + _Py_ext_module_loader_result_ERR_UNREPORTED_EXC = 2, + _Py_ext_module_loader_result_ERR_UNINITIALIZED = 3, + _Py_ext_module_loader_result_ERR_NONASCII_NOT_MULTIPHASE = 4, + _Py_ext_module_loader_result_ERR_NOT_MODULE = 5, + _Py_ext_module_loader_result_ERR_MISSING_DEF = 6, + } kind; + PyObject *exc; + } _err; +}; +extern void _Py_ext_module_loader_result_clear( + struct _Py_ext_module_loader_result *res); +extern void _Py_ext_module_loader_result_apply_error( + struct _Py_ext_module_loader_result *res, + const char *name); + +/* The module init function. */ +typedef PyObject *(*PyModInitFunction)(void); +extern PyModInitFunction _PyImport_GetModInitFunc( + struct _Py_ext_module_loader_info *info, + FILE *fp); +extern int _PyImport_RunModInitFunc( + PyModInitFunction p0, + struct _Py_ext_module_loader_info *info, + struct _Py_ext_module_loader_result *p_res); + + +/* Max length of module suffix searched for -- accommodates "module.slb" */ +#define MAXSUFFIXSIZE 12 + +#ifdef MS_WINDOWS +#include +typedef FARPROC dl_funcptr; + +#ifdef _DEBUG +# define PYD_DEBUG_SUFFIX "_d" +#else +# define PYD_DEBUG_SUFFIX "" +#endif + +#ifdef Py_GIL_DISABLED +# define PYD_THREADING_TAG "t" +#else +# define PYD_THREADING_TAG "" +#endif + +#ifdef PYD_PLATFORM_TAG +# define PYD_SOABI "cp" Py_STRINGIFY(PY_MAJOR_VERSION) Py_STRINGIFY(PY_MINOR_VERSION) PYD_THREADING_TAG "-" PYD_PLATFORM_TAG +#else +# define PYD_SOABI "cp" Py_STRINGIFY(PY_MAJOR_VERSION) Py_STRINGIFY(PY_MINOR_VERSION) PYD_THREADING_TAG +#endif + +#define PYD_TAGGED_SUFFIX PYD_DEBUG_SUFFIX "." PYD_SOABI ".pyd" +#define PYD_UNTAGGED_SUFFIX PYD_DEBUG_SUFFIX ".pyd" + +#else +typedef void (*dl_funcptr)(void); +#endif + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_IMPORTDL_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_initconfig.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_initconfig.h new file mode 100644 index 000000000..1c6816134 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_initconfig.h @@ -0,0 +1,200 @@ +#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_ERRMSG "memory allocation failed" +#define _PyStatus_NO_MEMORY() _PyStatus_ERR(_PyStatus_NO_MEMORY_ERRMSG) +#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) + +// Export for '_testinternalcapi' shared extension +PyAPI_FUNC(void) _PyErr_SetFromPyStatus(PyStatus status); + + +/* --- PyWideStringList ------------------------------------------------ */ + +#define _PyWideStringList_INIT (PyWideStringList){.length = 0, .items = NULL} + +#ifndef NDEBUG +extern int _PyWideStringList_CheckConsistency(const PyWideStringList *list); +#endif +extern void _PyWideStringList_Clear(PyWideStringList *list); +extern int _PyWideStringList_Copy(PyWideStringList *list, + const PyWideStringList *list2); +extern PyStatus _PyWideStringList_Extend(PyWideStringList *list, + const PyWideStringList *list2); +extern 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; + +extern PyStatus _PyArgv_AsWstrList(const _PyArgv *args, + PyWideStringList *list); + + +/* --- Helper functions ------------------------------------------- */ + +extern int _Py_str_to_int( + const char *str, + int *result); +extern const wchar_t* _Py_get_xoption( + const PyWideStringList *xoptions, + const wchar_t *name); +extern const char* _Py_GetEnv( + int use_environment, + const char *name); +extern void _Py_get_env_flag( + int use_environment, + int *flag, + const char *name); + +/* Py_GetArgcArgv() helper */ +extern 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 */ + int warn_default_encoding; /* -X warn_default_encoding and PYTHONWARNDEFAULTENCODING */ +} _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 ----------------------------------------------- */ + +// Export for '_testembed' program +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; + +typedef enum { + /* For now, this means the GIL is enabled. + + gh-116329: This will eventually change to "the GIL is disabled but can + be reenabled by loading an incompatible extension module." */ + _PyConfig_GIL_DEFAULT = -1, + + /* The GIL has been forced off or on, and will not be affected by module loading. */ + _PyConfig_GIL_DISABLE = 0, + _PyConfig_GIL_ENABLE = 1, +} _PyConfigGILEnum; + +// Export for '_testembed' program +PyAPI_FUNC(void) _PyConfig_InitCompatConfig(PyConfig *config); + +extern PyStatus _PyConfig_Copy( + PyConfig *config, + const PyConfig *config2); +extern PyStatus _PyConfig_InitPathConfig( + PyConfig *config, + int compute_path_config); +extern PyStatus _PyConfig_InitImportConfig(PyConfig *config); +extern PyStatus _PyConfig_Read(PyConfig *config, int compute_path_config); +extern PyStatus _PyConfig_Write(const PyConfig *config, + struct pyruntimestate *runtime); +extern PyStatus _PyConfig_SetPyArgv( + PyConfig *config, + const _PyArgv *args); + + +extern void _Py_DumpPathConfig(PyThreadState *tstate); + + +/* --- Function used for testing ---------------------------------- */ + +// Export these functions for '_testinternalcapi' shared extension +PyAPI_FUNC(PyObject*) _PyConfig_AsDict(const PyConfig *config); +PyAPI_FUNC(int) _PyConfig_FromDict(PyConfig *config, PyObject *dict); +PyAPI_FUNC(PyObject*) _Py_Get_Getpath_CodeObject(void); +PyAPI_FUNC(PyObject*) _Py_GetConfigsAsDict(void); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_CORECONFIG_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_instruction_sequence.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_instruction_sequence.h new file mode 100644 index 000000000..d6a79616d --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_instruction_sequence.h @@ -0,0 +1,73 @@ +#ifndef Py_INTERNAL_INSTRUCTION_SEQUENCE_H +#define Py_INTERNAL_INSTRUCTION_SEQUENCE_H + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_symtable.h" + +#ifdef __cplusplus +extern "C" { +#endif + + +typedef struct { + int h_label; + int h_startdepth; + int h_preserve_lasti; +} _PyExceptHandlerInfo; + +typedef struct { + int i_opcode; + int i_oparg; + _Py_SourceLocation i_loc; + _PyExceptHandlerInfo i_except_handler_info; + + /* Temporary fields, used by the assembler and in instr_sequence_to_cfg */ + int i_target; + int i_offset; +} _PyInstruction; + +typedef struct instruction_sequence { + PyObject_HEAD + _PyInstruction *s_instrs; + int s_allocated; + int s_used; + + int s_next_free_label; /* next free label id */ + + /* Map of a label id to instruction offset (index into s_instrs). + * If s_labelmap is NULL, then each label id is the offset itself. + */ + int *s_labelmap; + int s_labelmap_size; + + /* PyList of instruction sequences of nested functions */ + PyObject *s_nested; +} _PyInstructionSequence; + +typedef struct { + int id; +} _PyJumpTargetLabel; + +PyAPI_FUNC(PyObject*)_PyInstructionSequence_New(void); + +int _PyInstructionSequence_UseLabel(_PyInstructionSequence *seq, int lbl); +int _PyInstructionSequence_Addop(_PyInstructionSequence *seq, + int opcode, int oparg, + _Py_SourceLocation loc); +_PyJumpTargetLabel _PyInstructionSequence_NewLabel(_PyInstructionSequence *seq); +int _PyInstructionSequence_ApplyLabelMap(_PyInstructionSequence *seq); +int _PyInstructionSequence_InsertInstruction(_PyInstructionSequence *seq, int pos, + int opcode, int oparg, _Py_SourceLocation loc); +int _PyInstructionSequence_AddNested(_PyInstructionSequence *seq, _PyInstructionSequence *nested); +void PyInstructionSequence_Fini(_PyInstructionSequence *seq); + +extern PyTypeObject _PyInstructionSequence_Type; +#define _PyInstructionSequence_Check(v) Py_IS_TYPE((v), &_PyInstructionSequence_Type) + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_INSTRUCTION_SEQUENCE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_instruments.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_instruments.h new file mode 100644 index 000000000..c98e82c8b --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_instruments.h @@ -0,0 +1,75 @@ +#ifndef Py_INTERNAL_INSTRUMENT_H +#define Py_INTERNAL_INSTRUMENT_H + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_frame.h" // _PyInterpreterFrame + +#ifdef __cplusplus +extern "C" { +#endif + +#define PY_MONITORING_TOOL_IDS 8 + +typedef uint32_t _PyMonitoringEventSet; + +/* Tool IDs */ + +/* These are defined in PEP 669 for convenience to avoid clashes */ +#define PY_MONITORING_DEBUGGER_ID 0 +#define PY_MONITORING_COVERAGE_ID 1 +#define PY_MONITORING_PROFILER_ID 2 +#define PY_MONITORING_OPTIMIZER_ID 5 + +/* Internal IDs used to suuport sys.setprofile() and sys.settrace() */ +#define PY_MONITORING_SYS_PROFILE_ID 6 +#define PY_MONITORING_SYS_TRACE_ID 7 + + +PyObject *_PyMonitoring_RegisterCallback(int tool_id, int event_id, PyObject *obj); + +int _PyMonitoring_SetEvents(int tool_id, _PyMonitoringEventSet events); +int _PyMonitoring_SetLocalEvents(PyCodeObject *code, int tool_id, _PyMonitoringEventSet events); +int _PyMonitoring_GetLocalEvents(PyCodeObject *code, int tool_id, _PyMonitoringEventSet *events); + +extern int +_Py_call_instrumentation(PyThreadState *tstate, int event, + _PyInterpreterFrame *frame, _Py_CODEUNIT *instr); + +extern int +_Py_call_instrumentation_line(PyThreadState *tstate, _PyInterpreterFrame* frame, + _Py_CODEUNIT *instr, _Py_CODEUNIT *prev); + +extern int +_Py_call_instrumentation_instruction( + PyThreadState *tstate, _PyInterpreterFrame* frame, _Py_CODEUNIT *instr); + +_Py_CODEUNIT * +_Py_call_instrumentation_jump( + PyThreadState *tstate, int event, + _PyInterpreterFrame *frame, _Py_CODEUNIT *instr, _Py_CODEUNIT *target); + +extern int +_Py_call_instrumentation_arg(PyThreadState *tstate, int event, + _PyInterpreterFrame *frame, _Py_CODEUNIT *instr, PyObject *arg); + +extern int +_Py_call_instrumentation_2args(PyThreadState *tstate, int event, + _PyInterpreterFrame *frame, _Py_CODEUNIT *instr, PyObject *arg0, PyObject *arg1); + +extern void +_Py_call_instrumentation_exc2(PyThreadState *tstate, int event, + _PyInterpreterFrame *frame, _Py_CODEUNIT *instr, PyObject *arg0, PyObject *arg1); + +extern int +_Py_Instrumentation_GetLine(PyCodeObject *code, int index); + +extern PyObject _PyInstrumentation_MISSING; +extern PyObject _PyInstrumentation_DISABLE; + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_INSTRUMENT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_interp.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_interp.h new file mode 100644 index 000000000..45d85b2ba --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_interp.h @@ -0,0 +1,421 @@ +#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 // bool + +#include "pycore_ast_state.h" // struct ast_state +#include "pycore_atexit.h" // struct atexit_state +#include "pycore_ceval_state.h" // struct _ceval_state +#include "pycore_code.h" // struct callable_cache +#include "pycore_codecs.h" // struct codecs_state +#include "pycore_context.h" // struct _Py_context_state +#include "pycore_crossinterp.h" // struct _xidregistry +#include "pycore_dict_state.h" // struct _Py_dict_state +#include "pycore_dtoa.h" // struct _dtoa_state +#include "pycore_exceptions.h" // struct _Py_exc_state +#include "pycore_floatobject.h" // struct _Py_float_state +#include "pycore_function.h" // FUNC_MAX_WATCHERS +#include "pycore_gc.h" // struct _gc_runtime_state +#include "pycore_genobject.h" // struct _Py_async_gen_state +#include "pycore_global_objects.h"// struct _Py_interp_cached_objects +#include "pycore_import.h" // struct _import_state +#include "pycore_instruments.h" // _PY_MONITORING_EVENTS +#include "pycore_list.h" // struct _Py_list_state +#include "pycore_mimalloc.h" // struct _mimalloc_interp_state +#include "pycore_object_state.h" // struct _py_object_state +#include "pycore_optimizer.h" // _PyOptimizerObject +#include "pycore_obmalloc.h" // struct _obmalloc_state +#include "pycore_qsbr.h" // struct _qsbr_state +#include "pycore_tstate.h" // _PyThreadStateImpl +#include "pycore_tuple.h" // struct _Py_tuple_state +#include "pycore_typeobject.h" // struct types_state +#include "pycore_unicodeobject.h" // struct _Py_unicode_state +#include "pycore_warnings.h" // struct _warnings_runtime_state + + +struct _Py_long_state { + int max_str_digits; +}; + +// Support for stop-the-world events. This exists in both the PyRuntime struct +// for global pauses and in each PyInterpreterState for per-interpreter pauses. +struct _stoptheworld_state { + PyMutex mutex; // Serializes stop-the-world attempts. + + // NOTE: The below fields are protected by HEAD_LOCK(runtime), not by the + // above mutex. + bool requested; // Set when a pause is requested. + bool world_stopped; // Set when the world is stopped. + bool is_global; // Set when contained in PyRuntime struct. + + PyEvent stop_event; // Set when thread_countdown reaches zero. + Py_ssize_t thread_countdown; // Number of threads that must pause. + + PyThreadState *requester; // Thread that requested the pause (may be NULL). +}; + +#ifdef Py_GIL_DISABLED +// This should be prime but otherwise the choice is arbitrary. A larger value +// increases concurrency at the expense of memory. +# define NUM_WEAKREF_LIST_LOCKS 127 +#endif + +/* cross-interpreter data registry */ + +/* Tracks some rare events per-interpreter, used by the optimizer to turn on/off + specific optimizations. */ +typedef struct _rare_events { + /* Setting an object's class, obj.__class__ = ... */ + uint8_t set_class; + /* Setting the bases of a class, cls.__bases__ = ... */ + uint8_t set_bases; + /* Setting the PEP 523 frame eval function, _PyInterpreterState_SetFrameEvalFunc() */ + uint8_t set_eval_frame_func; + /* Modifying the builtins, __builtins__.__dict__[var] = ... */ + uint8_t builtin_dict; + /* Modifying a function, e.g. func.__defaults__ = ..., etc. */ + uint8_t func_modification; +} _rare_events; + +/* interpreter state */ + +/* PyInterpreterState holds the global state for one of the runtime's + interpreters. Typically the initial (main) interpreter is the only one. + + The PyInterpreterState typedef is in Include/pytypedefs.h. + */ +struct _is { + + /* This struct contains the eval_breaker, + * which is by far the hottest field in this struct + * and should be placed at the beginning. */ + struct _ceval_state ceval; + + PyInterpreterState *next; + + int64_t id; + int64_t id_refcount; + int requires_idref; + PyThread_type_lock id_mutex; + +#define _PyInterpreterState_WHENCE_NOTSET -1 +#define _PyInterpreterState_WHENCE_UNKNOWN 0 +#define _PyInterpreterState_WHENCE_RUNTIME 1 +#define _PyInterpreterState_WHENCE_LEGACY_CAPI 2 +#define _PyInterpreterState_WHENCE_CAPI 3 +#define _PyInterpreterState_WHENCE_XI 4 +#define _PyInterpreterState_WHENCE_STDLIB 5 +#define _PyInterpreterState_WHENCE_MAX 5 + long _whence; + + /* Has been initialized to a safe state. + + In order to be effective, this must be set to 0 during or right + after allocation. */ + int _initialized; + /* Has been fully initialized via pylifecycle.c. */ + int _ready; + int finalizing; + + uintptr_t last_restart_version; + struct pythreads { + uint64_t next_unique_id; + /* The linked list of threads, newest first. */ + PyThreadState *head; + /* The thread currently executing in the __main__ module, if any. */ + PyThreadState *main; + /* Used in Modules/_threadmodule.c. */ + Py_ssize_t count; + /* 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 stacksize; + } threads; + + /* 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; + + /* Set by Py_EndInterpreter(). + + Use _PyInterpreterState_GetFinalizing() + and _PyInterpreterState_SetFinalizing() + to access it, don't access it directly. */ + PyThreadState* _finalizing; + /* The ID of the OS thread in which we are finalizing. */ + unsigned long _finalizing_id; + + struct _gc_runtime_state gc; + + /* The following fields are here to avoid allocation during init. + The data is exposed through PyInterpreterState pointer fields. + These fields should not be accessed directly outside of init. + + All other PyInterpreterState pointer fields are populated when + needed and default to NULL. + + For now there are some exceptions to that rule, which require + allocation during init. These will be addressed on a case-by-case + basis. Also see _PyRuntimeState regarding the various mutex fields. + */ + + // Dictionary of the sys module + PyObject *sysdict; + + // Dictionary of the builtins module + PyObject *builtins; + + struct _import_state imports; + + /* The per-interpreter GIL, which might not be used. */ + struct _gil_runtime_state _gil; + + /* ---------- IMPORTANT --------------------------- + The fields above this line are declared as early as + possible to facilitate out-of-process observability + tools. */ + + struct codecs_state codecs; + + PyConfig config; + unsigned long feature_flags; + + PyObject *dict; /* Stores per-interpreter state */ + + PyObject *sysdict_copy; + PyObject *builtins_copy; + // Initialized to _PyEval_EvalFrameDefault(). + _PyFrameEvalFunction eval_frame; + + PyFunction_WatchCallback func_watchers[FUNC_MAX_WATCHERS]; + // One bit is set for each non-NULL entry in func_watchers + uint8_t active_func_watchers; + + Py_ssize_t co_extra_user_count; + freefunc co_extra_freefuncs[MAX_CO_EXTRA_USERS]; + + /* cross-interpreter data and utils */ + struct _xi_state xi; + +#ifdef HAVE_FORK + PyObject *before_forkers; + PyObject *after_forkers_parent; + PyObject *after_forkers_child; +#endif + + struct _warnings_runtime_state warnings; + struct atexit_state atexit; + struct _stoptheworld_state stoptheworld; + struct _qsbr_shared qsbr; + +#if defined(Py_GIL_DISABLED) + struct _mimalloc_interp_state mimalloc; + struct _brc_state brc; // biased reference counting state + PyMutex weakref_locks[NUM_WEAKREF_LIST_LOCKS]; +#endif + + // Per-interpreter state for the obmalloc allocator. For the main + // interpreter and for all interpreters that don't have their + // own obmalloc state, this points to the static structure in + // obmalloc.c obmalloc_state_main. For other interpreters, it is + // heap allocated by _PyMem_init_obmalloc() and freed when the + // interpreter structure is freed. In the case of a heap allocated + // obmalloc state, it is not safe to hold on to or use memory after + // the interpreter is freed. The obmalloc state corresponding to + // that allocated memory is gone. See free_obmalloc_arenas() for + // more comments. + struct _obmalloc_state *obmalloc; + + PyObject *audit_hooks; + PyType_WatchCallback type_watchers[TYPE_MAX_WATCHERS]; + PyCode_WatchCallback code_watchers[CODE_MAX_WATCHERS]; + // One bit is set for each non-NULL entry in code_watchers + uint8_t active_code_watchers; + + struct _py_object_state object_state; + struct _Py_unicode_state unicode; + struct _Py_long_state long_state; + struct _dtoa_state dtoa; + struct _py_func_state func_state; + struct _py_code_state code_state; + + struct _Py_dict_state dict_state; + struct _Py_exc_state exc_state; + struct _Py_mem_interp_free_queue mem_free_queue; + + struct ast_state ast; + struct types_state types; + struct callable_cache callable_cache; + _PyOptimizerObject *optimizer; + _PyExecutorObject *executor_list_head; + + _rare_events rare_events; + PyDict_WatchCallback builtins_dict_watcher; + + _Py_GlobalMonitors monitors; + bool sys_profile_initialized; + bool sys_trace_initialized; + Py_ssize_t sys_profiling_threads; /* Count of threads with c_profilefunc set */ + Py_ssize_t sys_tracing_threads; /* Count of threads with c_tracefunc set */ + PyObject *monitoring_callables[PY_MONITORING_TOOL_IDS][_PY_MONITORING_EVENTS]; + PyObject *monitoring_tool_names[PY_MONITORING_TOOL_IDS]; + + struct _Py_interp_cached_objects cached_objects; + struct _Py_interp_static_objects static_objects; + + /* the initial PyInterpreterState.threads.head */ + _PyThreadStateImpl _initial_thread; + Py_ssize_t _interactive_src_count; +}; + + +/* other API */ + +extern void _PyInterpreterState_Clear(PyThreadState *tstate); + + +static inline PyThreadState* +_PyInterpreterState_GetFinalizing(PyInterpreterState *interp) { + return (PyThreadState*)_Py_atomic_load_ptr_relaxed(&interp->_finalizing); +} + +static inline unsigned long +_PyInterpreterState_GetFinalizingID(PyInterpreterState *interp) { + return _Py_atomic_load_ulong_relaxed(&interp->_finalizing_id); +} + +static inline void +_PyInterpreterState_SetFinalizing(PyInterpreterState *interp, PyThreadState *tstate) { + _Py_atomic_store_ptr_relaxed(&interp->_finalizing, tstate); + if (tstate == NULL) { + _Py_atomic_store_ulong_relaxed(&interp->_finalizing_id, 0); + } + else { + // XXX Re-enable this assert once gh-109860 is fixed. + //assert(tstate->thread_id == PyThread_get_thread_ident()); + _Py_atomic_store_ulong_relaxed(&interp->_finalizing_id, + tstate->thread_id); + } +} + + + +// Exports for the _testinternalcapi module. +PyAPI_FUNC(int64_t) _PyInterpreterState_ObjectToID(PyObject *); +PyAPI_FUNC(PyInterpreterState *) _PyInterpreterState_LookUpID(int64_t); +PyAPI_FUNC(PyInterpreterState *) _PyInterpreterState_LookUpIDObject(PyObject *); +PyAPI_FUNC(int) _PyInterpreterState_IDInitref(PyInterpreterState *); +PyAPI_FUNC(int) _PyInterpreterState_IDIncref(PyInterpreterState *); +PyAPI_FUNC(void) _PyInterpreterState_IDDecref(PyInterpreterState *); + +PyAPI_FUNC(int) _PyInterpreterState_IsReady(PyInterpreterState *interp); + +PyAPI_FUNC(long) _PyInterpreterState_GetWhence(PyInterpreterState *interp); +extern void _PyInterpreterState_SetWhence( + PyInterpreterState *interp, + long whence); + +extern const PyConfig* _PyInterpreterState_GetConfig(PyInterpreterState *interp); + +// Get a copy of the current interpreter configuration. +// +// Return 0 on success. Raise an exception and return -1 on error. +// +// The caller must initialize 'config', using PyConfig_InitPythonConfig() +// for example. +// +// Python must be preinitialized to call this method. +// The caller must hold the GIL. +// +// Once done with the configuration, PyConfig_Clear() must be called to clear +// it. +// +// Export for '_testinternalcapi' shared extension. +PyAPI_FUNC(int) _PyInterpreterState_GetConfigCopy( + struct PyConfig *config); + +// Set the configuration of the current interpreter. +// +// This function should be called during or just after the Python +// initialization. +// +// Update the sys module with the new configuration. If the sys module was +// modified directly after the Python initialization, these changes are lost. +// +// Some configuration like faulthandler or warnoptions can be updated in the +// configuration, but don't reconfigure Python (don't enable/disable +// faulthandler and don't reconfigure warnings filters). +// +// Return 0 on success. Raise an exception and return -1 on error. +// +// The configuration should come from _PyInterpreterState_GetConfigCopy(). +// +// Export for '_testinternalcapi' shared extension. +PyAPI_FUNC(int) _PyInterpreterState_SetConfig( + const struct PyConfig *config); + + +/* +Runtime Feature Flags + +Each flag indicate whether or not a specific runtime feature +is available in a given context. For example, forking the process +might not be allowed in the current interpreter (i.e. os.fork() would fail). +*/ + +/* Set if the interpreter share obmalloc runtime state + with the main interpreter. */ +#define Py_RTFLAGS_USE_MAIN_OBMALLOC (1UL << 5) + +/* Set if import should check a module for subinterpreter support. */ +#define Py_RTFLAGS_MULTI_INTERP_EXTENSIONS (1UL << 8) + +/* Set if threads are allowed. */ +#define Py_RTFLAGS_THREADS (1UL << 10) + +/* Set if daemon threads are allowed. */ +#define Py_RTFLAGS_DAEMON_THREADS (1UL << 11) + +/* Set if os.fork() is allowed. */ +#define Py_RTFLAGS_FORK (1UL << 15) + +/* Set if os.exec*() is allowed. */ +#define Py_RTFLAGS_EXEC (1UL << 16) + +extern int _PyInterpreterState_HasFeature(PyInterpreterState *interp, + unsigned long feature); + +PyAPI_FUNC(PyStatus) _PyInterpreterState_New( + PyThreadState *tstate, + PyInterpreterState **pinterp); + + +#define RARE_EVENT_INTERP_INC(interp, name) \ + do { \ + /* saturating add */ \ + int val = FT_ATOMIC_LOAD_UINT8_RELAXED(interp->rare_events.name); \ + if (val < UINT8_MAX) { \ + FT_ATOMIC_STORE_UINT8(interp->rare_events.name, val + 1); \ + } \ + RARE_EVENT_STAT_INC(name); \ + } while (0); \ + +#define RARE_EVENT_INC(name) \ + do { \ + PyInterpreterState *interp = PyInterpreterState_Get(); \ + RARE_EVENT_INTERP_INC(interp, name); \ + } while (0); \ + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_INTERP_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_intrinsics.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_intrinsics.h new file mode 100644 index 000000000..39c2a30f6 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_intrinsics.h @@ -0,0 +1,51 @@ +#ifndef Py_INTERNAL_INTRINSIC_H +#define Py_INTERNAL_INTRINSIC_H + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +/* Unary Functions: */ +#define INTRINSIC_1_INVALID 0 +#define INTRINSIC_PRINT 1 +#define INTRINSIC_IMPORT_STAR 2 +#define INTRINSIC_STOPITERATION_ERROR 3 +#define INTRINSIC_ASYNC_GEN_WRAP 4 +#define INTRINSIC_UNARY_POSITIVE 5 +#define INTRINSIC_LIST_TO_TUPLE 6 +#define INTRINSIC_TYPEVAR 7 +#define INTRINSIC_PARAMSPEC 8 +#define INTRINSIC_TYPEVARTUPLE 9 +#define INTRINSIC_SUBSCRIPT_GENERIC 10 +#define INTRINSIC_TYPEALIAS 11 + +#define MAX_INTRINSIC_1 11 + + +/* Binary Functions: */ +#define INTRINSIC_2_INVALID 0 +#define INTRINSIC_PREP_RERAISE_STAR 1 +#define INTRINSIC_TYPEVAR_WITH_BOUND 2 +#define INTRINSIC_TYPEVAR_WITH_CONSTRAINTS 3 +#define INTRINSIC_SET_FUNCTION_TYPE_PARAMS 4 +#define INTRINSIC_SET_TYPEPARAM_DEFAULT 5 + +#define MAX_INTRINSIC_2 5 + +typedef PyObject *(*intrinsic_func1)(PyThreadState* tstate, PyObject *value); +typedef PyObject *(*intrinsic_func2)(PyThreadState* tstate, PyObject *value1, PyObject *value2); + +typedef struct { + intrinsic_func1 func; + const char *name; +} intrinsic_func1_info; + +typedef struct { + intrinsic_func2 func; + const char *name; +} intrinsic_func2_info; + +PyAPI_DATA(const intrinsic_func1_info) _PyIntrinsics_UnaryFunctions[]; +PyAPI_DATA(const intrinsic_func2_info) _PyIntrinsics_BinaryFunctions[]; + +#endif // !Py_INTERNAL_INTRINSIC_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_jit.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_jit.h new file mode 100644 index 000000000..17bd23f07 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_jit.h @@ -0,0 +1,25 @@ +#ifndef Py_INTERNAL_JIT_H +#define Py_INTERNAL_JIT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#ifdef _Py_JIT + +typedef _Py_CODEUNIT *(*jit_func)(_PyInterpreterFrame *frame, PyObject **stack_pointer, PyThreadState *tstate); + +int _PyJIT_Compile(_PyExecutorObject *executor, const _PyUOpInstruction *trace, size_t length); +void _PyJIT_Free(_PyExecutorObject *executor); + +#endif // _Py_JIT + +#ifdef __cplusplus +} +#endif + +#endif // !Py_INTERNAL_JIT_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_list.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_list.h new file mode 100644 index 000000000..73695d10e --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_list.h @@ -0,0 +1,66 @@ +#ifndef Py_INTERNAL_LIST_H +#define Py_INTERNAL_LIST_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_freelist.h" // _PyFreeListState + +PyAPI_FUNC(PyObject*) _PyList_Extend(PyListObject *, PyObject *); +extern void _PyList_DebugMallocStats(FILE *out); + +#define _PyList_ITEMS(op) _Py_RVALUE(_PyList_CAST(op)->ob_item) + +PyAPI_FUNC(int) +_PyList_AppendTakeRefListResize(PyListObject *self, PyObject *newitem); + +// In free-threaded build: self should be locked by the caller, if it should be thread-safe. +static inline int +_PyList_AppendTakeRef(PyListObject *self, PyObject *newitem) +{ + assert(self != NULL && newitem != NULL); + assert(PyList_Check(self)); + Py_ssize_t len = Py_SIZE(self); + Py_ssize_t allocated = self->allocated; + assert((size_t)len + 1 < PY_SSIZE_T_MAX); + if (allocated > len) { +#ifdef Py_GIL_DISABLED + _Py_atomic_store_ptr_release(&self->ob_item[len], newitem); +#else + PyList_SET_ITEM(self, len, newitem); +#endif + Py_SET_SIZE(self, len + 1); + return 0; + } + return _PyList_AppendTakeRefListResize(self, newitem); +} + +// Repeat the bytes of a buffer in place +static inline void +_Py_memory_repeat(char* dest, Py_ssize_t len_dest, Py_ssize_t len_src) +{ + assert(len_src > 0); + Py_ssize_t copied = len_src; + while (copied < len_dest) { + Py_ssize_t bytes_to_copy = Py_MIN(copied, len_dest - copied); + memcpy(dest + copied, dest, bytes_to_copy); + copied += bytes_to_copy; + } +} + +typedef struct { + PyObject_HEAD + Py_ssize_t it_index; + PyListObject *it_seq; /* Set to NULL when iterator is exhausted */ +} _PyListIterObject; + +PyAPI_FUNC(PyObject *)_PyList_FromArraySteal(PyObject *const *src, Py_ssize_t n); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_LIST_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_llist.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_llist.h new file mode 100644 index 000000000..f629902fd --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_llist.h @@ -0,0 +1,106 @@ +// A doubly-linked list that can be embedded in a struct. +// +// Usage: +// struct llist_node head = LLIST_INIT(head); +// typedef struct { +// ... +// struct llist_node node; +// ... +// } MyObj; +// +// llist_insert_tail(&head, &obj->node); +// llist_remove(&obj->node); +// +// struct llist_node *node; +// llist_for_each(node, &head) { +// MyObj *obj = llist_data(node, MyObj, node); +// ... +// } +// + +#ifndef Py_INTERNAL_LLIST_H +#define Py_INTERNAL_LLIST_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "Py_BUILD_CORE must be defined to include this header" +#endif + +struct llist_node { + struct llist_node *next; + struct llist_node *prev; +}; + +// Get the struct containing a node. +#define llist_data(node, type, member) (_Py_CONTAINER_OF(node, type, member)) + +// Iterate over a list. +#define llist_for_each(node, head) \ + for (node = (head)->next; node != (head); node = node->next) + +// Iterate over a list, but allow removal of the current node. +#define llist_for_each_safe(node, head) \ + for (struct llist_node *_next = (node = (head)->next, node->next); \ + node != (head); node = _next, _next = node->next) + +#define LLIST_INIT(head) { &head, &head } + +static inline void +llist_init(struct llist_node *head) +{ + head->next = head; + head->prev = head; +} + +// Returns 1 if the list is empty, 0 otherwise. +static inline int +llist_empty(struct llist_node *head) +{ + return head->next == head; +} + +// Appends to the tail of the list. +static inline void +llist_insert_tail(struct llist_node *head, struct llist_node *node) +{ + node->prev = head->prev; + node->next = head; + head->prev->next = node; + head->prev = node; +} + +// Remove a node from the list. +static inline void +llist_remove(struct llist_node *node) +{ + struct llist_node *prev = node->prev; + struct llist_node *next = node->next; + prev->next = next; + next->prev = prev; + node->prev = NULL; + node->next = NULL; +} + +// Append all nodes from head2 onto head1. head2 is left empty. +static inline void +llist_concat(struct llist_node *head1, struct llist_node *head2) +{ + if (!llist_empty(head2)) { + head1->prev->next = head2->next; + head2->next->prev = head1->prev; + + head1->prev = head2->prev; + head2->prev->next = head1; + llist_init(head2); + } +} + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_LLIST_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_lock.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_lock.h new file mode 100644 index 000000000..2a18bb764 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_lock.h @@ -0,0 +1,241 @@ +// Lightweight locks and other synchronization mechanisms. +// +// These implementations are based on WebKit's WTF::Lock. See +// https://webkit.org/blog/6161/locking-in-webkit/ for a description of the +// design. +#ifndef Py_INTERNAL_LOCK_H +#define Py_INTERNAL_LOCK_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +//_Py_UNLOCKED is defined as 0 and _Py_LOCKED as 1 in Include/cpython/lock.h +#define _Py_HAS_PARKED 2 +#define _Py_ONCE_INITIALIZED 4 + +static inline int +PyMutex_LockFast(uint8_t *lock_bits) +{ + uint8_t expected = _Py_UNLOCKED; + return _Py_atomic_compare_exchange_uint8(lock_bits, &expected, _Py_LOCKED); +} + +// Checks if the mutex is currently locked. +static inline int +PyMutex_IsLocked(PyMutex *m) +{ + return (_Py_atomic_load_uint8(&m->_bits) & _Py_LOCKED) != 0; +} + +// Re-initializes the mutex after a fork to the unlocked state. +static inline void +_PyMutex_at_fork_reinit(PyMutex *m) +{ + memset(m, 0, sizeof(*m)); +} + +typedef enum _PyLockFlags { + // Do not detach/release the GIL when waiting on the lock. + _Py_LOCK_DONT_DETACH = 0, + + // Detach/release the GIL while waiting on the lock. + _PY_LOCK_DETACH = 1, + + // Handle signals if interrupted while waiting on the lock. + _PY_LOCK_HANDLE_SIGNALS = 2, +} _PyLockFlags; + +// Lock a mutex with an optional timeout and additional options. See +// _PyLockFlags for details. +extern PyLockStatus +_PyMutex_LockTimed(PyMutex *m, PyTime_t timeout_ns, _PyLockFlags flags); + +// Lock a mutex with aditional options. See _PyLockFlags for details. +static inline void +PyMutex_LockFlags(PyMutex *m, _PyLockFlags flags) +{ + uint8_t expected = _Py_UNLOCKED; + if (!_Py_atomic_compare_exchange_uint8(&m->_bits, &expected, _Py_LOCKED)) { + _PyMutex_LockTimed(m, -1, flags); + } +} + +// Unlock a mutex, returns 0 if the mutex is not locked (used for improved +// error messages). +extern int _PyMutex_TryUnlock(PyMutex *m); + + +// PyEvent is a one-time event notification +typedef struct { + uint8_t v; +} PyEvent; + +// Check if the event is set without blocking. Returns 1 if the event is set or +// 0 otherwise. +PyAPI_FUNC(int) _PyEvent_IsSet(PyEvent *evt); + +// Set the event and notify any waiting threads. +// Export for '_testinternalcapi' shared extension +PyAPI_FUNC(void) _PyEvent_Notify(PyEvent *evt); + +// Wait for the event to be set. If the event is already set, then this returns +// immediately. +PyAPI_FUNC(void) PyEvent_Wait(PyEvent *evt); + +// Wait for the event to be set, or until the timeout expires. If the event is +// already set, then this returns immediately. Returns 1 if the event was set, +// and 0 if the timeout expired or thread was interrupted. If `detach` is +// true, then the thread will detach/release the GIL while waiting. +PyAPI_FUNC(int) +PyEvent_WaitTimed(PyEvent *evt, PyTime_t timeout_ns, int detach); + +// _PyRawMutex implements a word-sized mutex that that does not depend on the +// parking lot API, and therefore can be used in the parking lot +// implementation. +// +// The mutex uses a packed representation: the least significant bit is used to +// indicate whether the mutex is locked or not. The remaining bits are either +// zero or a pointer to a `struct raw_mutex_entry` (see lock.c). +typedef struct { + uintptr_t v; +} _PyRawMutex; + +// Slow paths for lock/unlock +extern void _PyRawMutex_LockSlow(_PyRawMutex *m); +extern void _PyRawMutex_UnlockSlow(_PyRawMutex *m); + +static inline void +_PyRawMutex_Lock(_PyRawMutex *m) +{ + uintptr_t unlocked = _Py_UNLOCKED; + if (_Py_atomic_compare_exchange_uintptr(&m->v, &unlocked, _Py_LOCKED)) { + return; + } + _PyRawMutex_LockSlow(m); +} + +static inline void +_PyRawMutex_Unlock(_PyRawMutex *m) +{ + uintptr_t locked = _Py_LOCKED; + if (_Py_atomic_compare_exchange_uintptr(&m->v, &locked, _Py_UNLOCKED)) { + return; + } + _PyRawMutex_UnlockSlow(m); +} + +// Type signature for one-time initialization functions. The function should +// return 0 on success and -1 on failure. +typedef int _Py_once_fn_t(void *arg); + +// (private) slow path for one time initialization +PyAPI_FUNC(int) +_PyOnceFlag_CallOnceSlow(_PyOnceFlag *flag, _Py_once_fn_t *fn, void *arg); + +// Calls `fn` once using `flag`. The `arg` is passed to the call to `fn`. +// +// Returns 0 on success and -1 on failure. +// +// If `fn` returns 0 (success), then subsequent calls immediately return 0. +// If `fn` returns -1 (failure), then subsequent calls will retry the call. +static inline int +_PyOnceFlag_CallOnce(_PyOnceFlag *flag, _Py_once_fn_t *fn, void *arg) +{ + if (_Py_atomic_load_uint8(&flag->v) == _Py_ONCE_INITIALIZED) { + return 0; + } + return _PyOnceFlag_CallOnceSlow(flag, fn, arg); +} + +// A recursive mutex. The mutex should zero-initialized. +typedef struct { + PyMutex mutex; + unsigned long long thread; // i.e., PyThread_get_thread_ident_ex() + size_t level; +} _PyRecursiveMutex; + +PyAPI_FUNC(int) _PyRecursiveMutex_IsLockedByCurrentThread(_PyRecursiveMutex *m); +PyAPI_FUNC(void) _PyRecursiveMutex_Lock(_PyRecursiveMutex *m); +PyAPI_FUNC(void) _PyRecursiveMutex_Unlock(_PyRecursiveMutex *m); + + +// A readers-writer (RW) lock. The lock supports multiple concurrent readers or +// a single writer. The lock is write-preferring: if a writer is waiting while +// the lock is read-locked then, new readers will be blocked. This avoids +// starvation of writers. +// +// In C++, the equivalent synchronization primitive is std::shared_mutex +// with shared ("read") and exclusive ("write") locking. +// +// The two least significant bits are used to indicate if the lock is +// write-locked and if there are parked threads (either readers or writers) +// waiting to acquire the lock. The remaining bits are used to indicate the +// number of readers holding the lock. +// +// 0b000..00000: unlocked +// 0bnnn..nnn00: nnn..nnn readers holding the lock +// 0bnnn..nnn10: nnn..nnn readers holding the lock and a writer is waiting +// 0b00000..010: unlocked with awoken writer about to acquire lock +// 0b00000..001: write-locked +// 0b00000..011: write-locked and readers or other writers are waiting +// +// Note that reader_count must be zero if the lock is held by a writer, and +// vice versa. The lock can only be held by readers or a writer, but not both. +// +// The design is optimized for simplicity of the implementation. The lock is +// not fair: if fairness is desired, use an additional PyMutex to serialize +// writers. The lock is also not reentrant. +typedef struct { + uintptr_t bits; +} _PyRWMutex; + +// Read lock (i.e., shared lock) +PyAPI_FUNC(void) _PyRWMutex_RLock(_PyRWMutex *rwmutex); +PyAPI_FUNC(void) _PyRWMutex_RUnlock(_PyRWMutex *rwmutex); + +// Write lock (i.e., exclusive lock) +PyAPI_FUNC(void) _PyRWMutex_Lock(_PyRWMutex *rwmutex); +PyAPI_FUNC(void) _PyRWMutex_Unlock(_PyRWMutex *rwmutex); + +// Similar to linux seqlock: https://en.wikipedia.org/wiki/Seqlock +// We use a sequence number to lock the writer, an even sequence means we're unlocked, an odd +// sequence means we're locked. Readers will read the sequence before attempting to read the +// underlying data and then read the sequence number again after reading the data. If the +// sequence has not changed the data is valid. +// +// Differs a little bit in that we use CAS on sequence as the lock, instead of a separate spin lock. +// The writer can also detect that the undelering data has not changed and abandon the write +// and restore the previous sequence. +typedef struct { + uint32_t sequence; +} _PySeqLock; + +// Lock the sequence lock for the writer +PyAPI_FUNC(void) _PySeqLock_LockWrite(_PySeqLock *seqlock); + +// Unlock the sequence lock and move to the next sequence number. +PyAPI_FUNC(void) _PySeqLock_UnlockWrite(_PySeqLock *seqlock); + +// Abandon the current update indicating that no mutations have occurred +// and restore the previous sequence value. +PyAPI_FUNC(void) _PySeqLock_AbandonWrite(_PySeqLock *seqlock); + +// Begin a read operation and return the current sequence number. +PyAPI_FUNC(uint32_t) _PySeqLock_BeginRead(_PySeqLock *seqlock); + +// End the read operation and confirm that the sequence number has not changed. +// Returns 1 if the read was successful or 0 if the read should be retried. +PyAPI_FUNC(int) _PySeqLock_EndRead(_PySeqLock *seqlock, uint32_t previous); + +// Check if the lock was held during a fork and clear the lock. Returns 1 +// if the lock was held and any associated data should be cleared. +PyAPI_FUNC(int) _PySeqLock_AfterFork(_PySeqLock *seqlock); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_LOCK_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_long.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_long.h new file mode 100644 index 000000000..ff7d9afc0 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_long.h @@ -0,0 +1,310 @@ +#ifndef Py_INTERNAL_LONG_H +#define Py_INTERNAL_LONG_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_bytesobject.h" // _PyBytesWriter +#include "pycore_global_objects.h"// _PY_NSMALLNEGINTS +#include "pycore_runtime.h" // _PyRuntime + +/* + * Default int base conversion size limitation: Denial of Service prevention. + * + * Chosen such that this isn't wildly slow on modern hardware and so that + * everyone's existing deployed numpy test suite passes before + * https://github.com/numpy/numpy/issues/22098 is widely available. + * + * $ python -m timeit -s 's = "1"*4300' 'int(s)' + * 2000 loops, best of 5: 125 usec per loop + * $ python -m timeit -s 's = "1"*4300; v = int(s)' 'str(v)' + * 1000 loops, best of 5: 311 usec per loop + * (zen2 cloud VM) + * + * 4300 decimal digits fits a ~14284 bit number. + */ +#define _PY_LONG_DEFAULT_MAX_STR_DIGITS 4300 +/* + * Threshold for max digits check. For performance reasons int() and + * int.__str__() don't checks values that are smaller than this + * threshold. Acts as a guaranteed minimum size limit for bignums that + * applications can expect from CPython. + * + * % python -m timeit -s 's = "1"*640; v = int(s)' 'str(int(s))' + * 20000 loops, best of 5: 12 usec per loop + * + * "640 digits should be enough for anyone." - gps + * fits a ~2126 bit decimal number. + */ +#define _PY_LONG_MAX_STR_DIGITS_THRESHOLD 640 + +#if ((_PY_LONG_DEFAULT_MAX_STR_DIGITS != 0) && \ + (_PY_LONG_DEFAULT_MAX_STR_DIGITS < _PY_LONG_MAX_STR_DIGITS_THRESHOLD)) +# error "_PY_LONG_DEFAULT_MAX_STR_DIGITS smaller than threshold." +#endif + +/* runtime lifecycle */ + +extern PyStatus _PyLong_InitTypes(PyInterpreterState *); +extern void _PyLong_FiniTypes(PyInterpreterState *interp); + + +/* other API */ + +#define _PyLong_SMALL_INTS _Py_SINGLETON(small_ints) + +// _PyLong_GetZero() and _PyLong_GetOne() must always be available +// _PyLong_FromUnsignedChar must always be available +#if _PY_NSMALLPOSINTS < 257 +# error "_PY_NSMALLPOSINTS must be greater than or equal to 257" +#endif + +// Return a reference to the immortal zero singleton. +// The function cannot return NULL. +static inline PyObject* _PyLong_GetZero(void) +{ return (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS]; } + +// Return a reference to the immortal one singleton. +// The function cannot return NULL. +static inline PyObject* _PyLong_GetOne(void) +{ return (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS+1]; } + +static inline PyObject* _PyLong_FromUnsignedChar(unsigned char i) +{ + return (PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS+i]; +} + +// _PyLong_Frexp returns a double x and an exponent e such that the +// true value is approximately equal to x * 2**e. e is >= 0. x is +// 0.0 if and only if the input is 0 (in which case, e and x are both +// zeroes); otherwise, 0.5 <= abs(x) < 1.0. On overflow, which is +// possible if the number of bits doesn't fit into a Py_ssize_t, sets +// OverflowError and returns -1.0 for x, 0 for e. +// +// Export for 'math' shared extension +PyAPI_DATA(double) _PyLong_Frexp(PyLongObject *a, Py_ssize_t *e); + +extern PyObject* _PyLong_FromBytes(const char *, Py_ssize_t, int); + +// _PyLong_DivmodNear. Given integers a and b, compute the nearest +// integer q to the exact quotient a / b, rounding to the nearest even integer +// in the case of a tie. Return (q, r), where r = a - q*b. The remainder r +// will satisfy abs(r) <= abs(b)/2, with equality possible only if q is +// even. +// +// Export for '_datetime' shared extension. +PyAPI_DATA(PyObject*) _PyLong_DivmodNear(PyObject *, 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. +// Export for '_tkinter' shared extension. +PyAPI_DATA(PyObject*) _PyLong_Format(PyObject *obj, int base); + +// Export for 'math' shared extension +PyAPI_DATA(PyObject*) _PyLong_Rshift(PyObject *, size_t); + +// Export for 'math' shared extension +PyAPI_DATA(PyObject*) _PyLong_Lshift(PyObject *, size_t); + +PyAPI_FUNC(PyObject*) _PyLong_Add(PyLongObject *left, PyLongObject *right); +PyAPI_FUNC(PyObject*) _PyLong_Multiply(PyLongObject *left, PyLongObject *right); +PyAPI_FUNC(PyObject*) _PyLong_Subtract(PyLongObject *left, PyLongObject *right); + +// Export for 'binascii' shared extension. +PyAPI_DATA(unsigned char) _PyLong_DigitValue[256]; + +/* Format the object based on the format_spec, as defined in PEP 3101 + (Advanced String Formatting). */ +extern int _PyLong_FormatAdvancedWriter( + _PyUnicodeWriter *writer, + PyObject *obj, + PyObject *format_spec, + Py_ssize_t start, + Py_ssize_t end); + +extern int _PyLong_FormatWriter( + _PyUnicodeWriter *writer, + PyObject *obj, + int base, + int alternate); + +extern char* _PyLong_FormatBytesWriter( + _PyBytesWriter *writer, + char *str, + PyObject *obj, + int base, + int alternate); + +// Argument converters used by Argument Clinic + +// Export for 'select' shared extension (Argument Clinic code) +PyAPI_FUNC(int) _PyLong_UnsignedShort_Converter(PyObject *, void *); + +// Export for '_testclinic' shared extension (Argument Clinic code) +PyAPI_FUNC(int) _PyLong_UnsignedInt_Converter(PyObject *, void *); + +// Export for '_blake2' shared extension (Argument Clinic code) +PyAPI_FUNC(int) _PyLong_UnsignedLong_Converter(PyObject *, void *); + +// Export for '_blake2' shared extension (Argument Clinic code) +PyAPI_FUNC(int) _PyLong_UnsignedLongLong_Converter(PyObject *, void *); + +// Export for '_testclinic' shared extension (Argument Clinic code) +PyAPI_FUNC(int) _PyLong_Size_t_Converter(PyObject *, void *); + +/* Long value tag bits: + * 0-1: Sign bits value = (1-sign), ie. negative=2, positive=0, zero=1. + * 2: Reserved for immortality bit + * 3+ Unsigned digit count + */ +#define SIGN_MASK 3 +#define SIGN_ZERO 1 +#define SIGN_NEGATIVE 2 +#define NON_SIZE_BITS 3 + +/* The functions _PyLong_IsCompact and _PyLong_CompactValue are defined + * in Include/cpython/longobject.h, since they need to be inline. + * + * "Compact" values have at least one bit to spare, + * so that addition and subtraction can be performed on the values + * without risk of overflow. + * + * The inline functions need tag bits. + * For readability, rather than do `#define SIGN_MASK _PyLong_SIGN_MASK` + * we define them to the numbers in both places and then assert that + * they're the same. + */ +#if SIGN_MASK != _PyLong_SIGN_MASK +# error "SIGN_MASK does not match _PyLong_SIGN_MASK" +#endif +#if NON_SIZE_BITS != _PyLong_NON_SIZE_BITS +# error "NON_SIZE_BITS does not match _PyLong_NON_SIZE_BITS" +#endif + +/* All *compact" values are guaranteed to fit into + * a Py_ssize_t with at least one bit to spare. + * In other words, for 64 bit machines, compact + * will be signed 63 (or fewer) bit values + */ + +/* Return 1 if the argument is compact int */ +static inline int +_PyLong_IsNonNegativeCompact(const PyLongObject* op) { + assert(PyLong_Check(op)); + return op->long_value.lv_tag <= (1 << NON_SIZE_BITS); +} + + +static inline int +_PyLong_BothAreCompact(const PyLongObject* a, const PyLongObject* b) { + assert(PyLong_Check(a)); + assert(PyLong_Check(b)); + return (a->long_value.lv_tag | b->long_value.lv_tag) < (2 << NON_SIZE_BITS); +} + +static inline bool +_PyLong_IsZero(const PyLongObject *op) +{ + return (op->long_value.lv_tag & SIGN_MASK) == SIGN_ZERO; +} + +static inline bool +_PyLong_IsNegative(const PyLongObject *op) +{ + return (op->long_value.lv_tag & SIGN_MASK) == SIGN_NEGATIVE; +} + +static inline bool +_PyLong_IsPositive(const PyLongObject *op) +{ + return (op->long_value.lv_tag & SIGN_MASK) == 0; +} + +static inline Py_ssize_t +_PyLong_DigitCount(const PyLongObject *op) +{ + assert(PyLong_Check(op)); + return op->long_value.lv_tag >> NON_SIZE_BITS; +} + +/* Equivalent to _PyLong_DigitCount(op) * _PyLong_NonCompactSign(op) */ +static inline Py_ssize_t +_PyLong_SignedDigitCount(const PyLongObject *op) +{ + assert(PyLong_Check(op)); + Py_ssize_t sign = 1 - (op->long_value.lv_tag & SIGN_MASK); + return sign * (Py_ssize_t)(op->long_value.lv_tag >> NON_SIZE_BITS); +} + +static inline int +_PyLong_CompactSign(const PyLongObject *op) +{ + assert(PyLong_Check(op)); + assert(_PyLong_IsCompact(op)); + return 1 - (op->long_value.lv_tag & SIGN_MASK); +} + +static inline int +_PyLong_NonCompactSign(const PyLongObject *op) +{ + assert(PyLong_Check(op)); + assert(!_PyLong_IsCompact(op)); + return 1 - (op->long_value.lv_tag & SIGN_MASK); +} + +/* Do a and b have the same sign? */ +static inline int +_PyLong_SameSign(const PyLongObject *a, const PyLongObject *b) +{ + return (a->long_value.lv_tag & SIGN_MASK) == (b->long_value.lv_tag & SIGN_MASK); +} + +#define TAG_FROM_SIGN_AND_SIZE(sign, size) ((1 - (sign)) | ((size) << NON_SIZE_BITS)) + +static inline void +_PyLong_SetSignAndDigitCount(PyLongObject *op, int sign, Py_ssize_t size) +{ + assert(size >= 0); + assert(-1 <= sign && sign <= 1); + assert(sign != 0 || size == 0); + op->long_value.lv_tag = TAG_FROM_SIGN_AND_SIZE(sign, (size_t)size); +} + +static inline void +_PyLong_SetDigitCount(PyLongObject *op, Py_ssize_t size) +{ + assert(size >= 0); + op->long_value.lv_tag = (((size_t)size) << NON_SIZE_BITS) | (op->long_value.lv_tag & SIGN_MASK); +} + +#define NON_SIZE_MASK ~((1 << NON_SIZE_BITS) - 1) + +static inline void +_PyLong_FlipSign(PyLongObject *op) { + unsigned int flipped_sign = 2 - (op->long_value.lv_tag & SIGN_MASK); + op->long_value.lv_tag &= NON_SIZE_MASK; + op->long_value.lv_tag |= flipped_sign; +} + +#define _PyLong_DIGIT_INIT(val) \ + { \ + .ob_base = _PyObject_HEAD_INIT(&PyLong_Type), \ + .long_value = { \ + .lv_tag = TAG_FROM_SIGN_AND_SIZE( \ + (val) == 0 ? 0 : ((val) < 0 ? -1 : 1), \ + (val) == 0 ? 0 : 1), \ + { ((val) >= 0 ? (val) : -(val)) }, \ + } \ + } + +#define _PyLong_FALSE_TAG TAG_FROM_SIGN_AND_SIZE(0, 0) +#define _PyLong_TRUE_TAG TAG_FROM_SIGN_AND_SIZE(1, 1) + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_LONG_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_memoryobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_memoryobject.h new file mode 100644 index 000000000..62e204fcb --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_memoryobject.h @@ -0,0 +1,20 @@ +#ifndef Py_INTERNAL_MEMORYOBJECT_H +#define Py_INTERNAL_MEMORYOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +extern PyTypeObject _PyManagedBuffer_Type; + +PyObject * +_PyMemoryView_FromBufferProc(PyObject *v, int flags, + getbufferproc bufferproc); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_MEMORYOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_mimalloc.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_mimalloc.h new file mode 100644 index 000000000..d870d01be --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_mimalloc.h @@ -0,0 +1,69 @@ +#ifndef Py_INTERNAL_MIMALLOC_H +#define Py_INTERNAL_MIMALLOC_H + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#if defined(MIMALLOC_H) || defined(MIMALLOC_TYPES_H) +# error "pycore_mimalloc.h must be included before mimalloc.h" +#endif + +typedef enum { + _Py_MIMALLOC_HEAP_MEM = 0, // PyMem_Malloc() and friends + _Py_MIMALLOC_HEAP_OBJECT = 1, // non-GC objects + _Py_MIMALLOC_HEAP_GC = 2, // GC objects without pre-header + _Py_MIMALLOC_HEAP_GC_PRE = 3, // GC objects with pre-header + _Py_MIMALLOC_HEAP_COUNT +} _Py_mimalloc_heap_id; + +#include "pycore_pymem.h" + +#ifdef WITH_MIMALLOC +# ifdef Py_GIL_DISABLED +# define MI_PRIM_THREAD_ID _Py_ThreadId +# endif +# define MI_DEBUG_UNINIT PYMEM_CLEANBYTE +# define MI_DEBUG_FREED PYMEM_DEADBYTE +# define MI_DEBUG_PADDING PYMEM_FORBIDDENBYTE +#ifdef Py_DEBUG +# define MI_DEBUG 2 +#else +# define MI_DEBUG 0 +#endif + +#ifdef _Py_THREAD_SANITIZER +# define MI_TSAN 1 +#endif + +#ifdef __cplusplus +extern "C++" { +#endif + +#include "mimalloc/mimalloc.h" +#include "mimalloc/mimalloc/types.h" +#include "mimalloc/mimalloc/internal.h" + +#ifdef __cplusplus +} +#endif + +#endif + +#ifdef Py_GIL_DISABLED +struct _mimalloc_interp_state { + // When exiting, threads place any segments with live blocks in this + // shared pool for other threads to claim and reuse. + mi_abandoned_pool_t abandoned_pool; +}; + +struct _mimalloc_thread_state { + mi_heap_t *current_object_heap; + mi_heap_t heaps[_Py_MIMALLOC_HEAP_COUNT]; + mi_tld_t tld; + int initialized; + struct llist_node page_list; +}; +#endif + +#endif // Py_INTERNAL_MIMALLOC_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_modsupport.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_modsupport.h new file mode 100644 index 000000000..11fde8148 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_modsupport.h @@ -0,0 +1,107 @@ +#ifndef Py_INTERNAL_MODSUPPORT_H +#define Py_INTERNAL_MODSUPPORT_H + +#include "pycore_lock.h" // _PyOnceFlag + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +extern int _PyArg_NoKwnames(const char *funcname, PyObject *kwnames); +#define _PyArg_NoKwnames(funcname, kwnames) \ + ((kwnames) == NULL || _PyArg_NoKwnames((funcname), (kwnames))) + +// Export for '_bz2' shared extension +PyAPI_FUNC(int) _PyArg_NoPositional(const char *funcname, PyObject *args); +#define _PyArg_NoPositional(funcname, args) \ + ((args) == NULL || _PyArg_NoPositional((funcname), (args))) + +// Export for '_asyncio' shared extension +PyAPI_FUNC(int) _PyArg_NoKeywords(const char *funcname, PyObject *kwargs); +#define _PyArg_NoKeywords(funcname, kwargs) \ + ((kwargs) == NULL || _PyArg_NoKeywords((funcname), (kwargs))) + +// Export for 'zlib' shared extension +PyAPI_FUNC(int) _PyArg_CheckPositional(const char *, Py_ssize_t, + Py_ssize_t, Py_ssize_t); +#define _Py_ANY_VARARGS(n) ((n) == PY_SSIZE_T_MAX) +#define _PyArg_CheckPositional(funcname, nargs, min, max) \ + ((!_Py_ANY_VARARGS(max) && (min) <= (nargs) && (nargs) <= (max)) \ + || _PyArg_CheckPositional((funcname), (nargs), (min), (max))) + +extern PyObject ** _Py_VaBuildStack( + PyObject **small_stack, + Py_ssize_t small_stack_len, + const char *format, + va_list va, + Py_ssize_t *p_nargs); + +extern PyObject* _PyModule_CreateInitialized(PyModuleDef*, int apiver); + +// Export for '_curses' shared extension +PyAPI_FUNC(int) _PyArg_ParseStack( + PyObject *const *args, + Py_ssize_t nargs, + const char *format, + ...); + +extern int _PyArg_UnpackStack( + PyObject *const *args, + Py_ssize_t nargs, + const char *name, + Py_ssize_t min, + Py_ssize_t max, + ...); + +// Export for '_heapq' shared extension +PyAPI_FUNC(void) _PyArg_BadArgument( + const char *fname, + const char *displayname, + const char *expected, + PyObject *arg); + +// --- _PyArg_Parser API --------------------------------------------------- + +// Export for '_dbm' shared extension +PyAPI_FUNC(int) _PyArg_ParseStackAndKeywords( + PyObject *const *args, + Py_ssize_t nargs, + PyObject *kwnames, + struct _PyArg_Parser *, + ...); + +// Export for 'math' shared extension +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))) + +// Export for '_testclinic' shared extension +PyAPI_FUNC(PyObject * const *) _PyArg_UnpackKeywordsWithVararg( + PyObject *const *args, Py_ssize_t nargs, + PyObject *kwargs, PyObject *kwnames, + struct _PyArg_Parser *parser, + int minpos, int maxpos, int minkw, + int vararg, PyObject **buf); + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_MODSUPPORT_H + diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_moduleobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_moduleobject.h new file mode 100644 index 000000000..049677b29 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_moduleobject.h @@ -0,0 +1,54 @@ +#ifndef Py_INTERNAL_MODULEOBJECT_H +#define Py_INTERNAL_MODULEOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +extern void _PyModule_Clear(PyObject *); +extern void _PyModule_ClearDict(PyObject *); +extern int _PyModuleSpec_IsInitializing(PyObject *); + +extern int _PyModule_IsExtension(PyObject *obj); + +typedef struct { + PyObject_HEAD + PyObject *md_dict; + PyModuleDef *md_def; + void *md_state; + PyObject *md_weaklist; + // for logging purposes after md_dict is cleared + PyObject *md_name; +#ifdef Py_GIL_DISABLED + void *md_gil; +#endif +} PyModuleObject; + +static inline PyModuleDef* _PyModule_GetDef(PyObject *mod) { + assert(PyModule_Check(mod)); + return ((PyModuleObject *)mod)->md_def; +} + +static inline void* _PyModule_GetState(PyObject* mod) { + assert(PyModule_Check(mod)); + return ((PyModuleObject *)mod)->md_state; +} + +static inline PyObject* _PyModule_GetDict(PyObject *mod) { + assert(PyModule_Check(mod)); + PyObject *dict = ((PyModuleObject *)mod) -> md_dict; + // _PyModule_GetDict(mod) must not be used after calling module_clear(mod) + assert(dict != NULL); + return dict; // borrowed reference +} + +PyObject* _Py_module_getattro_impl(PyModuleObject *m, PyObject *name, int suppress); +PyObject* _Py_module_getattro(PyModuleObject *m, PyObject *name); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_MODULEOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_namespace.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_namespace.h new file mode 100644 index 000000000..f165cf153 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_namespace.h @@ -0,0 +1,21 @@ +// Simple namespace object interface + +#ifndef Py_INTERNAL_NAMESPACE_H +#define Py_INTERNAL_NAMESPACE_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +extern PyTypeObject _PyNamespace_Type; + +// Export for '_testmultiphase' shared extension +PyAPI_FUNC(PyObject*) _PyNamespace_New(PyObject *kwds); + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_NAMESPACE_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_object.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_object.h new file mode 100644 index 000000000..39f5600f7 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_object.h @@ -0,0 +1,793 @@ +#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 +#include "pycore_gc.h" // _PyObject_GC_IS_TRACKED() +#include "pycore_emscripten_trampoline.h" // _PyCFunction_TrampolineCall() +#include "pycore_interp.h" // PyInterpreterState.gc +#include "pycore_pyatomic_ft_wrappers.h" // FT_ATOMIC_STORE_PTR_RELAXED +#include "pycore_pystate.h" // _PyInterpreterState_GET() + + +#define _Py_IMMORTAL_REFCNT_LOOSE ((_Py_IMMORTAL_REFCNT >> 1) + 1) + +// gh-121528, gh-118997: Similar to _Py_IsImmortal() but be more loose when +// comparing the reference count to stay compatible with C extensions built +// with the stable ABI 3.11 or older. Such extensions implement INCREF/DECREF +// as refcnt++ and refcnt-- without taking in account immortal objects. For +// example, the reference count of an immortal object can change from +// _Py_IMMORTAL_REFCNT to _Py_IMMORTAL_REFCNT+1 (INCREF) or +// _Py_IMMORTAL_REFCNT-1 (DECREF). +// +// This function should only be used in assertions. Otherwise, _Py_IsImmortal() +// must be used instead. +static inline int _Py_IsImmortalLoose(PyObject *op) +{ +#if defined(Py_GIL_DISABLED) + return _Py_IsImmortal(op); +#else + return (op->ob_refcnt >= _Py_IMMORTAL_REFCNT_LOOSE); +#endif +} +#define _Py_IsImmortalLoose(op) _Py_IsImmortalLoose(_PyObject_CAST(op)) + + +/* 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)); */ +extern int _PyObject_CheckConsistency(PyObject *op, int check_content); + +extern void _PyDebugAllocatorStats(FILE *out, const char *block_name, + int num_blocks, size_t sizeof_block); + +extern void _PyObject_DebugTypeStats(FILE *out); + +#ifdef Py_TRACE_REFS +// Forget a reference registered by _Py_NewReference(). Function called by +// _Py_Dealloc(). +// +// On a free list, the function can be used before modifying an object to +// remove the object from traced objects. Then _Py_NewReference() or +// _Py_NewReferenceNoTotal() should be called again on the object to trace +// it again. +extern void _Py_ForgetReference(PyObject *); +#endif + +// Export for shared _testinternalcapi extension +PyAPI_FUNC(int) _PyObject_IsFreed(PyObject *); + +/* We need to maintain an internal copy of Py{Var}Object_HEAD_INIT to avoid + designated initializer conflicts in C++20. If we use the deinition in + object.h, we will be mixing designated and non-designated initializers in + pycore objects which is forbiddent in C++20. However, if we then use + designated initializers in object.h then Extensions without designated break. + Furthermore, we can't use designated initializers in Extensions since these + are not supported pre-C++20. Thus, keeping an internal copy here is the most + backwards compatible solution */ +#if defined(Py_GIL_DISABLED) +#define _PyObject_HEAD_INIT(type) \ + { \ + .ob_ref_local = _Py_IMMORTAL_REFCNT_LOCAL, \ + .ob_type = (type) \ + } +#else +#define _PyObject_HEAD_INIT(type) \ + { \ + .ob_refcnt = _Py_IMMORTAL_REFCNT, \ + .ob_type = (type) \ + } +#endif +#define _PyVarObject_HEAD_INIT(type, size) \ + { \ + .ob_base = _PyObject_HEAD_INIT(type), \ + .ob_size = size \ + } + +PyAPI_FUNC(void) _Py_NO_RETURN _Py_FatalRefcountErrorFunc( + const char *func, + const char *message); + +#define _Py_FatalRefcountError(message) \ + _Py_FatalRefcountErrorFunc(__func__, (message)) + + +#ifdef Py_REF_DEBUG +/* The symbol is only exposed in the API for the sake of extensions + built against the pre-3.12 stable ABI. */ +PyAPI_DATA(Py_ssize_t) _Py_RefTotal; + +extern void _Py_AddRefTotal(PyThreadState *, Py_ssize_t); +extern void _Py_IncRefTotal(PyThreadState *); +extern void _Py_DecRefTotal(PyThreadState *); + +# define _Py_DEC_REFTOTAL(interp) \ + interp->object_state.reftotal-- +#endif + +// Increment reference count by n +static inline void _Py_RefcntAdd(PyObject* op, Py_ssize_t n) +{ + if (_Py_IsImmortal(op)) { + return; + } +#ifdef Py_REF_DEBUG + _Py_AddRefTotal(_PyThreadState_GET(), n); +#endif +#if !defined(Py_GIL_DISABLED) + op->ob_refcnt += n; +#else + if (_Py_IsOwnedByCurrentThread(op)) { + uint32_t local = op->ob_ref_local; + Py_ssize_t refcnt = (Py_ssize_t)local + n; +# if PY_SSIZE_T_MAX > UINT32_MAX + if (refcnt > (Py_ssize_t)UINT32_MAX) { + // Make the object immortal if the 32-bit local reference count + // would overflow. + refcnt = _Py_IMMORTAL_REFCNT_LOCAL; + } +# endif + _Py_atomic_store_uint32_relaxed(&op->ob_ref_local, (uint32_t)refcnt); + } + else { + _Py_atomic_add_ssize(&op->ob_ref_shared, (n << _Py_REF_SHARED_SHIFT)); + } +#endif +} +#define _Py_RefcntAdd(op, n) _Py_RefcntAdd(_PyObject_CAST(op), n) + +extern void _Py_SetImmortal(PyObject *op); +extern void _Py_SetImmortalUntracked(PyObject *op); + +// Makes an immortal object mortal again with the specified refcnt. Should only +// be used during runtime finalization. +static inline void _Py_SetMortal(PyObject *op, Py_ssize_t refcnt) +{ + if (op) { + assert(_Py_IsImmortalLoose(op)); +#ifdef Py_GIL_DISABLED + op->ob_tid = _Py_UNOWNED_TID; + op->ob_ref_local = 0; + op->ob_ref_shared = _Py_REF_SHARED(refcnt, _Py_REF_MERGED); +#else + op->ob_refcnt = refcnt; +#endif + } +} + +/* _Py_ClearImmortal() should only be used during runtime finalization. */ +static inline void _Py_ClearImmortal(PyObject *op) +{ + if (op) { + _Py_SetMortal(op, 1); + Py_DECREF(op); + } +} +#define _Py_ClearImmortal(op) \ + do { \ + _Py_ClearImmortal(_PyObject_CAST(op)); \ + op = NULL; \ + } while (0) + +// Mark an object as supporting deferred reference counting. This is a no-op +// in the default (with GIL) build. Objects that use deferred reference +// counting should be tracked by the GC so that they are eventually collected. +extern void _PyObject_SetDeferredRefcount(PyObject *op); + +static inline int +_PyObject_HasDeferredRefcount(PyObject *op) +{ +#ifdef Py_GIL_DISABLED + return _PyObject_HAS_GC_BITS(op, _PyGC_BITS_DEFERRED); +#else + return 0; +#endif +} + +#if !defined(Py_GIL_DISABLED) +static inline void +_Py_DECREF_SPECIALIZED(PyObject *op, const destructor destruct) +{ + if (_Py_IsImmortal(op)) { + return; + } + _Py_DECREF_STAT_INC(); +#ifdef Py_REF_DEBUG + _Py_DEC_REFTOTAL(PyInterpreterState_Get()); +#endif + if (--op->ob_refcnt != 0) { + assert(op->ob_refcnt > 0); + } + else { +#ifdef Py_TRACE_REFS + _Py_ForgetReference(op); +#endif + destruct(op); + } +} + +static inline void +_Py_DECREF_NO_DEALLOC(PyObject *op) +{ + if (_Py_IsImmortal(op)) { + return; + } + _Py_DECREF_STAT_INC(); +#ifdef Py_REF_DEBUG + _Py_DEC_REFTOTAL(PyInterpreterState_Get()); +#endif + op->ob_refcnt--; +#ifdef Py_DEBUG + if (op->ob_refcnt <= 0) { + _Py_FatalRefcountError("Expected a positive remaining refcount"); + } +#endif +} + +#else +// TODO: implement Py_DECREF specializations for Py_GIL_DISABLED build +static inline void +_Py_DECREF_SPECIALIZED(PyObject *op, const destructor destruct) +{ + Py_DECREF(op); +} + +static inline void +_Py_DECREF_NO_DEALLOC(PyObject *op) +{ + Py_DECREF(op); +} + +static inline int +_Py_REF_IS_MERGED(Py_ssize_t ob_ref_shared) +{ + return (ob_ref_shared & _Py_REF_SHARED_FLAG_MASK) == _Py_REF_MERGED; +} + +static inline int +_Py_REF_IS_QUEUED(Py_ssize_t ob_ref_shared) +{ + return (ob_ref_shared & _Py_REF_SHARED_FLAG_MASK) == _Py_REF_QUEUED; +} + +// Merge the local and shared reference count fields and add `extra` to the +// refcount when merging. +Py_ssize_t _Py_ExplicitMergeRefcount(PyObject *op, Py_ssize_t extra); +#endif // !defined(Py_GIL_DISABLED) + +#ifdef Py_REF_DEBUG +# undef _Py_DEC_REFTOTAL +#endif + + +extern int _PyType_CheckConsistency(PyTypeObject *type); +extern int _PyDict_CheckConsistency(PyObject *mp, int check_content); + +/* Update the Python traceback of an object. This function must be called + when a memory block is reused from a free list. + + Internal function called by _Py_NewReference(). */ +extern int _PyTraceMalloc_TraceRef(PyObject *op, PyRefTracerEvent event, void*); + +// Fast inlined version of PyType_HasFeature() +static inline int +_PyType_HasFeature(PyTypeObject *type, unsigned long feature) { + return ((FT_ATOMIC_LOAD_ULONG_RELAXED(type->tp_flags) & feature) != 0); +} + +extern void _PyType_InitCache(PyInterpreterState *interp); + +extern PyStatus _PyObject_InitState(PyInterpreterState *interp); +extern void _PyObject_FiniState(PyInterpreterState *interp); +extern bool _PyRefchain_IsTraced(PyInterpreterState *interp, PyObject *obj); + +/* Inline functions trading binary compatibility for speed: + _PyObject_Init() is the fast version of PyObject_Init(), and + _PyObject_InitVar() is the fast version of PyObject_InitVar(). + + These inline functions must not be called with op=NULL. */ +static inline void +_PyObject_Init(PyObject *op, PyTypeObject *typeobj) +{ + assert(op != NULL); + Py_SET_TYPE(op, typeobj); + assert(_PyType_HasFeature(typeobj, Py_TPFLAGS_HEAPTYPE) || _Py_IsImmortalLoose(typeobj)); + Py_INCREF(typeobj); + _Py_NewReference(op); +} + +static inline void +_PyObject_InitVar(PyVarObject *op, PyTypeObject *typeobj, Py_ssize_t size) +{ + assert(op != NULL); + assert(typeobj != &PyLong_Type); + _PyObject_Init((PyObject *)op, typeobj); + Py_SET_SIZE(op, size); +} + + +/* Tell the GC to track this object. + * + * The object must not be tracked by the GC. + * + * 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. + * + * See also the public PyObject_GC_Track() function. + */ +static inline void _PyObject_GC_TRACK( +// The preprocessor removes _PyObject_ASSERT_FROM() calls if NDEBUG is defined +#ifndef NDEBUG + const char *filename, int lineno, +#endif + PyObject *op) +{ + _PyObject_ASSERT_FROM(op, !_PyObject_GC_IS_TRACKED(op), + "object already tracked by the garbage collector", + filename, lineno, __func__); +#ifdef Py_GIL_DISABLED + _PyObject_SET_GC_BITS(op, _PyGC_BITS_TRACKED); +#else + 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, __func__); + + PyInterpreterState *interp = _PyInterpreterState_GET(); + PyGC_Head *generation0 = 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; +#endif +} + +/* 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. + * + * See also the public PyObject_GC_UnTrack() which accept an object which is + * not tracked. + */ +static inline void _PyObject_GC_UNTRACK( +// The preprocessor removes _PyObject_ASSERT_FROM() calls if NDEBUG is defined +#ifndef NDEBUG + const char *filename, int lineno, +#endif + PyObject *op) +{ + _PyObject_ASSERT_FROM(op, _PyObject_GC_IS_TRACKED(op), + "object not tracked by the garbage collector", + filename, lineno, __func__); + +#ifdef Py_GIL_DISABLED + _PyObject_CLEAR_GC_BITS(op, _PyGC_BITS_TRACKED); +#else + 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; +#endif +} + +// Macros to accept any type for the parameter, and to automatically pass +// the filename and the filename (if NDEBUG is not defined) where the macro +// is called. +#ifdef NDEBUG +# define _PyObject_GC_TRACK(op) \ + _PyObject_GC_TRACK(_PyObject_CAST(op)) +# define _PyObject_GC_UNTRACK(op) \ + _PyObject_GC_UNTRACK(_PyObject_CAST(op)) +#else +# define _PyObject_GC_TRACK(op) \ + _PyObject_GC_TRACK(__FILE__, __LINE__, _PyObject_CAST(op)) +# define _PyObject_GC_UNTRACK(op) \ + _PyObject_GC_UNTRACK(__FILE__, __LINE__, _PyObject_CAST(op)) +#endif + +#ifdef Py_GIL_DISABLED + +/* Tries to increment an object's reference count + * + * This is a specialized version of _Py_TryIncref that only succeeds if the + * object is immortal or local to this thread. It does not handle the case + * where the reference count modification requires an atomic operation. This + * allows call sites to specialize for the immortal/local case. + */ +static inline int +_Py_TryIncrefFast(PyObject *op) { + uint32_t local = _Py_atomic_load_uint32_relaxed(&op->ob_ref_local); + local += 1; + if (local == 0) { + // immortal + return 1; + } + if (_Py_IsOwnedByCurrentThread(op)) { + _Py_INCREF_STAT_INC(); + _Py_atomic_store_uint32_relaxed(&op->ob_ref_local, local); +#ifdef Py_REF_DEBUG + _Py_IncRefTotal(_PyThreadState_GET()); +#endif + return 1; + } + return 0; +} + +static inline int +_Py_TryIncRefShared(PyObject *op) +{ + Py_ssize_t shared = _Py_atomic_load_ssize_relaxed(&op->ob_ref_shared); + for (;;) { + // If the shared refcount is zero and the object is either merged + // or may not have weak references, then we cannot incref it. + if (shared == 0 || shared == _Py_REF_MERGED) { + return 0; + } + + if (_Py_atomic_compare_exchange_ssize( + &op->ob_ref_shared, + &shared, + shared + (1 << _Py_REF_SHARED_SHIFT))) { +#ifdef Py_REF_DEBUG + _Py_IncRefTotal(_PyThreadState_GET()); +#endif + _Py_INCREF_STAT_INC(); + return 1; + } + } +} + +/* Tries to incref the object op and ensures that *src still points to it. */ +static inline int +_Py_TryIncrefCompare(PyObject **src, PyObject *op) +{ + if (_Py_TryIncrefFast(op)) { + return 1; + } + if (!_Py_TryIncRefShared(op)) { + return 0; + } + if (op != _Py_atomic_load_ptr(src)) { + Py_DECREF(op); + return 0; + } + return 1; +} + +/* Loads and increfs an object from ptr, which may contain a NULL value. + Safe with concurrent (atomic) updates to ptr. + NOTE: The writer must set maybe-weakref on the stored object! */ +static inline PyObject * +_Py_XGetRef(PyObject **ptr) +{ + for (;;) { + PyObject *value = _Py_atomic_load_ptr(ptr); + if (value == NULL) { + return value; + } + if (_Py_TryIncrefCompare(ptr, value)) { + return value; + } + } +} + +/* Attempts to loads and increfs an object from ptr. Returns NULL + on failure, which may be due to a NULL value or a concurrent update. */ +static inline PyObject * +_Py_TryXGetRef(PyObject **ptr) +{ + PyObject *value = _Py_atomic_load_ptr(ptr); + if (value == NULL) { + return value; + } + if (_Py_TryIncrefCompare(ptr, value)) { + return value; + } + return NULL; +} + +/* Like Py_NewRef but also optimistically sets _Py_REF_MAYBE_WEAKREF + on objects owned by a different thread. */ +static inline PyObject * +_Py_NewRefWithLock(PyObject *op) +{ + if (_Py_TryIncrefFast(op)) { + return op; + } +#ifdef Py_REF_DEBUG + _Py_IncRefTotal(_PyThreadState_GET()); +#endif + _Py_INCREF_STAT_INC(); + for (;;) { + Py_ssize_t shared = _Py_atomic_load_ssize_relaxed(&op->ob_ref_shared); + Py_ssize_t new_shared = shared + (1 << _Py_REF_SHARED_SHIFT); + if ((shared & _Py_REF_SHARED_FLAG_MASK) == 0) { + new_shared |= _Py_REF_MAYBE_WEAKREF; + } + if (_Py_atomic_compare_exchange_ssize( + &op->ob_ref_shared, + &shared, + new_shared)) { + return op; + } + } +} + +static inline PyObject * +_Py_XNewRefWithLock(PyObject *obj) +{ + if (obj == NULL) { + return NULL; + } + return _Py_NewRefWithLock(obj); +} + +static inline void +_PyObject_SetMaybeWeakref(PyObject *op) +{ + if (_Py_IsImmortal(op)) { + return; + } + for (;;) { + Py_ssize_t shared = _Py_atomic_load_ssize_relaxed(&op->ob_ref_shared); + if ((shared & _Py_REF_SHARED_FLAG_MASK) != 0) { + // Nothing to do if it's in WEAKREFS, QUEUED, or MERGED states. + return; + } + if (_Py_atomic_compare_exchange_ssize( + &op->ob_ref_shared, &shared, shared | _Py_REF_MAYBE_WEAKREF)) { + return; + } + } +} + +#endif + +/* Tries to incref op and returns 1 if successful or 0 otherwise. */ +static inline int +_Py_TryIncref(PyObject *op) +{ +#ifdef Py_GIL_DISABLED + return _Py_TryIncrefFast(op) || _Py_TryIncRefShared(op); +#else + if (Py_REFCNT(op) > 0) { + Py_INCREF(op); + return 1; + } + return 0; +#endif +} + +#ifdef Py_REF_DEBUG +extern void _PyInterpreterState_FinalizeRefTotal(PyInterpreterState *); +extern void _Py_FinalizeRefTotal(_PyRuntimeState *); +extern void _PyDebug_PrintTotalRefs(void); +#endif + +#ifdef Py_TRACE_REFS +extern void _Py_AddToAllObjects(PyObject *op); +extern void _Py_PrintReferences(PyInterpreterState *, FILE *); +extern void _Py_PrintReferenceAddresses(PyInterpreterState *, FILE *); +#endif + + +/* Return the *address* of the object's weaklist. The address may be + * dereferenced to get the current head of the weaklist. This is useful + * for iterating over the linked list of weakrefs, especially when the + * list is being modified externally (e.g. refs getting removed). + * + * The returned pointer should not be used to change the head of the list + * nor should it be used to add, remove, or swap any refs in the list. + * That is the sole responsibility of the code in weakrefobject.c. + */ +static inline PyObject ** +_PyObject_GET_WEAKREFS_LISTPTR(PyObject *op) +{ + if (PyType_Check(op) && + ((PyTypeObject *)op)->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN) { + PyInterpreterState *interp = _PyInterpreterState_GET(); + managed_static_type_state *state = _PyStaticType_GetState( + interp, (PyTypeObject *)op); + return _PyStaticType_GET_WEAKREFS_LISTPTR(state); + } + // Essentially _PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET(): + Py_ssize_t offset = Py_TYPE(op)->tp_weaklistoffset; + return (PyObject **)((char *)op + offset); +} + +/* This is a special case of _PyObject_GET_WEAKREFS_LISTPTR(). + * Only the most fundamental lookup path is used. + * Consequently, static types should not be used. + * + * For static builtin types the returned pointer will always point + * to a NULL tp_weaklist. This is fine for any deallocation cases, + * since static types are never deallocated and static builtin types + * are only finalized at the end of runtime finalization. + * + * If the weaklist for static types is actually needed then use + * _PyObject_GET_WEAKREFS_LISTPTR(). + */ +static inline PyWeakReference ** +_PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET(PyObject *op) +{ + assert(!PyType_Check(op) || + ((PyTypeObject *)op)->tp_flags & Py_TPFLAGS_HEAPTYPE); + Py_ssize_t offset = Py_TYPE(op)->tp_weaklistoffset; + return (PyWeakReference **)((char *)op + offset); +} + +// Fast inlined version of PyObject_IS_GC() +static inline int +_PyObject_IS_GC(PyObject *obj) +{ + PyTypeObject *type = Py_TYPE(obj); + return (PyType_IS_GC(type) + && (type->tp_is_gc == NULL || type->tp_is_gc(obj))); +} + +// Fast inlined version of PyObject_Hash() +static inline Py_hash_t +_PyObject_HashFast(PyObject *op) +{ + if (PyUnicode_CheckExact(op)) { + Py_hash_t hash = FT_ATOMIC_LOAD_SSIZE_RELAXED( + _PyASCIIObject_CAST(op)->hash); + if (hash != -1) { + return hash; + } + } + return PyObject_Hash(op); +} + +// Fast inlined version of PyType_IS_GC() +#define _PyType_IS_GC(t) _PyType_HasFeature((t), Py_TPFLAGS_HAVE_GC) + +static inline size_t +_PyType_PreHeaderSize(PyTypeObject *tp) +{ + return ( +#ifndef Py_GIL_DISABLED + _PyType_IS_GC(tp) * sizeof(PyGC_Head) + +#endif + _PyType_HasFeature(tp, Py_TPFLAGS_PREHEADER) * 2 * sizeof(PyObject *) + ); +} + +void _PyObject_GC_Link(PyObject *op); + +// Usage: assert(_Py_CheckSlotResult(obj, "__getitem__", result != NULL)); +extern int _Py_CheckSlotResult( + PyObject *obj, + const char *slot_name, + int success); + +// Test if a type supports weak references +static inline int _PyType_SUPPORTS_WEAKREFS(PyTypeObject *type) { + return (type->tp_weaklistoffset != 0); +} + +extern PyObject* _PyType_AllocNoTrack(PyTypeObject *type, Py_ssize_t nitems); +extern PyObject *_PyType_NewManagedObject(PyTypeObject *type); + +extern PyTypeObject* _PyType_CalculateMetaclass(PyTypeObject *, PyObject *); +extern PyObject* _PyType_GetDocFromInternalDoc(const char *, const char *); +extern PyObject* _PyType_GetTextSignatureFromInternalDoc(const char *, const char *, int); +extern int _PyObject_SetAttributeErrorContext(PyObject *v, PyObject* name); + +void _PyObject_InitInlineValues(PyObject *obj, PyTypeObject *tp); +extern int _PyObject_StoreInstanceAttribute(PyObject *obj, + PyObject *name, PyObject *value); +extern bool _PyObject_TryGetInstanceAttribute(PyObject *obj, PyObject *name, + PyObject **attr); + +#ifdef Py_GIL_DISABLED +# define MANAGED_DICT_OFFSET (((Py_ssize_t)sizeof(PyObject *))*-1) +# define MANAGED_WEAKREF_OFFSET (((Py_ssize_t)sizeof(PyObject *))*-2) +#else +# define MANAGED_DICT_OFFSET (((Py_ssize_t)sizeof(PyObject *))*-3) +# define MANAGED_WEAKREF_OFFSET (((Py_ssize_t)sizeof(PyObject *))*-4) +#endif + +typedef union { + PyDictObject *dict; +} PyManagedDictPointer; + +static inline PyManagedDictPointer * +_PyObject_ManagedDictPointer(PyObject *obj) +{ + assert(Py_TYPE(obj)->tp_flags & Py_TPFLAGS_MANAGED_DICT); + return (PyManagedDictPointer *)((char *)obj + MANAGED_DICT_OFFSET); +} + +static inline PyDictObject * +_PyObject_GetManagedDict(PyObject *obj) +{ + PyManagedDictPointer *dorv = _PyObject_ManagedDictPointer(obj); + return (PyDictObject *)FT_ATOMIC_LOAD_PTR_ACQUIRE(dorv->dict); +} + +static inline PyDictValues * +_PyObject_InlineValues(PyObject *obj) +{ + assert(Py_TYPE(obj)->tp_flags & Py_TPFLAGS_INLINE_VALUES); + assert(Py_TYPE(obj)->tp_flags & Py_TPFLAGS_MANAGED_DICT); + assert(Py_TYPE(obj)->tp_basicsize == sizeof(PyObject)); + return (PyDictValues *)((char *)obj + sizeof(PyObject)); +} + +extern PyObject ** _PyObject_ComputedDictPointer(PyObject *); +extern int _PyObject_IsInstanceDictEmpty(PyObject *); + +// Export for 'math' shared extension +PyAPI_FUNC(PyObject*) _PyObject_LookupSpecial(PyObject *, PyObject *); + +extern int _PyObject_IsAbstract(PyObject *); + +PyAPI_FUNC(int) _PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method); +extern PyObject* _PyObject_NextNotImplemented(PyObject *); + +// Pickle support. +// Export for '_datetime' shared extension +PyAPI_FUNC(PyObject*) _PyObject_GetState(PyObject *); + +/* C function call trampolines to mitigate bad function pointer casts. + * + * Typical native ABIs ignore additional arguments or fill in missing + * values with 0/NULL in function pointer cast. Compilers do not show + * warnings when a function pointer is explicitly casted to an + * incompatible type. + * + * Bad fpcasts are an issue in WebAssembly. WASM's indirect_call has strict + * function signature checks. Argument count, types, and return type must + * match. + * + * Third party code unintentionally rely on problematic fpcasts. The call + * trampoline mitigates common occurrences of bad fpcasts on Emscripten. + */ +#if !(defined(__EMSCRIPTEN__) && defined(PY_CALL_TRAMPOLINE)) +#define _PyCFunction_TrampolineCall(meth, self, args) \ + (meth)((self), (args)) +#define _PyCFunctionWithKeywords_TrampolineCall(meth, self, args, kw) \ + (meth)((self), (args), (kw)) +#endif // __EMSCRIPTEN__ && PY_CALL_TRAMPOLINE + +// Export these 2 symbols for '_pickle' shared extension +PyAPI_DATA(PyTypeObject) _PyNone_Type; +PyAPI_DATA(PyTypeObject) _PyNotImplemented_Type; + +// Maps Py_LT to Py_GT, ..., Py_GE to Py_LE. +// Export for the stable ABI. +PyAPI_DATA(int) _Py_SwappedOp[]; + +extern void _Py_GetConstant_Init(void); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_OBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_object_alloc.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_object_alloc.h new file mode 100644 index 000000000..8cc7a444b --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_object_alloc.h @@ -0,0 +1,71 @@ +#ifndef Py_INTERNAL_OBJECT_ALLOC_H +#define Py_INTERNAL_OBJECT_ALLOC_H + +#include "pycore_object.h" // _PyType_HasFeature() +#include "pycore_pystate.h" // _PyThreadState_GET() +#include "pycore_tstate.h" // _PyThreadStateImpl + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#ifdef Py_GIL_DISABLED +static inline mi_heap_t * +_PyObject_GetAllocationHeap(_PyThreadStateImpl *tstate, PyTypeObject *tp) +{ + struct _mimalloc_thread_state *m = &tstate->mimalloc; + if (_PyType_HasFeature(tp, Py_TPFLAGS_PREHEADER)) { + return &m->heaps[_Py_MIMALLOC_HEAP_GC_PRE]; + } + else if (_PyType_IS_GC(tp)) { + return &m->heaps[_Py_MIMALLOC_HEAP_GC]; + } + else { + return &m->heaps[_Py_MIMALLOC_HEAP_OBJECT]; + } +} +#endif + +// Sets the heap used for PyObject_Malloc(), PyObject_Realloc(), etc. calls in +// Py_GIL_DISABLED builds. We use different heaps depending on if the object +// supports GC and if it has a pre-header. We smuggle the choice of heap +// through the _mimalloc_thread_state. In the default build, this simply +// calls PyObject_Malloc(). +static inline void * +_PyObject_MallocWithType(PyTypeObject *tp, size_t size) +{ +#ifdef Py_GIL_DISABLED + _PyThreadStateImpl *tstate = (_PyThreadStateImpl *)_PyThreadState_GET(); + struct _mimalloc_thread_state *m = &tstate->mimalloc; + m->current_object_heap = _PyObject_GetAllocationHeap(tstate, tp); +#endif + void *mem = PyObject_Malloc(size); +#ifdef Py_GIL_DISABLED + m->current_object_heap = &m->heaps[_Py_MIMALLOC_HEAP_OBJECT]; +#endif + return mem; +} + +static inline void * +_PyObject_ReallocWithType(PyTypeObject *tp, void *ptr, size_t size) +{ +#ifdef Py_GIL_DISABLED + _PyThreadStateImpl *tstate = (_PyThreadStateImpl *)_PyThreadState_GET(); + struct _mimalloc_thread_state *m = &tstate->mimalloc; + m->current_object_heap = _PyObject_GetAllocationHeap(tstate, tp); +#endif + void *mem = PyObject_Realloc(ptr, size); +#ifdef Py_GIL_DISABLED + m->current_object_heap = &m->heaps[_Py_MIMALLOC_HEAP_OBJECT]; +#endif + return mem; +} + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_OBJECT_ALLOC_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_object_stack.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_object_stack.h new file mode 100644 index 000000000..fc130b1e9 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_object_stack.h @@ -0,0 +1,87 @@ +#ifndef Py_INTERNAL_OBJECT_STACK_H +#define Py_INTERNAL_OBJECT_STACK_H + +#include "pycore_freelist.h" // _PyFreeListState + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +// _PyObjectStack is a stack of Python objects implemented as a linked list of +// fixed size buffers. + +// Chosen so that _PyObjectStackChunk is a power-of-two size. +#define _Py_OBJECT_STACK_CHUNK_SIZE 254 + +typedef struct _PyObjectStackChunk { + struct _PyObjectStackChunk *prev; + Py_ssize_t n; + PyObject *objs[_Py_OBJECT_STACK_CHUNK_SIZE]; +} _PyObjectStackChunk; + +typedef struct _PyObjectStack { + _PyObjectStackChunk *head; +} _PyObjectStack; + + +extern _PyObjectStackChunk * +_PyObjectStackChunk_New(void); + +extern void +_PyObjectStackChunk_Free(_PyObjectStackChunk *); + +// Push an item onto the stack. Return -1 on allocation failure, 0 on success. +static inline int +_PyObjectStack_Push(_PyObjectStack *stack, PyObject *obj) +{ + _PyObjectStackChunk *buf = stack->head; + if (buf == NULL || buf->n == _Py_OBJECT_STACK_CHUNK_SIZE) { + buf = _PyObjectStackChunk_New(); + if (buf == NULL) { + return -1; + } + buf->prev = stack->head; + buf->n = 0; + stack->head = buf; + } + + assert(buf->n >= 0 && buf->n < _Py_OBJECT_STACK_CHUNK_SIZE); + buf->objs[buf->n] = obj; + buf->n++; + return 0; +} + +// Pop the top item from the stack. Return NULL if the stack is empty. +static inline PyObject * +_PyObjectStack_Pop(_PyObjectStack *stack) +{ + _PyObjectStackChunk *buf = stack->head; + if (buf == NULL) { + return NULL; + } + assert(buf->n > 0 && buf->n <= _Py_OBJECT_STACK_CHUNK_SIZE); + buf->n--; + PyObject *obj = buf->objs[buf->n]; + if (buf->n == 0) { + stack->head = buf->prev; + _PyObjectStackChunk_Free(buf); + } + return obj; +} + +// Merge src into dst, leaving src empty +extern void +_PyObjectStack_Merge(_PyObjectStack *dst, _PyObjectStack *src); + +// Remove all items from the stack +extern void +_PyObjectStack_Clear(_PyObjectStack *stack); + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_OBJECT_STACK_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_object_state.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_object_state.h new file mode 100644 index 000000000..cd7c9335b --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_object_state.h @@ -0,0 +1,41 @@ +#ifndef Py_INTERNAL_OBJECT_STATE_H +#define Py_INTERNAL_OBJECT_STATE_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_freelist.h" // _PyObject_freelists +#include "pycore_hashtable.h" // _Py_hashtable_t + +struct _py_object_runtime_state { +#ifdef Py_REF_DEBUG + Py_ssize_t interpreter_leaks; +#endif + int _not_used; +}; + +struct _py_object_state { +#if !defined(Py_GIL_DISABLED) + struct _Py_object_freelists freelists; +#endif +#ifdef Py_REF_DEBUG + Py_ssize_t reftotal; +#endif +#ifdef Py_TRACE_REFS + // Hash table storing all objects. The key is the object pointer + // (PyObject*) and the value is always the number 1 (as uintptr_t). + // See _PyRefchain_IsTraced() and _PyRefchain_Trace() functions. + _Py_hashtable_t *refchain; +#endif + int _not_used; +}; + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_OBJECT_STATE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_obmalloc.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_obmalloc.h new file mode 100644 index 000000000..9140d8f08 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_obmalloc.h @@ -0,0 +1,702 @@ +#ifndef Py_INTERNAL_OBMALLOC_H +#define Py_INTERNAL_OBMALLOC_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +typedef unsigned int pymem_uint; /* assuming >= 16 bits */ + +#undef uint +#define uint pymem_uint + + +/* An object allocator for Python. + + Here is an introduction to the layers of the Python memory architecture, + showing where the object allocator is actually used (layer +2), It is + called for every object allocation and deallocation (PyObject_New/Del), + unless the object-specific allocators implement a proprietary allocation + scheme (ex.: ints use a simple free list). This is also the place where + the cyclic garbage collector operates selectively on container objects. + + + Object-specific allocators + _____ ______ ______ ________ + [ int ] [ dict ] [ list ] ... [ string ] Python core | ++3 | <----- Object-specific memory -----> | <-- Non-object memory --> | + _______________________________ | | + [ Python's object allocator ] | | ++2 | ####### Object memory ####### | <------ Internal buffers ------> | + ______________________________________________________________ | + [ Python's raw memory allocator (PyMem_ API) ] | ++1 | <----- Python memory (under PyMem manager's control) ------> | | + __________________________________________________________________ + [ Underlying general-purpose allocator (ex: C library malloc) ] + 0 | <------ Virtual memory allocated for the python process -------> | + + ========================================================================= + _______________________________________________________________________ + [ OS-specific Virtual Memory Manager (VMM) ] +-1 | <--- Kernel dynamic storage allocation & management (page-based) ---> | + __________________________________ __________________________________ + [ ] [ ] +-2 | <-- Physical memory: ROM/RAM --> | | <-- Secondary storage (swap) --> | + +*/ +/*==========================================================================*/ + +/* A fast, special-purpose memory allocator for small blocks, to be used + on top of a general-purpose malloc -- heavily based on previous art. */ + +/* Vladimir Marangozov -- August 2000 */ + +/* + * "Memory management is where the rubber meets the road -- if we do the wrong + * thing at any level, the results will not be good. And if we don't make the + * levels work well together, we are in serious trouble." (1) + * + * (1) Paul R. Wilson, Mark S. Johnstone, Michael Neely, and David Boles, + * "Dynamic Storage Allocation: A Survey and Critical Review", + * in Proc. 1995 Int'l. Workshop on Memory Management, September 1995. + */ + +/* #undef WITH_MEMORY_LIMITS */ /* disable mem limit checks */ + +/*==========================================================================*/ + +/* + * Allocation strategy abstract: + * + * For small requests, the allocator sub-allocates blocks of memory. + * Requests greater than SMALL_REQUEST_THRESHOLD bytes are routed to the + * system's allocator. + * + * Small requests are grouped in size classes spaced 8 bytes apart, due + * to the required valid alignment of the returned address. Requests of + * a particular size are serviced from memory pools of 4K (one VMM page). + * Pools are fragmented on demand and contain free lists of blocks of one + * particular size class. In other words, there is a fixed-size allocator + * for each size class. Free pools are shared by the different allocators + * thus minimizing the space reserved for a particular size class. + * + * This allocation strategy is a variant of what is known as "simple + * segregated storage based on array of free lists". The main drawback of + * simple segregated storage is that we might end up with lot of reserved + * memory for the different free lists, which degenerate in time. To avoid + * this, we partition each free list in pools and we share dynamically the + * reserved space between all free lists. This technique is quite efficient + * for memory intensive programs which allocate mainly small-sized blocks. + * + * For small requests we have the following table: + * + * Request in bytes Size of allocated block Size class idx + * ---------------------------------------------------------------- + * 1-8 8 0 + * 9-16 16 1 + * 17-24 24 2 + * 25-32 32 3 + * 33-40 40 4 + * 41-48 48 5 + * 49-56 56 6 + * 57-64 64 7 + * 65-72 72 8 + * ... ... ... + * 497-504 504 62 + * 505-512 512 63 + * + * 0, SMALL_REQUEST_THRESHOLD + 1 and up: routed to the underlying + * allocator. + */ + +/*==========================================================================*/ + +/* + * -- Main tunable settings section -- + */ + +/* + * Alignment of addresses returned to the user. 8-bytes alignment works + * 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 +#define ALIGNMENT 8 /* must be 2^N */ +#define ALIGNMENT_SHIFT 3 +#endif + +/* Return the number of bytes in size class I, as a uint. */ +#define INDEX2SIZE(I) (((pymem_uint)(I) + 1) << ALIGNMENT_SHIFT) + +/* + * Max size threshold below which malloc requests are considered to be + * small enough in order to use preallocated memory pools. You can tune + * this value according to your application behaviour and memory needs. + * + * Note: a size threshold of 512 guarantees that newly created dictionaries + * will be allocated from preallocated memory pools on 64-bit. + * + * The following invariants must hold: + * 1) ALIGNMENT <= SMALL_REQUEST_THRESHOLD <= 512 + * 2) SMALL_REQUEST_THRESHOLD is evenly divisible by ALIGNMENT + * + * Although not required, for better performance and space efficiency, + * it is recommended that SMALL_REQUEST_THRESHOLD is set to a power of 2. + */ +#define SMALL_REQUEST_THRESHOLD 512 +#define NB_SMALL_SIZE_CLASSES (SMALL_REQUEST_THRESHOLD / ALIGNMENT) + +/* + * The system's VMM page size can be obtained on most unices with a + * getpagesize() call or deduced from various header files. To make + * things simpler, we assume that it is 4K, which is OK for most systems. + * It is probably better if this is the native page size, but it doesn't + * have to be. In theory, if SYSTEM_PAGE_SIZE is larger than the native page + * size, then `POOL_ADDR(p)->arenaindex' could rarely cause a segmentation + * violation fault. 4K is apparently OK for all the platforms that python + * currently targets. + */ +#define SYSTEM_PAGE_SIZE (4 * 1024) + +/* + * Maximum amount of memory managed by the allocator for small requests. + */ +#ifdef WITH_MEMORY_LIMITS +#ifndef SMALL_MEMORY_LIMIT +#define SMALL_MEMORY_LIMIT (64 * 1024 * 1024) /* 64 MB -- more? */ +#endif +#endif + +#if !defined(WITH_PYMALLOC_RADIX_TREE) +/* Use radix-tree to track arena memory regions, for address_in_range(). + * Enable by default since it allows larger pool sizes. Can be disabled + * using -DWITH_PYMALLOC_RADIX_TREE=0 */ +#define WITH_PYMALLOC_RADIX_TREE 1 +#endif + +#if SIZEOF_VOID_P > 4 +/* on 64-bit platforms use larger pools and arenas if we can */ +#define USE_LARGE_ARENAS +#if WITH_PYMALLOC_RADIX_TREE +/* large pools only supported if radix-tree is enabled */ +#define USE_LARGE_POOLS +#endif +#endif + +/* + * The allocator sub-allocates blocks of memory (called arenas) aligned + * on a page boundary. This is a reserved virtual address space for the + * current process (obtained through a malloc()/mmap() call). In no way this + * means that the memory arenas will be used entirely. A malloc() is + * usually an address range reservation for bytes, unless all pages within + * this space are referenced subsequently. So malloc'ing big blocks and not + * using them does not mean "wasting memory". It's an addressable range + * wastage... + * + * Arenas are allocated with mmap() on systems supporting anonymous memory + * mappings to reduce heap fragmentation. + */ +#ifdef USE_LARGE_ARENAS +#define ARENA_BITS 20 /* 1 MiB */ +#else +#define ARENA_BITS 18 /* 256 KiB */ +#endif +#define ARENA_SIZE (1 << ARENA_BITS) +#define ARENA_SIZE_MASK (ARENA_SIZE - 1) + +#ifdef WITH_MEMORY_LIMITS +#define MAX_ARENAS (SMALL_MEMORY_LIMIT / ARENA_SIZE) +#endif + +/* + * Size of the pools used for small blocks. Must be a power of 2. + */ +#ifdef USE_LARGE_POOLS +#define POOL_BITS 14 /* 16 KiB */ +#else +#define POOL_BITS 12 /* 4 KiB */ +#endif +#define POOL_SIZE (1 << POOL_BITS) +#define POOL_SIZE_MASK (POOL_SIZE - 1) + +#if !WITH_PYMALLOC_RADIX_TREE +#if POOL_SIZE != SYSTEM_PAGE_SIZE +# error "pool size must be equal to system page size" +#endif +#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 -- + */ + +/*==========================================================================*/ + +/* When you say memory, my mind reasons in terms of (pointers to) blocks */ +typedef uint8_t pymem_block; + +/* Pool for small blocks. */ +struct pool_header { + union { pymem_block *_padding; + uint count; } ref; /* number of allocated blocks */ + pymem_block *freeblock; /* pool's free list head */ + struct pool_header *nextpool; /* next pool of this size class */ + struct pool_header *prevpool; /* previous pool "" */ + uint arenaindex; /* index into arenas of base adr */ + uint szidx; /* block size class index */ + uint nextoffset; /* bytes to virgin block */ + uint maxnextoffset; /* largest valid nextoffset */ +}; + +typedef struct pool_header *poolp; + +/* Record keeping for arenas. */ +struct arena_object { + /* The address of the arena, as returned by malloc. Note that 0 + * will never be returned by a successful malloc, and is used + * here to mark an arena_object that doesn't correspond to an + * allocated arena. + */ + uintptr_t address; + + /* Pool-aligned pointer to the next pool to be carved off. */ + pymem_block* pool_address; + + /* The number of available pools in the arena: free pools + never- + * allocated pools. + */ + uint nfreepools; + + /* The total number of pools in the arena, whether or not available. */ + uint ntotalpools; + + /* Singly-linked list of available pools. */ + struct pool_header* freepools; + + /* Whenever this arena_object is not associated with an allocated + * arena, the nextarena member is used to link all unassociated + * arena_objects in the singly-linked `unused_arena_objects` list. + * The prevarena member is unused in this case. + * + * When this arena_object is associated with an allocated arena + * with at least one available pool, both members are used in the + * doubly-linked `usable_arenas` list, which is maintained in + * increasing order of `nfreepools` values. + * + * Else this arena_object is associated with an allocated arena + * all of whose pools are in use. `nextarena` and `prevarena` + * are both meaningless in this case. + */ + struct arena_object* nextarena; + struct arena_object* prevarena; +}; + +#define POOL_OVERHEAD _Py_SIZE_ROUND_UP(sizeof(struct pool_header), ALIGNMENT) + +#define DUMMY_SIZE_IDX 0xffff /* size class of newly cached pools */ + +/* Round pointer P down to the closest pool-aligned address <= P, as a poolp */ +#define POOL_ADDR(P) ((poolp)_Py_ALIGN_DOWN((P), POOL_SIZE)) + +/* Return total number of blocks in pool of size index I, as a uint. */ +#define NUMBLOCKS(I) ((pymem_uint)(POOL_SIZE - POOL_OVERHEAD) / INDEX2SIZE(I)) + +/*==========================================================================*/ + +/* + * Pool table -- headed, circular, doubly-linked lists of partially used pools. + +This is involved. For an index i, usedpools[i+i] is the header for a list of +all partially used pools holding small blocks with "size class idx" i. So +usedpools[0] corresponds to blocks of size 8, usedpools[2] to blocks of size +16, and so on: index 2*i <-> blocks of size (i+1)<freeblock points to +the start of a singly-linked list of free blocks within the pool. When a +block is freed, it's inserted at the front of its pool's freeblock list. Note +that the available blocks in a pool are *not* linked all together when a pool +is initialized. Instead only "the first two" (lowest addresses) blocks are +set up, returning the first such block, and setting pool->freeblock to a +one-block list holding the second such block. This is consistent with that +pymalloc strives at all levels (arena, pool, and block) never to touch a piece +of memory until it's actually needed. + +So long as a pool is in the used state, we're certain there *is* a block +available for allocating, and pool->freeblock is not NULL. If pool->freeblock +points to the end of the free list before we've carved the entire pool into +blocks, that means we simply haven't yet gotten to one of the higher-address +blocks. The offset from the pool_header to the start of "the next" virgin +block is stored in the pool_header nextoffset member, and the largest value +of nextoffset that makes sense is stored in the maxnextoffset member when a +pool is initialized. All the blocks in a pool have been passed out at least +once when and only when nextoffset > maxnextoffset. + + +Major obscurity: While the usedpools vector is declared to have poolp +entries, it doesn't really. It really contains two pointers per (conceptual) +poolp entry, the nextpool and prevpool members of a pool_header. The +excruciating initialization code below fools C so that + + usedpool[i+i] + +"acts like" a genuine poolp, but only so long as you only reference its +nextpool and prevpool members. The "- 2*sizeof(pymem_block *)" gibberish is +compensating for that a pool_header's nextpool and prevpool members +immediately follow a pool_header's first two members: + + union { pymem_block *_padding; + uint count; } ref; + pymem_block *freeblock; + +each of which consume sizeof(pymem_block *) bytes. So what usedpools[i+i] really +contains is a fudged-up pointer p such that *if* C believes it's a poolp +pointer, then p->nextpool and p->prevpool are both p (meaning that the headed +circular list is empty). + +It's unclear why the usedpools setup is so convoluted. It could be to +minimize the amount of cache required to hold this heavily-referenced table +(which only *needs* the two interpool pointer members of a pool_header). OTOH, +referencing code has to remember to "double the index" and doing so isn't +free, usedpools[0] isn't a strictly legal pointer, and we're crucially relying +on that C doesn't insert any padding anywhere in a pool_header at or before +the prevpool member. +**************************************************************************** */ + +#define OBMALLOC_USED_POOLS_SIZE (2 * ((NB_SMALL_SIZE_CLASSES + 7) / 8) * 8) + +struct _obmalloc_pools { + poolp used[OBMALLOC_USED_POOLS_SIZE]; +}; + + +/*========================================================================== +Arena management. + +`arenas` is a vector of arena_objects. It contains maxarenas entries, some of +which may not be currently used (== they're arena_objects that aren't +currently associated with an allocated arena). Note that arenas proper are +separately malloc'ed. + +Prior to Python 2.5, arenas were never free()'ed. Starting with Python 2.5, +we do try to free() arenas, and use some mild heuristic strategies to increase +the likelihood that arenas eventually can be freed. + +unused_arena_objects + + This is a singly-linked list of the arena_objects that are currently not + being used (no arena is associated with them). Objects are taken off the + head of the list in new_arena(), and are pushed on the head of the list in + PyObject_Free() when the arena is empty. Key invariant: an arena_object + is on this list if and only if its .address member is 0. + +usable_arenas + + This is a doubly-linked list of the arena_objects associated with arenas + that have pools available. These pools are either waiting to be reused, + or have not been used before. The list is sorted to have the most- + allocated arenas first (ascending order based on the nfreepools member). + This means that the next allocation will come from a heavily used arena, + which gives the nearly empty arenas a chance to be returned to the system. + In my unscientific tests this dramatically improved the number of arenas + that could be freed. + +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. +*/ + +/* How many arena_objects do we initially allocate? + * 16 = can allocate 16 arenas = 16 * ARENA_SIZE = 4MB before growing the + * `arenas` vector. + */ +#define INITIAL_ARENA_OBJECTS 16 + +struct _obmalloc_mgmt { + /* Array of objects used to track chunks of memory (arenas). */ + struct arena_object* arenas; + /* Number of slots currently allocated in the `arenas` vector. */ + uint maxarenas; + + /* The head of the singly-linked, NULL-terminated list of available + * arena_objects. + */ + struct arena_object* unused_arena_objects; + + /* The head of the doubly-linked, NULL-terminated at each end, list of + * arena_objects associated with arenas that have pools available. + */ + struct arena_object* usable_arenas; + + /* nfp2lasta[nfp] is the last arena in usable_arenas with nfp free pools */ + struct arena_object* nfp2lasta[MAX_POOLS_IN_ARENA + 1]; + + /* Number of arenas allocated that haven't been free()'d. */ + size_t narenas_currently_allocated; + + /* Total number of times malloc() called to allocate an arena. */ + size_t ntimes_arena_allocated; + /* High water mark (max value ever seen) for narenas_currently_allocated. */ + size_t narenas_highwater; + + Py_ssize_t raw_allocated_blocks; +}; + + +#if WITH_PYMALLOC_RADIX_TREE +/*==========================================================================*/ +/* radix tree for tracking arena usage. If enabled, used to implement + address_in_range(). + + memory address bit allocation for keys + + 64-bit pointers, IGNORE_BITS=0 and 2^20 arena size: + 15 -> MAP_TOP_BITS + 15 -> MAP_MID_BITS + 14 -> MAP_BOT_BITS + 20 -> ideal aligned arena + ---- + 64 + + 64-bit pointers, IGNORE_BITS=16, and 2^20 arena size: + 16 -> IGNORE_BITS + 10 -> MAP_TOP_BITS + 10 -> MAP_MID_BITS + 8 -> MAP_BOT_BITS + 20 -> ideal aligned arena + ---- + 64 + + 32-bit pointers and 2^18 arena size: + 14 -> MAP_BOT_BITS + 18 -> ideal aligned arena + ---- + 32 + +*/ + +#if SIZEOF_VOID_P == 8 + +/* number of bits in a pointer */ +#define POINTER_BITS 64 + +/* High bits of memory addresses that will be ignored when indexing into the + * radix tree. Setting this to zero is the safe default. For most 64-bit + * machines, setting this to 16 would be safe. The kernel would not give + * user-space virtual memory addresses that have significant information in + * those high bits. The main advantage to setting IGNORE_BITS > 0 is that less + * virtual memory will be used for the top and middle radix tree arrays. Those + * arrays are allocated in the BSS segment and so will typically consume real + * memory only if actually accessed. + */ +#define IGNORE_BITS 0 + +/* use the top and mid layers of the radix tree */ +#define USE_INTERIOR_NODES + +#elif SIZEOF_VOID_P == 4 + +#define POINTER_BITS 32 +#define IGNORE_BITS 0 + +#else + + /* Currently this code works for 64-bit or 32-bit pointers only. */ +#error "obmalloc radix tree requires 64-bit or 32-bit pointers." + +#endif /* SIZEOF_VOID_P */ + +/* arena_coverage_t members require this to be true */ +#if ARENA_BITS >= 32 +# error "arena size must be < 2^32" +#endif + +/* the lower bits of the address that are not ignored */ +#define ADDRESS_BITS (POINTER_BITS - IGNORE_BITS) + +#ifdef USE_INTERIOR_NODES +/* number of bits used for MAP_TOP and MAP_MID nodes */ +#define INTERIOR_BITS ((ADDRESS_BITS - ARENA_BITS + 2) / 3) +#else +#define INTERIOR_BITS 0 +#endif + +#define MAP_TOP_BITS INTERIOR_BITS +#define MAP_TOP_LENGTH (1 << MAP_TOP_BITS) +#define MAP_TOP_MASK (MAP_TOP_LENGTH - 1) + +#define MAP_MID_BITS INTERIOR_BITS +#define MAP_MID_LENGTH (1 << MAP_MID_BITS) +#define MAP_MID_MASK (MAP_MID_LENGTH - 1) + +#define MAP_BOT_BITS (ADDRESS_BITS - ARENA_BITS - 2*INTERIOR_BITS) +#define MAP_BOT_LENGTH (1 << MAP_BOT_BITS) +#define MAP_BOT_MASK (MAP_BOT_LENGTH - 1) + +#define MAP_BOT_SHIFT ARENA_BITS +#define MAP_MID_SHIFT (MAP_BOT_BITS + MAP_BOT_SHIFT) +#define MAP_TOP_SHIFT (MAP_MID_BITS + MAP_MID_SHIFT) + +#define AS_UINT(p) ((uintptr_t)(p)) +#define MAP_BOT_INDEX(p) ((AS_UINT(p) >> MAP_BOT_SHIFT) & MAP_BOT_MASK) +#define MAP_MID_INDEX(p) ((AS_UINT(p) >> MAP_MID_SHIFT) & MAP_MID_MASK) +#define MAP_TOP_INDEX(p) ((AS_UINT(p) >> MAP_TOP_SHIFT) & MAP_TOP_MASK) + +#if IGNORE_BITS > 0 +/* Return the ignored part of the pointer address. Those bits should be same + * for all valid pointers if IGNORE_BITS is set correctly. + */ +#define HIGH_BITS(p) (AS_UINT(p) >> ADDRESS_BITS) +#else +#define HIGH_BITS(p) 0 +#endif + + +/* This is the leaf of the radix tree. See arena_map_mark_used() for the + * meaning of these members. */ +typedef struct { + int32_t tail_hi; + int32_t tail_lo; +} arena_coverage_t; + +typedef struct arena_map_bot { + /* The members tail_hi and tail_lo are accessed together. So, it + * better to have them as an array of structs, rather than two + * arrays. + */ + arena_coverage_t arenas[MAP_BOT_LENGTH]; +} arena_map_bot_t; + +#ifdef USE_INTERIOR_NODES +typedef struct arena_map_mid { + struct arena_map_bot *ptrs[MAP_MID_LENGTH]; +} arena_map_mid_t; + +typedef struct arena_map_top { + struct arena_map_mid *ptrs[MAP_TOP_LENGTH]; +} arena_map_top_t; +#endif + +struct _obmalloc_usage { + /* The root of radix tree. Note that by initializing like this, the memory + * should be in the BSS. The OS will only memory map pages as the MAP_MID + * nodes get used (OS pages are demand loaded as needed). + */ +#ifdef USE_INTERIOR_NODES + arena_map_top_t arena_map_root; + /* accounting for number of used interior nodes */ + int arena_map_mid_count; + int arena_map_bot_count; +#else + arena_map_bot_t arena_map_root; +#endif +}; + +#endif /* WITH_PYMALLOC_RADIX_TREE */ + + +struct _obmalloc_global_state { + int dump_debug_stats; + Py_ssize_t interpreter_leaks; +}; + +struct _obmalloc_state { + struct _obmalloc_pools pools; + struct _obmalloc_mgmt mgmt; +#if WITH_PYMALLOC_RADIX_TREE + struct _obmalloc_usage usage; +#endif +}; + + +#undef uint + + +/* Allocate memory directly from the O/S virtual memory system, + * where supported. Otherwise fallback on malloc */ +void *_PyObject_VirtualAlloc(size_t size); +void _PyObject_VirtualFree(void *, size_t size); + + +/* This function returns the number of allocated memory blocks, regardless of size */ +extern Py_ssize_t _Py_GetGlobalAllocatedBlocks(void); +#define _Py_GetAllocatedBlocks() \ + _Py_GetGlobalAllocatedBlocks() +extern Py_ssize_t _PyInterpreterState_GetAllocatedBlocks(PyInterpreterState *); +extern void _PyInterpreterState_FinalizeAllocatedBlocks(PyInterpreterState *); +extern int _PyMem_init_obmalloc(PyInterpreterState *interp); +extern bool _PyMem_obmalloc_state_on_heap(PyInterpreterState *interp); + + +#ifdef WITH_PYMALLOC +// Export the symbol for the 3rd party 'guppy3' project +PyAPI_FUNC(int) _PyObject_DebugMallocStats(FILE *out); +#endif + + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_OBMALLOC_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_obmalloc_init.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_obmalloc_init.h new file mode 100644 index 000000000..e6811b7ae --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_obmalloc_init.h @@ -0,0 +1,66 @@ +#ifndef Py_INTERNAL_OBMALLOC_INIT_H +#define Py_INTERNAL_OBMALLOC_INIT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +/****************************************************/ +/* the default object allocator's state initializer */ + +#define PTA(pools, x) \ + ((poolp )((uint8_t *)&(pools.used[2*(x)]) - 2*sizeof(pymem_block *))) +#define PT(p, x) PTA(p, x), PTA(p, x) + +#define PT_8(p, start) \ + PT(p, start), \ + PT(p, start+1), \ + PT(p, start+2), \ + PT(p, start+3), \ + PT(p, start+4), \ + PT(p, start+5), \ + PT(p, start+6), \ + PT(p, start+7) + +#if NB_SMALL_SIZE_CLASSES <= 8 +# define _obmalloc_pools_INIT(p) \ + { PT_8(p, 0) } +#elif NB_SMALL_SIZE_CLASSES <= 16 +# define _obmalloc_pools_INIT(p) \ + { PT_8(p, 0), PT_8(p, 8) } +#elif NB_SMALL_SIZE_CLASSES <= 24 +# define _obmalloc_pools_INIT(p) \ + { PT_8(p, 0), PT_8(p, 8), PT_8(p, 16) } +#elif NB_SMALL_SIZE_CLASSES <= 32 +# define _obmalloc_pools_INIT(p) \ + { PT_8(p, 0), PT_8(p, 8), PT_8(p, 16), PT_8(p, 24) } +#elif NB_SMALL_SIZE_CLASSES <= 40 +# define _obmalloc_pools_INIT(p) \ + { PT_8(p, 0), PT_8(p, 8), PT_8(p, 16), PT_8(p, 24), PT_8(p, 32) } +#elif NB_SMALL_SIZE_CLASSES <= 48 +# define _obmalloc_pools_INIT(p) \ + { PT_8(p, 0), PT_8(p, 8), PT_8(p, 16), PT_8(p, 24), PT_8(p, 32), PT_8(p, 40) } +#elif NB_SMALL_SIZE_CLASSES <= 56 +# define _obmalloc_pools_INIT(p) \ + { PT_8(p, 0), PT_8(p, 8), PT_8(p, 16), PT_8(p, 24), PT_8(p, 32), PT_8(p, 40), PT_8(p, 48) } +#elif NB_SMALL_SIZE_CLASSES <= 64 +# define _obmalloc_pools_INIT(p) \ + { PT_8(p, 0), PT_8(p, 8), PT_8(p, 16), PT_8(p, 24), PT_8(p, 32), PT_8(p, 40), PT_8(p, 48), PT_8(p, 56) } +#else +# error "NB_SMALL_SIZE_CLASSES should be less than 64" +#endif + +#define _obmalloc_global_state_INIT \ + { \ + .dump_debug_stats = -1, \ + } + + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_OBMALLOC_INIT_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_opcode_metadata.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_opcode_metadata.h new file mode 100644 index 000000000..bbba0bbbf --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_opcode_metadata.h @@ -0,0 +1,1922 @@ +// This file is generated by Tools/cases_generator/opcode_metadata_generator.py +// from: +// Python/bytecodes.c +// Do not edit! + +#ifndef Py_CORE_OPCODE_METADATA_H +#define Py_CORE_OPCODE_METADATA_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include // bool +#include "opcode_ids.h" + + +#define IS_PSEUDO_INSTR(OP) ( \ + ((OP) == LOAD_CLOSURE) || \ + ((OP) == STORE_FAST_MAYBE_NULL) || \ + ((OP) == LOAD_SUPER_METHOD) || \ + ((OP) == LOAD_ZERO_SUPER_METHOD) || \ + ((OP) == LOAD_ZERO_SUPER_ATTR) || \ + ((OP) == LOAD_METHOD) || \ + ((OP) == JUMP) || \ + ((OP) == JUMP_NO_INTERRUPT) || \ + ((OP) == SETUP_FINALLY) || \ + ((OP) == SETUP_CLEANUP) || \ + ((OP) == SETUP_WITH) || \ + ((OP) == POP_BLOCK) || \ + 0) + +#include "pycore_uop_ids.h" +extern int _PyOpcode_num_popped(int opcode, int oparg); +#ifdef NEED_OPCODE_METADATA +int _PyOpcode_num_popped(int opcode, int oparg) { + switch(opcode) { + case BEFORE_ASYNC_WITH: + return 1; + case BEFORE_WITH: + return 1; + case BINARY_OP: + return 2; + case BINARY_OP_ADD_FLOAT: + return 2; + case BINARY_OP_ADD_INT: + return 2; + case BINARY_OP_ADD_UNICODE: + return 2; + case BINARY_OP_INPLACE_ADD_UNICODE: + return 2; + case BINARY_OP_MULTIPLY_FLOAT: + return 2; + case BINARY_OP_MULTIPLY_INT: + return 2; + case BINARY_OP_SUBTRACT_FLOAT: + return 2; + case BINARY_OP_SUBTRACT_INT: + return 2; + case BINARY_SLICE: + return 3; + case BINARY_SUBSCR: + return 2; + case BINARY_SUBSCR_DICT: + return 2; + case BINARY_SUBSCR_GETITEM: + return 2; + case BINARY_SUBSCR_LIST_INT: + return 2; + case BINARY_SUBSCR_STR_INT: + return 2; + case BINARY_SUBSCR_TUPLE_INT: + return 2; + case BUILD_CONST_KEY_MAP: + return 1 + oparg; + case BUILD_LIST: + return oparg; + case BUILD_MAP: + return oparg*2; + case BUILD_SET: + return oparg; + case BUILD_SLICE: + return 2 + ((oparg == 3) ? 1 : 0); + case BUILD_STRING: + return oparg; + case BUILD_TUPLE: + return oparg; + case CACHE: + return 0; + case CALL: + return 2 + oparg; + case CALL_ALLOC_AND_ENTER_INIT: + return 2 + oparg; + case CALL_BOUND_METHOD_EXACT_ARGS: + return 2 + oparg; + case CALL_BOUND_METHOD_GENERAL: + return 2 + oparg; + case CALL_BUILTIN_CLASS: + return 2 + oparg; + case CALL_BUILTIN_FAST: + return 2 + oparg; + case CALL_BUILTIN_FAST_WITH_KEYWORDS: + return 2 + oparg; + case CALL_BUILTIN_O: + return 2 + oparg; + case CALL_FUNCTION_EX: + return 3 + (oparg & 1); + case CALL_INTRINSIC_1: + return 1; + case CALL_INTRINSIC_2: + return 2; + case CALL_ISINSTANCE: + return 2 + oparg; + case CALL_KW: + return 3 + oparg; + case CALL_LEN: + return 2 + oparg; + case CALL_LIST_APPEND: + return 3; + case CALL_METHOD_DESCRIPTOR_FAST: + return 2 + oparg; + case CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS: + return 2 + oparg; + case CALL_METHOD_DESCRIPTOR_NOARGS: + return 2 + oparg; + case CALL_METHOD_DESCRIPTOR_O: + return 2 + oparg; + case CALL_NON_PY_GENERAL: + return 2 + oparg; + case CALL_PY_EXACT_ARGS: + return 2 + oparg; + case CALL_PY_GENERAL: + return 2 + oparg; + case CALL_STR_1: + return 3; + case CALL_TUPLE_1: + return 3; + case CALL_TYPE_1: + return 3; + case CHECK_EG_MATCH: + return 2; + case CHECK_EXC_MATCH: + return 2; + case CLEANUP_THROW: + return 3; + case COMPARE_OP: + return 2; + case COMPARE_OP_FLOAT: + return 2; + case COMPARE_OP_INT: + return 2; + case COMPARE_OP_STR: + return 2; + case CONTAINS_OP: + return 2; + case CONTAINS_OP_DICT: + return 2; + case CONTAINS_OP_SET: + return 2; + case CONVERT_VALUE: + return 1; + case COPY: + return 1 + (oparg-1); + case COPY_FREE_VARS: + return 0; + case DELETE_ATTR: + return 1; + case DELETE_DEREF: + return 0; + case DELETE_FAST: + return 0; + case DELETE_GLOBAL: + return 0; + case DELETE_NAME: + return 0; + case DELETE_SUBSCR: + return 2; + case DICT_MERGE: + return 5 + (oparg - 1); + case DICT_UPDATE: + return 2 + (oparg - 1); + case END_ASYNC_FOR: + return 2; + case END_FOR: + return 1; + case END_SEND: + return 2; + case ENTER_EXECUTOR: + return 0; + case EXIT_INIT_CHECK: + return 1; + case EXTENDED_ARG: + return 0; + case FORMAT_SIMPLE: + return 1; + case FORMAT_WITH_SPEC: + return 2; + case FOR_ITER: + return 1; + case FOR_ITER_GEN: + return 1; + case FOR_ITER_LIST: + return 1; + case FOR_ITER_RANGE: + return 1; + case FOR_ITER_TUPLE: + return 1; + case GET_AITER: + return 1; + case GET_ANEXT: + return 1; + case GET_AWAITABLE: + return 1; + case GET_ITER: + return 1; + case GET_LEN: + return 1; + case GET_YIELD_FROM_ITER: + return 1; + case IMPORT_FROM: + return 1; + case IMPORT_NAME: + return 2; + case INSTRUMENTED_CALL: + return 0; + case INSTRUMENTED_CALL_FUNCTION_EX: + return 0; + case INSTRUMENTED_CALL_KW: + return 0; + case INSTRUMENTED_END_FOR: + return 2; + case INSTRUMENTED_END_SEND: + return 2; + case INSTRUMENTED_FOR_ITER: + return 0; + case INSTRUMENTED_INSTRUCTION: + return 0; + case INSTRUMENTED_JUMP_BACKWARD: + return 0; + case INSTRUMENTED_JUMP_FORWARD: + return 0; + case INSTRUMENTED_LOAD_SUPER_ATTR: + return 3; + case INSTRUMENTED_POP_JUMP_IF_FALSE: + return 0; + case INSTRUMENTED_POP_JUMP_IF_NONE: + return 0; + case INSTRUMENTED_POP_JUMP_IF_NOT_NONE: + return 0; + case INSTRUMENTED_POP_JUMP_IF_TRUE: + return 0; + case INSTRUMENTED_RESUME: + return 0; + case INSTRUMENTED_RETURN_CONST: + return 0; + case INSTRUMENTED_RETURN_VALUE: + return 1; + case INSTRUMENTED_YIELD_VALUE: + return 1; + case INTERPRETER_EXIT: + return 1; + case IS_OP: + return 2; + case JUMP_BACKWARD: + return 0; + case JUMP_BACKWARD_NO_INTERRUPT: + return 0; + case JUMP_FORWARD: + return 0; + case LIST_APPEND: + return 2 + (oparg-1); + case LIST_EXTEND: + return 2 + (oparg-1); + case LOAD_ASSERTION_ERROR: + return 0; + case LOAD_ATTR: + return 1; + case LOAD_ATTR_CLASS: + return 1; + case LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN: + return 1; + case LOAD_ATTR_INSTANCE_VALUE: + return 1; + case LOAD_ATTR_METHOD_LAZY_DICT: + return 1; + case LOAD_ATTR_METHOD_NO_DICT: + return 1; + case LOAD_ATTR_METHOD_WITH_VALUES: + return 1; + case LOAD_ATTR_MODULE: + return 1; + case LOAD_ATTR_NONDESCRIPTOR_NO_DICT: + return 1; + case LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES: + return 1; + case LOAD_ATTR_PROPERTY: + return 1; + case LOAD_ATTR_SLOT: + return 1; + case LOAD_ATTR_WITH_HINT: + return 1; + case LOAD_BUILD_CLASS: + return 0; + case LOAD_CONST: + return 0; + case LOAD_DEREF: + return 0; + case LOAD_FAST: + return 0; + case LOAD_FAST_AND_CLEAR: + return 0; + case LOAD_FAST_CHECK: + return 0; + case LOAD_FAST_LOAD_FAST: + return 0; + case LOAD_FROM_DICT_OR_DEREF: + return 1; + case LOAD_FROM_DICT_OR_GLOBALS: + return 1; + case LOAD_GLOBAL: + return 0; + case LOAD_GLOBAL_BUILTIN: + return 0; + case LOAD_GLOBAL_MODULE: + return 0; + case LOAD_LOCALS: + return 0; + case LOAD_NAME: + return 0; + case LOAD_SUPER_ATTR: + return 3; + case LOAD_SUPER_ATTR_ATTR: + return 3; + case LOAD_SUPER_ATTR_METHOD: + return 3; + case MAKE_CELL: + return 0; + case MAKE_FUNCTION: + return 1; + case MAP_ADD: + return 3 + (oparg - 1); + case MATCH_CLASS: + return 3; + case MATCH_KEYS: + return 2; + case MATCH_MAPPING: + return 1; + case MATCH_SEQUENCE: + return 1; + case NOP: + return 0; + case POP_EXCEPT: + return 1; + case POP_JUMP_IF_FALSE: + return 1; + case POP_JUMP_IF_NONE: + return 1; + case POP_JUMP_IF_NOT_NONE: + return 1; + case POP_JUMP_IF_TRUE: + return 1; + case POP_TOP: + return 1; + case PUSH_EXC_INFO: + return 1; + case PUSH_NULL: + return 0; + case RAISE_VARARGS: + return oparg; + case RERAISE: + return 1 + oparg; + case RESERVED: + return 0; + case RESUME: + return 0; + case RESUME_CHECK: + return 0; + case RETURN_CONST: + return 0; + case RETURN_GENERATOR: + return 0; + case RETURN_VALUE: + return 1; + case SEND: + return 2; + case SEND_GEN: + return 2; + case SETUP_ANNOTATIONS: + return 0; + case SET_ADD: + return 2 + (oparg-1); + case SET_FUNCTION_ATTRIBUTE: + return 2; + case SET_UPDATE: + return 2 + (oparg-1); + case STORE_ATTR: + return 2; + case STORE_ATTR_INSTANCE_VALUE: + return 2; + case STORE_ATTR_SLOT: + return 2; + case STORE_ATTR_WITH_HINT: + return 2; + case STORE_DEREF: + return 1; + case STORE_FAST: + return 1; + case STORE_FAST_LOAD_FAST: + return 1; + case STORE_FAST_STORE_FAST: + return 2; + case STORE_GLOBAL: + return 1; + case STORE_NAME: + return 1; + case STORE_SLICE: + return 4; + case STORE_SUBSCR: + return 3; + case STORE_SUBSCR_DICT: + return 3; + case STORE_SUBSCR_LIST_INT: + return 3; + case SWAP: + return 2 + (oparg-2); + case TO_BOOL: + return 1; + case TO_BOOL_ALWAYS_TRUE: + return 1; + case TO_BOOL_BOOL: + return 1; + case TO_BOOL_INT: + return 1; + case TO_BOOL_LIST: + return 1; + case TO_BOOL_NONE: + return 1; + case TO_BOOL_STR: + return 1; + case UNARY_INVERT: + return 1; + case UNARY_NEGATIVE: + return 1; + case UNARY_NOT: + return 1; + case UNPACK_EX: + return 1; + case UNPACK_SEQUENCE: + return 1; + case UNPACK_SEQUENCE_LIST: + return 1; + case UNPACK_SEQUENCE_TUPLE: + return 1; + case UNPACK_SEQUENCE_TWO_TUPLE: + return 1; + case WITH_EXCEPT_START: + return 4; + case YIELD_VALUE: + return 1; + default: + return -1; + } +} + +#endif + +extern int _PyOpcode_num_pushed(int opcode, int oparg); +#ifdef NEED_OPCODE_METADATA +int _PyOpcode_num_pushed(int opcode, int oparg) { + switch(opcode) { + case BEFORE_ASYNC_WITH: + return 2; + case BEFORE_WITH: + return 2; + case BINARY_OP: + return 1; + case BINARY_OP_ADD_FLOAT: + return 1; + case BINARY_OP_ADD_INT: + return 1; + case BINARY_OP_ADD_UNICODE: + return 1; + case BINARY_OP_INPLACE_ADD_UNICODE: + return 0; + case BINARY_OP_MULTIPLY_FLOAT: + return 1; + case BINARY_OP_MULTIPLY_INT: + return 1; + case BINARY_OP_SUBTRACT_FLOAT: + return 1; + case BINARY_OP_SUBTRACT_INT: + return 1; + case BINARY_SLICE: + return 1; + case BINARY_SUBSCR: + return 1; + case BINARY_SUBSCR_DICT: + return 1; + case BINARY_SUBSCR_GETITEM: + return 1; + case BINARY_SUBSCR_LIST_INT: + return 1; + case BINARY_SUBSCR_STR_INT: + return 1; + case BINARY_SUBSCR_TUPLE_INT: + return 1; + case BUILD_CONST_KEY_MAP: + return 1; + case BUILD_LIST: + return 1; + case BUILD_MAP: + return 1; + case BUILD_SET: + return 1; + case BUILD_SLICE: + return 1; + case BUILD_STRING: + return 1; + case BUILD_TUPLE: + return 1; + case CACHE: + return 0; + case CALL: + return 1; + case CALL_ALLOC_AND_ENTER_INIT: + return 1; + case CALL_BOUND_METHOD_EXACT_ARGS: + return 0; + case CALL_BOUND_METHOD_GENERAL: + return 0; + case CALL_BUILTIN_CLASS: + return 1; + case CALL_BUILTIN_FAST: + return 1; + case CALL_BUILTIN_FAST_WITH_KEYWORDS: + return 1; + case CALL_BUILTIN_O: + return 1; + case CALL_FUNCTION_EX: + return 1; + case CALL_INTRINSIC_1: + return 1; + case CALL_INTRINSIC_2: + return 1; + case CALL_ISINSTANCE: + return 1; + case CALL_KW: + return 1; + case CALL_LEN: + return 1; + case CALL_LIST_APPEND: + return 1; + case CALL_METHOD_DESCRIPTOR_FAST: + return 1; + case CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS: + return 1; + case CALL_METHOD_DESCRIPTOR_NOARGS: + return 1; + case CALL_METHOD_DESCRIPTOR_O: + return 1; + case CALL_NON_PY_GENERAL: + return 1; + case CALL_PY_EXACT_ARGS: + return 0; + case CALL_PY_GENERAL: + return 0; + case CALL_STR_1: + return 1; + case CALL_TUPLE_1: + return 1; + case CALL_TYPE_1: + return 1; + case CHECK_EG_MATCH: + return 2; + case CHECK_EXC_MATCH: + return 2; + case CLEANUP_THROW: + return 2; + case COMPARE_OP: + return 1; + case COMPARE_OP_FLOAT: + return 1; + case COMPARE_OP_INT: + return 1; + case COMPARE_OP_STR: + return 1; + case CONTAINS_OP: + return 1; + case CONTAINS_OP_DICT: + return 1; + case CONTAINS_OP_SET: + return 1; + case CONVERT_VALUE: + return 1; + case COPY: + return 2 + (oparg-1); + case COPY_FREE_VARS: + return 0; + case DELETE_ATTR: + return 0; + case DELETE_DEREF: + return 0; + case DELETE_FAST: + return 0; + case DELETE_GLOBAL: + return 0; + case DELETE_NAME: + return 0; + case DELETE_SUBSCR: + return 0; + case DICT_MERGE: + return 4 + (oparg - 1); + case DICT_UPDATE: + return 1 + (oparg - 1); + case END_ASYNC_FOR: + return 0; + case END_FOR: + return 0; + case END_SEND: + return 1; + case ENTER_EXECUTOR: + return 0; + case EXIT_INIT_CHECK: + return 0; + case EXTENDED_ARG: + return 0; + case FORMAT_SIMPLE: + return 1; + case FORMAT_WITH_SPEC: + return 1; + case FOR_ITER: + return 2; + case FOR_ITER_GEN: + return 1; + case FOR_ITER_LIST: + return 2; + case FOR_ITER_RANGE: + return 2; + case FOR_ITER_TUPLE: + return 2; + case GET_AITER: + return 1; + case GET_ANEXT: + return 2; + case GET_AWAITABLE: + return 1; + case GET_ITER: + return 1; + case GET_LEN: + return 2; + case GET_YIELD_FROM_ITER: + return 1; + case IMPORT_FROM: + return 2; + case IMPORT_NAME: + return 1; + case INSTRUMENTED_CALL: + return 0; + case INSTRUMENTED_CALL_FUNCTION_EX: + return 0; + case INSTRUMENTED_CALL_KW: + return 0; + case INSTRUMENTED_END_FOR: + return 1; + case INSTRUMENTED_END_SEND: + return 1; + case INSTRUMENTED_FOR_ITER: + return 0; + case INSTRUMENTED_INSTRUCTION: + return 0; + case INSTRUMENTED_JUMP_BACKWARD: + return 0; + case INSTRUMENTED_JUMP_FORWARD: + return 0; + case INSTRUMENTED_LOAD_SUPER_ATTR: + return 1 + (oparg & 1); + case INSTRUMENTED_POP_JUMP_IF_FALSE: + return 0; + case INSTRUMENTED_POP_JUMP_IF_NONE: + return 0; + case INSTRUMENTED_POP_JUMP_IF_NOT_NONE: + return 0; + case INSTRUMENTED_POP_JUMP_IF_TRUE: + return 0; + case INSTRUMENTED_RESUME: + return 0; + case INSTRUMENTED_RETURN_CONST: + return 0; + case INSTRUMENTED_RETURN_VALUE: + return 0; + case INSTRUMENTED_YIELD_VALUE: + return 1; + case INTERPRETER_EXIT: + return 0; + case IS_OP: + return 1; + case JUMP_BACKWARD: + return 0; + case JUMP_BACKWARD_NO_INTERRUPT: + return 0; + case JUMP_FORWARD: + return 0; + case LIST_APPEND: + return 1 + (oparg-1); + case LIST_EXTEND: + return 1 + (oparg-1); + case LOAD_ASSERTION_ERROR: + return 1; + case LOAD_ATTR: + return 1 + (oparg & 1); + case LOAD_ATTR_CLASS: + return 1 + (oparg & 1); + case LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN: + return 1; + case LOAD_ATTR_INSTANCE_VALUE: + return 1 + (oparg & 1); + case LOAD_ATTR_METHOD_LAZY_DICT: + return 2; + case LOAD_ATTR_METHOD_NO_DICT: + return 2; + case LOAD_ATTR_METHOD_WITH_VALUES: + return 2; + case LOAD_ATTR_MODULE: + return 1 + (oparg & 1); + case LOAD_ATTR_NONDESCRIPTOR_NO_DICT: + return 1; + case LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES: + return 1; + case LOAD_ATTR_PROPERTY: + return 1; + case LOAD_ATTR_SLOT: + return 1 + (oparg & 1); + case LOAD_ATTR_WITH_HINT: + return 1 + (oparg & 1); + case LOAD_BUILD_CLASS: + return 1; + case LOAD_CONST: + return 1; + case LOAD_DEREF: + return 1; + case LOAD_FAST: + return 1; + case LOAD_FAST_AND_CLEAR: + return 1; + case LOAD_FAST_CHECK: + return 1; + case LOAD_FAST_LOAD_FAST: + return 2; + case LOAD_FROM_DICT_OR_DEREF: + return 1; + case LOAD_FROM_DICT_OR_GLOBALS: + return 1; + case LOAD_GLOBAL: + return 1 + (oparg & 1); + case LOAD_GLOBAL_BUILTIN: + return 1 + (oparg & 1); + case LOAD_GLOBAL_MODULE: + return 1 + (oparg & 1); + case LOAD_LOCALS: + return 1; + case LOAD_NAME: + return 1; + case LOAD_SUPER_ATTR: + return 1 + (oparg & 1); + case LOAD_SUPER_ATTR_ATTR: + return 1; + case LOAD_SUPER_ATTR_METHOD: + return 2; + case MAKE_CELL: + return 0; + case MAKE_FUNCTION: + return 1; + case MAP_ADD: + return 1 + (oparg - 1); + case MATCH_CLASS: + return 1; + case MATCH_KEYS: + return 3; + case MATCH_MAPPING: + return 2; + case MATCH_SEQUENCE: + return 2; + case NOP: + return 0; + case POP_EXCEPT: + return 0; + case POP_JUMP_IF_FALSE: + return 0; + case POP_JUMP_IF_NONE: + return 0; + case POP_JUMP_IF_NOT_NONE: + return 0; + case POP_JUMP_IF_TRUE: + return 0; + case POP_TOP: + return 0; + case PUSH_EXC_INFO: + return 2; + case PUSH_NULL: + return 1; + case RAISE_VARARGS: + return 0; + case RERAISE: + return oparg; + case RESERVED: + return 0; + case RESUME: + return 0; + case RESUME_CHECK: + return 0; + case RETURN_CONST: + return 0; + case RETURN_GENERATOR: + return 1; + case RETURN_VALUE: + return 0; + case SEND: + return 2; + case SEND_GEN: + return 2; + case SETUP_ANNOTATIONS: + return 0; + case SET_ADD: + return 1 + (oparg-1); + case SET_FUNCTION_ATTRIBUTE: + return 1; + case SET_UPDATE: + return 1 + (oparg-1); + case STORE_ATTR: + return 0; + case STORE_ATTR_INSTANCE_VALUE: + return 0; + case STORE_ATTR_SLOT: + return 0; + case STORE_ATTR_WITH_HINT: + return 0; + case STORE_DEREF: + return 0; + case STORE_FAST: + return 0; + case STORE_FAST_LOAD_FAST: + return 1; + case STORE_FAST_STORE_FAST: + return 0; + case STORE_GLOBAL: + return 0; + case STORE_NAME: + return 0; + case STORE_SLICE: + return 0; + case STORE_SUBSCR: + return 0; + case STORE_SUBSCR_DICT: + return 0; + case STORE_SUBSCR_LIST_INT: + return 0; + case SWAP: + return 2 + (oparg-2); + case TO_BOOL: + return 1; + case TO_BOOL_ALWAYS_TRUE: + return 1; + case TO_BOOL_BOOL: + return 1; + case TO_BOOL_INT: + return 1; + case TO_BOOL_LIST: + return 1; + case TO_BOOL_NONE: + return 1; + case TO_BOOL_STR: + return 1; + case UNARY_INVERT: + return 1; + case UNARY_NEGATIVE: + return 1; + case UNARY_NOT: + return 1; + case UNPACK_EX: + return 1 + (oparg >> 8) + (oparg & 0xFF); + case UNPACK_SEQUENCE: + return oparg; + case UNPACK_SEQUENCE_LIST: + return oparg; + case UNPACK_SEQUENCE_TUPLE: + return oparg; + case UNPACK_SEQUENCE_TWO_TUPLE: + return 2; + case WITH_EXCEPT_START: + return 5; + case YIELD_VALUE: + return 1; + default: + return -1; + } +} + +#endif + +enum InstructionFormat { + INSTR_FMT_IB = 1, + INSTR_FMT_IBC = 2, + INSTR_FMT_IBC00 = 3, + INSTR_FMT_IBC000 = 4, + INSTR_FMT_IBC00000000 = 5, + INSTR_FMT_IX = 6, + INSTR_FMT_IXC = 7, + INSTR_FMT_IXC00 = 8, + INSTR_FMT_IXC000 = 9, +}; + +#define IS_VALID_OPCODE(OP) \ + (((OP) >= 0) && ((OP) < 268) && \ + (_PyOpcode_opcode_metadata[(OP)].valid_entry)) + +#define HAS_ARG_FLAG (1) +#define HAS_CONST_FLAG (2) +#define HAS_NAME_FLAG (4) +#define HAS_JUMP_FLAG (8) +#define HAS_FREE_FLAG (16) +#define HAS_LOCAL_FLAG (32) +#define HAS_EVAL_BREAK_FLAG (64) +#define HAS_DEOPT_FLAG (128) +#define HAS_ERROR_FLAG (256) +#define HAS_ESCAPES_FLAG (512) +#define HAS_EXIT_FLAG (1024) +#define HAS_PURE_FLAG (2048) +#define HAS_PASSTHROUGH_FLAG (4096) +#define HAS_OPARG_AND_1_FLAG (8192) +#define HAS_ERROR_NO_POP_FLAG (16384) +#define OPCODE_HAS_ARG(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_ARG_FLAG)) +#define OPCODE_HAS_CONST(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_CONST_FLAG)) +#define OPCODE_HAS_NAME(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_NAME_FLAG)) +#define OPCODE_HAS_JUMP(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_JUMP_FLAG)) +#define OPCODE_HAS_FREE(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_FREE_FLAG)) +#define OPCODE_HAS_LOCAL(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_LOCAL_FLAG)) +#define OPCODE_HAS_EVAL_BREAK(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_EVAL_BREAK_FLAG)) +#define OPCODE_HAS_DEOPT(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_DEOPT_FLAG)) +#define OPCODE_HAS_ERROR(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_ERROR_FLAG)) +#define OPCODE_HAS_ESCAPES(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_ESCAPES_FLAG)) +#define OPCODE_HAS_EXIT(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_EXIT_FLAG)) +#define OPCODE_HAS_PURE(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_PURE_FLAG)) +#define OPCODE_HAS_PASSTHROUGH(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_PASSTHROUGH_FLAG)) +#define OPCODE_HAS_OPARG_AND_1(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_OPARG_AND_1_FLAG)) +#define OPCODE_HAS_ERROR_NO_POP(OP) (_PyOpcode_opcode_metadata[OP].flags & (HAS_ERROR_NO_POP_FLAG)) + +#define OPARG_FULL 0 +#define OPARG_CACHE_1 1 +#define OPARG_CACHE_2 2 +#define OPARG_CACHE_4 4 +#define OPARG_TOP 5 +#define OPARG_BOTTOM 6 +#define OPARG_SAVE_RETURN_OFFSET 7 +#define OPARG_REPLACED 9 + +struct opcode_metadata { + uint8_t valid_entry; + int8_t instr_format; + int16_t flags; +}; + +extern const struct opcode_metadata _PyOpcode_opcode_metadata[268]; +#ifdef NEED_OPCODE_METADATA +const struct opcode_metadata _PyOpcode_opcode_metadata[268] = { + [BEFORE_ASYNC_WITH] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [BEFORE_WITH] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [BINARY_OP] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [BINARY_OP_ADD_FLOAT] = { true, INSTR_FMT_IXC, HAS_EXIT_FLAG }, + [BINARY_OP_ADD_INT] = { true, INSTR_FMT_IXC, HAS_EXIT_FLAG | HAS_ERROR_FLAG }, + [BINARY_OP_ADD_UNICODE] = { true, INSTR_FMT_IXC, HAS_EXIT_FLAG | HAS_ERROR_FLAG }, + [BINARY_OP_INPLACE_ADD_UNICODE] = { true, INSTR_FMT_IXC, HAS_LOCAL_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [BINARY_OP_MULTIPLY_FLOAT] = { true, INSTR_FMT_IXC, HAS_EXIT_FLAG }, + [BINARY_OP_MULTIPLY_INT] = { true, INSTR_FMT_IXC, HAS_EXIT_FLAG | HAS_ERROR_FLAG }, + [BINARY_OP_SUBTRACT_FLOAT] = { true, INSTR_FMT_IXC, HAS_EXIT_FLAG }, + [BINARY_OP_SUBTRACT_INT] = { true, INSTR_FMT_IXC, HAS_EXIT_FLAG | HAS_ERROR_FLAG }, + [BINARY_SLICE] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [BINARY_SUBSCR] = { true, INSTR_FMT_IXC, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [BINARY_SUBSCR_DICT] = { true, INSTR_FMT_IXC, HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [BINARY_SUBSCR_GETITEM] = { true, INSTR_FMT_IXC, HAS_DEOPT_FLAG | HAS_ESCAPES_FLAG }, + [BINARY_SUBSCR_LIST_INT] = { true, INSTR_FMT_IXC, HAS_DEOPT_FLAG }, + [BINARY_SUBSCR_STR_INT] = { true, INSTR_FMT_IXC, HAS_DEOPT_FLAG }, + [BINARY_SUBSCR_TUPLE_INT] = { true, INSTR_FMT_IXC, HAS_DEOPT_FLAG }, + [BUILD_CONST_KEY_MAP] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [BUILD_LIST] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG }, + [BUILD_MAP] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [BUILD_SET] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [BUILD_SLICE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG }, + [BUILD_STRING] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG }, + [BUILD_TUPLE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG }, + [CACHE] = { true, INSTR_FMT_IX, 0 }, + [CALL] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [CALL_ALLOC_AND_ENTER_INIT] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [CALL_BOUND_METHOD_EXACT_ARGS] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG }, + [CALL_BOUND_METHOD_GENERAL] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [CALL_BUILTIN_CLASS] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CALL_BUILTIN_FAST] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CALL_BUILTIN_FAST_WITH_KEYWORDS] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CALL_BUILTIN_O] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CALL_FUNCTION_EX] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [CALL_INTRINSIC_1] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CALL_INTRINSIC_2] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CALL_ISINSTANCE] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [CALL_KW] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [CALL_LEN] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [CALL_LIST_APPEND] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG }, + [CALL_METHOD_DESCRIPTOR_FAST] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CALL_METHOD_DESCRIPTOR_NOARGS] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CALL_METHOD_DESCRIPTOR_O] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CALL_NON_PY_GENERAL] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_EXIT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CALL_PY_EXACT_ARGS] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG }, + [CALL_PY_GENERAL] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [CALL_STR_1] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CALL_TUPLE_1] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CALL_TYPE_1] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_DEOPT_FLAG }, + [CHECK_EG_MATCH] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CHECK_EXC_MATCH] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CLEANUP_THROW] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [COMPARE_OP] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [COMPARE_OP_FLOAT] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_EXIT_FLAG }, + [COMPARE_OP_INT] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG }, + [COMPARE_OP_STR] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_EXIT_FLAG }, + [CONTAINS_OP] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CONTAINS_OP_DICT] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CONTAINS_OP_SET] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [CONVERT_VALUE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG }, + [COPY] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_PURE_FLAG }, + [COPY_FREE_VARS] = { true, INSTR_FMT_IB, HAS_ARG_FLAG }, + [DELETE_ATTR] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [DELETE_DEREF] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [DELETE_FAST] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_LOCAL_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [DELETE_GLOBAL] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [DELETE_NAME] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [DELETE_SUBSCR] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [DICT_MERGE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [DICT_UPDATE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [END_ASYNC_FOR] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [END_FOR] = { true, INSTR_FMT_IX, HAS_PURE_FLAG }, + [END_SEND] = { true, INSTR_FMT_IX, HAS_PURE_FLAG }, + [ENTER_EXECUTOR] = { true, INSTR_FMT_IB, HAS_ARG_FLAG }, + [EXIT_INIT_CHECK] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [EXTENDED_ARG] = { true, INSTR_FMT_IB, HAS_ARG_FLAG }, + [FORMAT_SIMPLE] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [FORMAT_WITH_SPEC] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [FOR_ITER] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_JUMP_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [FOR_ITER_GEN] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_DEOPT_FLAG }, + [FOR_ITER_LIST] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_JUMP_FLAG | HAS_EXIT_FLAG }, + [FOR_ITER_RANGE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_JUMP_FLAG | HAS_EXIT_FLAG | HAS_ERROR_FLAG }, + [FOR_ITER_TUPLE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_JUMP_FLAG | HAS_EXIT_FLAG }, + [GET_AITER] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [GET_ANEXT] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [GET_AWAITABLE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [GET_ITER] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [GET_LEN] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [GET_YIELD_FROM_ITER] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [IMPORT_FROM] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [IMPORT_NAME] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [INSTRUMENTED_CALL] = { true, INSTR_FMT_IBC00, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [INSTRUMENTED_CALL_FUNCTION_EX] = { true, INSTR_FMT_IX, 0 }, + [INSTRUMENTED_CALL_KW] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [INSTRUMENTED_END_FOR] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG }, + [INSTRUMENTED_END_SEND] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG }, + [INSTRUMENTED_FOR_ITER] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [INSTRUMENTED_INSTRUCTION] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [INSTRUMENTED_JUMP_BACKWARD] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG }, + [INSTRUMENTED_JUMP_FORWARD] = { true, INSTR_FMT_IB, HAS_ARG_FLAG }, + [INSTRUMENTED_LOAD_SUPER_ATTR] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG }, + [INSTRUMENTED_POP_JUMP_IF_FALSE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG }, + [INSTRUMENTED_POP_JUMP_IF_NONE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG }, + [INSTRUMENTED_POP_JUMP_IF_NOT_NONE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG }, + [INSTRUMENTED_POP_JUMP_IF_TRUE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG }, + [INSTRUMENTED_RESUME] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [INSTRUMENTED_RETURN_CONST] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_CONST_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [INSTRUMENTED_RETURN_VALUE] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [INSTRUMENTED_YIELD_VALUE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [INTERPRETER_EXIT] = { true, INSTR_FMT_IX, HAS_ESCAPES_FLAG }, + [IS_OP] = { true, INSTR_FMT_IB, HAS_ARG_FLAG }, + [JUMP_BACKWARD] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_JUMP_FLAG | HAS_EVAL_BREAK_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [JUMP_BACKWARD_NO_INTERRUPT] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_JUMP_FLAG }, + [JUMP_FORWARD] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_JUMP_FLAG }, + [LIST_APPEND] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG }, + [LIST_EXTEND] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_ASSERTION_ERROR] = { true, INSTR_FMT_IX, 0 }, + [LOAD_ATTR] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_ATTR_CLASS] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_DEOPT_FLAG }, + [LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_ATTR_INSTANCE_VALUE] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG }, + [LOAD_ATTR_METHOD_LAZY_DICT] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG }, + [LOAD_ATTR_METHOD_NO_DICT] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_EXIT_FLAG }, + [LOAD_ATTR_METHOD_WITH_VALUES] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG }, + [LOAD_ATTR_MODULE] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_DEOPT_FLAG }, + [LOAD_ATTR_NONDESCRIPTOR_NO_DICT] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_EXIT_FLAG }, + [LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG }, + [LOAD_ATTR_PROPERTY] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_ATTR_SLOT] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG }, + [LOAD_ATTR_WITH_HINT] = { true, INSTR_FMT_IBC00000000, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_EXIT_FLAG }, + [LOAD_BUILD_CLASS] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_CONST] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_CONST_FLAG | HAS_PURE_FLAG }, + [LOAD_DEREF] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_FAST] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_LOCAL_FLAG | HAS_PURE_FLAG }, + [LOAD_FAST_AND_CLEAR] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_LOCAL_FLAG }, + [LOAD_FAST_CHECK] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_LOCAL_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_FAST_LOAD_FAST] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_LOCAL_FLAG }, + [LOAD_FROM_DICT_OR_DEREF] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_FROM_DICT_OR_GLOBALS] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_GLOBAL] = { true, INSTR_FMT_IBC000, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_GLOBAL_BUILTIN] = { true, INSTR_FMT_IBC000, HAS_ARG_FLAG | HAS_DEOPT_FLAG }, + [LOAD_GLOBAL_MODULE] = { true, INSTR_FMT_IBC000, HAS_ARG_FLAG | HAS_DEOPT_FLAG }, + [LOAD_LOCALS] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_NAME] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_SUPER_ATTR] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_SUPER_ATTR_ATTR] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_SUPER_ATTR_METHOD] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [MAKE_CELL] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG }, + [MAKE_FUNCTION] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [MAP_ADD] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [MATCH_CLASS] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [MATCH_KEYS] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [MATCH_MAPPING] = { true, INSTR_FMT_IX, 0 }, + [MATCH_SEQUENCE] = { true, INSTR_FMT_IX, 0 }, + [NOP] = { true, INSTR_FMT_IX, HAS_PURE_FLAG }, + [POP_EXCEPT] = { true, INSTR_FMT_IX, HAS_ESCAPES_FLAG }, + [POP_JUMP_IF_FALSE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_JUMP_FLAG }, + [POP_JUMP_IF_NONE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_JUMP_FLAG }, + [POP_JUMP_IF_NOT_NONE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_JUMP_FLAG }, + [POP_JUMP_IF_TRUE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_JUMP_FLAG }, + [POP_TOP] = { true, INSTR_FMT_IX, HAS_PURE_FLAG }, + [PUSH_EXC_INFO] = { true, INSTR_FMT_IX, 0 }, + [PUSH_NULL] = { true, INSTR_FMT_IX, HAS_PURE_FLAG }, + [RAISE_VARARGS] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [RERAISE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [RESERVED] = { true, INSTR_FMT_IX, 0 }, + [RESUME] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [RESUME_CHECK] = { true, INSTR_FMT_IX, HAS_DEOPT_FLAG }, + [RETURN_CONST] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_CONST_FLAG }, + [RETURN_GENERATOR] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [RETURN_VALUE] = { true, INSTR_FMT_IX, 0 }, + [SEND] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_JUMP_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG }, + [SEND_GEN] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_DEOPT_FLAG }, + [SETUP_ANNOTATIONS] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [SET_ADD] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [SET_FUNCTION_ATTRIBUTE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ESCAPES_FLAG }, + [SET_UPDATE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [STORE_ATTR] = { true, INSTR_FMT_IBC000, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [STORE_ATTR_INSTANCE_VALUE] = { true, INSTR_FMT_IXC000, HAS_DEOPT_FLAG | HAS_EXIT_FLAG }, + [STORE_ATTR_SLOT] = { true, INSTR_FMT_IXC000, HAS_EXIT_FLAG }, + [STORE_ATTR_WITH_HINT] = { true, INSTR_FMT_IBC000, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ESCAPES_FLAG }, + [STORE_DEREF] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ESCAPES_FLAG }, + [STORE_FAST] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_LOCAL_FLAG }, + [STORE_FAST_LOAD_FAST] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_LOCAL_FLAG }, + [STORE_FAST_STORE_FAST] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_LOCAL_FLAG }, + [STORE_GLOBAL] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [STORE_NAME] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [STORE_SLICE] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [STORE_SUBSCR] = { true, INSTR_FMT_IXC, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [STORE_SUBSCR_DICT] = { true, INSTR_FMT_IXC, HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [STORE_SUBSCR_LIST_INT] = { true, INSTR_FMT_IXC, HAS_DEOPT_FLAG }, + [SWAP] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_PURE_FLAG }, + [TO_BOOL] = { true, INSTR_FMT_IXC00, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [TO_BOOL_ALWAYS_TRUE] = { true, INSTR_FMT_IXC00, HAS_EXIT_FLAG }, + [TO_BOOL_BOOL] = { true, INSTR_FMT_IXC00, HAS_EXIT_FLAG }, + [TO_BOOL_INT] = { true, INSTR_FMT_IXC00, HAS_EXIT_FLAG | HAS_ESCAPES_FLAG }, + [TO_BOOL_LIST] = { true, INSTR_FMT_IXC00, HAS_EXIT_FLAG }, + [TO_BOOL_NONE] = { true, INSTR_FMT_IXC00, HAS_EXIT_FLAG }, + [TO_BOOL_STR] = { true, INSTR_FMT_IXC00, HAS_EXIT_FLAG | HAS_ESCAPES_FLAG }, + [UNARY_INVERT] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [UNARY_NEGATIVE] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [UNARY_NOT] = { true, INSTR_FMT_IX, HAS_PURE_FLAG }, + [UNPACK_EX] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [UNPACK_SEQUENCE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [UNPACK_SEQUENCE_LIST] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_DEOPT_FLAG }, + [UNPACK_SEQUENCE_TUPLE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_DEOPT_FLAG }, + [UNPACK_SEQUENCE_TWO_TUPLE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_DEOPT_FLAG }, + [WITH_EXCEPT_START] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [YIELD_VALUE] = { true, INSTR_FMT_IB, HAS_ARG_FLAG | HAS_ESCAPES_FLAG }, + [JUMP] = { true, -1, HAS_ARG_FLAG | HAS_JUMP_FLAG | HAS_EVAL_BREAK_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [JUMP_NO_INTERRUPT] = { true, -1, HAS_ARG_FLAG | HAS_JUMP_FLAG }, + [LOAD_CLOSURE] = { true, -1, HAS_ARG_FLAG | HAS_LOCAL_FLAG | HAS_PURE_FLAG }, + [LOAD_METHOD] = { true, -1, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_SUPER_METHOD] = { true, -1, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_ZERO_SUPER_ATTR] = { true, -1, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [LOAD_ZERO_SUPER_METHOD] = { true, -1, HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG }, + [POP_BLOCK] = { true, -1, HAS_PURE_FLAG }, + [SETUP_CLEANUP] = { true, -1, HAS_PURE_FLAG | HAS_ARG_FLAG }, + [SETUP_FINALLY] = { true, -1, HAS_PURE_FLAG | HAS_ARG_FLAG }, + [SETUP_WITH] = { true, -1, HAS_PURE_FLAG | HAS_ARG_FLAG }, + [STORE_FAST_MAYBE_NULL] = { true, -1, HAS_ARG_FLAG | HAS_LOCAL_FLAG }, +}; +#endif + +#define MAX_UOP_PER_EXPANSION 8 +struct opcode_macro_expansion { + int nuops; + struct { int16_t uop; int8_t size; int8_t offset; } uops[MAX_UOP_PER_EXPANSION]; +}; +extern const struct opcode_macro_expansion _PyOpcode_macro_expansion[256]; + +#ifdef NEED_OPCODE_METADATA +const struct opcode_macro_expansion +_PyOpcode_macro_expansion[256] = { + [BINARY_OP] = { .nuops = 1, .uops = { { _BINARY_OP, 0, 0 } } }, + [BINARY_OP_ADD_FLOAT] = { .nuops = 2, .uops = { { _GUARD_BOTH_FLOAT, 0, 0 }, { _BINARY_OP_ADD_FLOAT, 0, 0 } } }, + [BINARY_OP_ADD_INT] = { .nuops = 2, .uops = { { _GUARD_BOTH_INT, 0, 0 }, { _BINARY_OP_ADD_INT, 0, 0 } } }, + [BINARY_OP_ADD_UNICODE] = { .nuops = 2, .uops = { { _GUARD_BOTH_UNICODE, 0, 0 }, { _BINARY_OP_ADD_UNICODE, 0, 0 } } }, + [BINARY_OP_MULTIPLY_FLOAT] = { .nuops = 2, .uops = { { _GUARD_BOTH_FLOAT, 0, 0 }, { _BINARY_OP_MULTIPLY_FLOAT, 0, 0 } } }, + [BINARY_OP_MULTIPLY_INT] = { .nuops = 2, .uops = { { _GUARD_BOTH_INT, 0, 0 }, { _BINARY_OP_MULTIPLY_INT, 0, 0 } } }, + [BINARY_OP_SUBTRACT_FLOAT] = { .nuops = 2, .uops = { { _GUARD_BOTH_FLOAT, 0, 0 }, { _BINARY_OP_SUBTRACT_FLOAT, 0, 0 } } }, + [BINARY_OP_SUBTRACT_INT] = { .nuops = 2, .uops = { { _GUARD_BOTH_INT, 0, 0 }, { _BINARY_OP_SUBTRACT_INT, 0, 0 } } }, + [BINARY_SLICE] = { .nuops = 1, .uops = { { _BINARY_SLICE, 0, 0 } } }, + [BINARY_SUBSCR] = { .nuops = 1, .uops = { { _BINARY_SUBSCR, 0, 0 } } }, + [BINARY_SUBSCR_DICT] = { .nuops = 1, .uops = { { _BINARY_SUBSCR_DICT, 0, 0 } } }, + [BINARY_SUBSCR_LIST_INT] = { .nuops = 1, .uops = { { _BINARY_SUBSCR_LIST_INT, 0, 0 } } }, + [BINARY_SUBSCR_STR_INT] = { .nuops = 1, .uops = { { _BINARY_SUBSCR_STR_INT, 0, 0 } } }, + [BINARY_SUBSCR_TUPLE_INT] = { .nuops = 1, .uops = { { _BINARY_SUBSCR_TUPLE_INT, 0, 0 } } }, + [BUILD_CONST_KEY_MAP] = { .nuops = 1, .uops = { { _BUILD_CONST_KEY_MAP, 0, 0 } } }, + [BUILD_LIST] = { .nuops = 1, .uops = { { _BUILD_LIST, 0, 0 } } }, + [BUILD_MAP] = { .nuops = 1, .uops = { { _BUILD_MAP, 0, 0 } } }, + [BUILD_SLICE] = { .nuops = 1, .uops = { { _BUILD_SLICE, 0, 0 } } }, + [BUILD_STRING] = { .nuops = 1, .uops = { { _BUILD_STRING, 0, 0 } } }, + [BUILD_TUPLE] = { .nuops = 1, .uops = { { _BUILD_TUPLE, 0, 0 } } }, + [CALL_BOUND_METHOD_EXACT_ARGS] = { .nuops = 8, .uops = { { _CHECK_PEP_523, 0, 0 }, { _CHECK_CALL_BOUND_METHOD_EXACT_ARGS, 0, 0 }, { _INIT_CALL_BOUND_METHOD_EXACT_ARGS, 0, 0 }, { _CHECK_FUNCTION_EXACT_ARGS, 2, 1 }, { _CHECK_STACK_SPACE, 0, 0 }, { _INIT_CALL_PY_EXACT_ARGS, 0, 0 }, { _SAVE_RETURN_OFFSET, 7, 3 }, { _PUSH_FRAME, 0, 0 } } }, + [CALL_BOUND_METHOD_GENERAL] = { .nuops = 6, .uops = { { _CHECK_PEP_523, 0, 0 }, { _CHECK_METHOD_VERSION, 2, 1 }, { _EXPAND_METHOD, 0, 0 }, { _PY_FRAME_GENERAL, 0, 0 }, { _SAVE_RETURN_OFFSET, 7, 3 }, { _PUSH_FRAME, 0, 0 } } }, + [CALL_BUILTIN_CLASS] = { .nuops = 2, .uops = { { _CALL_BUILTIN_CLASS, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } }, + [CALL_BUILTIN_FAST] = { .nuops = 2, .uops = { { _CALL_BUILTIN_FAST, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } }, + [CALL_BUILTIN_FAST_WITH_KEYWORDS] = { .nuops = 2, .uops = { { _CALL_BUILTIN_FAST_WITH_KEYWORDS, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } }, + [CALL_BUILTIN_O] = { .nuops = 2, .uops = { { _CALL_BUILTIN_O, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } }, + [CALL_INTRINSIC_1] = { .nuops = 1, .uops = { { _CALL_INTRINSIC_1, 0, 0 } } }, + [CALL_INTRINSIC_2] = { .nuops = 1, .uops = { { _CALL_INTRINSIC_2, 0, 0 } } }, + [CALL_ISINSTANCE] = { .nuops = 1, .uops = { { _CALL_ISINSTANCE, 0, 0 } } }, + [CALL_LEN] = { .nuops = 1, .uops = { { _CALL_LEN, 0, 0 } } }, + [CALL_METHOD_DESCRIPTOR_FAST] = { .nuops = 2, .uops = { { _CALL_METHOD_DESCRIPTOR_FAST, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } }, + [CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = { .nuops = 2, .uops = { { _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } }, + [CALL_METHOD_DESCRIPTOR_NOARGS] = { .nuops = 2, .uops = { { _CALL_METHOD_DESCRIPTOR_NOARGS, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } }, + [CALL_METHOD_DESCRIPTOR_O] = { .nuops = 2, .uops = { { _CALL_METHOD_DESCRIPTOR_O, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } }, + [CALL_NON_PY_GENERAL] = { .nuops = 3, .uops = { { _CHECK_IS_NOT_PY_CALLABLE, 0, 0 }, { _CALL_NON_PY_GENERAL, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } }, + [CALL_PY_EXACT_ARGS] = { .nuops = 6, .uops = { { _CHECK_PEP_523, 0, 0 }, { _CHECK_FUNCTION_EXACT_ARGS, 2, 1 }, { _CHECK_STACK_SPACE, 0, 0 }, { _INIT_CALL_PY_EXACT_ARGS, 0, 0 }, { _SAVE_RETURN_OFFSET, 7, 3 }, { _PUSH_FRAME, 0, 0 } } }, + [CALL_PY_GENERAL] = { .nuops = 5, .uops = { { _CHECK_PEP_523, 0, 0 }, { _CHECK_FUNCTION_VERSION, 2, 1 }, { _PY_FRAME_GENERAL, 0, 0 }, { _SAVE_RETURN_OFFSET, 7, 3 }, { _PUSH_FRAME, 0, 0 } } }, + [CALL_STR_1] = { .nuops = 2, .uops = { { _CALL_STR_1, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } }, + [CALL_TUPLE_1] = { .nuops = 2, .uops = { { _CALL_TUPLE_1, 0, 0 }, { _CHECK_PERIODIC, 0, 0 } } }, + [CALL_TYPE_1] = { .nuops = 1, .uops = { { _CALL_TYPE_1, 0, 0 } } }, + [CHECK_EG_MATCH] = { .nuops = 1, .uops = { { _CHECK_EG_MATCH, 0, 0 } } }, + [CHECK_EXC_MATCH] = { .nuops = 1, .uops = { { _CHECK_EXC_MATCH, 0, 0 } } }, + [COMPARE_OP] = { .nuops = 1, .uops = { { _COMPARE_OP, 0, 0 } } }, + [COMPARE_OP_FLOAT] = { .nuops = 2, .uops = { { _GUARD_BOTH_FLOAT, 0, 0 }, { _COMPARE_OP_FLOAT, 0, 0 } } }, + [COMPARE_OP_INT] = { .nuops = 2, .uops = { { _GUARD_BOTH_INT, 0, 0 }, { _COMPARE_OP_INT, 0, 0 } } }, + [COMPARE_OP_STR] = { .nuops = 2, .uops = { { _GUARD_BOTH_UNICODE, 0, 0 }, { _COMPARE_OP_STR, 0, 0 } } }, + [CONTAINS_OP] = { .nuops = 1, .uops = { { _CONTAINS_OP, 0, 0 } } }, + [CONTAINS_OP_DICT] = { .nuops = 1, .uops = { { _CONTAINS_OP_DICT, 0, 0 } } }, + [CONTAINS_OP_SET] = { .nuops = 1, .uops = { { _CONTAINS_OP_SET, 0, 0 } } }, + [CONVERT_VALUE] = { .nuops = 1, .uops = { { _CONVERT_VALUE, 0, 0 } } }, + [COPY] = { .nuops = 1, .uops = { { _COPY, 0, 0 } } }, + [COPY_FREE_VARS] = { .nuops = 1, .uops = { { _COPY_FREE_VARS, 0, 0 } } }, + [DELETE_ATTR] = { .nuops = 1, .uops = { { _DELETE_ATTR, 0, 0 } } }, + [DELETE_DEREF] = { .nuops = 1, .uops = { { _DELETE_DEREF, 0, 0 } } }, + [DELETE_FAST] = { .nuops = 1, .uops = { { _DELETE_FAST, 0, 0 } } }, + [DELETE_GLOBAL] = { .nuops = 1, .uops = { { _DELETE_GLOBAL, 0, 0 } } }, + [DELETE_NAME] = { .nuops = 1, .uops = { { _DELETE_NAME, 0, 0 } } }, + [DELETE_SUBSCR] = { .nuops = 1, .uops = { { _DELETE_SUBSCR, 0, 0 } } }, + [DICT_MERGE] = { .nuops = 1, .uops = { { _DICT_MERGE, 0, 0 } } }, + [DICT_UPDATE] = { .nuops = 1, .uops = { { _DICT_UPDATE, 0, 0 } } }, + [END_FOR] = { .nuops = 1, .uops = { { _POP_TOP, 0, 0 } } }, + [END_SEND] = { .nuops = 1, .uops = { { _END_SEND, 0, 0 } } }, + [EXIT_INIT_CHECK] = { .nuops = 1, .uops = { { _EXIT_INIT_CHECK, 0, 0 } } }, + [FORMAT_SIMPLE] = { .nuops = 1, .uops = { { _FORMAT_SIMPLE, 0, 0 } } }, + [FORMAT_WITH_SPEC] = { .nuops = 1, .uops = { { _FORMAT_WITH_SPEC, 0, 0 } } }, + [FOR_ITER] = { .nuops = 1, .uops = { { _FOR_ITER, 9, 0 } } }, + [FOR_ITER_GEN] = { .nuops = 3, .uops = { { _CHECK_PEP_523, 0, 0 }, { _FOR_ITER_GEN_FRAME, 0, 0 }, { _PUSH_FRAME, 0, 0 } } }, + [FOR_ITER_LIST] = { .nuops = 3, .uops = { { _ITER_CHECK_LIST, 0, 0 }, { _ITER_JUMP_LIST, 9, 1 }, { _ITER_NEXT_LIST, 0, 0 } } }, + [FOR_ITER_RANGE] = { .nuops = 3, .uops = { { _ITER_CHECK_RANGE, 0, 0 }, { _ITER_JUMP_RANGE, 9, 1 }, { _ITER_NEXT_RANGE, 0, 0 } } }, + [FOR_ITER_TUPLE] = { .nuops = 3, .uops = { { _ITER_CHECK_TUPLE, 0, 0 }, { _ITER_JUMP_TUPLE, 9, 1 }, { _ITER_NEXT_TUPLE, 0, 0 } } }, + [GET_AITER] = { .nuops = 1, .uops = { { _GET_AITER, 0, 0 } } }, + [GET_ANEXT] = { .nuops = 1, .uops = { { _GET_ANEXT, 0, 0 } } }, + [GET_AWAITABLE] = { .nuops = 1, .uops = { { _GET_AWAITABLE, 0, 0 } } }, + [GET_ITER] = { .nuops = 1, .uops = { { _GET_ITER, 0, 0 } } }, + [GET_LEN] = { .nuops = 1, .uops = { { _GET_LEN, 0, 0 } } }, + [GET_YIELD_FROM_ITER] = { .nuops = 1, .uops = { { _GET_YIELD_FROM_ITER, 0, 0 } } }, + [IS_OP] = { .nuops = 1, .uops = { { _IS_OP, 0, 0 } } }, + [LIST_APPEND] = { .nuops = 1, .uops = { { _LIST_APPEND, 0, 0 } } }, + [LIST_EXTEND] = { .nuops = 1, .uops = { { _LIST_EXTEND, 0, 0 } } }, + [LOAD_ASSERTION_ERROR] = { .nuops = 1, .uops = { { _LOAD_ASSERTION_ERROR, 0, 0 } } }, + [LOAD_ATTR] = { .nuops = 1, .uops = { { _LOAD_ATTR, 0, 0 } } }, + [LOAD_ATTR_CLASS] = { .nuops = 2, .uops = { { _CHECK_ATTR_CLASS, 2, 1 }, { _LOAD_ATTR_CLASS, 4, 5 } } }, + [LOAD_ATTR_INSTANCE_VALUE] = { .nuops = 3, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _CHECK_MANAGED_OBJECT_HAS_VALUES, 0, 0 }, { _LOAD_ATTR_INSTANCE_VALUE, 1, 3 } } }, + [LOAD_ATTR_METHOD_LAZY_DICT] = { .nuops = 3, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _CHECK_ATTR_METHOD_LAZY_DICT, 1, 3 }, { _LOAD_ATTR_METHOD_LAZY_DICT, 4, 5 } } }, + [LOAD_ATTR_METHOD_NO_DICT] = { .nuops = 2, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _LOAD_ATTR_METHOD_NO_DICT, 4, 5 } } }, + [LOAD_ATTR_METHOD_WITH_VALUES] = { .nuops = 4, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT, 0, 0 }, { _GUARD_KEYS_VERSION, 2, 3 }, { _LOAD_ATTR_METHOD_WITH_VALUES, 4, 5 } } }, + [LOAD_ATTR_MODULE] = { .nuops = 2, .uops = { { _CHECK_ATTR_MODULE, 2, 1 }, { _LOAD_ATTR_MODULE, 1, 3 } } }, + [LOAD_ATTR_NONDESCRIPTOR_NO_DICT] = { .nuops = 2, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _LOAD_ATTR_NONDESCRIPTOR_NO_DICT, 4, 5 } } }, + [LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES] = { .nuops = 4, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT, 0, 0 }, { _GUARD_KEYS_VERSION, 2, 3 }, { _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES, 4, 5 } } }, + [LOAD_ATTR_SLOT] = { .nuops = 2, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _LOAD_ATTR_SLOT, 1, 3 } } }, + [LOAD_ATTR_WITH_HINT] = { .nuops = 3, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _CHECK_ATTR_WITH_HINT, 0, 0 }, { _LOAD_ATTR_WITH_HINT, 1, 3 } } }, + [LOAD_BUILD_CLASS] = { .nuops = 1, .uops = { { _LOAD_BUILD_CLASS, 0, 0 } } }, + [LOAD_CONST] = { .nuops = 1, .uops = { { _LOAD_CONST, 0, 0 } } }, + [LOAD_DEREF] = { .nuops = 1, .uops = { { _LOAD_DEREF, 0, 0 } } }, + [LOAD_FAST] = { .nuops = 1, .uops = { { _LOAD_FAST, 0, 0 } } }, + [LOAD_FAST_AND_CLEAR] = { .nuops = 1, .uops = { { _LOAD_FAST_AND_CLEAR, 0, 0 } } }, + [LOAD_FAST_CHECK] = { .nuops = 1, .uops = { { _LOAD_FAST_CHECK, 0, 0 } } }, + [LOAD_FAST_LOAD_FAST] = { .nuops = 2, .uops = { { _LOAD_FAST, 5, 0 }, { _LOAD_FAST, 6, 0 } } }, + [LOAD_FROM_DICT_OR_DEREF] = { .nuops = 1, .uops = { { _LOAD_FROM_DICT_OR_DEREF, 0, 0 } } }, + [LOAD_GLOBAL] = { .nuops = 1, .uops = { { _LOAD_GLOBAL, 0, 0 } } }, + [LOAD_GLOBAL_BUILTIN] = { .nuops = 3, .uops = { { _GUARD_GLOBALS_VERSION, 1, 1 }, { _GUARD_BUILTINS_VERSION, 1, 2 }, { _LOAD_GLOBAL_BUILTINS, 1, 3 } } }, + [LOAD_GLOBAL_MODULE] = { .nuops = 2, .uops = { { _GUARD_GLOBALS_VERSION, 1, 1 }, { _LOAD_GLOBAL_MODULE, 1, 3 } } }, + [LOAD_LOCALS] = { .nuops = 1, .uops = { { _LOAD_LOCALS, 0, 0 } } }, + [LOAD_SUPER_ATTR_ATTR] = { .nuops = 1, .uops = { { _LOAD_SUPER_ATTR_ATTR, 0, 0 } } }, + [LOAD_SUPER_ATTR_METHOD] = { .nuops = 1, .uops = { { _LOAD_SUPER_ATTR_METHOD, 0, 0 } } }, + [MAKE_CELL] = { .nuops = 1, .uops = { { _MAKE_CELL, 0, 0 } } }, + [MAKE_FUNCTION] = { .nuops = 1, .uops = { { _MAKE_FUNCTION, 0, 0 } } }, + [MAP_ADD] = { .nuops = 1, .uops = { { _MAP_ADD, 0, 0 } } }, + [MATCH_CLASS] = { .nuops = 1, .uops = { { _MATCH_CLASS, 0, 0 } } }, + [MATCH_KEYS] = { .nuops = 1, .uops = { { _MATCH_KEYS, 0, 0 } } }, + [MATCH_MAPPING] = { .nuops = 1, .uops = { { _MATCH_MAPPING, 0, 0 } } }, + [MATCH_SEQUENCE] = { .nuops = 1, .uops = { { _MATCH_SEQUENCE, 0, 0 } } }, + [NOP] = { .nuops = 1, .uops = { { _NOP, 0, 0 } } }, + [POP_EXCEPT] = { .nuops = 1, .uops = { { _POP_EXCEPT, 0, 0 } } }, + [POP_JUMP_IF_FALSE] = { .nuops = 1, .uops = { { _POP_JUMP_IF_FALSE, 9, 1 } } }, + [POP_JUMP_IF_NONE] = { .nuops = 2, .uops = { { _IS_NONE, 0, 0 }, { _POP_JUMP_IF_TRUE, 9, 1 } } }, + [POP_JUMP_IF_NOT_NONE] = { .nuops = 2, .uops = { { _IS_NONE, 0, 0 }, { _POP_JUMP_IF_FALSE, 9, 1 } } }, + [POP_JUMP_IF_TRUE] = { .nuops = 1, .uops = { { _POP_JUMP_IF_TRUE, 9, 1 } } }, + [POP_TOP] = { .nuops = 1, .uops = { { _POP_TOP, 0, 0 } } }, + [PUSH_EXC_INFO] = { .nuops = 1, .uops = { { _PUSH_EXC_INFO, 0, 0 } } }, + [PUSH_NULL] = { .nuops = 1, .uops = { { _PUSH_NULL, 0, 0 } } }, + [RESUME_CHECK] = { .nuops = 1, .uops = { { _RESUME_CHECK, 0, 0 } } }, + [RETURN_CONST] = { .nuops = 2, .uops = { { _LOAD_CONST, 0, 0 }, { _POP_FRAME, 0, 0 } } }, + [RETURN_GENERATOR] = { .nuops = 1, .uops = { { _RETURN_GENERATOR, 0, 0 } } }, + [RETURN_VALUE] = { .nuops = 1, .uops = { { _POP_FRAME, 0, 0 } } }, + [SETUP_ANNOTATIONS] = { .nuops = 1, .uops = { { _SETUP_ANNOTATIONS, 0, 0 } } }, + [SET_ADD] = { .nuops = 1, .uops = { { _SET_ADD, 0, 0 } } }, + [SET_FUNCTION_ATTRIBUTE] = { .nuops = 1, .uops = { { _SET_FUNCTION_ATTRIBUTE, 0, 0 } } }, + [SET_UPDATE] = { .nuops = 1, .uops = { { _SET_UPDATE, 0, 0 } } }, + [STORE_ATTR] = { .nuops = 1, .uops = { { _STORE_ATTR, 0, 0 } } }, + [STORE_ATTR_INSTANCE_VALUE] = { .nuops = 3, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _GUARD_DORV_NO_DICT, 0, 0 }, { _STORE_ATTR_INSTANCE_VALUE, 1, 3 } } }, + [STORE_ATTR_SLOT] = { .nuops = 2, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _STORE_ATTR_SLOT, 1, 3 } } }, + [STORE_DEREF] = { .nuops = 1, .uops = { { _STORE_DEREF, 0, 0 } } }, + [STORE_FAST] = { .nuops = 1, .uops = { { _STORE_FAST, 0, 0 } } }, + [STORE_FAST_LOAD_FAST] = { .nuops = 2, .uops = { { _STORE_FAST, 5, 0 }, { _LOAD_FAST, 6, 0 } } }, + [STORE_FAST_STORE_FAST] = { .nuops = 2, .uops = { { _STORE_FAST, 5, 0 }, { _STORE_FAST, 6, 0 } } }, + [STORE_GLOBAL] = { .nuops = 1, .uops = { { _STORE_GLOBAL, 0, 0 } } }, + [STORE_NAME] = { .nuops = 1, .uops = { { _STORE_NAME, 0, 0 } } }, + [STORE_SLICE] = { .nuops = 1, .uops = { { _STORE_SLICE, 0, 0 } } }, + [STORE_SUBSCR] = { .nuops = 1, .uops = { { _STORE_SUBSCR, 0, 0 } } }, + [STORE_SUBSCR_DICT] = { .nuops = 1, .uops = { { _STORE_SUBSCR_DICT, 0, 0 } } }, + [STORE_SUBSCR_LIST_INT] = { .nuops = 1, .uops = { { _STORE_SUBSCR_LIST_INT, 0, 0 } } }, + [SWAP] = { .nuops = 1, .uops = { { _SWAP, 0, 0 } } }, + [TO_BOOL] = { .nuops = 1, .uops = { { _TO_BOOL, 0, 0 } } }, + [TO_BOOL_ALWAYS_TRUE] = { .nuops = 2, .uops = { { _GUARD_TYPE_VERSION, 2, 1 }, { _REPLACE_WITH_TRUE, 0, 0 } } }, + [TO_BOOL_BOOL] = { .nuops = 1, .uops = { { _TO_BOOL_BOOL, 0, 0 } } }, + [TO_BOOL_INT] = { .nuops = 1, .uops = { { _TO_BOOL_INT, 0, 0 } } }, + [TO_BOOL_LIST] = { .nuops = 1, .uops = { { _TO_BOOL_LIST, 0, 0 } } }, + [TO_BOOL_NONE] = { .nuops = 1, .uops = { { _TO_BOOL_NONE, 0, 0 } } }, + [TO_BOOL_STR] = { .nuops = 1, .uops = { { _TO_BOOL_STR, 0, 0 } } }, + [UNARY_INVERT] = { .nuops = 1, .uops = { { _UNARY_INVERT, 0, 0 } } }, + [UNARY_NEGATIVE] = { .nuops = 1, .uops = { { _UNARY_NEGATIVE, 0, 0 } } }, + [UNARY_NOT] = { .nuops = 1, .uops = { { _UNARY_NOT, 0, 0 } } }, + [UNPACK_EX] = { .nuops = 1, .uops = { { _UNPACK_EX, 0, 0 } } }, + [UNPACK_SEQUENCE] = { .nuops = 1, .uops = { { _UNPACK_SEQUENCE, 0, 0 } } }, + [UNPACK_SEQUENCE_LIST] = { .nuops = 1, .uops = { { _UNPACK_SEQUENCE_LIST, 0, 0 } } }, + [UNPACK_SEQUENCE_TUPLE] = { .nuops = 1, .uops = { { _UNPACK_SEQUENCE_TUPLE, 0, 0 } } }, + [UNPACK_SEQUENCE_TWO_TUPLE] = { .nuops = 1, .uops = { { _UNPACK_SEQUENCE_TWO_TUPLE, 0, 0 } } }, + [WITH_EXCEPT_START] = { .nuops = 1, .uops = { { _WITH_EXCEPT_START, 0, 0 } } }, + [YIELD_VALUE] = { .nuops = 1, .uops = { { _YIELD_VALUE, 0, 0 } } }, +}; +#endif // NEED_OPCODE_METADATA + +extern const char *_PyOpcode_OpName[268]; +#ifdef NEED_OPCODE_METADATA +const char *_PyOpcode_OpName[268] = { + [BEFORE_ASYNC_WITH] = "BEFORE_ASYNC_WITH", + [BEFORE_WITH] = "BEFORE_WITH", + [BINARY_OP] = "BINARY_OP", + [BINARY_OP_ADD_FLOAT] = "BINARY_OP_ADD_FLOAT", + [BINARY_OP_ADD_INT] = "BINARY_OP_ADD_INT", + [BINARY_OP_ADD_UNICODE] = "BINARY_OP_ADD_UNICODE", + [BINARY_OP_INPLACE_ADD_UNICODE] = "BINARY_OP_INPLACE_ADD_UNICODE", + [BINARY_OP_MULTIPLY_FLOAT] = "BINARY_OP_MULTIPLY_FLOAT", + [BINARY_OP_MULTIPLY_INT] = "BINARY_OP_MULTIPLY_INT", + [BINARY_OP_SUBTRACT_FLOAT] = "BINARY_OP_SUBTRACT_FLOAT", + [BINARY_OP_SUBTRACT_INT] = "BINARY_OP_SUBTRACT_INT", + [BINARY_SLICE] = "BINARY_SLICE", + [BINARY_SUBSCR] = "BINARY_SUBSCR", + [BINARY_SUBSCR_DICT] = "BINARY_SUBSCR_DICT", + [BINARY_SUBSCR_GETITEM] = "BINARY_SUBSCR_GETITEM", + [BINARY_SUBSCR_LIST_INT] = "BINARY_SUBSCR_LIST_INT", + [BINARY_SUBSCR_STR_INT] = "BINARY_SUBSCR_STR_INT", + [BINARY_SUBSCR_TUPLE_INT] = "BINARY_SUBSCR_TUPLE_INT", + [BUILD_CONST_KEY_MAP] = "BUILD_CONST_KEY_MAP", + [BUILD_LIST] = "BUILD_LIST", + [BUILD_MAP] = "BUILD_MAP", + [BUILD_SET] = "BUILD_SET", + [BUILD_SLICE] = "BUILD_SLICE", + [BUILD_STRING] = "BUILD_STRING", + [BUILD_TUPLE] = "BUILD_TUPLE", + [CACHE] = "CACHE", + [CALL] = "CALL", + [CALL_ALLOC_AND_ENTER_INIT] = "CALL_ALLOC_AND_ENTER_INIT", + [CALL_BOUND_METHOD_EXACT_ARGS] = "CALL_BOUND_METHOD_EXACT_ARGS", + [CALL_BOUND_METHOD_GENERAL] = "CALL_BOUND_METHOD_GENERAL", + [CALL_BUILTIN_CLASS] = "CALL_BUILTIN_CLASS", + [CALL_BUILTIN_FAST] = "CALL_BUILTIN_FAST", + [CALL_BUILTIN_FAST_WITH_KEYWORDS] = "CALL_BUILTIN_FAST_WITH_KEYWORDS", + [CALL_BUILTIN_O] = "CALL_BUILTIN_O", + [CALL_FUNCTION_EX] = "CALL_FUNCTION_EX", + [CALL_INTRINSIC_1] = "CALL_INTRINSIC_1", + [CALL_INTRINSIC_2] = "CALL_INTRINSIC_2", + [CALL_ISINSTANCE] = "CALL_ISINSTANCE", + [CALL_KW] = "CALL_KW", + [CALL_LEN] = "CALL_LEN", + [CALL_LIST_APPEND] = "CALL_LIST_APPEND", + [CALL_METHOD_DESCRIPTOR_FAST] = "CALL_METHOD_DESCRIPTOR_FAST", + [CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = "CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS", + [CALL_METHOD_DESCRIPTOR_NOARGS] = "CALL_METHOD_DESCRIPTOR_NOARGS", + [CALL_METHOD_DESCRIPTOR_O] = "CALL_METHOD_DESCRIPTOR_O", + [CALL_NON_PY_GENERAL] = "CALL_NON_PY_GENERAL", + [CALL_PY_EXACT_ARGS] = "CALL_PY_EXACT_ARGS", + [CALL_PY_GENERAL] = "CALL_PY_GENERAL", + [CALL_STR_1] = "CALL_STR_1", + [CALL_TUPLE_1] = "CALL_TUPLE_1", + [CALL_TYPE_1] = "CALL_TYPE_1", + [CHECK_EG_MATCH] = "CHECK_EG_MATCH", + [CHECK_EXC_MATCH] = "CHECK_EXC_MATCH", + [CLEANUP_THROW] = "CLEANUP_THROW", + [COMPARE_OP] = "COMPARE_OP", + [COMPARE_OP_FLOAT] = "COMPARE_OP_FLOAT", + [COMPARE_OP_INT] = "COMPARE_OP_INT", + [COMPARE_OP_STR] = "COMPARE_OP_STR", + [CONTAINS_OP] = "CONTAINS_OP", + [CONTAINS_OP_DICT] = "CONTAINS_OP_DICT", + [CONTAINS_OP_SET] = "CONTAINS_OP_SET", + [CONVERT_VALUE] = "CONVERT_VALUE", + [COPY] = "COPY", + [COPY_FREE_VARS] = "COPY_FREE_VARS", + [DELETE_ATTR] = "DELETE_ATTR", + [DELETE_DEREF] = "DELETE_DEREF", + [DELETE_FAST] = "DELETE_FAST", + [DELETE_GLOBAL] = "DELETE_GLOBAL", + [DELETE_NAME] = "DELETE_NAME", + [DELETE_SUBSCR] = "DELETE_SUBSCR", + [DICT_MERGE] = "DICT_MERGE", + [DICT_UPDATE] = "DICT_UPDATE", + [END_ASYNC_FOR] = "END_ASYNC_FOR", + [END_FOR] = "END_FOR", + [END_SEND] = "END_SEND", + [ENTER_EXECUTOR] = "ENTER_EXECUTOR", + [EXIT_INIT_CHECK] = "EXIT_INIT_CHECK", + [EXTENDED_ARG] = "EXTENDED_ARG", + [FORMAT_SIMPLE] = "FORMAT_SIMPLE", + [FORMAT_WITH_SPEC] = "FORMAT_WITH_SPEC", + [FOR_ITER] = "FOR_ITER", + [FOR_ITER_GEN] = "FOR_ITER_GEN", + [FOR_ITER_LIST] = "FOR_ITER_LIST", + [FOR_ITER_RANGE] = "FOR_ITER_RANGE", + [FOR_ITER_TUPLE] = "FOR_ITER_TUPLE", + [GET_AITER] = "GET_AITER", + [GET_ANEXT] = "GET_ANEXT", + [GET_AWAITABLE] = "GET_AWAITABLE", + [GET_ITER] = "GET_ITER", + [GET_LEN] = "GET_LEN", + [GET_YIELD_FROM_ITER] = "GET_YIELD_FROM_ITER", + [IMPORT_FROM] = "IMPORT_FROM", + [IMPORT_NAME] = "IMPORT_NAME", + [INSTRUMENTED_CALL] = "INSTRUMENTED_CALL", + [INSTRUMENTED_CALL_FUNCTION_EX] = "INSTRUMENTED_CALL_FUNCTION_EX", + [INSTRUMENTED_CALL_KW] = "INSTRUMENTED_CALL_KW", + [INSTRUMENTED_END_FOR] = "INSTRUMENTED_END_FOR", + [INSTRUMENTED_END_SEND] = "INSTRUMENTED_END_SEND", + [INSTRUMENTED_FOR_ITER] = "INSTRUMENTED_FOR_ITER", + [INSTRUMENTED_INSTRUCTION] = "INSTRUMENTED_INSTRUCTION", + [INSTRUMENTED_JUMP_BACKWARD] = "INSTRUMENTED_JUMP_BACKWARD", + [INSTRUMENTED_JUMP_FORWARD] = "INSTRUMENTED_JUMP_FORWARD", + [INSTRUMENTED_LINE] = "INSTRUMENTED_LINE", + [INSTRUMENTED_LOAD_SUPER_ATTR] = "INSTRUMENTED_LOAD_SUPER_ATTR", + [INSTRUMENTED_POP_JUMP_IF_FALSE] = "INSTRUMENTED_POP_JUMP_IF_FALSE", + [INSTRUMENTED_POP_JUMP_IF_NONE] = "INSTRUMENTED_POP_JUMP_IF_NONE", + [INSTRUMENTED_POP_JUMP_IF_NOT_NONE] = "INSTRUMENTED_POP_JUMP_IF_NOT_NONE", + [INSTRUMENTED_POP_JUMP_IF_TRUE] = "INSTRUMENTED_POP_JUMP_IF_TRUE", + [INSTRUMENTED_RESUME] = "INSTRUMENTED_RESUME", + [INSTRUMENTED_RETURN_CONST] = "INSTRUMENTED_RETURN_CONST", + [INSTRUMENTED_RETURN_VALUE] = "INSTRUMENTED_RETURN_VALUE", + [INSTRUMENTED_YIELD_VALUE] = "INSTRUMENTED_YIELD_VALUE", + [INTERPRETER_EXIT] = "INTERPRETER_EXIT", + [IS_OP] = "IS_OP", + [JUMP] = "JUMP", + [JUMP_BACKWARD] = "JUMP_BACKWARD", + [JUMP_BACKWARD_NO_INTERRUPT] = "JUMP_BACKWARD_NO_INTERRUPT", + [JUMP_FORWARD] = "JUMP_FORWARD", + [JUMP_NO_INTERRUPT] = "JUMP_NO_INTERRUPT", + [LIST_APPEND] = "LIST_APPEND", + [LIST_EXTEND] = "LIST_EXTEND", + [LOAD_ASSERTION_ERROR] = "LOAD_ASSERTION_ERROR", + [LOAD_ATTR] = "LOAD_ATTR", + [LOAD_ATTR_CLASS] = "LOAD_ATTR_CLASS", + [LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN] = "LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN", + [LOAD_ATTR_INSTANCE_VALUE] = "LOAD_ATTR_INSTANCE_VALUE", + [LOAD_ATTR_METHOD_LAZY_DICT] = "LOAD_ATTR_METHOD_LAZY_DICT", + [LOAD_ATTR_METHOD_NO_DICT] = "LOAD_ATTR_METHOD_NO_DICT", + [LOAD_ATTR_METHOD_WITH_VALUES] = "LOAD_ATTR_METHOD_WITH_VALUES", + [LOAD_ATTR_MODULE] = "LOAD_ATTR_MODULE", + [LOAD_ATTR_NONDESCRIPTOR_NO_DICT] = "LOAD_ATTR_NONDESCRIPTOR_NO_DICT", + [LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES] = "LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES", + [LOAD_ATTR_PROPERTY] = "LOAD_ATTR_PROPERTY", + [LOAD_ATTR_SLOT] = "LOAD_ATTR_SLOT", + [LOAD_ATTR_WITH_HINT] = "LOAD_ATTR_WITH_HINT", + [LOAD_BUILD_CLASS] = "LOAD_BUILD_CLASS", + [LOAD_CLOSURE] = "LOAD_CLOSURE", + [LOAD_CONST] = "LOAD_CONST", + [LOAD_DEREF] = "LOAD_DEREF", + [LOAD_FAST] = "LOAD_FAST", + [LOAD_FAST_AND_CLEAR] = "LOAD_FAST_AND_CLEAR", + [LOAD_FAST_CHECK] = "LOAD_FAST_CHECK", + [LOAD_FAST_LOAD_FAST] = "LOAD_FAST_LOAD_FAST", + [LOAD_FROM_DICT_OR_DEREF] = "LOAD_FROM_DICT_OR_DEREF", + [LOAD_FROM_DICT_OR_GLOBALS] = "LOAD_FROM_DICT_OR_GLOBALS", + [LOAD_GLOBAL] = "LOAD_GLOBAL", + [LOAD_GLOBAL_BUILTIN] = "LOAD_GLOBAL_BUILTIN", + [LOAD_GLOBAL_MODULE] = "LOAD_GLOBAL_MODULE", + [LOAD_LOCALS] = "LOAD_LOCALS", + [LOAD_METHOD] = "LOAD_METHOD", + [LOAD_NAME] = "LOAD_NAME", + [LOAD_SUPER_ATTR] = "LOAD_SUPER_ATTR", + [LOAD_SUPER_ATTR_ATTR] = "LOAD_SUPER_ATTR_ATTR", + [LOAD_SUPER_ATTR_METHOD] = "LOAD_SUPER_ATTR_METHOD", + [LOAD_SUPER_METHOD] = "LOAD_SUPER_METHOD", + [LOAD_ZERO_SUPER_ATTR] = "LOAD_ZERO_SUPER_ATTR", + [LOAD_ZERO_SUPER_METHOD] = "LOAD_ZERO_SUPER_METHOD", + [MAKE_CELL] = "MAKE_CELL", + [MAKE_FUNCTION] = "MAKE_FUNCTION", + [MAP_ADD] = "MAP_ADD", + [MATCH_CLASS] = "MATCH_CLASS", + [MATCH_KEYS] = "MATCH_KEYS", + [MATCH_MAPPING] = "MATCH_MAPPING", + [MATCH_SEQUENCE] = "MATCH_SEQUENCE", + [NOP] = "NOP", + [POP_BLOCK] = "POP_BLOCK", + [POP_EXCEPT] = "POP_EXCEPT", + [POP_JUMP_IF_FALSE] = "POP_JUMP_IF_FALSE", + [POP_JUMP_IF_NONE] = "POP_JUMP_IF_NONE", + [POP_JUMP_IF_NOT_NONE] = "POP_JUMP_IF_NOT_NONE", + [POP_JUMP_IF_TRUE] = "POP_JUMP_IF_TRUE", + [POP_TOP] = "POP_TOP", + [PUSH_EXC_INFO] = "PUSH_EXC_INFO", + [PUSH_NULL] = "PUSH_NULL", + [RAISE_VARARGS] = "RAISE_VARARGS", + [RERAISE] = "RERAISE", + [RESERVED] = "RESERVED", + [RESUME] = "RESUME", + [RESUME_CHECK] = "RESUME_CHECK", + [RETURN_CONST] = "RETURN_CONST", + [RETURN_GENERATOR] = "RETURN_GENERATOR", + [RETURN_VALUE] = "RETURN_VALUE", + [SEND] = "SEND", + [SEND_GEN] = "SEND_GEN", + [SETUP_ANNOTATIONS] = "SETUP_ANNOTATIONS", + [SETUP_CLEANUP] = "SETUP_CLEANUP", + [SETUP_FINALLY] = "SETUP_FINALLY", + [SETUP_WITH] = "SETUP_WITH", + [SET_ADD] = "SET_ADD", + [SET_FUNCTION_ATTRIBUTE] = "SET_FUNCTION_ATTRIBUTE", + [SET_UPDATE] = "SET_UPDATE", + [STORE_ATTR] = "STORE_ATTR", + [STORE_ATTR_INSTANCE_VALUE] = "STORE_ATTR_INSTANCE_VALUE", + [STORE_ATTR_SLOT] = "STORE_ATTR_SLOT", + [STORE_ATTR_WITH_HINT] = "STORE_ATTR_WITH_HINT", + [STORE_DEREF] = "STORE_DEREF", + [STORE_FAST] = "STORE_FAST", + [STORE_FAST_LOAD_FAST] = "STORE_FAST_LOAD_FAST", + [STORE_FAST_MAYBE_NULL] = "STORE_FAST_MAYBE_NULL", + [STORE_FAST_STORE_FAST] = "STORE_FAST_STORE_FAST", + [STORE_GLOBAL] = "STORE_GLOBAL", + [STORE_NAME] = "STORE_NAME", + [STORE_SLICE] = "STORE_SLICE", + [STORE_SUBSCR] = "STORE_SUBSCR", + [STORE_SUBSCR_DICT] = "STORE_SUBSCR_DICT", + [STORE_SUBSCR_LIST_INT] = "STORE_SUBSCR_LIST_INT", + [SWAP] = "SWAP", + [TO_BOOL] = "TO_BOOL", + [TO_BOOL_ALWAYS_TRUE] = "TO_BOOL_ALWAYS_TRUE", + [TO_BOOL_BOOL] = "TO_BOOL_BOOL", + [TO_BOOL_INT] = "TO_BOOL_INT", + [TO_BOOL_LIST] = "TO_BOOL_LIST", + [TO_BOOL_NONE] = "TO_BOOL_NONE", + [TO_BOOL_STR] = "TO_BOOL_STR", + [UNARY_INVERT] = "UNARY_INVERT", + [UNARY_NEGATIVE] = "UNARY_NEGATIVE", + [UNARY_NOT] = "UNARY_NOT", + [UNPACK_EX] = "UNPACK_EX", + [UNPACK_SEQUENCE] = "UNPACK_SEQUENCE", + [UNPACK_SEQUENCE_LIST] = "UNPACK_SEQUENCE_LIST", + [UNPACK_SEQUENCE_TUPLE] = "UNPACK_SEQUENCE_TUPLE", + [UNPACK_SEQUENCE_TWO_TUPLE] = "UNPACK_SEQUENCE_TWO_TUPLE", + [WITH_EXCEPT_START] = "WITH_EXCEPT_START", + [YIELD_VALUE] = "YIELD_VALUE", +}; +#endif + +extern const uint8_t _PyOpcode_Caches[256]; +#ifdef NEED_OPCODE_METADATA +const uint8_t _PyOpcode_Caches[256] = { + [JUMP_BACKWARD] = 1, + [TO_BOOL] = 3, + [BINARY_SUBSCR] = 1, + [STORE_SUBSCR] = 1, + [SEND] = 1, + [UNPACK_SEQUENCE] = 1, + [STORE_ATTR] = 4, + [LOAD_GLOBAL] = 4, + [LOAD_SUPER_ATTR] = 1, + [LOAD_ATTR] = 9, + [COMPARE_OP] = 1, + [CONTAINS_OP] = 1, + [POP_JUMP_IF_TRUE] = 1, + [POP_JUMP_IF_FALSE] = 1, + [POP_JUMP_IF_NONE] = 1, + [POP_JUMP_IF_NOT_NONE] = 1, + [FOR_ITER] = 1, + [CALL] = 3, + [BINARY_OP] = 1, +}; +#endif + +extern const uint8_t _PyOpcode_Deopt[256]; +#ifdef NEED_OPCODE_METADATA +const uint8_t _PyOpcode_Deopt[256] = { + [BEFORE_ASYNC_WITH] = BEFORE_ASYNC_WITH, + [BEFORE_WITH] = BEFORE_WITH, + [BINARY_OP] = BINARY_OP, + [BINARY_OP_ADD_FLOAT] = BINARY_OP, + [BINARY_OP_ADD_INT] = BINARY_OP, + [BINARY_OP_ADD_UNICODE] = BINARY_OP, + [BINARY_OP_INPLACE_ADD_UNICODE] = BINARY_OP, + [BINARY_OP_MULTIPLY_FLOAT] = BINARY_OP, + [BINARY_OP_MULTIPLY_INT] = BINARY_OP, + [BINARY_OP_SUBTRACT_FLOAT] = BINARY_OP, + [BINARY_OP_SUBTRACT_INT] = BINARY_OP, + [BINARY_SLICE] = BINARY_SLICE, + [BINARY_SUBSCR] = BINARY_SUBSCR, + [BINARY_SUBSCR_DICT] = BINARY_SUBSCR, + [BINARY_SUBSCR_GETITEM] = BINARY_SUBSCR, + [BINARY_SUBSCR_LIST_INT] = BINARY_SUBSCR, + [BINARY_SUBSCR_STR_INT] = BINARY_SUBSCR, + [BINARY_SUBSCR_TUPLE_INT] = BINARY_SUBSCR, + [BUILD_CONST_KEY_MAP] = BUILD_CONST_KEY_MAP, + [BUILD_LIST] = BUILD_LIST, + [BUILD_MAP] = BUILD_MAP, + [BUILD_SET] = BUILD_SET, + [BUILD_SLICE] = BUILD_SLICE, + [BUILD_STRING] = BUILD_STRING, + [BUILD_TUPLE] = BUILD_TUPLE, + [CACHE] = CACHE, + [CALL] = CALL, + [CALL_ALLOC_AND_ENTER_INIT] = CALL, + [CALL_BOUND_METHOD_EXACT_ARGS] = CALL, + [CALL_BOUND_METHOD_GENERAL] = CALL, + [CALL_BUILTIN_CLASS] = CALL, + [CALL_BUILTIN_FAST] = CALL, + [CALL_BUILTIN_FAST_WITH_KEYWORDS] = CALL, + [CALL_BUILTIN_O] = CALL, + [CALL_FUNCTION_EX] = CALL_FUNCTION_EX, + [CALL_INTRINSIC_1] = CALL_INTRINSIC_1, + [CALL_INTRINSIC_2] = CALL_INTRINSIC_2, + [CALL_ISINSTANCE] = CALL, + [CALL_KW] = CALL_KW, + [CALL_LEN] = CALL, + [CALL_LIST_APPEND] = CALL, + [CALL_METHOD_DESCRIPTOR_FAST] = CALL, + [CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = CALL, + [CALL_METHOD_DESCRIPTOR_NOARGS] = CALL, + [CALL_METHOD_DESCRIPTOR_O] = CALL, + [CALL_NON_PY_GENERAL] = CALL, + [CALL_PY_EXACT_ARGS] = CALL, + [CALL_PY_GENERAL] = CALL, + [CALL_STR_1] = CALL, + [CALL_TUPLE_1] = CALL, + [CALL_TYPE_1] = CALL, + [CHECK_EG_MATCH] = CHECK_EG_MATCH, + [CHECK_EXC_MATCH] = CHECK_EXC_MATCH, + [CLEANUP_THROW] = CLEANUP_THROW, + [COMPARE_OP] = COMPARE_OP, + [COMPARE_OP_FLOAT] = COMPARE_OP, + [COMPARE_OP_INT] = COMPARE_OP, + [COMPARE_OP_STR] = COMPARE_OP, + [CONTAINS_OP] = CONTAINS_OP, + [CONTAINS_OP_DICT] = CONTAINS_OP, + [CONTAINS_OP_SET] = CONTAINS_OP, + [CONVERT_VALUE] = CONVERT_VALUE, + [COPY] = COPY, + [COPY_FREE_VARS] = COPY_FREE_VARS, + [DELETE_ATTR] = DELETE_ATTR, + [DELETE_DEREF] = DELETE_DEREF, + [DELETE_FAST] = DELETE_FAST, + [DELETE_GLOBAL] = DELETE_GLOBAL, + [DELETE_NAME] = DELETE_NAME, + [DELETE_SUBSCR] = DELETE_SUBSCR, + [DICT_MERGE] = DICT_MERGE, + [DICT_UPDATE] = DICT_UPDATE, + [END_ASYNC_FOR] = END_ASYNC_FOR, + [END_FOR] = END_FOR, + [END_SEND] = END_SEND, + [ENTER_EXECUTOR] = ENTER_EXECUTOR, + [EXIT_INIT_CHECK] = EXIT_INIT_CHECK, + [EXTENDED_ARG] = EXTENDED_ARG, + [FORMAT_SIMPLE] = FORMAT_SIMPLE, + [FORMAT_WITH_SPEC] = FORMAT_WITH_SPEC, + [FOR_ITER] = FOR_ITER, + [FOR_ITER_GEN] = FOR_ITER, + [FOR_ITER_LIST] = FOR_ITER, + [FOR_ITER_RANGE] = FOR_ITER, + [FOR_ITER_TUPLE] = FOR_ITER, + [GET_AITER] = GET_AITER, + [GET_ANEXT] = GET_ANEXT, + [GET_AWAITABLE] = GET_AWAITABLE, + [GET_ITER] = GET_ITER, + [GET_LEN] = GET_LEN, + [GET_YIELD_FROM_ITER] = GET_YIELD_FROM_ITER, + [IMPORT_FROM] = IMPORT_FROM, + [IMPORT_NAME] = IMPORT_NAME, + [INSTRUMENTED_CALL] = INSTRUMENTED_CALL, + [INSTRUMENTED_CALL_FUNCTION_EX] = INSTRUMENTED_CALL_FUNCTION_EX, + [INSTRUMENTED_CALL_KW] = INSTRUMENTED_CALL_KW, + [INSTRUMENTED_END_FOR] = INSTRUMENTED_END_FOR, + [INSTRUMENTED_END_SEND] = INSTRUMENTED_END_SEND, + [INSTRUMENTED_FOR_ITER] = INSTRUMENTED_FOR_ITER, + [INSTRUMENTED_INSTRUCTION] = INSTRUMENTED_INSTRUCTION, + [INSTRUMENTED_JUMP_BACKWARD] = INSTRUMENTED_JUMP_BACKWARD, + [INSTRUMENTED_JUMP_FORWARD] = INSTRUMENTED_JUMP_FORWARD, + [INSTRUMENTED_LINE] = INSTRUMENTED_LINE, + [INSTRUMENTED_LOAD_SUPER_ATTR] = INSTRUMENTED_LOAD_SUPER_ATTR, + [INSTRUMENTED_POP_JUMP_IF_FALSE] = INSTRUMENTED_POP_JUMP_IF_FALSE, + [INSTRUMENTED_POP_JUMP_IF_NONE] = INSTRUMENTED_POP_JUMP_IF_NONE, + [INSTRUMENTED_POP_JUMP_IF_NOT_NONE] = INSTRUMENTED_POP_JUMP_IF_NOT_NONE, + [INSTRUMENTED_POP_JUMP_IF_TRUE] = INSTRUMENTED_POP_JUMP_IF_TRUE, + [INSTRUMENTED_RESUME] = INSTRUMENTED_RESUME, + [INSTRUMENTED_RETURN_CONST] = INSTRUMENTED_RETURN_CONST, + [INSTRUMENTED_RETURN_VALUE] = INSTRUMENTED_RETURN_VALUE, + [INSTRUMENTED_YIELD_VALUE] = INSTRUMENTED_YIELD_VALUE, + [INTERPRETER_EXIT] = INTERPRETER_EXIT, + [IS_OP] = IS_OP, + [JUMP_BACKWARD] = JUMP_BACKWARD, + [JUMP_BACKWARD_NO_INTERRUPT] = JUMP_BACKWARD_NO_INTERRUPT, + [JUMP_FORWARD] = JUMP_FORWARD, + [LIST_APPEND] = LIST_APPEND, + [LIST_EXTEND] = LIST_EXTEND, + [LOAD_ASSERTION_ERROR] = LOAD_ASSERTION_ERROR, + [LOAD_ATTR] = LOAD_ATTR, + [LOAD_ATTR_CLASS] = LOAD_ATTR, + [LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN] = LOAD_ATTR, + [LOAD_ATTR_INSTANCE_VALUE] = LOAD_ATTR, + [LOAD_ATTR_METHOD_LAZY_DICT] = LOAD_ATTR, + [LOAD_ATTR_METHOD_NO_DICT] = LOAD_ATTR, + [LOAD_ATTR_METHOD_WITH_VALUES] = LOAD_ATTR, + [LOAD_ATTR_MODULE] = LOAD_ATTR, + [LOAD_ATTR_NONDESCRIPTOR_NO_DICT] = LOAD_ATTR, + [LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES] = LOAD_ATTR, + [LOAD_ATTR_PROPERTY] = LOAD_ATTR, + [LOAD_ATTR_SLOT] = LOAD_ATTR, + [LOAD_ATTR_WITH_HINT] = LOAD_ATTR, + [LOAD_BUILD_CLASS] = LOAD_BUILD_CLASS, + [LOAD_CONST] = LOAD_CONST, + [LOAD_DEREF] = LOAD_DEREF, + [LOAD_FAST] = LOAD_FAST, + [LOAD_FAST_AND_CLEAR] = LOAD_FAST_AND_CLEAR, + [LOAD_FAST_CHECK] = LOAD_FAST_CHECK, + [LOAD_FAST_LOAD_FAST] = LOAD_FAST_LOAD_FAST, + [LOAD_FROM_DICT_OR_DEREF] = LOAD_FROM_DICT_OR_DEREF, + [LOAD_FROM_DICT_OR_GLOBALS] = LOAD_FROM_DICT_OR_GLOBALS, + [LOAD_GLOBAL] = LOAD_GLOBAL, + [LOAD_GLOBAL_BUILTIN] = LOAD_GLOBAL, + [LOAD_GLOBAL_MODULE] = LOAD_GLOBAL, + [LOAD_LOCALS] = LOAD_LOCALS, + [LOAD_NAME] = LOAD_NAME, + [LOAD_SUPER_ATTR] = LOAD_SUPER_ATTR, + [LOAD_SUPER_ATTR_ATTR] = LOAD_SUPER_ATTR, + [LOAD_SUPER_ATTR_METHOD] = LOAD_SUPER_ATTR, + [MAKE_CELL] = MAKE_CELL, + [MAKE_FUNCTION] = MAKE_FUNCTION, + [MAP_ADD] = MAP_ADD, + [MATCH_CLASS] = MATCH_CLASS, + [MATCH_KEYS] = MATCH_KEYS, + [MATCH_MAPPING] = MATCH_MAPPING, + [MATCH_SEQUENCE] = MATCH_SEQUENCE, + [NOP] = NOP, + [POP_EXCEPT] = POP_EXCEPT, + [POP_JUMP_IF_FALSE] = POP_JUMP_IF_FALSE, + [POP_JUMP_IF_NONE] = POP_JUMP_IF_NONE, + [POP_JUMP_IF_NOT_NONE] = POP_JUMP_IF_NOT_NONE, + [POP_JUMP_IF_TRUE] = POP_JUMP_IF_TRUE, + [POP_TOP] = POP_TOP, + [PUSH_EXC_INFO] = PUSH_EXC_INFO, + [PUSH_NULL] = PUSH_NULL, + [RAISE_VARARGS] = RAISE_VARARGS, + [RERAISE] = RERAISE, + [RESERVED] = RESERVED, + [RESUME] = RESUME, + [RESUME_CHECK] = RESUME, + [RETURN_CONST] = RETURN_CONST, + [RETURN_GENERATOR] = RETURN_GENERATOR, + [RETURN_VALUE] = RETURN_VALUE, + [SEND] = SEND, + [SEND_GEN] = SEND, + [SETUP_ANNOTATIONS] = SETUP_ANNOTATIONS, + [SET_ADD] = SET_ADD, + [SET_FUNCTION_ATTRIBUTE] = SET_FUNCTION_ATTRIBUTE, + [SET_UPDATE] = SET_UPDATE, + [STORE_ATTR] = STORE_ATTR, + [STORE_ATTR_INSTANCE_VALUE] = STORE_ATTR, + [STORE_ATTR_SLOT] = STORE_ATTR, + [STORE_ATTR_WITH_HINT] = STORE_ATTR, + [STORE_DEREF] = STORE_DEREF, + [STORE_FAST] = STORE_FAST, + [STORE_FAST_LOAD_FAST] = STORE_FAST_LOAD_FAST, + [STORE_FAST_STORE_FAST] = STORE_FAST_STORE_FAST, + [STORE_GLOBAL] = STORE_GLOBAL, + [STORE_NAME] = STORE_NAME, + [STORE_SLICE] = STORE_SLICE, + [STORE_SUBSCR] = STORE_SUBSCR, + [STORE_SUBSCR_DICT] = STORE_SUBSCR, + [STORE_SUBSCR_LIST_INT] = STORE_SUBSCR, + [SWAP] = SWAP, + [TO_BOOL] = TO_BOOL, + [TO_BOOL_ALWAYS_TRUE] = TO_BOOL, + [TO_BOOL_BOOL] = TO_BOOL, + [TO_BOOL_INT] = TO_BOOL, + [TO_BOOL_LIST] = TO_BOOL, + [TO_BOOL_NONE] = TO_BOOL, + [TO_BOOL_STR] = TO_BOOL, + [UNARY_INVERT] = UNARY_INVERT, + [UNARY_NEGATIVE] = UNARY_NEGATIVE, + [UNARY_NOT] = UNARY_NOT, + [UNPACK_EX] = UNPACK_EX, + [UNPACK_SEQUENCE] = UNPACK_SEQUENCE, + [UNPACK_SEQUENCE_LIST] = UNPACK_SEQUENCE, + [UNPACK_SEQUENCE_TUPLE] = UNPACK_SEQUENCE, + [UNPACK_SEQUENCE_TWO_TUPLE] = UNPACK_SEQUENCE, + [WITH_EXCEPT_START] = WITH_EXCEPT_START, + [YIELD_VALUE] = YIELD_VALUE, +}; + +#endif // NEED_OPCODE_METADATA + +#define EXTRA_CASES \ + case 119: \ + case 120: \ + case 121: \ + case 122: \ + case 123: \ + case 124: \ + case 125: \ + case 126: \ + case 127: \ + case 128: \ + case 129: \ + case 130: \ + case 131: \ + case 132: \ + case 133: \ + case 134: \ + case 135: \ + case 136: \ + case 137: \ + case 138: \ + case 139: \ + case 140: \ + case 141: \ + case 142: \ + case 143: \ + case 144: \ + case 145: \ + case 146: \ + case 147: \ + case 148: \ + case 223: \ + case 224: \ + case 225: \ + case 226: \ + case 227: \ + case 228: \ + case 229: \ + case 230: \ + case 231: \ + case 232: \ + case 233: \ + case 234: \ + case 235: \ + case 255: \ + ; +struct pseudo_targets { + uint8_t targets[3]; +}; +extern const struct pseudo_targets _PyOpcode_PseudoTargets[12]; +#ifdef NEED_OPCODE_METADATA +const struct pseudo_targets _PyOpcode_PseudoTargets[12] = { + [LOAD_CLOSURE-256] = { { LOAD_FAST, 0, 0 } }, + [STORE_FAST_MAYBE_NULL-256] = { { STORE_FAST, 0, 0 } }, + [LOAD_SUPER_METHOD-256] = { { LOAD_SUPER_ATTR, 0, 0 } }, + [LOAD_ZERO_SUPER_METHOD-256] = { { LOAD_SUPER_ATTR, 0, 0 } }, + [LOAD_ZERO_SUPER_ATTR-256] = { { LOAD_SUPER_ATTR, 0, 0 } }, + [LOAD_METHOD-256] = { { LOAD_ATTR, 0, 0 } }, + [JUMP-256] = { { JUMP_FORWARD, JUMP_BACKWARD, 0 } }, + [JUMP_NO_INTERRUPT-256] = { { JUMP_FORWARD, JUMP_BACKWARD_NO_INTERRUPT, 0 } }, + [SETUP_FINALLY-256] = { { NOP, 0, 0 } }, + [SETUP_CLEANUP-256] = { { NOP, 0, 0 } }, + [SETUP_WITH-256] = { { NOP, 0, 0 } }, + [POP_BLOCK-256] = { { NOP, 0, 0 } }, +}; + +#endif // NEED_OPCODE_METADATA +static inline bool +is_pseudo_target(int pseudo, int target) { + if (pseudo < 256 || pseudo >= 268) { + return false; + } + for (int i = 0; _PyOpcode_PseudoTargets[pseudo-256].targets[i]; i++) { + if (_PyOpcode_PseudoTargets[pseudo-256].targets[i] == target) return true; + } + return false; +} + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_CORE_OPCODE_METADATA_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_opcode_utils.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_opcode_utils.h new file mode 100644 index 000000000..208bfb2f7 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_opcode_utils.h @@ -0,0 +1,73 @@ +#ifndef Py_INTERNAL_OPCODE_UTILS_H +#define Py_INTERNAL_OPCODE_UTILS_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "opcode_ids.h" + +#define MAX_REAL_OPCODE 254 + +#define IS_WITHIN_OPCODE_RANGE(opcode) \ + (((opcode) >= 0 && (opcode) <= MAX_REAL_OPCODE) || \ + IS_PSEUDO_INSTR(opcode)) + +#define IS_BLOCK_PUSH_OPCODE(opcode) \ + ((opcode) == SETUP_FINALLY || \ + (opcode) == SETUP_WITH || \ + (opcode) == SETUP_CLEANUP) + +#define HAS_TARGET(opcode) \ + (OPCODE_HAS_JUMP(opcode) || IS_BLOCK_PUSH_OPCODE(opcode)) + +/* opcodes that must be last in the basicblock */ +#define IS_TERMINATOR_OPCODE(opcode) \ + (OPCODE_HAS_JUMP(opcode) || IS_SCOPE_EXIT_OPCODE(opcode)) + +/* opcodes which are not emitted in codegen stage, only by the assembler */ +#define IS_ASSEMBLER_OPCODE(opcode) \ + ((opcode) == JUMP_FORWARD || \ + (opcode) == JUMP_BACKWARD || \ + (opcode) == JUMP_BACKWARD_NO_INTERRUPT) + +#define IS_BACKWARDS_JUMP_OPCODE(opcode) \ + ((opcode) == JUMP_BACKWARD || \ + (opcode) == JUMP_BACKWARD_NO_INTERRUPT) + +#define IS_UNCONDITIONAL_JUMP_OPCODE(opcode) \ + ((opcode) == JUMP || \ + (opcode) == JUMP_NO_INTERRUPT || \ + (opcode) == JUMP_FORWARD || \ + (opcode) == JUMP_BACKWARD || \ + (opcode) == JUMP_BACKWARD_NO_INTERRUPT) + +#define IS_SCOPE_EXIT_OPCODE(opcode) \ + ((opcode) == RETURN_VALUE || \ + (opcode) == RETURN_CONST || \ + (opcode) == RAISE_VARARGS || \ + (opcode) == RERAISE) + + +/* Flags used in the oparg for MAKE_FUNCTION */ +#define MAKE_FUNCTION_DEFAULTS 0x01 +#define MAKE_FUNCTION_KWDEFAULTS 0x02 +#define MAKE_FUNCTION_ANNOTATIONS 0x04 +#define MAKE_FUNCTION_CLOSURE 0x08 + +/* Values used in the oparg for RESUME */ +#define RESUME_AT_FUNC_START 0 +#define RESUME_AFTER_YIELD 1 +#define RESUME_AFTER_YIELD_FROM 2 +#define RESUME_AFTER_AWAIT 3 + +#define RESUME_OPARG_LOCATION_MASK 0x3 +#define RESUME_OPARG_DEPTH1_MASK 0x4 + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_OPCODE_UTILS_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_optimizer.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_optimizer.h new file mode 100644 index 000000000..49aa67c6f --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_optimizer.h @@ -0,0 +1,272 @@ +#ifndef Py_INTERNAL_OPTIMIZER_H +#define Py_INTERNAL_OPTIMIZER_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_uop_ids.h" +#include + + +typedef struct _PyExecutorLinkListNode { + struct _PyExecutorObject *next; + struct _PyExecutorObject *previous; +} _PyExecutorLinkListNode; + + +/* Bloom filter with m = 256 + * https://en.wikipedia.org/wiki/Bloom_filter */ +#define BLOOM_FILTER_WORDS 8 + +typedef struct _bloom_filter { + uint32_t bits[BLOOM_FILTER_WORDS]; +} _PyBloomFilter; + +typedef struct { + uint8_t opcode; + uint8_t oparg; + uint8_t valid; + uint8_t linked; + int index; // Index of ENTER_EXECUTOR (if code isn't NULL, below). + _PyBloomFilter bloom; + _PyExecutorLinkListNode links; + PyCodeObject *code; // Weak (NULL if no corresponding ENTER_EXECUTOR). +} _PyVMData; + +#define UOP_FORMAT_TARGET 0 +#define UOP_FORMAT_EXIT 1 +#define UOP_FORMAT_JUMP 2 +#define UOP_FORMAT_UNUSED 3 + +/* Depending on the format, + * the 32 bits between the oparg and operand are: + * UOP_FORMAT_TARGET: + * uint32_t target; + * UOP_FORMAT_EXIT + * uint16_t exit_index; + * uint16_t error_target; + * UOP_FORMAT_JUMP + * uint16_t jump_target; + * uint16_t error_target; + */ +typedef struct { + uint16_t opcode:14; + uint16_t format:2; + uint16_t oparg; + union { + uint32_t target; + struct { + union { + uint16_t exit_index; + uint16_t jump_target; + }; + uint16_t error_target; + }; + }; + uint64_t operand; // A cache entry +} _PyUOpInstruction; + +static inline uint32_t uop_get_target(const _PyUOpInstruction *inst) +{ + assert(inst->format == UOP_FORMAT_TARGET); + return inst->target; +} + +static inline uint16_t uop_get_exit_index(const _PyUOpInstruction *inst) +{ + assert(inst->format == UOP_FORMAT_EXIT); + return inst->exit_index; +} + +static inline uint16_t uop_get_jump_target(const _PyUOpInstruction *inst) +{ + assert(inst->format == UOP_FORMAT_JUMP); + return inst->jump_target; +} + +static inline uint16_t uop_get_error_target(const _PyUOpInstruction *inst) +{ + assert(inst->format != UOP_FORMAT_TARGET); + return inst->error_target; +} + +typedef struct _exit_data { + uint32_t target; + _Py_BackoffCounter temperature; + const struct _PyExecutorObject *executor; +} _PyExitData; + +typedef struct _PyExecutorObject { + PyObject_VAR_HEAD + const _PyUOpInstruction *trace; + _PyVMData vm_data; /* Used by the VM, but opaque to the optimizer */ + uint32_t exit_count; + uint32_t code_size; + size_t jit_size; + void *jit_code; + void *jit_side_entry; + _PyExitData exits[1]; +} _PyExecutorObject; + +typedef struct _PyOptimizerObject _PyOptimizerObject; + +/* Should return > 0 if a new executor is created. O if no executor is produced and < 0 if an error occurred. */ +typedef int (*optimize_func)( + _PyOptimizerObject* self, struct _PyInterpreterFrame *frame, + _Py_CODEUNIT *instr, _PyExecutorObject **exec_ptr, + int curr_stackentries); + +struct _PyOptimizerObject { + PyObject_HEAD + optimize_func optimize; + /* Data needed by the optimizer goes here, but is opaque to the VM */ +}; + +/** Test support **/ +typedef struct { + _PyOptimizerObject base; + int64_t count; +} _PyCounterOptimizerObject; + +_PyOptimizerObject *_Py_SetOptimizer(PyInterpreterState *interp, _PyOptimizerObject* optimizer); + +PyAPI_FUNC(int) _Py_SetTier2Optimizer(_PyOptimizerObject* optimizer); + +PyAPI_FUNC(_PyOptimizerObject *) _Py_GetOptimizer(void); + +PyAPI_FUNC(_PyExecutorObject *) _Py_GetExecutor(PyCodeObject *code, int offset); + +void _Py_ExecutorInit(_PyExecutorObject *, const _PyBloomFilter *); +void _Py_ExecutorDetach(_PyExecutorObject *); +void _Py_BloomFilter_Init(_PyBloomFilter *); +void _Py_BloomFilter_Add(_PyBloomFilter *bloom, void *obj); +PyAPI_FUNC(void) _Py_Executor_DependsOn(_PyExecutorObject *executor, void *obj); +/* For testing */ +PyAPI_FUNC(PyObject *) _PyOptimizer_NewCounter(void); +PyAPI_FUNC(PyObject *) _PyOptimizer_NewUOpOptimizer(void); + +#define _Py_MAX_ALLOWED_BUILTINS_MODIFICATIONS 3 +#define _Py_MAX_ALLOWED_GLOBALS_MODIFICATIONS 6 + +#ifdef _Py_TIER2 +PyAPI_FUNC(void) _Py_Executors_InvalidateDependency(PyInterpreterState *interp, void *obj, int is_invalidation); +PyAPI_FUNC(void) _Py_Executors_InvalidateAll(PyInterpreterState *interp, int is_invalidation); +#else +# define _Py_Executors_InvalidateDependency(A, B, C) ((void)0) +# define _Py_Executors_InvalidateAll(A, B) ((void)0) +#endif + + +// This is the length of the trace we project initially. +#define UOP_MAX_TRACE_LENGTH 800 + +#define TRACE_STACK_SIZE 5 + +int _Py_uop_analyze_and_optimize(struct _PyInterpreterFrame *frame, + _PyUOpInstruction *trace, int trace_len, int curr_stackentries, + _PyBloomFilter *dependencies); + +extern PyTypeObject _PyCounterExecutor_Type; +extern PyTypeObject _PyCounterOptimizer_Type; +extern PyTypeObject _PyDefaultOptimizer_Type; +extern PyTypeObject _PyUOpExecutor_Type; +extern PyTypeObject _PyUOpOptimizer_Type; + +/* Symbols */ +/* See explanation in optimizer_symbols.c */ + +struct _Py_UopsSymbol { + int flags; // 0 bits: Top; 2 or more bits: Bottom + PyTypeObject *typ; // Borrowed reference + PyObject *const_val; // Owned reference (!) +}; + +// Holds locals, stack, locals, stack ... co_consts (in that order) +#define MAX_ABSTRACT_INTERP_SIZE 4096 + +#define TY_ARENA_SIZE (UOP_MAX_TRACE_LENGTH * 5) + +// Need extras for root frame and for overflow frame (see TRACE_STACK_PUSH()) +#define MAX_ABSTRACT_FRAME_DEPTH (TRACE_STACK_SIZE + 2) + +typedef struct _Py_UopsSymbol _Py_UopsSymbol; + +struct _Py_UOpsAbstractFrame { + // Max stacklen + int stack_len; + int locals_len; + + _Py_UopsSymbol **stack_pointer; + _Py_UopsSymbol **stack; + _Py_UopsSymbol **locals; +}; + +typedef struct _Py_UOpsAbstractFrame _Py_UOpsAbstractFrame; + +typedef struct ty_arena { + int ty_curr_number; + int ty_max_number; + _Py_UopsSymbol arena[TY_ARENA_SIZE]; +} ty_arena; + +struct _Py_UOpsContext { + PyObject_HEAD + // The current "executing" frame. + _Py_UOpsAbstractFrame *frame; + _Py_UOpsAbstractFrame frames[MAX_ABSTRACT_FRAME_DEPTH]; + int curr_frame_depth; + + // Arena for the symbolic types. + ty_arena t_arena; + + _Py_UopsSymbol **n_consumed; + _Py_UopsSymbol **limit; + _Py_UopsSymbol *locals_and_stack[MAX_ABSTRACT_INTERP_SIZE]; +}; + +typedef struct _Py_UOpsContext _Py_UOpsContext; + +extern bool _Py_uop_sym_is_null(_Py_UopsSymbol *sym); +extern bool _Py_uop_sym_is_not_null(_Py_UopsSymbol *sym); +extern bool _Py_uop_sym_is_const(_Py_UopsSymbol *sym); +extern PyObject *_Py_uop_sym_get_const(_Py_UopsSymbol *sym); +extern _Py_UopsSymbol *_Py_uop_sym_new_unknown(_Py_UOpsContext *ctx); +extern _Py_UopsSymbol *_Py_uop_sym_new_not_null(_Py_UOpsContext *ctx); +extern _Py_UopsSymbol *_Py_uop_sym_new_type( + _Py_UOpsContext *ctx, PyTypeObject *typ); +extern _Py_UopsSymbol *_Py_uop_sym_new_const(_Py_UOpsContext *ctx, PyObject *const_val); +extern _Py_UopsSymbol *_Py_uop_sym_new_null(_Py_UOpsContext *ctx); +extern bool _Py_uop_sym_has_type(_Py_UopsSymbol *sym); +extern bool _Py_uop_sym_matches_type(_Py_UopsSymbol *sym, PyTypeObject *typ); +extern bool _Py_uop_sym_set_null(_Py_UopsSymbol *sym); +extern bool _Py_uop_sym_set_non_null(_Py_UopsSymbol *sym); +extern bool _Py_uop_sym_set_type(_Py_UopsSymbol *sym, PyTypeObject *typ); +extern bool _Py_uop_sym_set_const(_Py_UopsSymbol *sym, PyObject *const_val); +extern bool _Py_uop_sym_is_bottom(_Py_UopsSymbol *sym); +extern int _Py_uop_sym_truthiness(_Py_UopsSymbol *sym); +extern PyTypeObject *_Py_uop_sym_get_type(_Py_UopsSymbol *sym); + + +extern int _Py_uop_abstractcontext_init(_Py_UOpsContext *ctx); +extern void _Py_uop_abstractcontext_fini(_Py_UOpsContext *ctx); + +extern _Py_UOpsAbstractFrame *_Py_uop_frame_new( + _Py_UOpsContext *ctx, + PyCodeObject *co, + int curr_stackentries, + _Py_UopsSymbol **args, + int arg_len); +extern int _Py_uop_frame_pop(_Py_UOpsContext *ctx); + +PyAPI_FUNC(PyObject *) _Py_uop_symbols_test(PyObject *self, PyObject *ignored); + +PyAPI_FUNC(int) _PyOptimizer_Optimize(struct _PyInterpreterFrame *frame, _Py_CODEUNIT *start, PyObject **stack_pointer, _PyExecutorObject **exec_ptr); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_OPTIMIZER_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_parking_lot.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_parking_lot.h new file mode 100644 index 000000000..8c9260e26 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_parking_lot.h @@ -0,0 +1,97 @@ +// ParkingLot is an internal API for building efficient synchronization +// primitives like mutexes and events. +// +// The API and name is inspired by WebKit's WTF::ParkingLot, which in turn +// is inspired Linux's futex API. +// See https://webkit.org/blog/6161/locking-in-webkit/. +// +// The core functionality is an atomic "compare-and-sleep" operation along with +// an atomic "wake-up" operation. + +#ifndef Py_INTERNAL_PARKING_LOT_H +#define Py_INTERNAL_PARKING_LOT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +enum { + // The thread was unparked by another thread. + Py_PARK_OK = 0, + + // The value of `address` did not match `expected`. + Py_PARK_AGAIN = -1, + + // The thread was unparked due to a timeout. + Py_PARK_TIMEOUT = -2, + + // The thread was interrupted by a signal. + Py_PARK_INTR = -3, +}; + +// Checks that `*address == *expected` and puts the thread to sleep until an +// unpark operation is called on the same `address`. Otherwise, the function +// returns `Py_PARK_AGAIN`. The comparison behaves like memcmp, but is +// performed atomically with respect to unpark operations. +// +// The `address_size` argument is the size of the data pointed to by the +// `address` and `expected` pointers (i.e., sizeof(*address)). It must be +// 1, 2, 4, or 8. +// +// The `timeout_ns` argument specifies the maximum amount of time to wait, with +// -1 indicating an infinite wait. +// +// `park_arg`, which can be NULL, is passed to the unpark operation. +// +// If `detach` is true, then the thread will detach/release the GIL while +// waiting. +// +// Example usage: +// +// if (_Py_atomic_compare_exchange_uint8(address, &expected, new_value)) { +// int res = _PyParkingLot_Park(address, &new_value, sizeof(*address), +// timeout_ns, NULL, 1); +// ... +// } +PyAPI_FUNC(int) +_PyParkingLot_Park(const void *address, const void *expected, + size_t address_size, PyTime_t timeout_ns, + void *park_arg, int detach); + +// Callback for _PyParkingLot_Unpark: +// +// `arg` is the data of the same name provided to the _PyParkingLot_Unpark() +// call. +// `park_arg` is the data provided to _PyParkingLot_Park() call or NULL if +// no waiting thread was found. +// `has_more_waiters` is true if there are more threads waiting on the same +// address. May be true in cases where threads are waiting on a different +// address that map to the same internal bucket. +typedef void _Py_unpark_fn_t(void *arg, void *park_arg, int has_more_waiters); + +// Unparks a single thread waiting on `address`. +// +// Note that fn() is called regardless of whether a thread was unparked. If +// no threads are waiting on `address` then the `park_arg` argument to fn() +// will be NULL. +// +// Example usage: +// void callback(void *arg, void *park_arg, int has_more_waiters); +// _PyParkingLot_Unpark(address, &callback, arg); +PyAPI_FUNC(void) +_PyParkingLot_Unpark(const void *address, _Py_unpark_fn_t *fn, void *arg); + +// Unparks all threads waiting on `address`. +PyAPI_FUNC(void) _PyParkingLot_UnparkAll(const void *address); + +// Resets the parking lot state after a fork. Forgets all parked threads. +PyAPI_FUNC(void) _PyParkingLot_AfterFork(void); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_PARKING_LOT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_parser.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_parser.h new file mode 100644 index 000000000..b16084aaa --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_parser.h @@ -0,0 +1,95 @@ +#ifndef Py_INTERNAL_PARSER_H +#define Py_INTERNAL_PARSER_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +#include "pycore_ast.h" // struct _expr +#include "pycore_global_strings.h" // _Py_DECLARE_STR() +#include "pycore_pyarena.h" // PyArena + + +#ifdef Py_DEBUG +#define _PYPEGEN_NSTATISTICS 2000 +#endif + +struct _parser_runtime_state { +#ifdef Py_DEBUG + long memo_statistics[_PYPEGEN_NSTATISTICS]; +#ifdef Py_GIL_DISABLED + PyMutex mutex; +#endif +#else + int _not_used; +#endif + struct _expr dummy_name; +}; + +_Py_DECLARE_STR(empty, "") +#if defined(Py_DEBUG) && defined(Py_GIL_DISABLED) +#define _parser_runtime_state_INIT \ + { \ + .mutex = {0}, \ + .dummy_name = { \ + .kind = Name_kind, \ + .v.Name.id = &_Py_STR(empty), \ + .v.Name.ctx = Load, \ + .lineno = 1, \ + .col_offset = 0, \ + .end_lineno = 1, \ + .end_col_offset = 0, \ + }, \ + } +#else +#define _parser_runtime_state_INIT \ + { \ + .dummy_name = { \ + .kind = Name_kind, \ + .v.Name.id = &_Py_STR(empty), \ + .v.Name.ctx = Load, \ + .lineno = 1, \ + .col_offset = 0, \ + .end_lineno = 1, \ + .end_col_offset = 0, \ + }, \ + } +#endif + +extern struct _mod* _PyParser_ASTFromString( + const char *str, + PyObject* filename, + int mode, + PyCompilerFlags *flags, + PyArena *arena); + +extern struct _mod* _PyParser_ASTFromFile( + FILE *fp, + PyObject *filename_ob, + const char *enc, + int mode, + const char *ps1, + const char *ps2, + PyCompilerFlags *flags, + int *errcode, + PyArena *arena); +extern struct _mod* _PyParser_InteractiveASTFromFile( + FILE *fp, + PyObject *filename_ob, + const char *enc, + int mode, + const char *ps1, + const char *ps2, + PyCompilerFlags *flags, + int *errcode, + PyObject **interactive_src, + PyArena *arena); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_PARSER_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pathconfig.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pathconfig.h new file mode 100644 index 000000000..a1ce1b19a --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pathconfig.h @@ -0,0 +1,26 @@ +#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 + +// Export for '_testinternalcapi' shared extension +PyAPI_FUNC(void) _PyPathConfig_ClearGlobal(void); + +extern PyStatus _PyPathConfig_ReadGlobal(PyConfig *config); +extern PyStatus _PyPathConfig_UpdateGlobal(const PyConfig *config); +extern const wchar_t * _PyPathConfig_GetGlobalModuleSearchPath(void); + +extern int _PyPathConfig_ComputeSysPath0( + const PyWideStringList *argv, + PyObject **path0); + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_PATHCONFIG_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pyarena.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pyarena.h new file mode 100644 index 000000000..1f07479fb --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pyarena.h @@ -0,0 +1,68 @@ +// An arena-like memory interface for the compiler. + +#ifndef Py_INTERNAL_PYARENA_H +#define Py_INTERNAL_PYARENA_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +typedef struct _arena PyArena; + +// _PyArena_New() and _PyArena_Free() create a new arena and free it, +// respectively. Once an arena has been created, it can be used +// to allocate memory via _PyArena_Malloc(). Pointers to PyObject can +// also be registered with the arena via _PyArena_AddPyObject(), and the +// arena will ensure that the PyObjects stay alive at least until +// _PyArena_Free() is called. When an arena is freed, all the memory it +// allocated is freed, the arena releases internal references to registered +// PyObject*, and none of its pointers are valid. +// XXX (tim) What does "none of its pointers are valid" mean? Does it +// XXX mean that pointers previously obtained via _PyArena_Malloc() are +// XXX no longer valid? (That's clearly true, but not sure that's what +// XXX the text is trying to say.) +// +// _PyArena_New() returns an arena pointer. On error, it +// returns a negative number and sets an exception. +// XXX (tim): Not true. On error, _PyArena_New() actually returns NULL, +// XXX and looks like it may or may not set an exception (e.g., if the +// XXX internal PyList_New(0) returns NULL, _PyArena_New() passes that on +// XXX and an exception is set; OTOH, if the internal +// XXX block_new(DEFAULT_BLOCK_SIZE) returns NULL, that's passed on but +// XXX an exception is not set in that case). +// +// Export for test_peg_generator +PyAPI_FUNC(PyArena*) _PyArena_New(void); + +// Export for test_peg_generator +PyAPI_FUNC(void) _PyArena_Free(PyArena *); + +// Mostly like malloc(), return the address of a block of memory spanning +// `size` bytes, or return NULL (without setting an exception) if enough +// new memory can't be obtained. Unlike malloc(0), _PyArena_Malloc() with +// size=0 does not guarantee to return a unique pointer (the pointer +// returned may equal one or more other pointers obtained from +// _PyArena_Malloc()). +// Note that pointers obtained via _PyArena_Malloc() must never be passed to +// the system free() or realloc(), or to any of Python's similar memory- +// management functions. _PyArena_Malloc()-obtained pointers remain valid +// until _PyArena_Free(ar) is called, at which point all pointers obtained +// from the arena `ar` become invalid simultaneously. +// +// Export for test_peg_generator +PyAPI_FUNC(void*) _PyArena_Malloc(PyArena *, size_t size); + +// This routine isn't a proper arena allocation routine. It takes +// a PyObject* and records it so that it can be DECREFed when the +// arena is freed. +// +// Export for test_peg_generator +PyAPI_FUNC(int) _PyArena_AddPyObject(PyArena *, PyObject *); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_PYARENA_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pyatomic_ft_wrappers.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pyatomic_ft_wrappers.h new file mode 100644 index 000000000..a1bb383bc --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pyatomic_ft_wrappers.h @@ -0,0 +1,94 @@ +// This header file provides wrappers around the atomic operations found in +// `pyatomic.h` that are only atomic in free-threaded builds. +// +// These are intended to be used in places where atomics are required in +// free-threaded builds, but not in the default build, and we don't want to +// introduce the potential performance overhead of an atomic operation in the +// default build. +// +// All usages of these macros should be replaced with unconditionally atomic or +// non-atomic versions, and this file should be removed, once the dust settles +// on free threading. +#ifndef Py_ATOMIC_FT_WRAPPERS_H +#define Py_ATOMIC_FT_WRAPPERS_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +#error "this header requires Py_BUILD_CORE define" +#endif + +#ifdef Py_GIL_DISABLED +#define FT_ATOMIC_LOAD_PTR(value) _Py_atomic_load_ptr(&value) +#define FT_ATOMIC_STORE_PTR(value, new_value) _Py_atomic_store_ptr(&value, new_value) +#define FT_ATOMIC_LOAD_SSIZE(value) _Py_atomic_load_ssize(&value) +#define FT_ATOMIC_LOAD_SSIZE_ACQUIRE(value) \ + _Py_atomic_load_ssize_acquire(&value) +#define FT_ATOMIC_LOAD_SSIZE_RELAXED(value) \ + _Py_atomic_load_ssize_relaxed(&value) +#define FT_ATOMIC_STORE_PTR(value, new_value) \ + _Py_atomic_store_ptr(&value, new_value) +#define FT_ATOMIC_LOAD_PTR_ACQUIRE(value) \ + _Py_atomic_load_ptr_acquire(&value) +#define FT_ATOMIC_LOAD_UINTPTR_ACQUIRE(value) \ + _Py_atomic_load_uintptr_acquire(&value) +#define FT_ATOMIC_LOAD_PTR_RELAXED(value) \ + _Py_atomic_load_ptr_relaxed(&value) +#define FT_ATOMIC_LOAD_UINT8(value) \ + _Py_atomic_load_uint8(&value) +#define FT_ATOMIC_STORE_UINT8(value, new_value) \ + _Py_atomic_store_uint8(&value, new_value) +#define FT_ATOMIC_LOAD_UINT8_RELAXED(value) \ + _Py_atomic_load_uint8_relaxed(&value) +#define FT_ATOMIC_LOAD_UINT16_RELAXED(value) \ + _Py_atomic_load_uint16_relaxed(&value) +#define FT_ATOMIC_LOAD_UINT32_RELAXED(value) \ + _Py_atomic_load_uint32_relaxed(&value) +#define FT_ATOMIC_LOAD_ULONG_RELAXED(value) \ + _Py_atomic_load_ulong_relaxed(&value) +#define FT_ATOMIC_STORE_PTR_RELAXED(value, new_value) \ + _Py_atomic_store_ptr_relaxed(&value, new_value) +#define FT_ATOMIC_STORE_PTR_RELEASE(value, new_value) \ + _Py_atomic_store_ptr_release(&value, new_value) +#define FT_ATOMIC_STORE_UINTPTR_RELEASE(value, new_value) \ + _Py_atomic_store_uintptr_release(&value, new_value) +#define FT_ATOMIC_STORE_SSIZE_RELAXED(value, new_value) \ + _Py_atomic_store_ssize_relaxed(&value, new_value) +#define FT_ATOMIC_STORE_UINT8_RELAXED(value, new_value) \ + _Py_atomic_store_uint8_relaxed(&value, new_value) +#define FT_ATOMIC_STORE_UINT16_RELAXED(value, new_value) \ + _Py_atomic_store_uint16_relaxed(&value, new_value) +#define FT_ATOMIC_STORE_UINT32_RELAXED(value, new_value) \ + _Py_atomic_store_uint32_relaxed(&value, new_value) + +#else +#define FT_ATOMIC_LOAD_PTR(value) value +#define FT_ATOMIC_STORE_PTR(value, new_value) value = new_value +#define FT_ATOMIC_LOAD_SSIZE(value) value +#define FT_ATOMIC_LOAD_SSIZE_ACQUIRE(value) value +#define FT_ATOMIC_LOAD_SSIZE_RELAXED(value) value +#define FT_ATOMIC_STORE_PTR(value, new_value) value = new_value +#define FT_ATOMIC_LOAD_PTR_ACQUIRE(value) value +#define FT_ATOMIC_LOAD_UINTPTR_ACQUIRE(value) value +#define FT_ATOMIC_LOAD_PTR_RELAXED(value) value +#define FT_ATOMIC_LOAD_UINT8(value) value +#define FT_ATOMIC_STORE_UINT8(value, new_value) value = new_value +#define FT_ATOMIC_LOAD_UINT8_RELAXED(value) value +#define FT_ATOMIC_LOAD_UINT16_RELAXED(value) value +#define FT_ATOMIC_LOAD_UINT32_RELAXED(value) value +#define FT_ATOMIC_LOAD_ULONG_RELAXED(value) value +#define FT_ATOMIC_STORE_PTR_RELAXED(value, new_value) value = new_value +#define FT_ATOMIC_STORE_PTR_RELEASE(value, new_value) value = new_value +#define FT_ATOMIC_STORE_UINTPTR_RELEASE(value, new_value) value = new_value +#define FT_ATOMIC_STORE_SSIZE_RELAXED(value, new_value) value = new_value +#define FT_ATOMIC_STORE_UINT8_RELAXED(value, new_value) value = new_value +#define FT_ATOMIC_STORE_UINT16_RELAXED(value, new_value) value = new_value +#define FT_ATOMIC_STORE_UINT32_RELAXED(value, new_value) value = new_value + +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_ATOMIC_FT_WRAPPERS_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pybuffer.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pybuffer.h new file mode 100644 index 000000000..9439d2bd7 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pybuffer.h @@ -0,0 +1,21 @@ +#ifndef Py_INTERNAL_PYBUFFER_H +#define Py_INTERNAL_PYBUFFER_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +// Exported for the _interpchannels module. +PyAPI_FUNC(int) _PyBuffer_ReleaseInInterpreter( + PyInterpreterState *interp, Py_buffer *view); +PyAPI_FUNC(int) _PyBuffer_ReleaseInInterpreterAndRawFree( + PyInterpreterState *interp, Py_buffer *view); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_PYBUFFER_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pyerrors.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pyerrors.h new file mode 100644 index 000000000..150716382 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pyerrors.h @@ -0,0 +1,178 @@ +#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 + + +/* Error handling definitions */ + +extern _PyErr_StackItem* _PyErr_GetTopmostException(PyThreadState *tstate); +extern PyObject* _PyErr_GetHandledException(PyThreadState *); +extern void _PyErr_SetHandledException(PyThreadState *, PyObject *); +extern void _PyErr_GetExcInfo(PyThreadState *, PyObject **, PyObject **, PyObject **); + +// Export for '_testinternalcapi' shared extension +PyAPI_FUNC(void) _PyErr_SetKeyError(PyObject *); + + +// Like PyErr_Format(), but saves current exception as __context__ and +// __cause__. +// Export for '_sqlite3' shared extension. +PyAPI_FUNC(PyObject*) _PyErr_FormatFromCause( + PyObject *exception, + const char *format, /* ASCII-encoded string */ + ... + ); + +extern int _PyException_AddNote( + PyObject *exc, + PyObject *note); + +extern int _PyErr_CheckSignals(void); + +/* Support for adding program text to SyntaxErrors */ + +// Export for test_peg_generator +PyAPI_FUNC(PyObject*) _PyErr_ProgramDecodedTextObject( + PyObject *filename, + int lineno, + const char* encoding); + +extern PyObject* _PyUnicodeTranslateError_Create( + PyObject *object, + Py_ssize_t start, + Py_ssize_t end, + const char *reason /* UTF-8 encoded string */ + ); + +extern void _Py_NO_RETURN _Py_FatalErrorFormat( + const char *func, + const char *format, + ...); + +extern PyObject* _PyErr_SetImportErrorWithNameFrom( + PyObject *, + PyObject *, + PyObject *, + PyObject *); + + +/* runtime lifecycle */ + +extern PyStatus _PyErr_InitTypes(PyInterpreterState *); +extern void _PyErr_FiniTypes(PyInterpreterState *); + + +/* other API */ + +static inline PyObject* _PyErr_Occurred(PyThreadState *tstate) +{ + assert(tstate != NULL); + if (tstate->current_exception == NULL) { + return NULL; + } + return (PyObject *)Py_TYPE(tstate->current_exception); +} + +static inline void _PyErr_ClearExcState(_PyErr_StackItem *exc_state) +{ + Py_CLEAR(exc_state->exc_value); +} + +extern PyObject* _PyErr_StackItemToExcInfoTuple( + _PyErr_StackItem *err_info); + +extern void _PyErr_Fetch( + PyThreadState *tstate, + PyObject **type, + PyObject **value, + PyObject **traceback); + +extern PyObject* _PyErr_GetRaisedException(PyThreadState *tstate); + +PyAPI_FUNC(int) _PyErr_ExceptionMatches( + PyThreadState *tstate, + PyObject *exc); + +extern void _PyErr_SetRaisedException(PyThreadState *tstate, PyObject *exc); + +extern void _PyErr_Restore( + PyThreadState *tstate, + PyObject *type, + PyObject *value, + PyObject *traceback); + +extern void _PyErr_SetObject( + PyThreadState *tstate, + PyObject *type, + PyObject *value); + +extern void _PyErr_ChainStackItem(void); + +PyAPI_FUNC(void) _PyErr_Clear(PyThreadState *tstate); + +extern void _PyErr_SetNone(PyThreadState *tstate, PyObject *exception); + +extern 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, + ...); + +extern void _PyErr_NormalizeException( + PyThreadState *tstate, + PyObject **exc, + PyObject **val, + PyObject **tb); + +extern PyObject* _PyErr_FormatFromCauseTstate( + PyThreadState *tstate, + PyObject *exception, + const char *format, + ...); + +extern PyObject* _PyExc_CreateExceptionGroup( + const char *msg, + PyObject *excs); + +extern PyObject* _PyExc_PrepReraiseStar( + PyObject *orig, + PyObject *excs); + +extern int _PyErr_CheckSignalsTstate(PyThreadState *tstate); + +extern void _Py_DumpExtensionModules(int fd, PyInterpreterState *interp); +extern PyObject* _Py_CalculateSuggestions(PyObject *dir, PyObject *name); +extern PyObject* _Py_Offer_Suggestions(PyObject* exception); + +// Export for '_testinternalcapi' shared extension +PyAPI_FUNC(Py_ssize_t) _Py_UTF8_Edit_Cost(PyObject *str_a, PyObject *str_b, + Py_ssize_t max_cost); + +void _PyErr_FormatNote(const char *format, ...); + +/* Context manipulation (PEP 3134) */ + +Py_DEPRECATED(3.12) extern void _PyErr_ChainExceptions(PyObject *, PyObject *, PyObject *); + +// implementation detail for the codeop module. +// Exported for test.test_peg_generator.test_c_parser +PyAPI_DATA(PyTypeObject) _PyExc_IncompleteInputError; +#define PyExc_IncompleteInputError ((PyObject *)(&_PyExc_IncompleteInputError)) + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_PYERRORS_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pyhash.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pyhash.h new file mode 100644 index 000000000..0ce08900e --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pyhash.h @@ -0,0 +1,107 @@ +#ifndef Py_INTERNAL_PYHASH_H +#define Py_INTERNAL_PYHASH_H + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +// Similar to Py_HashPointer(), but don't replace -1 with -2. +static inline Py_hash_t +_Py_HashPointerRaw(const void *ptr) +{ + uintptr_t x = (uintptr_t)ptr; + Py_BUILD_ASSERT(sizeof(x) == sizeof(ptr)); + + // Bottom 3 or 4 bits are likely to be 0; rotate x by 4 to the right + // to avoid excessive hash collisions for dicts and sets. + x = (x >> 4) | (x << (8 * sizeof(uintptr_t) - 4)); + + Py_BUILD_ASSERT(sizeof(x) == sizeof(Py_hash_t)); + return (Py_hash_t)x; +} + +// Export for '_datetime' shared extension +PyAPI_FUNC(Py_hash_t) _Py_HashBytes(const void*, Py_ssize_t); + +/* Hash secret + * + * memory layout on 64 bit systems + * cccccccc cccccccc cccccccc uc -- unsigned char[24] + * pppppppp ssssssss ........ fnv -- two Py_hash_t + * k0k0k0k0 k1k1k1k1 ........ siphash -- two uint64_t + * ........ ........ ssssssss djbx33a -- 16 bytes padding + one Py_hash_t + * ........ ........ eeeeeeee pyexpat XML hash salt + * + * memory layout on 32 bit systems + * cccccccc cccccccc cccccccc uc + * ppppssss ........ ........ fnv -- two Py_hash_t + * k0k0k0k0 k1k1k1k1 ........ siphash -- two uint64_t (*) + * ........ ........ ssss.... djbx33a -- 16 bytes padding + one Py_hash_t + * ........ ........ eeee.... pyexpat XML hash salt + * + * (*) The siphash member may not be available on 32 bit platforms without + * an unsigned int64 data type. + */ +typedef union { + /* ensure 24 bytes */ + unsigned char uc[24]; + /* two Py_hash_t for FNV */ + struct { + Py_hash_t prefix; + Py_hash_t suffix; + } fnv; + /* two uint64 for SipHash24 */ + struct { + uint64_t k0; + uint64_t k1; + } siphash; + /* a different (!) Py_hash_t for small string optimization */ + struct { + unsigned char padding[16]; + Py_hash_t suffix; + } djbx33a; + struct { + unsigned char padding[16]; + Py_hash_t hashsalt; + } expat; +} _Py_HashSecret_t; + +// Export for '_elementtree' shared extension +PyAPI_DATA(_Py_HashSecret_t) _Py_HashSecret; + +#ifdef Py_DEBUG +extern int _Py_HashSecret_Initialized; +#endif + + +struct pyhash_runtime_state { + struct { +#ifndef MS_WINDOWS + int fd; + dev_t st_dev; + ino_t st_ino; +#else + // This is a placeholder so the struct isn't empty on Windows. + int _not_used; +#endif + } urandom_cache; +}; + +#ifndef MS_WINDOWS +# define _py_urandom_cache_INIT \ + { \ + .fd = -1, \ + } +#else +# define _py_urandom_cache_INIT {0} +#endif + +#define pyhash_state_INIT \ + { \ + .urandom_cache = _py_urandom_cache_INIT, \ + } + + +extern uint64_t _Py_KeyedHash(uint64_t key, const void *src, Py_ssize_t src_sz); + +#endif // !Py_INTERNAL_PYHASH_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pylifecycle.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pylifecycle.h new file mode 100644 index 000000000..f426ae0e1 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pylifecycle.h @@ -0,0 +1,136 @@ +#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 + +#include "pycore_runtime.h" // _PyRuntimeState + +/* Forward declarations */ +struct _PyArgv; +struct pyruntimestate; + +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 + +extern int _Py_IsLocaleCoercionTarget(const char *ctype_loc); + +/* Various one-time initializers */ + +extern void _Py_InitVersion(void); +extern PyStatus _PyFaulthandler_Init(int enable); +extern PyObject * _PyBuiltin_Init(PyInterpreterState *interp); +extern PyStatus _PySys_Create( + PyThreadState *tstate, + PyObject **sysmod_p); +extern PyStatus _PySys_ReadPreinitWarnOptions(PyWideStringList *options); +extern PyStatus _PySys_ReadPreinitXOptions(PyConfig *config); +extern int _PySys_UpdateConfig(PyThreadState *tstate); +extern void _PySys_FiniTypes(PyInterpreterState *interp); +extern int _PyBuiltins_AddExceptions(PyObject * bltinmod); +extern PyStatus _Py_HashRandomization_Init(const PyConfig *); + +extern PyStatus _PyGC_Init(PyInterpreterState *interp); +extern PyStatus _PyAtExit_Init(PyInterpreterState *interp); + +/* Various internal finalizers */ + +extern int _PySignal_Init(int install_signal_handlers); +extern void _PySignal_Fini(void); + +extern void _PyGC_Fini(PyInterpreterState *interp); +extern void _Py_HashRandomization_Fini(void); +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(PyInterpreterState *interp); +extern void _PyAtExit_Fini(PyInterpreterState *interp); +extern void _PyThread_FiniType(PyInterpreterState *interp); +extern void _PyArg_Fini(void); +extern void _Py_FinalizeAllocatedBlocks(_PyRuntimeState *); + +extern PyStatus _PyGILState_Init(PyInterpreterState *interp); +extern void _PyGILState_SetTstate(PyThreadState *tstate); +extern void _PyGILState_Fini(PyInterpreterState *interp); + +extern void _PyGC_DumpShutdownStats(PyInterpreterState *interp); + +extern PyStatus _Py_PreInitializeFromPyArgv( + const PyPreConfig *src_config, + const struct _PyArgv *args); +extern PyStatus _Py_PreInitializeFromConfig( + const PyConfig *config, + const struct _PyArgv *args); + +extern wchar_t * _Py_GetStdlibDir(void); + +extern int _Py_HandleSystemExit(int *exitcode_p); + +extern PyObject* _PyErr_WriteUnraisableDefaultHook(PyObject *unraisable); + +extern void _PyErr_Print(PyThreadState *tstate); +extern void _PyErr_Display(PyObject *file, PyObject *exception, + PyObject *value, PyObject *tb); +extern void _PyErr_DisplayException(PyObject *file, PyObject *exc); + +extern void _PyThreadState_DeleteCurrent(PyThreadState *tstate); + +extern void _PyAtExit_Call(PyInterpreterState *interp); + +extern int _Py_IsCoreInitialized(void); + +extern int _Py_FdIsInteractive(FILE *fp, PyObject *filename); + +extern const char* _Py_gitidentifier(void); +extern const char* _Py_gitversion(void); + +// Export for '_asyncio' shared extension +PyAPI_FUNC(int) _Py_IsInterpreterFinalizing(PyInterpreterState *interp); + +/* Random */ +extern int _PyOS_URandom(void *buffer, Py_ssize_t size); + +// Export for '_random' shared extension +PyAPI_FUNC(int) _PyOS_URandomNonblock(void *buffer, Py_ssize_t size); + +/* Legacy locale support */ +extern int _Py_CoerceLegacyLocale(int warn); +extern int _Py_LegacyLocaleDetected(int warn); + +// Export for 'readline' shared extension +PyAPI_FUNC(char*) _Py_SetLocaleFromEnv(int category); + +// Export for special main.c string compiling with source tracebacks +int _PyRun_SimpleStringFlagsWithName(const char *command, const char* name, PyCompilerFlags *flags); + + +/* interpreter config */ + +// Export for _testinternalcapi shared extension +PyAPI_FUNC(int) _PyInterpreterConfig_InitFromState( + PyInterpreterConfig *, + PyInterpreterState *); +PyAPI_FUNC(PyObject *) _PyInterpreterConfig_AsDict(PyInterpreterConfig *); +PyAPI_FUNC(int) _PyInterpreterConfig_InitFromDict( + PyInterpreterConfig *, + PyObject *); +PyAPI_FUNC(int) _PyInterpreterConfig_UpdateFromDict( + PyInterpreterConfig *, + PyObject *); + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_LIFECYCLE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pymath.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pymath.h new file mode 100644 index 000000000..7a4e1c1eb --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pymath.h @@ -0,0 +1,205 @@ +#ifndef Py_INTERNAL_PYMATH_H +#define Py_INTERNAL_PYMATH_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +/* _Py_ADJUST_ERANGE1(x) + * _Py_ADJUST_ERANGE2(x, y) + * Set errno to 0 before calling a libm function, and invoke one of these + * macros after, passing the function result(s) (_Py_ADJUST_ERANGE2 is useful + * for functions returning complex results). This makes two kinds of + * adjustments to errno: (A) If it looks like the platform libm set + * errno=ERANGE due to underflow, clear errno. (B) If it looks like the + * platform libm overflowed but didn't set errno, force errno to ERANGE. In + * effect, we're trying to force a useful implementation of C89 errno + * behavior. + * Caution: + * This isn't reliable. C99 no longer requires libm to set errno under + * any exceptional condition, but does require +- HUGE_VAL return + * values on overflow. A 754 box *probably* maps HUGE_VAL to a + * double infinity, and we're cool if that's so, unless the input + * was an infinity and an infinity is the expected result. A C89 + * system sets errno to ERANGE, so we check for that too. We're + * out of luck if a C99 754 box doesn't map HUGE_VAL to +Inf, or + * if the returned result is a NaN, or if a C89 box returns HUGE_VAL + * in non-overflow cases. + */ +static inline void _Py_ADJUST_ERANGE1(double x) +{ + if (errno == 0) { + if (x == Py_HUGE_VAL || x == -Py_HUGE_VAL) { + errno = ERANGE; + } + } + else if (errno == ERANGE && x == 0.0) { + errno = 0; + } +} + +static inline void _Py_ADJUST_ERANGE2(double x, double y) +{ + if (x == Py_HUGE_VAL || x == -Py_HUGE_VAL || + y == Py_HUGE_VAL || y == -Py_HUGE_VAL) + { + if (errno == 0) { + errno = ERANGE; + } + } + else if (errno == ERANGE) { + errno = 0; + } +} + + +//--- HAVE_PY_SET_53BIT_PRECISION macro ------------------------------------ +// +// The functions _Py_dg_strtod() and _Py_dg_dtoa() in Python/dtoa.c (which are +// required to support the short float repr introduced in Python 3.1) require +// that the floating-point unit that's being used for arithmetic operations on +// C doubles is set to use 53-bit precision. It also requires that the FPU +// rounding mode is round-half-to-even, but that's less often an issue. +// +// If your FPU isn't already set to 53-bit precision/round-half-to-even, and +// you want to make use of _Py_dg_strtod() and _Py_dg_dtoa(), then you should: +// +// #define HAVE_PY_SET_53BIT_PRECISION 1 +// +// and also give appropriate definitions for the following three macros: +// +// * _Py_SET_53BIT_PRECISION_HEADER: any variable declarations needed to +// use the two macros below. +// * _Py_SET_53BIT_PRECISION_START: store original FPU settings, and +// set FPU to 53-bit precision/round-half-to-even +// * _Py_SET_53BIT_PRECISION_END: restore original FPU settings +// +// The macros are designed to be used within a single C function: see +// Python/pystrtod.c for an example of their use. + + +// Get and set x87 control word for gcc/x86 +#ifdef HAVE_GCC_ASM_FOR_X87 +#define HAVE_PY_SET_53BIT_PRECISION 1 + +// Functions defined in Python/pymath.c +extern unsigned short _Py_get_387controlword(void); +extern void _Py_set_387controlword(unsigned short); + +#define _Py_SET_53BIT_PRECISION_HEADER \ + unsigned short old_387controlword, new_387controlword +#define _Py_SET_53BIT_PRECISION_START \ + do { \ + old_387controlword = _Py_get_387controlword(); \ + new_387controlword = (old_387controlword & ~0x0f00) | 0x0200; \ + if (new_387controlword != old_387controlword) { \ + _Py_set_387controlword(new_387controlword); \ + } \ + } while (0) +#define _Py_SET_53BIT_PRECISION_END \ + do { \ + if (new_387controlword != old_387controlword) { \ + _Py_set_387controlword(old_387controlword); \ + } \ + } while (0) +#endif + +// Get and set x87 control word for VisualStudio/x86. +// x87 is not supported in 64-bit or ARM. +#if defined(_MSC_VER) && !defined(_WIN64) && !defined(_M_ARM) +#define HAVE_PY_SET_53BIT_PRECISION 1 + +#include // __control87_2() + +#define _Py_SET_53BIT_PRECISION_HEADER \ + unsigned int old_387controlword, new_387controlword, out_387controlword + // We use the __control87_2 function to set only the x87 control word. + // The SSE control word is unaffected. +#define _Py_SET_53BIT_PRECISION_START \ + do { \ + __control87_2(0, 0, &old_387controlword, NULL); \ + new_387controlword = \ + (old_387controlword & ~(_MCW_PC | _MCW_RC)) | (_PC_53 | _RC_NEAR); \ + if (new_387controlword != old_387controlword) { \ + __control87_2(new_387controlword, _MCW_PC | _MCW_RC, \ + &out_387controlword, NULL); \ + } \ + } while (0) +#define _Py_SET_53BIT_PRECISION_END \ + do { \ + if (new_387controlword != old_387controlword) { \ + __control87_2(old_387controlword, _MCW_PC | _MCW_RC, \ + &out_387controlword, NULL); \ + } \ + } while (0) +#endif + + +// MC68881 +#ifdef HAVE_GCC_ASM_FOR_MC68881 +#define HAVE_PY_SET_53BIT_PRECISION 1 +#define _Py_SET_53BIT_PRECISION_HEADER \ + unsigned int old_fpcr, new_fpcr +#define _Py_SET_53BIT_PRECISION_START \ + do { \ + __asm__ ("fmove.l %%fpcr,%0" : "=g" (old_fpcr)); \ + /* Set double precision / round to nearest. */ \ + new_fpcr = (old_fpcr & ~0xf0) | 0x80; \ + if (new_fpcr != old_fpcr) { \ + __asm__ volatile ("fmove.l %0,%%fpcr" : : "g" (new_fpcr));\ + } \ + } while (0) +#define _Py_SET_53BIT_PRECISION_END \ + do { \ + if (new_fpcr != old_fpcr) { \ + __asm__ volatile ("fmove.l %0,%%fpcr" : : "g" (old_fpcr)); \ + } \ + } while (0) +#endif + +// Default definitions are empty +#ifndef _Py_SET_53BIT_PRECISION_HEADER +# define _Py_SET_53BIT_PRECISION_HEADER +# define _Py_SET_53BIT_PRECISION_START +# define _Py_SET_53BIT_PRECISION_END +#endif + + +//--- _PY_SHORT_FLOAT_REPR macro ------------------------------------------- + +// If we can't guarantee 53-bit precision, don't use the code +// in Python/dtoa.c, but fall back to standard code. This +// means that repr of a float will be long (17 significant digits). +// +// Realistically, there are two things that could go wrong: +// +// (1) doubles aren't IEEE 754 doubles, or +// (2) we're on x86 with the rounding precision set to 64-bits +// (extended precision), and we don't know how to change +// the rounding precision. +#if !defined(DOUBLE_IS_LITTLE_ENDIAN_IEEE754) && \ + !defined(DOUBLE_IS_BIG_ENDIAN_IEEE754) && \ + !defined(DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754) +# define _PY_SHORT_FLOAT_REPR 0 +#endif + +// Double rounding is symptomatic of use of extended precision on x86. +// If we're seeing double rounding, and we don't have any mechanism available +// for changing the FPU rounding precision, then don't use Python/dtoa.c. +#if defined(X87_DOUBLE_ROUNDING) && !defined(HAVE_PY_SET_53BIT_PRECISION) +# define _PY_SHORT_FLOAT_REPR 0 +#endif + +#ifndef _PY_SHORT_FLOAT_REPR +# define _PY_SHORT_FLOAT_REPR 1 +#endif + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_PYMATH_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pymem.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pymem.h new file mode 100644 index 000000000..dd6b07623 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pymem.h @@ -0,0 +1,138 @@ +#ifndef Py_INTERNAL_PYMEM_H +#define Py_INTERNAL_PYMEM_H + +#include "pycore_llist.h" // struct llist_node +#include "pycore_lock.h" // PyMutex + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +// Try to get the allocators name set by _PyMem_SetupAllocators(). +// Return NULL if unknown. +// Export for '_testinternalcapi' shared extension. +PyAPI_FUNC(const char*) _PyMem_GetCurrentAllocatorName(void); + +// strdup() using PyMem_RawMalloc() +extern char* _PyMem_RawStrdup(const char *str); + +// strdup() using PyMem_Malloc(). +// Export for '_pickle ' shared extension. +PyAPI_FUNC(char*) _PyMem_Strdup(const char *str); + +// wcsdup() using PyMem_RawMalloc() +extern wchar_t* _PyMem_RawWcsdup(const wchar_t *str); + +typedef struct { + /* We tag each block with an API ID in order to tag API violations */ + char api_id; + PyMemAllocatorEx alloc; +} debug_alloc_api_t; + +struct _pymem_allocators { + PyMutex mutex; + struct { + PyMemAllocatorEx raw; + PyMemAllocatorEx mem; + PyMemAllocatorEx obj; + } standard; + struct { + debug_alloc_api_t raw; + debug_alloc_api_t mem; + debug_alloc_api_t obj; + } debug; + int is_debug_enabled; + PyObjectArenaAllocator obj_arena; +}; + +struct _Py_mem_interp_free_queue { + int has_work; // true if the queue is not empty + PyMutex mutex; // protects the queue + struct llist_node head; // queue of _mem_work_chunk items +}; + +/* 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. */ +extern 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 as 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 +} + +extern 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. */ +extern int _PyMem_SetupAllocators(PyMemAllocatorName allocator); + +/* Is the debug allocator enabled? */ +extern int _PyMem_DebugEnabled(void); + +// Enqueue a pointer to be freed possibly after some delay. +extern void _PyMem_FreeDelayed(void *ptr); + +// Enqueue an object to be freed possibly after some delay +extern void _PyObject_FreeDelayed(void *ptr); + +// Periodically process delayed free requests. +extern void _PyMem_ProcessDelayed(PyThreadState *tstate); + +// Abandon all thread-local delayed free requests and push them to the +// interpreter's queue. +extern void _PyMem_AbandonDelayed(PyThreadState *tstate); + +// On interpreter shutdown, frees all delayed free requests. +extern void _PyMem_FiniDelayed(PyInterpreterState *interp); + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_PYMEM_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pymem_init.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pymem_init.h new file mode 100644 index 000000000..c593edc86 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pymem_init.h @@ -0,0 +1,103 @@ +#ifndef Py_INTERNAL_PYMEM_INIT_H +#define Py_INTERNAL_PYMEM_INIT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +/********************************/ +/* the allocators' initializers */ + +extern void * _PyMem_RawMalloc(void *, size_t); +extern void * _PyMem_RawCalloc(void *, size_t, size_t); +extern void * _PyMem_RawRealloc(void *, void *, size_t); +extern void _PyMem_RawFree(void *, void *); +#define PYRAW_ALLOC {NULL, _PyMem_RawMalloc, _PyMem_RawCalloc, _PyMem_RawRealloc, _PyMem_RawFree} + +#ifdef Py_GIL_DISABLED +// Py_GIL_DISABLED requires mimalloc +extern void* _PyObject_MiMalloc(void *, size_t); +extern void* _PyObject_MiCalloc(void *, size_t, size_t); +extern void _PyObject_MiFree(void *, void *); +extern void* _PyObject_MiRealloc(void *, void *, size_t); +# define PYOBJ_ALLOC {NULL, _PyObject_MiMalloc, _PyObject_MiCalloc, _PyObject_MiRealloc, _PyObject_MiFree} +extern void* _PyMem_MiMalloc(void *, size_t); +extern void* _PyMem_MiCalloc(void *, size_t, size_t); +extern void _PyMem_MiFree(void *, void *); +extern void* _PyMem_MiRealloc(void *, void *, size_t); +# define PYMEM_ALLOC {NULL, _PyMem_MiMalloc, _PyMem_MiCalloc, _PyMem_MiRealloc, _PyMem_MiFree} +#elif defined(WITH_PYMALLOC) +extern void* _PyObject_Malloc(void *, size_t); +extern void* _PyObject_Calloc(void *, size_t, size_t); +extern void _PyObject_Free(void *, void *); +extern void* _PyObject_Realloc(void *, void *, size_t); +# define PYOBJ_ALLOC {NULL, _PyObject_Malloc, _PyObject_Calloc, _PyObject_Realloc, _PyObject_Free} +# define PYMEM_ALLOC PYOBJ_ALLOC +#else +# define PYOBJ_ALLOC PYRAW_ALLOC +# define PYMEM_ALLOC PYOBJ_ALLOC +#endif // WITH_PYMALLOC + + +extern void* _PyMem_DebugRawMalloc(void *, size_t); +extern void* _PyMem_DebugRawCalloc(void *, size_t, size_t); +extern void* _PyMem_DebugRawRealloc(void *, void *, size_t); +extern void _PyMem_DebugRawFree(void *, void *); + +extern void* _PyMem_DebugMalloc(void *, size_t); +extern void* _PyMem_DebugCalloc(void *, size_t, size_t); +extern void* _PyMem_DebugRealloc(void *, void *, size_t); +extern void _PyMem_DebugFree(void *, void *); + +#define PYDBGRAW_ALLOC(runtime) \ + {&(runtime).allocators.debug.raw, _PyMem_DebugRawMalloc, _PyMem_DebugRawCalloc, _PyMem_DebugRawRealloc, _PyMem_DebugRawFree} +#define PYDBGMEM_ALLOC(runtime) \ + {&(runtime).allocators.debug.mem, _PyMem_DebugMalloc, _PyMem_DebugCalloc, _PyMem_DebugRealloc, _PyMem_DebugFree} +#define PYDBGOBJ_ALLOC(runtime) \ + {&(runtime).allocators.debug.obj, _PyMem_DebugMalloc, _PyMem_DebugCalloc, _PyMem_DebugRealloc, _PyMem_DebugFree} + +extern void * _PyMem_ArenaAlloc(void *, size_t); +extern void _PyMem_ArenaFree(void *, void *, size_t); + +#ifdef Py_DEBUG +# define _pymem_allocators_standard_INIT(runtime) \ + { \ + PYDBGRAW_ALLOC(runtime), \ + PYDBGMEM_ALLOC(runtime), \ + PYDBGOBJ_ALLOC(runtime), \ + } +# define _pymem_is_debug_enabled_INIT 1 +#else +# define _pymem_allocators_standard_INIT(runtime) \ + { \ + PYRAW_ALLOC, \ + PYMEM_ALLOC, \ + PYOBJ_ALLOC, \ + } +# define _pymem_is_debug_enabled_INIT 0 +#endif + +#define _pymem_allocators_debug_INIT \ + { \ + {'r', PYRAW_ALLOC}, \ + {'m', PYMEM_ALLOC}, \ + {'o', PYOBJ_ALLOC}, \ + } + +# define _pymem_allocators_obj_arena_INIT \ + { NULL, _PyMem_ArenaAlloc, _PyMem_ArenaFree } + + +#define _Py_mem_free_queue_INIT(queue) \ + { \ + .head = LLIST_INIT(queue.head), \ + } + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_PYMEM_INIT_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pystate.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pystate.h new file mode 100644 index 000000000..b0e72523f --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pystate.h @@ -0,0 +1,299 @@ +#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_freelist.h" // _PyFreeListState +#include "pycore_runtime.h" // _PyRuntime +#include "pycore_tstate.h" // _PyThreadStateImpl + + +// Values for PyThreadState.state. A thread must be in the "attached" state +// before calling most Python APIs. If the GIL is enabled, then "attached" +// implies that the thread holds the GIL and "detached" implies that the +// thread does not hold the GIL (or is in the process of releasing it). In +// `--disable-gil` builds, multiple threads may be "attached" to the same +// interpreter at the same time. Only the "bound" thread may perform the +// transitions between "attached" and "detached" on its own PyThreadState. +// +// The "suspended" state is used to implement stop-the-world pauses, such as +// for cyclic garbage collection. It is only used in `--disable-gil` builds. +// The "suspended" state is similar to the "detached" state in that in both +// states the thread is not allowed to call most Python APIs. However, unlike +// the "detached" state, a thread may not transition itself out from the +// "suspended" state. Only the thread performing a stop-the-world pause may +// transition a thread from the "suspended" state back to the "detached" state. +// +// State transition diagram: +// +// (bound thread) (stop-the-world thread) +// [attached] <-> [detached] <-> [suspended] +// | ^ +// +---------------------------->---------------------------+ +// (bound thread) +// +// The (bound thread) and (stop-the-world thread) labels indicate which thread +// is allowed to perform the transition. +#define _Py_THREAD_DETACHED 0 +#define _Py_THREAD_ATTACHED 1 +#define _Py_THREAD_SUSPENDED 2 + + +/* 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 PyInterpreterState * +_PyInterpreterState_Main(void) +{ + return _PyRuntime.interpreters.main; +} + +static inline int +_Py_IsMainInterpreter(PyInterpreterState *interp) +{ + return (interp == _PyInterpreterState_Main()); +} + +static inline int +_Py_IsMainInterpreterFinalizing(PyInterpreterState *interp) +{ + /* 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. */ + return (_PyRuntimeState_GetFinalizing(&_PyRuntime) != NULL && + interp == &_PyRuntime._main_interpreter); +} + +// Export for _interpreters module. +PyAPI_FUNC(PyObject *) _PyInterpreterState_GetIDObject(PyInterpreterState *); + +// Export for _interpreters module. +PyAPI_FUNC(int) _PyInterpreterState_SetRunningMain(PyInterpreterState *); +PyAPI_FUNC(void) _PyInterpreterState_SetNotRunningMain(PyInterpreterState *); +PyAPI_FUNC(int) _PyInterpreterState_IsRunningMain(PyInterpreterState *); +PyAPI_FUNC(int) _PyInterpreterState_FailIfRunningMain(PyInterpreterState *); + +extern int _PyThreadState_IsRunningMain(PyThreadState *); +extern void _PyInterpreterState_ReinitRunningMain(PyThreadState *); + + +static inline const PyConfig * +_Py_GetMainConfig(void) +{ + PyInterpreterState *interp = _PyInterpreterState_Main(); + if (interp == NULL) { + return NULL; + } + return _PyInterpreterState_GetConfig(interp); +} + + +/* Only handle signals on the main thread of the main interpreter. */ +static inline int +_Py_ThreadCanHandleSignals(PyInterpreterState *interp) +{ + return (_Py_IsMainThread() && _Py_IsMainInterpreter(interp)); +} + + +/* Variable and static inline functions for in-line access to current thread + and interpreter state */ + +#if defined(HAVE_THREAD_LOCAL) && !defined(Py_BUILD_CORE_MODULE) +extern _Py_thread_local PyThreadState *_Py_tss_tstate; +#endif + +#ifndef NDEBUG +extern int _PyThreadState_CheckConsistency(PyThreadState *tstate); +#endif + +int _PyThreadState_MustExit(PyThreadState *tstate); + +// Export for most shared extensions, used via _PyThreadState_GET() static +// inline function. +PyAPI_FUNC(PyThreadState *) _PyThreadState_GetCurrent(void); + +/* Get the current Python thread state. + + This function 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_GetUnchecked(). */ +static inline PyThreadState* +_PyThreadState_GET(void) +{ +#if defined(HAVE_THREAD_LOCAL) && !defined(Py_BUILD_CORE_MODULE) + return _Py_tss_tstate; +#else + return _PyThreadState_GetCurrent(); +#endif +} + +// Attaches the current thread to the interpreter. +// +// This may block while acquiring the GIL (if the GIL is enabled) or while +// waiting for a stop-the-world pause (if the GIL is disabled). +// +// High-level code should generally call PyEval_RestoreThread() instead, which +// calls this function. +extern void _PyThreadState_Attach(PyThreadState *tstate); + +// Detaches the current thread from the interpreter. +// +// High-level code should generally call PyEval_SaveThread() instead, which +// calls this function. +extern void _PyThreadState_Detach(PyThreadState *tstate); + +// Detaches the current thread to the "suspended" state if a stop-the-world +// pause is in progress. +// +// If there is no stop-the-world pause in progress, then the thread switches +// to the "detached" state. +extern void _PyThreadState_Suspend(PyThreadState *tstate); + +// Perform a stop-the-world pause for all threads in the all interpreters. +// +// Threads in the "attached" state are paused and transitioned to the "GC" +// state. Threads in the "detached" state switch to the "GC" state, preventing +// them from reattaching until the stop-the-world pause is complete. +// +// NOTE: This is a no-op outside of Py_GIL_DISABLED builds. +extern void _PyEval_StopTheWorldAll(_PyRuntimeState *runtime); +extern void _PyEval_StartTheWorldAll(_PyRuntimeState *runtime); + +// Perform a stop-the-world pause for threads in the specified interpreter. +// +// NOTE: This is a no-op outside of Py_GIL_DISABLED builds. +extern void _PyEval_StopTheWorld(PyInterpreterState *interp); +extern void _PyEval_StartTheWorld(PyInterpreterState *interp); + + +static inline void +_Py_EnsureFuncTstateNotNULL(const char *func, PyThreadState *tstate) +{ + if (tstate == NULL) { + _Py_FatalErrorFunc(func, + "the function must be called with the GIL held, " + "after Python initialization and before Python finalization, " + "but the GIL is released (the current Python thread state is NULL)"); + } +} + +// Call Py_FatalError() if tstate is NULL +#define _Py_EnsureTstateNotNULL(tstate) \ + _Py_EnsureFuncTstateNotNULL(__func__, (tstate)) + + +/* Get the current interpreter state. + + The function 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; +} + + +// PyThreadState functions + +// Export for _testinternalcapi +PyAPI_FUNC(PyThreadState *) _PyThreadState_New( + PyInterpreterState *interp, + int whence); +extern void _PyThreadState_Bind(PyThreadState *tstate); +PyAPI_FUNC(PyThreadState *) _PyThreadState_NewBound( + PyInterpreterState *interp, + int whence); +extern PyThreadState * _PyThreadState_RemoveExcept(PyThreadState *tstate); +extern void _PyThreadState_DeleteList(PyThreadState *list); +extern void _PyThreadState_ClearMimallocHeaps(PyThreadState *tstate); + +// Export for '_testinternalcapi' shared extension +PyAPI_FUNC(PyObject*) _PyThreadState_GetDict(PyThreadState *tstate); + +/* The implementation of sys._current_exceptions() Returns a dict mapping + thread id to that thread's current exception. +*/ +extern PyObject* _PyThread_CurrentExceptions(void); + + +/* Other */ + +extern PyThreadState * _PyThreadState_Swap( + _PyRuntimeState *runtime, + PyThreadState *newts); + +extern PyStatus _PyInterpreterState_Enable(_PyRuntimeState *runtime); + +#ifdef HAVE_FORK +extern PyStatus _PyInterpreterState_DeleteExceptMain(_PyRuntimeState *runtime); +extern void _PySignal_AfterFork(void); +#endif + +// Export for the stable ABI +PyAPI_FUNC(int) _PyState_AddModule( + PyThreadState *tstate, + PyObject* module, + PyModuleDef* def); + + +extern int _PyOS_InterruptOccurred(PyThreadState *tstate); + +#define HEAD_LOCK(runtime) \ + PyMutex_LockFlags(&(runtime)->interpreters.mutex, _Py_LOCK_DONT_DETACH) +#define HEAD_UNLOCK(runtime) \ + PyMutex_Unlock(&(runtime)->interpreters.mutex) + +// Get the configuration of the current interpreter. +// The caller must hold the GIL. +// Export for test_peg_generator. +PyAPI_FUNC(const PyConfig*) _Py_GetConfig(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(). +extern PyInterpreterState* _PyGILState_GetInterpreterStateUnsafe(void); + +static inline struct _Py_object_freelists* _Py_object_freelists_GET(void) +{ + PyThreadState *tstate = _PyThreadState_GET(); +#ifdef Py_DEBUG + _Py_EnsureTstateNotNULL(tstate); +#endif + +#ifdef Py_GIL_DISABLED + return &((_PyThreadStateImpl*)tstate)->freelists; +#else + return &tstate->interp->object_state.freelists; +#endif +} + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_PYSTATE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pystats.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pystats.h new file mode 100644 index 000000000..f8af398a5 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pystats.h @@ -0,0 +1,21 @@ +#ifndef Py_INTERNAL_PYSTATS_H +#define Py_INTERNAL_PYSTATS_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#ifdef Py_STATS +extern void _Py_StatsOn(void); +extern void _Py_StatsOff(void); +extern void _Py_StatsClear(void); +extern int _Py_PrintSpecializationStats(int to_file); +#endif + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_PYSTATS_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pythonrun.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pythonrun.h new file mode 100644 index 000000000..0bfc5704d --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pythonrun.h @@ -0,0 +1,39 @@ +#ifndef Py_INTERNAL_PYTHONRUN_H +#define Py_INTERNAL_PYTHONRUN_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +extern int _PyRun_SimpleFileObject( + FILE *fp, + PyObject *filename, + int closeit, + PyCompilerFlags *flags); + +extern int _PyRun_AnyFileObject( + FILE *fp, + PyObject *filename, + int closeit, + PyCompilerFlags *flags); + +extern int _PyRun_InteractiveLoopObject( + FILE *fp, + PyObject *filename, + PyCompilerFlags *flags); + +extern const char* _Py_SourceAsString( + PyObject *cmd, + const char *funcname, + const char *what, + PyCompilerFlags *cf, + PyObject **cmd_copy); + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_PYTHONRUN_H + diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pythread.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pythread.h new file mode 100644 index 000000000..3610c6254 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_pythread.h @@ -0,0 +1,159 @@ +#ifndef Py_INTERNAL_PYTHREAD_H +#define Py_INTERNAL_PYTHREAD_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_PURE_HAPPENS_BEFORE_MUTEX +#include "pycore_llist.h" // struct llist_node + +// Get _POSIX_THREADS and _POSIX_SEMAPHORES macros if available +#if (defined(HAVE_UNISTD_H) && !defined(_POSIX_THREADS) \ + && !defined(_POSIX_SEMAPHORES)) +# include // _POSIX_THREADS, _POSIX_SEMAPHORES +#endif +#if (defined(HAVE_PTHREAD_H) && !defined(_POSIX_THREADS) \ + && !defined(_POSIX_SEMAPHORES)) + // This means pthreads are not implemented in libc headers, hence the macro + // not present in . But they still can be implemented as an + // external library (e.g. gnu pth in pthread emulation) +# include // _POSIX_THREADS, _POSIX_SEMAPHORES +#endif +#if !defined(_POSIX_THREADS) && defined(__hpux) && defined(_SC_THREADS) + // Check if we're running on HP-UX and _SC_THREADS is defined. If so, then + // enough of the POSIX threads package is implemented to support Python + // threads. + // + // This is valid for HP-UX 11.23 running on an ia64 system. If needed, add + // a check of __ia64 to verify that we're running on an ia64 system instead + // of a pa-risc system. +# define _POSIX_THREADS +#endif + + +#if defined(_POSIX_THREADS) || defined(HAVE_PTHREAD_STUBS) +# define _USE_PTHREADS +#endif + +#if defined(_USE_PTHREADS) && 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_STUBS) +#include "cpython/pthread_stubs.h" // PTHREAD_KEYS_MAX +#include // bool + +// pthread_key +struct py_stub_tls_entry { + bool in_use; + void *value; +}; +#endif + +struct _pythread_runtime_state { + int initialized; + +#ifdef _USE_PTHREADS + // This matches when thread_pthread.h is used. + struct { + /* NULL when pthread_condattr_setclock(CLOCK_MONOTONIC) is not supported. */ + pthread_condattr_t *ptr; +# ifdef CONDATTR_MONOTONIC + /* The value to which condattr_monotonic is set. */ + pthread_condattr_t val; +# endif + } _condattr_monotonic; + +#endif // USE_PTHREADS + +#if defined(HAVE_PTHREAD_STUBS) + struct { + struct py_stub_tls_entry tls_entries[PTHREAD_KEYS_MAX]; + } stubs; +#endif + + // Linked list of ThreadHandles + struct llist_node handles; +}; + +#define _pythread_RUNTIME_INIT(pythread) \ + { \ + .handles = LLIST_INIT(pythread.handles), \ + } + +#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. */ +extern int _PyThread_at_fork_reinit(PyThread_type_lock *lock); +extern void _PyThread_AfterFork(struct _pythread_runtime_state *state); +#endif /* HAVE_FORK */ + + +// unset: -1 seconds, in nanoseconds +#define PyThread_UNSET_TIMEOUT ((PyTime_t)(-1 * 1000 * 1000 * 1000)) + +// Exported for the _interpchannels module. +PyAPI_FUNC(int) PyThread_ParseTimeoutArg( + PyObject *arg, + int blocking, + PY_TIMEOUT_T *timeout); + +/* Helper to acquire an interruptible lock with a timeout. If the lock acquire + * is interrupted, signal handlers are run, and if they raise an exception, + * PY_LOCK_INTR is returned. Otherwise, PY_LOCK_ACQUIRED or PY_LOCK_FAILURE + * are returned, depending on whether the lock can be acquired within the + * timeout. + */ +// Exported for the _interpchannels module. +PyAPI_FUNC(PyLockStatus) PyThread_acquire_lock_timed_with_retries( + PyThread_type_lock, + PY_TIMEOUT_T microseconds); + +typedef unsigned long long PyThread_ident_t; +typedef Py_uintptr_t PyThread_handle_t; + +#define PY_FORMAT_THREAD_IDENT_T "llu" +#define Py_PARSE_THREAD_IDENT_T "K" + +PyAPI_FUNC(PyThread_ident_t) PyThread_get_thread_ident_ex(void); + +/* Thread joining APIs. + * + * These APIs have a strict contract: + * - Either PyThread_join_thread or PyThread_detach_thread must be called + * exactly once with the given handle. + * - Calling neither PyThread_join_thread nor PyThread_detach_thread results + * in a resource leak until the end of the process. + * - Any other usage, such as calling both PyThread_join_thread and + * PyThread_detach_thread, or calling them more than once (including + * simultaneously), results in undefined behavior. + */ +PyAPI_FUNC(int) PyThread_start_joinable_thread(void (*func)(void *), + void *arg, + PyThread_ident_t* ident, + PyThread_handle_t* handle); +/* + * Join a thread started with `PyThread_start_joinable_thread`. + * This function cannot be interrupted. It returns 0 on success, + * a non-zero value on failure. + */ +PyAPI_FUNC(int) PyThread_join_thread(PyThread_handle_t); +/* + * Detach a thread started with `PyThread_start_joinable_thread`, such + * that its resources are relased as soon as it exits. + * This function cannot be interrupted. It returns 0 on success, + * a non-zero value on failure. + */ +PyAPI_FUNC(int) PyThread_detach_thread(PyThread_handle_t); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_PYTHREAD_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_qsbr.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_qsbr.h new file mode 100644 index 000000000..20e643e17 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_qsbr.h @@ -0,0 +1,154 @@ +// The QSBR APIs (quiescent state-based reclamation) provide a mechanism for +// the free-threaded build to safely reclaim memory when there may be +// concurrent accesses. +// +// Many operations in the free-threaded build are protected by locks. However, +// in some cases, we want to allow reads to happen concurrently with updates. +// In this case, we need to delay freeing ("reclaiming") any memory that may be +// concurrently accessed by a reader. The QSBR APIs provide a way to do this. +#ifndef Py_INTERNAL_QSBR_H +#define Py_INTERNAL_QSBR_H + +#include +#include +#include "pycore_lock.h" // PyMutex + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +// The shared write sequence is always odd and incremented by two. Detached +// threads are indicated by a read sequence of zero. This avoids collisions +// between the offline state and any valid sequence number even if the +// sequences numbers wrap around. +#define QSBR_OFFLINE 0 +#define QSBR_INITIAL 1 +#define QSBR_INCR 2 + +// Wrap-around safe comparison. This is a holdover from the FreeBSD +// implementation, which uses 32-bit sequence numbers. We currently use 64-bit +// sequence numbers, so wrap-around is unlikely. +#define QSBR_LT(a, b) ((int64_t)((a)-(b)) < 0) +#define QSBR_LEQ(a, b) ((int64_t)((a)-(b)) <= 0) + +struct _qsbr_shared; +struct _PyThreadStateImpl; // forward declare to avoid circular dependency + +// Per-thread state +struct _qsbr_thread_state { + // Last observed write sequence (or 0 if detached) + uint64_t seq; + + // Shared (per-interpreter) QSBR state + struct _qsbr_shared *shared; + + // Thread state (or NULL) + PyThreadState *tstate; + + // Used to defer advancing write sequence a fixed number of times + int deferrals; + + // Is this thread state allocated? + bool allocated; + struct _qsbr_thread_state *freelist_next; +}; + +// Padding to avoid false sharing +struct _qsbr_pad { + struct _qsbr_thread_state qsbr; + char __padding[64 - sizeof(struct _qsbr_thread_state)]; +}; + +// Per-interpreter state +struct _qsbr_shared { + // Write sequence: always odd, incremented by two + uint64_t wr_seq; + + // Minimum observed read sequence of all QSBR thread states + uint64_t rd_seq; + + // Array of QSBR thread states. + struct _qsbr_pad *array; + Py_ssize_t size; + + // Freelist of unused _qsbr_thread_states (protected by mutex) + PyMutex mutex; + struct _qsbr_thread_state *freelist; +}; + +static inline uint64_t +_Py_qsbr_shared_current(struct _qsbr_shared *shared) +{ + return _Py_atomic_load_uint64_acquire(&shared->wr_seq); +} + +// Reports a quiescent state: the caller no longer holds any pointer to shared +// data not protected by locks or reference counts. +static inline void +_Py_qsbr_quiescent_state(struct _qsbr_thread_state *qsbr) +{ + uint64_t seq = _Py_qsbr_shared_current(qsbr->shared); + _Py_atomic_store_uint64_release(&qsbr->seq, seq); +} + +// Have the read sequences advanced to the given goal? Like `_Py_qsbr_poll()`, +// but does not perform a scan of threads. +static inline bool +_Py_qbsr_goal_reached(struct _qsbr_thread_state *qsbr, uint64_t goal) +{ + uint64_t rd_seq = _Py_atomic_load_uint64(&qsbr->shared->rd_seq); + return QSBR_LEQ(goal, rd_seq); +} + +// Advance the write sequence and return the new goal. This should be called +// after data is removed. The returned goal is used with `_Py_qsbr_poll()` to +// determine when it is safe to reclaim (free) the memory. +extern uint64_t +_Py_qsbr_advance(struct _qsbr_shared *shared); + +// Batches requests to advance the write sequence. This advances the write +// sequence every N calls, which reduces overhead but increases time to +// reclamation. Returns the new goal. +extern uint64_t +_Py_qsbr_deferred_advance(struct _qsbr_thread_state *qsbr); + +// Have the read sequences advanced to the given goal? If this returns true, +// it safe to reclaim any memory tagged with the goal (or earlier goal). +extern bool +_Py_qsbr_poll(struct _qsbr_thread_state *qsbr, uint64_t goal); + +// Called when thread attaches to interpreter +extern void +_Py_qsbr_attach(struct _qsbr_thread_state *qsbr); + +// Called when thread detaches from interpreter +extern void +_Py_qsbr_detach(struct _qsbr_thread_state *qsbr); + +// Reserves (allocates) a QSBR state and returns its index. +extern Py_ssize_t +_Py_qsbr_reserve(PyInterpreterState *interp); + +// Associates a PyThreadState with the QSBR state at the given index +extern void +_Py_qsbr_register(struct _PyThreadStateImpl *tstate, + PyInterpreterState *interp, Py_ssize_t index); + +// Disassociates a PyThreadState from the QSBR state and frees the QSBR state. +extern void +_Py_qsbr_unregister(PyThreadState *tstate); + +extern void +_Py_qsbr_fini(PyInterpreterState *interp); + +extern void +_Py_qsbr_after_fork(struct _PyThreadStateImpl *tstate); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_QSBR_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_range.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_range.h new file mode 100644 index 000000000..bf045ec4f --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_range.h @@ -0,0 +1,21 @@ +#ifndef Py_INTERNAL_RANGE_H +#define Py_INTERNAL_RANGE_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +typedef struct { + PyObject_HEAD + long start; + long step; + long len; +} _PyRangeIterObject; + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_RANGE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_runtime.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_runtime.h new file mode 100644 index 000000000..d4291b872 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_runtime.h @@ -0,0 +1,410 @@ +#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_atexit.h" // struct _atexit_runtime_state +#include "pycore_ceval_state.h" // struct _ceval_runtime_state +#include "pycore_crossinterp.h" // struct _xidregistry +#include "pycore_faulthandler.h" // struct _faulthandler_runtime_state +#include "pycore_floatobject.h" // struct _Py_float_runtime_state +#include "pycore_import.h" // struct _import_runtime_state +#include "pycore_interp.h" // PyInterpreterState +#include "pycore_object_state.h" // struct _py_object_runtime_state +#include "pycore_parser.h" // struct _parser_runtime_state +#include "pycore_pyhash.h" // struct pyhash_runtime_state +#include "pycore_pymem.h" // struct _pymem_allocators +#include "pycore_pythread.h" // struct _pythread_runtime_state +#include "pycore_signal.h" // struct _signals_runtime_state +#include "pycore_tracemalloc.h" // struct _tracemalloc_runtime_state +#include "pycore_typeobject.h" // struct _types_runtime_state +#include "pycore_unicodeobject.h" // struct _Py_unicode_runtime_state + +struct _getargs_runtime_state { + struct _PyArg_Parser *static_parsers; +}; + +/* 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; + /* The single PyInterpreterState used by this process' + GILState implementation + */ + /* TODO: Given interp_main, it may be possible to kill this ref */ + PyInterpreterState *autoInterpreterState; +}; + +/* Runtime audit hook state */ + +#define _Py_Debug_Cookie "xdebugpy" + +#ifdef Py_GIL_DISABLED +# define _Py_Debug_gilruntimestate_enabled offsetof(struct _gil_runtime_state, enabled) +# define _Py_Debug_Free_Threaded 1 +#else +# define _Py_Debug_gilruntimestate_enabled 0 +# define _Py_Debug_Free_Threaded 0 +#endif +typedef struct _Py_AuditHookEntry { + struct _Py_AuditHookEntry *next; + Py_AuditHookFunction hookCFunction; + void *userData; +} _Py_AuditHookEntry; + +typedef struct _Py_DebugOffsets { + char cookie[8]; + uint64_t version; + uint64_t free_threaded; + // Runtime state offset; + struct _runtime_state { + uint64_t size; + uint64_t finalizing; + uint64_t interpreters_head; + } runtime_state; + + // Interpreter state offset; + struct _interpreter_state { + uint64_t size; + uint64_t id; + uint64_t next; + uint64_t threads_head; + uint64_t gc; + uint64_t imports_modules; + uint64_t sysdict; + uint64_t builtins; + uint64_t ceval_gil; + uint64_t gil_runtime_state; + uint64_t gil_runtime_state_enabled; + uint64_t gil_runtime_state_locked; + uint64_t gil_runtime_state_holder; + } interpreter_state; + + // Thread state offset; + struct _thread_state{ + uint64_t size; + uint64_t prev; + uint64_t next; + uint64_t interp; + uint64_t current_frame; + uint64_t thread_id; + uint64_t native_thread_id; + uint64_t datastack_chunk; + uint64_t status; + } thread_state; + + // InterpreterFrame offset; + struct _interpreter_frame { + uint64_t size; + uint64_t previous; + uint64_t executable; + uint64_t instr_ptr; + uint64_t localsplus; + uint64_t owner; + } interpreter_frame; + + // Code object offset; + struct _code_object { + uint64_t size; + uint64_t filename; + uint64_t name; + uint64_t qualname; + uint64_t linetable; + uint64_t firstlineno; + uint64_t argcount; + uint64_t localsplusnames; + uint64_t localspluskinds; + uint64_t co_code_adaptive; + } code_object; + + // PyObject offset; + struct _pyobject { + uint64_t size; + uint64_t ob_type; + } pyobject; + + // PyTypeObject object offset; + struct _type_object { + uint64_t size; + uint64_t tp_name; + uint64_t tp_repr; + uint64_t tp_flags; + } type_object; + + // PyTuple object offset; + struct _tuple_object { + uint64_t size; + uint64_t ob_item; + uint64_t ob_size; + } tuple_object; + + // PyList object offset; + struct _list_object { + uint64_t size; + uint64_t ob_item; + uint64_t ob_size; + } list_object; + + // PyDict object offset; + struct _dict_object { + uint64_t size; + uint64_t ma_keys; + uint64_t ma_values; + } dict_object; + + // PyFloat object offset; + struct _float_object { + uint64_t size; + uint64_t ob_fval; + } float_object; + + // PyLong object offset; + struct _long_object { + uint64_t size; + uint64_t lv_tag; + uint64_t ob_digit; + } long_object; + + // PyBytes object offset; + struct _bytes_object { + uint64_t size; + uint64_t ob_size; + uint64_t ob_sval; + } bytes_object; + + // Unicode object offset; + struct _unicode_object { + uint64_t size; + uint64_t state; + uint64_t length; + uint64_t asciiobject_size; + } unicode_object; + + // GC runtime state offset; + struct _gc { + uint64_t size; + uint64_t collecting; + } gc; +} _Py_DebugOffsets; + +/* Reference tracer state */ +struct _reftracer_runtime_state { + PyRefTracer tracer_func; + void* tracer_data; +}; + +/* Full Python runtime state */ + +/* _PyRuntimeState holds the global state for the CPython runtime. + That data is exposed in the internal API as a static variable (_PyRuntime). + */ +typedef struct pyruntimestate { + /* This field must be first to facilitate locating it by out of process + * debuggers. Out of process debuggers will use the offsets contained in this + * field to be able to locate other fields in several interpreter structures + * in a way that doesn't require them to know the exact layout of those + * structures. + * + * IMPORTANT: + * This struct is **NOT** backwards compatible between minor version of the + * interpreter and the members, order of members and size can change between + * minor versions. This struct is only guaranteed to be stable between patch + * versions for a given minor version of the interpreter. + */ + _Py_DebugOffsets debug_offsets; + + /* Has been initialized to a safe state. + + In order to be effective, this must be set to 0 during or right + after allocation. */ + int _initialized; + + /* 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. */ + PyThreadState *_finalizing; + /* The ID of the OS thread in which we are finalizing. */ + unsigned long _finalizing_id; + + struct pyinterpreters { + PyMutex mutex; + /* The linked list of interpreters, newest first. */ + PyInterpreterState *head; + /* The runtime's initial interpreter, which has a special role + in the operation of the runtime. It is also often the only + interpreter. */ + PyInterpreterState *main; + /* next_id is an auto-numbered sequence of small + integers. It gets initialized in _PyInterpreterState_Enable(), + 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; + + /* Platform-specific identifier and PyThreadState, respectively, for the + main thread in the main interpreter. */ + unsigned long main_thread; + PyThreadState *main_tstate; + + /* ---------- IMPORTANT --------------------------- + The fields above this line are declared as early as + possible to facilitate out-of-process observability + tools. */ + + /* cross-interpreter data and utils */ + struct _xi_runtime_state xi; + + struct _pymem_allocators allocators; + struct _obmalloc_global_state obmalloc; + struct pyhash_runtime_state pyhash_state; + struct _pythread_runtime_state threads; + struct _signals_runtime_state signals; + + /* Used for the thread state bound to the current thread. */ + Py_tss_t autoTSSkey; + + /* Used instead of PyThreadState.trash when there is not current tstate. */ + Py_tss_t trashTSSkey; + + PyWideStringList orig_argv; + + struct _parser_runtime_state parser; + + struct _atexit_runtime_state atexit; + + struct _import_runtime_state imports; + struct _ceval_runtime_state ceval; + struct _gilstate_runtime_state gilstate; + struct _getargs_runtime_state getargs; + struct _fileutils_state fileutils; + struct _faulthandler_runtime_state faulthandler; + struct _tracemalloc_runtime_state tracemalloc; + struct _reftracer_runtime_state ref_tracer; + + // The rwmutex is used to prevent overlapping global and per-interpreter + // stop-the-world events. Global stop-the-world events lock the mutex + // exclusively (as a "writer"), while per-interpreter stop-the-world events + // lock it non-exclusively (as "readers"). + _PyRWMutex stoptheworld_mutex; + struct _stoptheworld_state stoptheworld; + + PyPreConfig preconfig; + + // Audit values must be preserved when Py_Initialize()/Py_Finalize() + // is called multiple times. + Py_OpenCodeHookFunction open_code_hook; + void *open_code_userdata; + struct { + PyMutex mutex; + _Py_AuditHookEntry *head; + } audit_hooks; + + struct _py_object_runtime_state object_state; + struct _Py_float_runtime_state float_state; + struct _Py_unicode_runtime_state unicode_state; + struct _types_runtime_state types; + + /* All the objects that are shared by the runtime's interpreters. */ + struct _Py_cached_objects cached_objects; + struct _Py_static_objects static_objects; + + /* The following fields are here to avoid allocation during init. + The data is exposed through _PyRuntimeState pointer fields. + These fields should not be accessed directly outside of init. + + All other _PyRuntimeState pointer fields are populated when + needed and default to NULL. + + For now there are some exceptions to that rule, which require + allocation during init. These will be addressed on a case-by-case + basis. Most notably, we don't pre-allocated the several mutex + (PyThread_type_lock) fields, because on Windows we only ever get + a pointer type. + */ + + /* _PyRuntimeState.interpreters.main */ + PyInterpreterState _main_interpreter; + +#if defined(__EMSCRIPTEN__) && defined(PY_CALL_TRAMPOLINE) + // Used in "Python/emscripten_trampoline.c" to choose between type + // reflection trampoline and EM_JS trampoline. + bool wasm_type_reflection_available; +#endif + +} _PyRuntimeState; + + +/* other API */ + +// Export _PyRuntime for shared extensions which use it in static inline +// functions for best performance, like _Py_IsMainThread() or _Py_ID(). +// It's also made accessible for debuggers and profilers. +PyAPI_DATA(_PyRuntimeState) _PyRuntime; + +extern PyStatus _PyRuntimeState_Init(_PyRuntimeState *runtime); +extern void _PyRuntimeState_Fini(_PyRuntimeState *runtime); + +#ifdef HAVE_FORK +extern PyStatus _PyRuntimeState_ReInitThreads(_PyRuntimeState *runtime); +#endif + +/* Initialize _PyRuntimeState. + Return NULL on success, or return an error message on failure. */ +extern PyStatus _PyRuntime_Initialize(void); + +extern void _PyRuntime_Finalize(void); + + +static inline PyThreadState* +_PyRuntimeState_GetFinalizing(_PyRuntimeState *runtime) { + return (PyThreadState*)_Py_atomic_load_ptr_relaxed(&runtime->_finalizing); +} + +static inline unsigned long +_PyRuntimeState_GetFinalizingID(_PyRuntimeState *runtime) { + return _Py_atomic_load_ulong_relaxed(&runtime->_finalizing_id); +} + +static inline void +_PyRuntimeState_SetFinalizing(_PyRuntimeState *runtime, PyThreadState *tstate) { + _Py_atomic_store_ptr_relaxed(&runtime->_finalizing, tstate); + if (tstate == NULL) { + _Py_atomic_store_ulong_relaxed(&runtime->_finalizing_id, 0); + } + else { + // XXX Re-enable this assert once gh-109860 is fixed. + //assert(tstate->thread_id == PyThread_get_thread_ident()); + _Py_atomic_store_ulong_relaxed(&runtime->_finalizing_id, + tstate->thread_id); + } +} + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_RUNTIME_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_runtime_init.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_runtime_init.h new file mode 100644 index 000000000..7eef9edc0 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_runtime_init.h @@ -0,0 +1,329 @@ +#ifndef Py_INTERNAL_RUNTIME_INIT_H +#define Py_INTERNAL_RUNTIME_INIT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_ceval_state.h" // _PyEval_RUNTIME_PERF_INIT +#include "pycore_faulthandler.h" // _faulthandler_runtime_state_INIT +#include "pycore_floatobject.h" // _py_float_format_unknown +#include "pycore_object.h" // _PyObject_HEAD_INIT +#include "pycore_obmalloc_init.h" // _obmalloc_global_state_INIT +#include "pycore_parser.h" // _parser_runtime_state_INIT +#include "pycore_pyhash.h" // pyhash_state_INIT +#include "pycore_pymem_init.h" // _pymem_allocators_standard_INIT +#include "pycore_pythread.h" // _pythread_RUNTIME_INIT +#include "pycore_qsbr.h" // QSBR_INITIAL +#include "pycore_runtime_init_generated.h" // _Py_bytes_characters_INIT +#include "pycore_signal.h" // _signals_RUNTIME_INIT +#include "pycore_tracemalloc.h" // _tracemalloc_runtime_state_INIT + + +extern PyTypeObject _PyExc_MemoryError; + + +/* The static initializers defined here should only be used + in the runtime init code (in pystate.c and pylifecycle.c). */ + +#define _PyRuntimeState_INIT(runtime, debug_cookie) \ + { \ + .debug_offsets = { \ + .cookie = debug_cookie, \ + .version = PY_VERSION_HEX, \ + .free_threaded = _Py_Debug_Free_Threaded, \ + .runtime_state = { \ + .size = sizeof(_PyRuntimeState), \ + .finalizing = offsetof(_PyRuntimeState, _finalizing), \ + .interpreters_head = offsetof(_PyRuntimeState, interpreters.head), \ + }, \ + .interpreter_state = { \ + .size = sizeof(PyInterpreterState), \ + .id = offsetof(PyInterpreterState, id), \ + .next = offsetof(PyInterpreterState, next), \ + .threads_head = offsetof(PyInterpreterState, threads.head), \ + .gc = offsetof(PyInterpreterState, gc), \ + .imports_modules = offsetof(PyInterpreterState, imports.modules), \ + .sysdict = offsetof(PyInterpreterState, sysdict), \ + .builtins = offsetof(PyInterpreterState, builtins), \ + .ceval_gil = offsetof(PyInterpreterState, ceval.gil), \ + .gil_runtime_state = offsetof(PyInterpreterState, _gil), \ + .gil_runtime_state_enabled = _Py_Debug_gilruntimestate_enabled, \ + .gil_runtime_state_locked = offsetof(PyInterpreterState, _gil.locked), \ + .gil_runtime_state_holder = offsetof(PyInterpreterState, _gil.last_holder), \ + }, \ + .thread_state = { \ + .size = sizeof(PyThreadState), \ + .prev = offsetof(PyThreadState, prev), \ + .next = offsetof(PyThreadState, next), \ + .interp = offsetof(PyThreadState, interp), \ + .current_frame = offsetof(PyThreadState, current_frame), \ + .thread_id = offsetof(PyThreadState, thread_id), \ + .native_thread_id = offsetof(PyThreadState, native_thread_id), \ + .datastack_chunk = offsetof(PyThreadState, datastack_chunk), \ + .status = offsetof(PyThreadState, _status), \ + }, \ + .interpreter_frame = { \ + .size = sizeof(_PyInterpreterFrame), \ + .previous = offsetof(_PyInterpreterFrame, previous), \ + .executable = offsetof(_PyInterpreterFrame, f_executable), \ + .instr_ptr = offsetof(_PyInterpreterFrame, instr_ptr), \ + .localsplus = offsetof(_PyInterpreterFrame, localsplus), \ + .owner = offsetof(_PyInterpreterFrame, owner), \ + }, \ + .code_object = { \ + .size = sizeof(PyCodeObject), \ + .filename = offsetof(PyCodeObject, co_filename), \ + .name = offsetof(PyCodeObject, co_name), \ + .qualname = offsetof(PyCodeObject, co_qualname), \ + .linetable = offsetof(PyCodeObject, co_linetable), \ + .firstlineno = offsetof(PyCodeObject, co_firstlineno), \ + .argcount = offsetof(PyCodeObject, co_argcount), \ + .localsplusnames = offsetof(PyCodeObject, co_localsplusnames), \ + .localspluskinds = offsetof(PyCodeObject, co_localspluskinds), \ + .co_code_adaptive = offsetof(PyCodeObject, co_code_adaptive), \ + }, \ + .pyobject = { \ + .size = sizeof(PyObject), \ + .ob_type = offsetof(PyObject, ob_type), \ + }, \ + .type_object = { \ + .size = sizeof(PyTypeObject), \ + .tp_name = offsetof(PyTypeObject, tp_name), \ + .tp_repr = offsetof(PyTypeObject, tp_repr), \ + .tp_flags = offsetof(PyTypeObject, tp_flags), \ + }, \ + .tuple_object = { \ + .size = sizeof(PyTupleObject), \ + .ob_item = offsetof(PyTupleObject, ob_item), \ + .ob_size = offsetof(PyTupleObject, ob_base.ob_size), \ + }, \ + .list_object = { \ + .size = sizeof(PyListObject), \ + .ob_item = offsetof(PyListObject, ob_item), \ + .ob_size = offsetof(PyListObject, ob_base.ob_size), \ + }, \ + .dict_object = { \ + .size = sizeof(PyDictObject), \ + .ma_keys = offsetof(PyDictObject, ma_keys), \ + .ma_values = offsetof(PyDictObject, ma_values), \ + }, \ + .float_object = { \ + .size = sizeof(PyFloatObject), \ + .ob_fval = offsetof(PyFloatObject, ob_fval), \ + }, \ + .long_object = { \ + .size = sizeof(PyLongObject), \ + .lv_tag = offsetof(PyLongObject, long_value.lv_tag), \ + .ob_digit = offsetof(PyLongObject, long_value.ob_digit), \ + }, \ + .bytes_object = { \ + .size = sizeof(PyBytesObject), \ + .ob_size = offsetof(PyBytesObject, ob_base.ob_size), \ + .ob_sval = offsetof(PyBytesObject, ob_sval), \ + }, \ + .unicode_object = { \ + .size = sizeof(PyUnicodeObject), \ + .state = offsetof(PyUnicodeObject, _base._base.state), \ + .length = offsetof(PyUnicodeObject, _base._base.length), \ + .asciiobject_size = sizeof(PyASCIIObject), \ + }, \ + .gc = { \ + .size = sizeof(struct _gc_runtime_state), \ + .collecting = offsetof(struct _gc_runtime_state, collecting), \ + }, \ + }, \ + .allocators = { \ + .standard = _pymem_allocators_standard_INIT(runtime), \ + .debug = _pymem_allocators_debug_INIT, \ + .obj_arena = _pymem_allocators_obj_arena_INIT, \ + .is_debug_enabled = _pymem_is_debug_enabled_INIT, \ + }, \ + .obmalloc = _obmalloc_global_state_INIT, \ + .pyhash_state = pyhash_state_INIT, \ + .threads = _pythread_RUNTIME_INIT(runtime.threads), \ + .signals = _signals_RUNTIME_INIT, \ + .interpreters = { \ + /* This prevents interpreters from getting created \ + until _PyInterpreterState_Enable() is called. */ \ + .next_id = -1, \ + }, \ + .xi = { \ + .registry = { \ + .global = 1, \ + }, \ + }, \ + /* A TSS key must be initialized with Py_tss_NEEDS_INIT \ + in accordance with the specification. */ \ + .autoTSSkey = Py_tss_NEEDS_INIT, \ + .parser = _parser_runtime_state_INIT, \ + .ceval = { \ + .pending_mainthread = { \ + .max = MAXPENDINGCALLS_MAIN, \ + .maxloop = MAXPENDINGCALLSLOOP_MAIN, \ + }, \ + .perf = _PyEval_RUNTIME_PERF_INIT, \ + }, \ + .gilstate = { \ + .check_enabled = 1, \ + }, \ + .fileutils = { \ + .force_ascii = -1, \ + }, \ + .faulthandler = _faulthandler_runtime_state_INIT, \ + .tracemalloc = _tracemalloc_runtime_state_INIT, \ + .ref_tracer = { \ + .tracer_func = NULL, \ + .tracer_data = NULL, \ + }, \ + .stoptheworld = { \ + .is_global = 1, \ + }, \ + .float_state = { \ + .float_format = _py_float_format_unknown, \ + .double_format = _py_float_format_unknown, \ + }, \ + .types = { \ + .next_version_tag = 1, \ + }, \ + .static_objects = { \ + .singletons = { \ + .small_ints = _Py_small_ints_INIT, \ + .bytes_empty = _PyBytes_SIMPLE_INIT(0, 0), \ + .bytes_characters = _Py_bytes_characters_INIT, \ + .strings = { \ + .literals = _Py_str_literals_INIT, \ + .identifiers = _Py_str_identifiers_INIT, \ + .ascii = _Py_str_ascii_INIT, \ + .latin1 = _Py_str_latin1_INIT, \ + }, \ + .tuple_empty = { \ + .ob_base = _PyVarObject_HEAD_INIT(&PyTuple_Type, 0), \ + }, \ + .hamt_bitmap_node_empty = { \ + .ob_base = _PyVarObject_HEAD_INIT(&_PyHamt_BitmapNode_Type, 0), \ + }, \ + .context_token_missing = { \ + .ob_base = _PyObject_HEAD_INIT(&_PyContextTokenMissing_Type), \ + }, \ + }, \ + }, \ + ._main_interpreter = _PyInterpreterState_INIT(runtime._main_interpreter), \ + } + +#define _PyInterpreterState_INIT(INTERP) \ + { \ + .id_refcount = -1, \ + ._whence = _PyInterpreterState_WHENCE_NOTSET, \ + .imports = IMPORTS_INIT, \ + .ceval = { \ + .recursion_limit = Py_DEFAULT_RECURSION_LIMIT, \ + .pending = { \ + .max = MAXPENDINGCALLS, \ + .maxloop = MAXPENDINGCALLSLOOP, \ + }, \ + }, \ + .gc = { \ + .enabled = 1, \ + .generations = { \ + /* .head is set in _PyGC_InitState(). */ \ + { .threshold = 2000, }, \ + { .threshold = 10, }, \ + { .threshold = 10, }, \ + }, \ + }, \ + .qsbr = { \ + .wr_seq = QSBR_INITIAL, \ + .rd_seq = QSBR_INITIAL, \ + }, \ + .dtoa = _dtoa_state_INIT(&(INTERP)), \ + .dict_state = _dict_state_INIT, \ + .mem_free_queue = _Py_mem_free_queue_INIT(INTERP.mem_free_queue), \ + .func_state = { \ + .next_version = 1, \ + }, \ + .types = { \ + .next_version_tag = _Py_TYPE_BASE_VERSION_TAG, \ + }, \ + .static_objects = { \ + .singletons = { \ + ._not_used = 1, \ + .hamt_empty = { \ + .ob_base = _PyObject_HEAD_INIT(&_PyHamt_Type), \ + .h_root = (PyHamtNode*)&_Py_SINGLETON(hamt_bitmap_node_empty), \ + }, \ + .last_resort_memory_error = { \ + _PyObject_HEAD_INIT(&_PyExc_MemoryError), \ + .args = (PyObject*)&_Py_SINGLETON(tuple_empty) \ + }, \ + }, \ + }, \ + ._initial_thread = _PyThreadStateImpl_INIT, \ + } + +#define _PyThreadStateImpl_INIT \ + { \ + .base = _PyThreadState_INIT, \ + } + +#define _PyThreadState_INIT \ + { \ + ._whence = _PyThreadState_WHENCE_NOTSET, \ + .py_recursion_limit = Py_DEFAULT_RECURSION_LIMIT, \ + .context_ver = 1, \ + } + + +// global objects + +#define _PyBytes_SIMPLE_INIT(CH, LEN) \ + { \ + _PyVarObject_HEAD_INIT(&PyBytes_Type, (LEN)), \ + .ob_shash = -1, \ + .ob_sval = { (CH) }, \ + } +#define _PyBytes_CHAR_INIT(CH) \ + { \ + _PyBytes_SIMPLE_INIT((CH), 1) \ + } + +#define _PyUnicode_ASCII_BASE_INIT(LITERAL, ASCII) \ + { \ + .ob_base = _PyObject_HEAD_INIT(&PyUnicode_Type), \ + .length = sizeof(LITERAL) - 1, \ + .hash = -1, \ + .state = { \ + .kind = 1, \ + .compact = 1, \ + .ascii = (ASCII), \ + .statically_allocated = 1, \ + }, \ + } +#define _PyASCIIObject_INIT(LITERAL) \ + { \ + ._ascii = _PyUnicode_ASCII_BASE_INIT((LITERAL), 1), \ + ._data = (LITERAL) \ + } +#define INIT_STR(NAME, LITERAL) \ + ._py_ ## NAME = _PyASCIIObject_INIT(LITERAL) +#define INIT_ID(NAME) \ + ._py_ ## NAME = _PyASCIIObject_INIT(#NAME) +#define _PyUnicode_LATIN1_INIT(LITERAL, UTF8) \ + { \ + ._latin1 = { \ + ._base = _PyUnicode_ASCII_BASE_INIT((LITERAL), 0), \ + .utf8 = (UTF8), \ + .utf8_length = sizeof(UTF8) - 1, \ + }, \ + ._data = (LITERAL), \ + } + +#include "pycore_runtime_init_generated.h" + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_RUNTIME_INIT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_runtime_init_generated.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_runtime_init_generated.h new file mode 100644 index 000000000..6e62ecd4b --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_runtime_init_generated.h @@ -0,0 +1,1550 @@ +#ifndef Py_INTERNAL_RUNTIME_INIT_GENERATED_H +#define Py_INTERNAL_RUNTIME_INIT_GENERATED_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_long.h" // _PyLong_DIGIT_INIT() + + +/* The following is auto-generated by Tools/build/generate_global_objects.py. */ +#define _Py_small_ints_INIT { \ + _PyLong_DIGIT_INIT(-5), \ + _PyLong_DIGIT_INIT(-4), \ + _PyLong_DIGIT_INIT(-3), \ + _PyLong_DIGIT_INIT(-2), \ + _PyLong_DIGIT_INIT(-1), \ + _PyLong_DIGIT_INIT(0), \ + _PyLong_DIGIT_INIT(1), \ + _PyLong_DIGIT_INIT(2), \ + _PyLong_DIGIT_INIT(3), \ + _PyLong_DIGIT_INIT(4), \ + _PyLong_DIGIT_INIT(5), \ + _PyLong_DIGIT_INIT(6), \ + _PyLong_DIGIT_INIT(7), \ + _PyLong_DIGIT_INIT(8), \ + _PyLong_DIGIT_INIT(9), \ + _PyLong_DIGIT_INIT(10), \ + _PyLong_DIGIT_INIT(11), \ + _PyLong_DIGIT_INIT(12), \ + _PyLong_DIGIT_INIT(13), \ + _PyLong_DIGIT_INIT(14), \ + _PyLong_DIGIT_INIT(15), \ + _PyLong_DIGIT_INIT(16), \ + _PyLong_DIGIT_INIT(17), \ + _PyLong_DIGIT_INIT(18), \ + _PyLong_DIGIT_INIT(19), \ + _PyLong_DIGIT_INIT(20), \ + _PyLong_DIGIT_INIT(21), \ + _PyLong_DIGIT_INIT(22), \ + _PyLong_DIGIT_INIT(23), \ + _PyLong_DIGIT_INIT(24), \ + _PyLong_DIGIT_INIT(25), \ + _PyLong_DIGIT_INIT(26), \ + _PyLong_DIGIT_INIT(27), \ + _PyLong_DIGIT_INIT(28), \ + _PyLong_DIGIT_INIT(29), \ + _PyLong_DIGIT_INIT(30), \ + _PyLong_DIGIT_INIT(31), \ + _PyLong_DIGIT_INIT(32), \ + _PyLong_DIGIT_INIT(33), \ + _PyLong_DIGIT_INIT(34), \ + _PyLong_DIGIT_INIT(35), \ + _PyLong_DIGIT_INIT(36), \ + _PyLong_DIGIT_INIT(37), \ + _PyLong_DIGIT_INIT(38), \ + _PyLong_DIGIT_INIT(39), \ + _PyLong_DIGIT_INIT(40), \ + _PyLong_DIGIT_INIT(41), \ + _PyLong_DIGIT_INIT(42), \ + _PyLong_DIGIT_INIT(43), \ + _PyLong_DIGIT_INIT(44), \ + _PyLong_DIGIT_INIT(45), \ + _PyLong_DIGIT_INIT(46), \ + _PyLong_DIGIT_INIT(47), \ + _PyLong_DIGIT_INIT(48), \ + _PyLong_DIGIT_INIT(49), \ + _PyLong_DIGIT_INIT(50), \ + _PyLong_DIGIT_INIT(51), \ + _PyLong_DIGIT_INIT(52), \ + _PyLong_DIGIT_INIT(53), \ + _PyLong_DIGIT_INIT(54), \ + _PyLong_DIGIT_INIT(55), \ + _PyLong_DIGIT_INIT(56), \ + _PyLong_DIGIT_INIT(57), \ + _PyLong_DIGIT_INIT(58), \ + _PyLong_DIGIT_INIT(59), \ + _PyLong_DIGIT_INIT(60), \ + _PyLong_DIGIT_INIT(61), \ + _PyLong_DIGIT_INIT(62), \ + _PyLong_DIGIT_INIT(63), \ + _PyLong_DIGIT_INIT(64), \ + _PyLong_DIGIT_INIT(65), \ + _PyLong_DIGIT_INIT(66), \ + _PyLong_DIGIT_INIT(67), \ + _PyLong_DIGIT_INIT(68), \ + _PyLong_DIGIT_INIT(69), \ + _PyLong_DIGIT_INIT(70), \ + _PyLong_DIGIT_INIT(71), \ + _PyLong_DIGIT_INIT(72), \ + _PyLong_DIGIT_INIT(73), \ + _PyLong_DIGIT_INIT(74), \ + _PyLong_DIGIT_INIT(75), \ + _PyLong_DIGIT_INIT(76), \ + _PyLong_DIGIT_INIT(77), \ + _PyLong_DIGIT_INIT(78), \ + _PyLong_DIGIT_INIT(79), \ + _PyLong_DIGIT_INIT(80), \ + _PyLong_DIGIT_INIT(81), \ + _PyLong_DIGIT_INIT(82), \ + _PyLong_DIGIT_INIT(83), \ + _PyLong_DIGIT_INIT(84), \ + _PyLong_DIGIT_INIT(85), \ + _PyLong_DIGIT_INIT(86), \ + _PyLong_DIGIT_INIT(87), \ + _PyLong_DIGIT_INIT(88), \ + _PyLong_DIGIT_INIT(89), \ + _PyLong_DIGIT_INIT(90), \ + _PyLong_DIGIT_INIT(91), \ + _PyLong_DIGIT_INIT(92), \ + _PyLong_DIGIT_INIT(93), \ + _PyLong_DIGIT_INIT(94), \ + _PyLong_DIGIT_INIT(95), \ + _PyLong_DIGIT_INIT(96), \ + _PyLong_DIGIT_INIT(97), \ + _PyLong_DIGIT_INIT(98), \ + _PyLong_DIGIT_INIT(99), \ + _PyLong_DIGIT_INIT(100), \ + _PyLong_DIGIT_INIT(101), \ + _PyLong_DIGIT_INIT(102), \ + _PyLong_DIGIT_INIT(103), \ + _PyLong_DIGIT_INIT(104), \ + _PyLong_DIGIT_INIT(105), \ + _PyLong_DIGIT_INIT(106), \ + _PyLong_DIGIT_INIT(107), \ + _PyLong_DIGIT_INIT(108), \ + _PyLong_DIGIT_INIT(109), \ + _PyLong_DIGIT_INIT(110), \ + _PyLong_DIGIT_INIT(111), \ + _PyLong_DIGIT_INIT(112), \ + _PyLong_DIGIT_INIT(113), \ + _PyLong_DIGIT_INIT(114), \ + _PyLong_DIGIT_INIT(115), \ + _PyLong_DIGIT_INIT(116), \ + _PyLong_DIGIT_INIT(117), \ + _PyLong_DIGIT_INIT(118), \ + _PyLong_DIGIT_INIT(119), \ + _PyLong_DIGIT_INIT(120), \ + _PyLong_DIGIT_INIT(121), \ + _PyLong_DIGIT_INIT(122), \ + _PyLong_DIGIT_INIT(123), \ + _PyLong_DIGIT_INIT(124), \ + _PyLong_DIGIT_INIT(125), \ + _PyLong_DIGIT_INIT(126), \ + _PyLong_DIGIT_INIT(127), \ + _PyLong_DIGIT_INIT(128), \ + _PyLong_DIGIT_INIT(129), \ + _PyLong_DIGIT_INIT(130), \ + _PyLong_DIGIT_INIT(131), \ + _PyLong_DIGIT_INIT(132), \ + _PyLong_DIGIT_INIT(133), \ + _PyLong_DIGIT_INIT(134), \ + _PyLong_DIGIT_INIT(135), \ + _PyLong_DIGIT_INIT(136), \ + _PyLong_DIGIT_INIT(137), \ + _PyLong_DIGIT_INIT(138), \ + _PyLong_DIGIT_INIT(139), \ + _PyLong_DIGIT_INIT(140), \ + _PyLong_DIGIT_INIT(141), \ + _PyLong_DIGIT_INIT(142), \ + _PyLong_DIGIT_INIT(143), \ + _PyLong_DIGIT_INIT(144), \ + _PyLong_DIGIT_INIT(145), \ + _PyLong_DIGIT_INIT(146), \ + _PyLong_DIGIT_INIT(147), \ + _PyLong_DIGIT_INIT(148), \ + _PyLong_DIGIT_INIT(149), \ + _PyLong_DIGIT_INIT(150), \ + _PyLong_DIGIT_INIT(151), \ + _PyLong_DIGIT_INIT(152), \ + _PyLong_DIGIT_INIT(153), \ + _PyLong_DIGIT_INIT(154), \ + _PyLong_DIGIT_INIT(155), \ + _PyLong_DIGIT_INIT(156), \ + _PyLong_DIGIT_INIT(157), \ + _PyLong_DIGIT_INIT(158), \ + _PyLong_DIGIT_INIT(159), \ + _PyLong_DIGIT_INIT(160), \ + _PyLong_DIGIT_INIT(161), \ + _PyLong_DIGIT_INIT(162), \ + _PyLong_DIGIT_INIT(163), \ + _PyLong_DIGIT_INIT(164), \ + _PyLong_DIGIT_INIT(165), \ + _PyLong_DIGIT_INIT(166), \ + _PyLong_DIGIT_INIT(167), \ + _PyLong_DIGIT_INIT(168), \ + _PyLong_DIGIT_INIT(169), \ + _PyLong_DIGIT_INIT(170), \ + _PyLong_DIGIT_INIT(171), \ + _PyLong_DIGIT_INIT(172), \ + _PyLong_DIGIT_INIT(173), \ + _PyLong_DIGIT_INIT(174), \ + _PyLong_DIGIT_INIT(175), \ + _PyLong_DIGIT_INIT(176), \ + _PyLong_DIGIT_INIT(177), \ + _PyLong_DIGIT_INIT(178), \ + _PyLong_DIGIT_INIT(179), \ + _PyLong_DIGIT_INIT(180), \ + _PyLong_DIGIT_INIT(181), \ + _PyLong_DIGIT_INIT(182), \ + _PyLong_DIGIT_INIT(183), \ + _PyLong_DIGIT_INIT(184), \ + _PyLong_DIGIT_INIT(185), \ + _PyLong_DIGIT_INIT(186), \ + _PyLong_DIGIT_INIT(187), \ + _PyLong_DIGIT_INIT(188), \ + _PyLong_DIGIT_INIT(189), \ + _PyLong_DIGIT_INIT(190), \ + _PyLong_DIGIT_INIT(191), \ + _PyLong_DIGIT_INIT(192), \ + _PyLong_DIGIT_INIT(193), \ + _PyLong_DIGIT_INIT(194), \ + _PyLong_DIGIT_INIT(195), \ + _PyLong_DIGIT_INIT(196), \ + _PyLong_DIGIT_INIT(197), \ + _PyLong_DIGIT_INIT(198), \ + _PyLong_DIGIT_INIT(199), \ + _PyLong_DIGIT_INIT(200), \ + _PyLong_DIGIT_INIT(201), \ + _PyLong_DIGIT_INIT(202), \ + _PyLong_DIGIT_INIT(203), \ + _PyLong_DIGIT_INIT(204), \ + _PyLong_DIGIT_INIT(205), \ + _PyLong_DIGIT_INIT(206), \ + _PyLong_DIGIT_INIT(207), \ + _PyLong_DIGIT_INIT(208), \ + _PyLong_DIGIT_INIT(209), \ + _PyLong_DIGIT_INIT(210), \ + _PyLong_DIGIT_INIT(211), \ + _PyLong_DIGIT_INIT(212), \ + _PyLong_DIGIT_INIT(213), \ + _PyLong_DIGIT_INIT(214), \ + _PyLong_DIGIT_INIT(215), \ + _PyLong_DIGIT_INIT(216), \ + _PyLong_DIGIT_INIT(217), \ + _PyLong_DIGIT_INIT(218), \ + _PyLong_DIGIT_INIT(219), \ + _PyLong_DIGIT_INIT(220), \ + _PyLong_DIGIT_INIT(221), \ + _PyLong_DIGIT_INIT(222), \ + _PyLong_DIGIT_INIT(223), \ + _PyLong_DIGIT_INIT(224), \ + _PyLong_DIGIT_INIT(225), \ + _PyLong_DIGIT_INIT(226), \ + _PyLong_DIGIT_INIT(227), \ + _PyLong_DIGIT_INIT(228), \ + _PyLong_DIGIT_INIT(229), \ + _PyLong_DIGIT_INIT(230), \ + _PyLong_DIGIT_INIT(231), \ + _PyLong_DIGIT_INIT(232), \ + _PyLong_DIGIT_INIT(233), \ + _PyLong_DIGIT_INIT(234), \ + _PyLong_DIGIT_INIT(235), \ + _PyLong_DIGIT_INIT(236), \ + _PyLong_DIGIT_INIT(237), \ + _PyLong_DIGIT_INIT(238), \ + _PyLong_DIGIT_INIT(239), \ + _PyLong_DIGIT_INIT(240), \ + _PyLong_DIGIT_INIT(241), \ + _PyLong_DIGIT_INIT(242), \ + _PyLong_DIGIT_INIT(243), \ + _PyLong_DIGIT_INIT(244), \ + _PyLong_DIGIT_INIT(245), \ + _PyLong_DIGIT_INIT(246), \ + _PyLong_DIGIT_INIT(247), \ + _PyLong_DIGIT_INIT(248), \ + _PyLong_DIGIT_INIT(249), \ + _PyLong_DIGIT_INIT(250), \ + _PyLong_DIGIT_INIT(251), \ + _PyLong_DIGIT_INIT(252), \ + _PyLong_DIGIT_INIT(253), \ + _PyLong_DIGIT_INIT(254), \ + _PyLong_DIGIT_INIT(255), \ + _PyLong_DIGIT_INIT(256), \ +} + +#define _Py_bytes_characters_INIT { \ + _PyBytes_CHAR_INIT(0), \ + _PyBytes_CHAR_INIT(1), \ + _PyBytes_CHAR_INIT(2), \ + _PyBytes_CHAR_INIT(3), \ + _PyBytes_CHAR_INIT(4), \ + _PyBytes_CHAR_INIT(5), \ + _PyBytes_CHAR_INIT(6), \ + _PyBytes_CHAR_INIT(7), \ + _PyBytes_CHAR_INIT(8), \ + _PyBytes_CHAR_INIT(9), \ + _PyBytes_CHAR_INIT(10), \ + _PyBytes_CHAR_INIT(11), \ + _PyBytes_CHAR_INIT(12), \ + _PyBytes_CHAR_INIT(13), \ + _PyBytes_CHAR_INIT(14), \ + _PyBytes_CHAR_INIT(15), \ + _PyBytes_CHAR_INIT(16), \ + _PyBytes_CHAR_INIT(17), \ + _PyBytes_CHAR_INIT(18), \ + _PyBytes_CHAR_INIT(19), \ + _PyBytes_CHAR_INIT(20), \ + _PyBytes_CHAR_INIT(21), \ + _PyBytes_CHAR_INIT(22), \ + _PyBytes_CHAR_INIT(23), \ + _PyBytes_CHAR_INIT(24), \ + _PyBytes_CHAR_INIT(25), \ + _PyBytes_CHAR_INIT(26), \ + _PyBytes_CHAR_INIT(27), \ + _PyBytes_CHAR_INIT(28), \ + _PyBytes_CHAR_INIT(29), \ + _PyBytes_CHAR_INIT(30), \ + _PyBytes_CHAR_INIT(31), \ + _PyBytes_CHAR_INIT(32), \ + _PyBytes_CHAR_INIT(33), \ + _PyBytes_CHAR_INIT(34), \ + _PyBytes_CHAR_INIT(35), \ + _PyBytes_CHAR_INIT(36), \ + _PyBytes_CHAR_INIT(37), \ + _PyBytes_CHAR_INIT(38), \ + _PyBytes_CHAR_INIT(39), \ + _PyBytes_CHAR_INIT(40), \ + _PyBytes_CHAR_INIT(41), \ + _PyBytes_CHAR_INIT(42), \ + _PyBytes_CHAR_INIT(43), \ + _PyBytes_CHAR_INIT(44), \ + _PyBytes_CHAR_INIT(45), \ + _PyBytes_CHAR_INIT(46), \ + _PyBytes_CHAR_INIT(47), \ + _PyBytes_CHAR_INIT(48), \ + _PyBytes_CHAR_INIT(49), \ + _PyBytes_CHAR_INIT(50), \ + _PyBytes_CHAR_INIT(51), \ + _PyBytes_CHAR_INIT(52), \ + _PyBytes_CHAR_INIT(53), \ + _PyBytes_CHAR_INIT(54), \ + _PyBytes_CHAR_INIT(55), \ + _PyBytes_CHAR_INIT(56), \ + _PyBytes_CHAR_INIT(57), \ + _PyBytes_CHAR_INIT(58), \ + _PyBytes_CHAR_INIT(59), \ + _PyBytes_CHAR_INIT(60), \ + _PyBytes_CHAR_INIT(61), \ + _PyBytes_CHAR_INIT(62), \ + _PyBytes_CHAR_INIT(63), \ + _PyBytes_CHAR_INIT(64), \ + _PyBytes_CHAR_INIT(65), \ + _PyBytes_CHAR_INIT(66), \ + _PyBytes_CHAR_INIT(67), \ + _PyBytes_CHAR_INIT(68), \ + _PyBytes_CHAR_INIT(69), \ + _PyBytes_CHAR_INIT(70), \ + _PyBytes_CHAR_INIT(71), \ + _PyBytes_CHAR_INIT(72), \ + _PyBytes_CHAR_INIT(73), \ + _PyBytes_CHAR_INIT(74), \ + _PyBytes_CHAR_INIT(75), \ + _PyBytes_CHAR_INIT(76), \ + _PyBytes_CHAR_INIT(77), \ + _PyBytes_CHAR_INIT(78), \ + _PyBytes_CHAR_INIT(79), \ + _PyBytes_CHAR_INIT(80), \ + _PyBytes_CHAR_INIT(81), \ + _PyBytes_CHAR_INIT(82), \ + _PyBytes_CHAR_INIT(83), \ + _PyBytes_CHAR_INIT(84), \ + _PyBytes_CHAR_INIT(85), \ + _PyBytes_CHAR_INIT(86), \ + _PyBytes_CHAR_INIT(87), \ + _PyBytes_CHAR_INIT(88), \ + _PyBytes_CHAR_INIT(89), \ + _PyBytes_CHAR_INIT(90), \ + _PyBytes_CHAR_INIT(91), \ + _PyBytes_CHAR_INIT(92), \ + _PyBytes_CHAR_INIT(93), \ + _PyBytes_CHAR_INIT(94), \ + _PyBytes_CHAR_INIT(95), \ + _PyBytes_CHAR_INIT(96), \ + _PyBytes_CHAR_INIT(97), \ + _PyBytes_CHAR_INIT(98), \ + _PyBytes_CHAR_INIT(99), \ + _PyBytes_CHAR_INIT(100), \ + _PyBytes_CHAR_INIT(101), \ + _PyBytes_CHAR_INIT(102), \ + _PyBytes_CHAR_INIT(103), \ + _PyBytes_CHAR_INIT(104), \ + _PyBytes_CHAR_INIT(105), \ + _PyBytes_CHAR_INIT(106), \ + _PyBytes_CHAR_INIT(107), \ + _PyBytes_CHAR_INIT(108), \ + _PyBytes_CHAR_INIT(109), \ + _PyBytes_CHAR_INIT(110), \ + _PyBytes_CHAR_INIT(111), \ + _PyBytes_CHAR_INIT(112), \ + _PyBytes_CHAR_INIT(113), \ + _PyBytes_CHAR_INIT(114), \ + _PyBytes_CHAR_INIT(115), \ + _PyBytes_CHAR_INIT(116), \ + _PyBytes_CHAR_INIT(117), \ + _PyBytes_CHAR_INIT(118), \ + _PyBytes_CHAR_INIT(119), \ + _PyBytes_CHAR_INIT(120), \ + _PyBytes_CHAR_INIT(121), \ + _PyBytes_CHAR_INIT(122), \ + _PyBytes_CHAR_INIT(123), \ + _PyBytes_CHAR_INIT(124), \ + _PyBytes_CHAR_INIT(125), \ + _PyBytes_CHAR_INIT(126), \ + _PyBytes_CHAR_INIT(127), \ + _PyBytes_CHAR_INIT(128), \ + _PyBytes_CHAR_INIT(129), \ + _PyBytes_CHAR_INIT(130), \ + _PyBytes_CHAR_INIT(131), \ + _PyBytes_CHAR_INIT(132), \ + _PyBytes_CHAR_INIT(133), \ + _PyBytes_CHAR_INIT(134), \ + _PyBytes_CHAR_INIT(135), \ + _PyBytes_CHAR_INIT(136), \ + _PyBytes_CHAR_INIT(137), \ + _PyBytes_CHAR_INIT(138), \ + _PyBytes_CHAR_INIT(139), \ + _PyBytes_CHAR_INIT(140), \ + _PyBytes_CHAR_INIT(141), \ + _PyBytes_CHAR_INIT(142), \ + _PyBytes_CHAR_INIT(143), \ + _PyBytes_CHAR_INIT(144), \ + _PyBytes_CHAR_INIT(145), \ + _PyBytes_CHAR_INIT(146), \ + _PyBytes_CHAR_INIT(147), \ + _PyBytes_CHAR_INIT(148), \ + _PyBytes_CHAR_INIT(149), \ + _PyBytes_CHAR_INIT(150), \ + _PyBytes_CHAR_INIT(151), \ + _PyBytes_CHAR_INIT(152), \ + _PyBytes_CHAR_INIT(153), \ + _PyBytes_CHAR_INIT(154), \ + _PyBytes_CHAR_INIT(155), \ + _PyBytes_CHAR_INIT(156), \ + _PyBytes_CHAR_INIT(157), \ + _PyBytes_CHAR_INIT(158), \ + _PyBytes_CHAR_INIT(159), \ + _PyBytes_CHAR_INIT(160), \ + _PyBytes_CHAR_INIT(161), \ + _PyBytes_CHAR_INIT(162), \ + _PyBytes_CHAR_INIT(163), \ + _PyBytes_CHAR_INIT(164), \ + _PyBytes_CHAR_INIT(165), \ + _PyBytes_CHAR_INIT(166), \ + _PyBytes_CHAR_INIT(167), \ + _PyBytes_CHAR_INIT(168), \ + _PyBytes_CHAR_INIT(169), \ + _PyBytes_CHAR_INIT(170), \ + _PyBytes_CHAR_INIT(171), \ + _PyBytes_CHAR_INIT(172), \ + _PyBytes_CHAR_INIT(173), \ + _PyBytes_CHAR_INIT(174), \ + _PyBytes_CHAR_INIT(175), \ + _PyBytes_CHAR_INIT(176), \ + _PyBytes_CHAR_INIT(177), \ + _PyBytes_CHAR_INIT(178), \ + _PyBytes_CHAR_INIT(179), \ + _PyBytes_CHAR_INIT(180), \ + _PyBytes_CHAR_INIT(181), \ + _PyBytes_CHAR_INIT(182), \ + _PyBytes_CHAR_INIT(183), \ + _PyBytes_CHAR_INIT(184), \ + _PyBytes_CHAR_INIT(185), \ + _PyBytes_CHAR_INIT(186), \ + _PyBytes_CHAR_INIT(187), \ + _PyBytes_CHAR_INIT(188), \ + _PyBytes_CHAR_INIT(189), \ + _PyBytes_CHAR_INIT(190), \ + _PyBytes_CHAR_INIT(191), \ + _PyBytes_CHAR_INIT(192), \ + _PyBytes_CHAR_INIT(193), \ + _PyBytes_CHAR_INIT(194), \ + _PyBytes_CHAR_INIT(195), \ + _PyBytes_CHAR_INIT(196), \ + _PyBytes_CHAR_INIT(197), \ + _PyBytes_CHAR_INIT(198), \ + _PyBytes_CHAR_INIT(199), \ + _PyBytes_CHAR_INIT(200), \ + _PyBytes_CHAR_INIT(201), \ + _PyBytes_CHAR_INIT(202), \ + _PyBytes_CHAR_INIT(203), \ + _PyBytes_CHAR_INIT(204), \ + _PyBytes_CHAR_INIT(205), \ + _PyBytes_CHAR_INIT(206), \ + _PyBytes_CHAR_INIT(207), \ + _PyBytes_CHAR_INIT(208), \ + _PyBytes_CHAR_INIT(209), \ + _PyBytes_CHAR_INIT(210), \ + _PyBytes_CHAR_INIT(211), \ + _PyBytes_CHAR_INIT(212), \ + _PyBytes_CHAR_INIT(213), \ + _PyBytes_CHAR_INIT(214), \ + _PyBytes_CHAR_INIT(215), \ + _PyBytes_CHAR_INIT(216), \ + _PyBytes_CHAR_INIT(217), \ + _PyBytes_CHAR_INIT(218), \ + _PyBytes_CHAR_INIT(219), \ + _PyBytes_CHAR_INIT(220), \ + _PyBytes_CHAR_INIT(221), \ + _PyBytes_CHAR_INIT(222), \ + _PyBytes_CHAR_INIT(223), \ + _PyBytes_CHAR_INIT(224), \ + _PyBytes_CHAR_INIT(225), \ + _PyBytes_CHAR_INIT(226), \ + _PyBytes_CHAR_INIT(227), \ + _PyBytes_CHAR_INIT(228), \ + _PyBytes_CHAR_INIT(229), \ + _PyBytes_CHAR_INIT(230), \ + _PyBytes_CHAR_INIT(231), \ + _PyBytes_CHAR_INIT(232), \ + _PyBytes_CHAR_INIT(233), \ + _PyBytes_CHAR_INIT(234), \ + _PyBytes_CHAR_INIT(235), \ + _PyBytes_CHAR_INIT(236), \ + _PyBytes_CHAR_INIT(237), \ + _PyBytes_CHAR_INIT(238), \ + _PyBytes_CHAR_INIT(239), \ + _PyBytes_CHAR_INIT(240), \ + _PyBytes_CHAR_INIT(241), \ + _PyBytes_CHAR_INIT(242), \ + _PyBytes_CHAR_INIT(243), \ + _PyBytes_CHAR_INIT(244), \ + _PyBytes_CHAR_INIT(245), \ + _PyBytes_CHAR_INIT(246), \ + _PyBytes_CHAR_INIT(247), \ + _PyBytes_CHAR_INIT(248), \ + _PyBytes_CHAR_INIT(249), \ + _PyBytes_CHAR_INIT(250), \ + _PyBytes_CHAR_INIT(251), \ + _PyBytes_CHAR_INIT(252), \ + _PyBytes_CHAR_INIT(253), \ + _PyBytes_CHAR_INIT(254), \ + _PyBytes_CHAR_INIT(255), \ +} + +#define _Py_str_literals_INIT { \ + INIT_STR(anon_dictcomp, ""), \ + INIT_STR(anon_genexpr, ""), \ + INIT_STR(anon_lambda, ""), \ + INIT_STR(anon_listcomp, ""), \ + INIT_STR(anon_module, ""), \ + INIT_STR(anon_null, ""), \ + INIT_STR(anon_setcomp, ""), \ + INIT_STR(anon_string, ""), \ + INIT_STR(anon_unknown, ""), \ + INIT_STR(dbl_close_br, "}}"), \ + INIT_STR(dbl_open_br, "{{"), \ + INIT_STR(dbl_percent, "%%"), \ + INIT_STR(defaults, ".defaults"), \ + INIT_STR(dot_locals, "."), \ + INIT_STR(empty, ""), \ + INIT_STR(generic_base, ".generic_base"), \ + INIT_STR(json_decoder, "json.decoder"), \ + INIT_STR(kwdefaults, ".kwdefaults"), \ + INIT_STR(list_err, "list index out of range"), \ + INIT_STR(type_params, ".type_params"), \ + INIT_STR(utf_8, "utf-8"), \ +} + +#define _Py_str_identifiers_INIT { \ + INIT_ID(CANCELLED), \ + INIT_ID(FINISHED), \ + INIT_ID(False), \ + INIT_ID(JSONDecodeError), \ + INIT_ID(PENDING), \ + INIT_ID(Py_Repr), \ + INIT_ID(TextIOWrapper), \ + INIT_ID(True), \ + INIT_ID(WarningMessage), \ + INIT_ID(_WindowsConsoleIO), \ + INIT_ID(__IOBase_closed), \ + INIT_ID(__abc_tpflags__), \ + INIT_ID(__abs__), \ + INIT_ID(__abstractmethods__), \ + INIT_ID(__add__), \ + INIT_ID(__aenter__), \ + INIT_ID(__aexit__), \ + INIT_ID(__aiter__), \ + INIT_ID(__all__), \ + INIT_ID(__and__), \ + INIT_ID(__anext__), \ + INIT_ID(__annotations__), \ + INIT_ID(__args__), \ + INIT_ID(__await__), \ + INIT_ID(__bases__), \ + INIT_ID(__bool__), \ + INIT_ID(__buffer__), \ + INIT_ID(__build_class__), \ + INIT_ID(__builtins__), \ + INIT_ID(__bytes__), \ + INIT_ID(__call__), \ + INIT_ID(__cantrace__), \ + INIT_ID(__class__), \ + INIT_ID(__class_getitem__), \ + INIT_ID(__classcell__), \ + INIT_ID(__classdict__), \ + INIT_ID(__classdictcell__), \ + INIT_ID(__complex__), \ + INIT_ID(__contains__), \ + INIT_ID(__copy__), \ + INIT_ID(__ctypes_from_outparam__), \ + INIT_ID(__del__), \ + INIT_ID(__delattr__), \ + INIT_ID(__delete__), \ + INIT_ID(__delitem__), \ + INIT_ID(__dict__), \ + INIT_ID(__dictoffset__), \ + INIT_ID(__dir__), \ + INIT_ID(__divmod__), \ + INIT_ID(__doc__), \ + INIT_ID(__enter__), \ + INIT_ID(__eq__), \ + INIT_ID(__exit__), \ + INIT_ID(__file__), \ + INIT_ID(__firstlineno__), \ + INIT_ID(__float__), \ + INIT_ID(__floordiv__), \ + INIT_ID(__format__), \ + INIT_ID(__fspath__), \ + INIT_ID(__ge__), \ + INIT_ID(__get__), \ + INIT_ID(__getattr__), \ + INIT_ID(__getattribute__), \ + INIT_ID(__getinitargs__), \ + INIT_ID(__getitem__), \ + INIT_ID(__getnewargs__), \ + INIT_ID(__getnewargs_ex__), \ + INIT_ID(__getstate__), \ + INIT_ID(__gt__), \ + INIT_ID(__hash__), \ + INIT_ID(__iadd__), \ + INIT_ID(__iand__), \ + INIT_ID(__ifloordiv__), \ + INIT_ID(__ilshift__), \ + INIT_ID(__imatmul__), \ + INIT_ID(__imod__), \ + INIT_ID(__import__), \ + INIT_ID(__imul__), \ + INIT_ID(__index__), \ + INIT_ID(__init__), \ + INIT_ID(__init_subclass__), \ + INIT_ID(__instancecheck__), \ + INIT_ID(__int__), \ + INIT_ID(__invert__), \ + INIT_ID(__ior__), \ + INIT_ID(__ipow__), \ + INIT_ID(__irshift__), \ + INIT_ID(__isabstractmethod__), \ + INIT_ID(__isub__), \ + INIT_ID(__iter__), \ + INIT_ID(__itruediv__), \ + INIT_ID(__ixor__), \ + INIT_ID(__le__), \ + INIT_ID(__len__), \ + INIT_ID(__length_hint__), \ + INIT_ID(__lltrace__), \ + INIT_ID(__loader__), \ + INIT_ID(__lshift__), \ + INIT_ID(__lt__), \ + INIT_ID(__main__), \ + INIT_ID(__match_args__), \ + INIT_ID(__matmul__), \ + INIT_ID(__missing__), \ + INIT_ID(__mod__), \ + INIT_ID(__module__), \ + INIT_ID(__mro_entries__), \ + INIT_ID(__mul__), \ + INIT_ID(__name__), \ + INIT_ID(__ne__), \ + INIT_ID(__neg__), \ + INIT_ID(__new__), \ + INIT_ID(__newobj__), \ + INIT_ID(__newobj_ex__), \ + INIT_ID(__next__), \ + INIT_ID(__notes__), \ + INIT_ID(__or__), \ + INIT_ID(__orig_class__), \ + INIT_ID(__origin__), \ + INIT_ID(__package__), \ + INIT_ID(__parameters__), \ + INIT_ID(__path__), \ + INIT_ID(__pos__), \ + INIT_ID(__pow__), \ + INIT_ID(__prepare__), \ + INIT_ID(__qualname__), \ + INIT_ID(__radd__), \ + INIT_ID(__rand__), \ + INIT_ID(__rdivmod__), \ + INIT_ID(__reduce__), \ + INIT_ID(__reduce_ex__), \ + INIT_ID(__release_buffer__), \ + INIT_ID(__repr__), \ + INIT_ID(__reversed__), \ + INIT_ID(__rfloordiv__), \ + INIT_ID(__rlshift__), \ + INIT_ID(__rmatmul__), \ + INIT_ID(__rmod__), \ + INIT_ID(__rmul__), \ + INIT_ID(__ror__), \ + INIT_ID(__round__), \ + INIT_ID(__rpow__), \ + INIT_ID(__rrshift__), \ + INIT_ID(__rshift__), \ + INIT_ID(__rsub__), \ + INIT_ID(__rtruediv__), \ + INIT_ID(__rxor__), \ + INIT_ID(__set__), \ + INIT_ID(__set_name__), \ + INIT_ID(__setattr__), \ + INIT_ID(__setitem__), \ + INIT_ID(__setstate__), \ + INIT_ID(__sizeof__), \ + INIT_ID(__slotnames__), \ + INIT_ID(__slots__), \ + INIT_ID(__spec__), \ + INIT_ID(__static_attributes__), \ + INIT_ID(__str__), \ + INIT_ID(__sub__), \ + INIT_ID(__subclasscheck__), \ + INIT_ID(__subclasshook__), \ + INIT_ID(__truediv__), \ + INIT_ID(__trunc__), \ + INIT_ID(__type_params__), \ + INIT_ID(__typing_is_unpacked_typevartuple__), \ + INIT_ID(__typing_prepare_subst__), \ + INIT_ID(__typing_subst__), \ + INIT_ID(__typing_unpacked_tuple_args__), \ + INIT_ID(__warningregistry__), \ + INIT_ID(__weaklistoffset__), \ + INIT_ID(__weakref__), \ + INIT_ID(__xor__), \ + INIT_ID(_abc_impl), \ + INIT_ID(_abstract_), \ + INIT_ID(_active), \ + INIT_ID(_align_), \ + INIT_ID(_annotation), \ + INIT_ID(_anonymous_), \ + INIT_ID(_argtypes_), \ + INIT_ID(_as_parameter_), \ + INIT_ID(_asyncio_future_blocking), \ + INIT_ID(_blksize), \ + INIT_ID(_bootstrap), \ + INIT_ID(_check_retval_), \ + INIT_ID(_dealloc_warn), \ + INIT_ID(_feature_version), \ + INIT_ID(_field_types), \ + INIT_ID(_fields_), \ + INIT_ID(_finalizing), \ + INIT_ID(_find_and_load), \ + INIT_ID(_fix_up_module), \ + INIT_ID(_flags_), \ + INIT_ID(_get_sourcefile), \ + INIT_ID(_handle_fromlist), \ + INIT_ID(_initializing), \ + INIT_ID(_io), \ + INIT_ID(_is_text_encoding), \ + INIT_ID(_length_), \ + INIT_ID(_limbo), \ + INIT_ID(_lock_unlock_module), \ + INIT_ID(_loop), \ + INIT_ID(_needs_com_addref_), \ + INIT_ID(_only_immortal), \ + INIT_ID(_pack_), \ + INIT_ID(_restype_), \ + INIT_ID(_showwarnmsg), \ + INIT_ID(_shutdown), \ + INIT_ID(_slotnames), \ + INIT_ID(_strptime), \ + INIT_ID(_strptime_datetime), \ + INIT_ID(_swappedbytes_), \ + INIT_ID(_type_), \ + INIT_ID(_uninitialized_submodules), \ + INIT_ID(_warn_unawaited_coroutine), \ + INIT_ID(_xoptions), \ + INIT_ID(abs_tol), \ + INIT_ID(access), \ + INIT_ID(aclose), \ + INIT_ID(add), \ + INIT_ID(add_done_callback), \ + INIT_ID(after_in_child), \ + INIT_ID(after_in_parent), \ + INIT_ID(aggregate_class), \ + INIT_ID(alias), \ + INIT_ID(allow_code), \ + INIT_ID(append), \ + INIT_ID(arg), \ + INIT_ID(argdefs), \ + INIT_ID(args), \ + INIT_ID(arguments), \ + INIT_ID(argv), \ + INIT_ID(as_integer_ratio), \ + INIT_ID(asend), \ + INIT_ID(ast), \ + INIT_ID(athrow), \ + INIT_ID(attribute), \ + INIT_ID(authorizer_callback), \ + INIT_ID(autocommit), \ + INIT_ID(backtick), \ + INIT_ID(base), \ + INIT_ID(before), \ + INIT_ID(big), \ + INIT_ID(binary_form), \ + INIT_ID(block), \ + INIT_ID(bound), \ + INIT_ID(buffer), \ + INIT_ID(buffer_callback), \ + INIT_ID(buffer_size), \ + INIT_ID(buffering), \ + INIT_ID(buffers), \ + INIT_ID(bufsize), \ + INIT_ID(builtins), \ + INIT_ID(byteorder), \ + INIT_ID(bytes), \ + INIT_ID(bytes_per_sep), \ + INIT_ID(c_call), \ + INIT_ID(c_exception), \ + INIT_ID(c_return), \ + INIT_ID(cached_datetime_module), \ + INIT_ID(cached_statements), \ + INIT_ID(cadata), \ + INIT_ID(cafile), \ + INIT_ID(call), \ + INIT_ID(call_exception_handler), \ + INIT_ID(call_soon), \ + INIT_ID(callback), \ + INIT_ID(cancel), \ + INIT_ID(capath), \ + INIT_ID(category), \ + INIT_ID(cb_type), \ + INIT_ID(certfile), \ + INIT_ID(check_same_thread), \ + INIT_ID(clear), \ + INIT_ID(close), \ + INIT_ID(closed), \ + INIT_ID(closefd), \ + INIT_ID(closure), \ + INIT_ID(co_argcount), \ + INIT_ID(co_cellvars), \ + INIT_ID(co_code), \ + INIT_ID(co_consts), \ + INIT_ID(co_exceptiontable), \ + INIT_ID(co_filename), \ + INIT_ID(co_firstlineno), \ + INIT_ID(co_flags), \ + INIT_ID(co_freevars), \ + INIT_ID(co_kwonlyargcount), \ + INIT_ID(co_linetable), \ + INIT_ID(co_name), \ + INIT_ID(co_names), \ + INIT_ID(co_nlocals), \ + INIT_ID(co_posonlyargcount), \ + INIT_ID(co_qualname), \ + INIT_ID(co_stacksize), \ + INIT_ID(co_varnames), \ + INIT_ID(code), \ + INIT_ID(col_offset), \ + INIT_ID(command), \ + INIT_ID(comment_factory), \ + INIT_ID(compile_mode), \ + INIT_ID(consts), \ + INIT_ID(context), \ + INIT_ID(contravariant), \ + INIT_ID(cookie), \ + INIT_ID(copy), \ + INIT_ID(copyreg), \ + INIT_ID(coro), \ + INIT_ID(count), \ + INIT_ID(covariant), \ + INIT_ID(cwd), \ + INIT_ID(data), \ + INIT_ID(database), \ + INIT_ID(day), \ + INIT_ID(decode), \ + INIT_ID(decoder), \ + INIT_ID(default), \ + INIT_ID(defaultaction), \ + INIT_ID(delete), \ + INIT_ID(depth), \ + INIT_ID(desired_access), \ + INIT_ID(detect_types), \ + INIT_ID(deterministic), \ + INIT_ID(device), \ + INIT_ID(dict), \ + INIT_ID(dictcomp), \ + INIT_ID(difference_update), \ + INIT_ID(digest), \ + INIT_ID(digest_size), \ + INIT_ID(digestmod), \ + INIT_ID(dir_fd), \ + INIT_ID(discard), \ + INIT_ID(dispatch_table), \ + INIT_ID(displayhook), \ + INIT_ID(dklen), \ + INIT_ID(doc), \ + INIT_ID(dont_inherit), \ + INIT_ID(dst), \ + INIT_ID(dst_dir_fd), \ + INIT_ID(eager_start), \ + INIT_ID(effective_ids), \ + INIT_ID(element_factory), \ + INIT_ID(encode), \ + INIT_ID(encoding), \ + INIT_ID(end), \ + INIT_ID(end_col_offset), \ + INIT_ID(end_lineno), \ + INIT_ID(end_offset), \ + INIT_ID(endpos), \ + INIT_ID(entrypoint), \ + INIT_ID(env), \ + INIT_ID(errors), \ + INIT_ID(event), \ + INIT_ID(eventmask), \ + INIT_ID(exc_type), \ + INIT_ID(exc_value), \ + INIT_ID(excepthook), \ + INIT_ID(exception), \ + INIT_ID(existing_file_name), \ + INIT_ID(exp), \ + INIT_ID(extend), \ + INIT_ID(extra_tokens), \ + INIT_ID(facility), \ + INIT_ID(factory), \ + INIT_ID(false), \ + INIT_ID(family), \ + INIT_ID(fanout), \ + INIT_ID(fd), \ + INIT_ID(fd2), \ + INIT_ID(fdel), \ + INIT_ID(fget), \ + INIT_ID(file), \ + INIT_ID(file_actions), \ + INIT_ID(filename), \ + INIT_ID(fileno), \ + INIT_ID(filepath), \ + INIT_ID(fillvalue), \ + INIT_ID(filter), \ + INIT_ID(filters), \ + INIT_ID(final), \ + INIT_ID(find_class), \ + INIT_ID(fix_imports), \ + INIT_ID(flags), \ + INIT_ID(flush), \ + INIT_ID(fold), \ + INIT_ID(follow_symlinks), \ + INIT_ID(format), \ + INIT_ID(from_param), \ + INIT_ID(fromlist), \ + INIT_ID(fromtimestamp), \ + INIT_ID(fromutc), \ + INIT_ID(fset), \ + INIT_ID(func), \ + INIT_ID(future), \ + INIT_ID(generation), \ + INIT_ID(genexpr), \ + INIT_ID(get), \ + INIT_ID(get_debug), \ + INIT_ID(get_event_loop), \ + INIT_ID(get_loop), \ + INIT_ID(get_source), \ + INIT_ID(getattr), \ + INIT_ID(getstate), \ + INIT_ID(gid), \ + INIT_ID(globals), \ + INIT_ID(groupindex), \ + INIT_ID(groups), \ + INIT_ID(handle), \ + INIT_ID(handle_seq), \ + INIT_ID(has_location), \ + INIT_ID(hash_name), \ + INIT_ID(header), \ + INIT_ID(headers), \ + INIT_ID(hi), \ + INIT_ID(hook), \ + INIT_ID(hour), \ + INIT_ID(ident), \ + INIT_ID(identity_hint), \ + INIT_ID(ignore), \ + INIT_ID(imag), \ + INIT_ID(importlib), \ + INIT_ID(in_fd), \ + INIT_ID(incoming), \ + INIT_ID(indexgroup), \ + INIT_ID(inf), \ + INIT_ID(infer_variance), \ + INIT_ID(inherit_handle), \ + INIT_ID(inheritable), \ + INIT_ID(initial), \ + INIT_ID(initial_bytes), \ + INIT_ID(initial_owner), \ + INIT_ID(initial_state), \ + INIT_ID(initial_value), \ + INIT_ID(initval), \ + INIT_ID(inner_size), \ + INIT_ID(input), \ + INIT_ID(insert_comments), \ + INIT_ID(insert_pis), \ + INIT_ID(instructions), \ + INIT_ID(intern), \ + INIT_ID(intersection), \ + INIT_ID(interval), \ + INIT_ID(is_running), \ + INIT_ID(isatty), \ + INIT_ID(isinstance), \ + INIT_ID(isoformat), \ + INIT_ID(isolation_level), \ + INIT_ID(istext), \ + INIT_ID(item), \ + INIT_ID(items), \ + INIT_ID(iter), \ + INIT_ID(iterable), \ + INIT_ID(iterations), \ + INIT_ID(join), \ + INIT_ID(jump), \ + INIT_ID(keepends), \ + INIT_ID(key), \ + INIT_ID(keyfile), \ + INIT_ID(keys), \ + INIT_ID(kind), \ + INIT_ID(kw), \ + INIT_ID(kw1), \ + INIT_ID(kw2), \ + INIT_ID(kwdefaults), \ + INIT_ID(label), \ + INIT_ID(lambda), \ + INIT_ID(last), \ + INIT_ID(last_exc), \ + INIT_ID(last_node), \ + INIT_ID(last_traceback), \ + INIT_ID(last_type), \ + INIT_ID(last_value), \ + INIT_ID(latin1), \ + INIT_ID(leaf_size), \ + INIT_ID(len), \ + INIT_ID(length), \ + INIT_ID(level), \ + INIT_ID(limit), \ + INIT_ID(line), \ + INIT_ID(line_buffering), \ + INIT_ID(lineno), \ + INIT_ID(listcomp), \ + INIT_ID(little), \ + INIT_ID(lo), \ + INIT_ID(locale), \ + INIT_ID(locals), \ + INIT_ID(logoption), \ + INIT_ID(loop), \ + INIT_ID(manual_reset), \ + INIT_ID(mapping), \ + INIT_ID(match), \ + INIT_ID(max_length), \ + INIT_ID(maxdigits), \ + INIT_ID(maxevents), \ + INIT_ID(maxlen), \ + INIT_ID(maxmem), \ + INIT_ID(maxsplit), \ + INIT_ID(maxvalue), \ + INIT_ID(memLevel), \ + INIT_ID(memlimit), \ + INIT_ID(message), \ + INIT_ID(metaclass), \ + INIT_ID(metadata), \ + INIT_ID(method), \ + INIT_ID(microsecond), \ + INIT_ID(milliseconds), \ + INIT_ID(minute), \ + INIT_ID(mod), \ + INIT_ID(mode), \ + INIT_ID(module), \ + INIT_ID(module_globals), \ + INIT_ID(modules), \ + INIT_ID(month), \ + INIT_ID(mro), \ + INIT_ID(msg), \ + INIT_ID(mutex), \ + INIT_ID(mycmp), \ + INIT_ID(n_arg), \ + INIT_ID(n_fields), \ + INIT_ID(n_sequence_fields), \ + INIT_ID(n_unnamed_fields), \ + INIT_ID(name), \ + INIT_ID(name_from), \ + INIT_ID(namespace_separator), \ + INIT_ID(namespaces), \ + INIT_ID(narg), \ + INIT_ID(ndigits), \ + INIT_ID(nested), \ + INIT_ID(new_file_name), \ + INIT_ID(new_limit), \ + INIT_ID(newline), \ + INIT_ID(newlines), \ + INIT_ID(next), \ + INIT_ID(nlocals), \ + INIT_ID(node_depth), \ + INIT_ID(node_offset), \ + INIT_ID(ns), \ + INIT_ID(nstype), \ + INIT_ID(nt), \ + INIT_ID(null), \ + INIT_ID(number), \ + INIT_ID(obj), \ + INIT_ID(object), \ + INIT_ID(offset), \ + INIT_ID(offset_dst), \ + INIT_ID(offset_src), \ + INIT_ID(on_type_read), \ + INIT_ID(onceregistry), \ + INIT_ID(only_keys), \ + INIT_ID(oparg), \ + INIT_ID(opcode), \ + INIT_ID(open), \ + INIT_ID(opener), \ + INIT_ID(operation), \ + INIT_ID(optimize), \ + INIT_ID(options), \ + INIT_ID(order), \ + INIT_ID(origin), \ + INIT_ID(out_fd), \ + INIT_ID(outgoing), \ + INIT_ID(overlapped), \ + INIT_ID(owner), \ + INIT_ID(pages), \ + INIT_ID(parent), \ + INIT_ID(password), \ + INIT_ID(path), \ + INIT_ID(pattern), \ + INIT_ID(peek), \ + INIT_ID(persistent_id), \ + INIT_ID(persistent_load), \ + INIT_ID(person), \ + INIT_ID(pi_factory), \ + INIT_ID(pid), \ + INIT_ID(policy), \ + INIT_ID(pos), \ + INIT_ID(pos1), \ + INIT_ID(pos2), \ + INIT_ID(posix), \ + INIT_ID(print_file_and_line), \ + INIT_ID(priority), \ + INIT_ID(progress), \ + INIT_ID(progress_handler), \ + INIT_ID(progress_routine), \ + INIT_ID(proto), \ + INIT_ID(protocol), \ + INIT_ID(ps1), \ + INIT_ID(ps2), \ + INIT_ID(query), \ + INIT_ID(quotetabs), \ + INIT_ID(raw), \ + INIT_ID(read), \ + INIT_ID(read1), \ + INIT_ID(readable), \ + INIT_ID(readall), \ + INIT_ID(readinto), \ + INIT_ID(readinto1), \ + INIT_ID(readline), \ + INIT_ID(readonly), \ + INIT_ID(real), \ + INIT_ID(reducer_override), \ + INIT_ID(registry), \ + INIT_ID(rel_tol), \ + INIT_ID(release), \ + INIT_ID(reload), \ + INIT_ID(repl), \ + INIT_ID(replace), \ + INIT_ID(reserved), \ + INIT_ID(reset), \ + INIT_ID(resetids), \ + INIT_ID(return), \ + INIT_ID(reverse), \ + INIT_ID(reversed), \ + INIT_ID(salt), \ + INIT_ID(sched_priority), \ + INIT_ID(scheduler), \ + INIT_ID(second), \ + INIT_ID(security_attributes), \ + INIT_ID(seek), \ + INIT_ID(seekable), \ + INIT_ID(selectors), \ + INIT_ID(self), \ + INIT_ID(send), \ + INIT_ID(sep), \ + INIT_ID(sequence), \ + INIT_ID(server_hostname), \ + INIT_ID(server_side), \ + INIT_ID(session), \ + INIT_ID(setcomp), \ + INIT_ID(setpgroup), \ + INIT_ID(setsid), \ + INIT_ID(setsigdef), \ + INIT_ID(setsigmask), \ + INIT_ID(setstate), \ + INIT_ID(shape), \ + INIT_ID(show_cmd), \ + INIT_ID(signed), \ + INIT_ID(size), \ + INIT_ID(sizehint), \ + INIT_ID(skip_file_prefixes), \ + INIT_ID(sleep), \ + INIT_ID(sock), \ + INIT_ID(sort), \ + INIT_ID(source), \ + INIT_ID(source_traceback), \ + INIT_ID(spam), \ + INIT_ID(src), \ + INIT_ID(src_dir_fd), \ + INIT_ID(stacklevel), \ + INIT_ID(start), \ + INIT_ID(statement), \ + INIT_ID(status), \ + INIT_ID(stderr), \ + INIT_ID(stdin), \ + INIT_ID(stdout), \ + INIT_ID(step), \ + INIT_ID(steps), \ + INIT_ID(store_name), \ + INIT_ID(strategy), \ + INIT_ID(strftime), \ + INIT_ID(strict), \ + INIT_ID(strict_mode), \ + INIT_ID(string), \ + INIT_ID(sub_key), \ + INIT_ID(symmetric_difference_update), \ + INIT_ID(tabsize), \ + INIT_ID(tag), \ + INIT_ID(target), \ + INIT_ID(target_is_directory), \ + INIT_ID(task), \ + INIT_ID(tb_frame), \ + INIT_ID(tb_lasti), \ + INIT_ID(tb_lineno), \ + INIT_ID(tb_next), \ + INIT_ID(tell), \ + INIT_ID(template), \ + INIT_ID(term), \ + INIT_ID(text), \ + INIT_ID(threading), \ + INIT_ID(throw), \ + INIT_ID(timeout), \ + INIT_ID(times), \ + INIT_ID(timetuple), \ + INIT_ID(top), \ + INIT_ID(trace_callback), \ + INIT_ID(traceback), \ + INIT_ID(trailers), \ + INIT_ID(translate), \ + INIT_ID(true), \ + INIT_ID(truncate), \ + INIT_ID(twice), \ + INIT_ID(txt), \ + INIT_ID(type), \ + INIT_ID(type_params), \ + INIT_ID(tz), \ + INIT_ID(tzinfo), \ + INIT_ID(tzname), \ + INIT_ID(uid), \ + INIT_ID(unlink), \ + INIT_ID(unraisablehook), \ + INIT_ID(uri), \ + INIT_ID(usedforsecurity), \ + INIT_ID(value), \ + INIT_ID(values), \ + INIT_ID(version), \ + INIT_ID(volume), \ + INIT_ID(wait_all), \ + INIT_ID(warn_on_full_buffer), \ + INIT_ID(warnings), \ + INIT_ID(warnoptions), \ + INIT_ID(wbits), \ + INIT_ID(week), \ + INIT_ID(weekday), \ + INIT_ID(which), \ + INIT_ID(who), \ + INIT_ID(withdata), \ + INIT_ID(writable), \ + INIT_ID(write), \ + INIT_ID(write_through), \ + INIT_ID(year), \ + INIT_ID(zdict), \ +} + +#define _Py_str_ascii_INIT { \ + _PyASCIIObject_INIT("\x00"), \ + _PyASCIIObject_INIT("\x01"), \ + _PyASCIIObject_INIT("\x02"), \ + _PyASCIIObject_INIT("\x03"), \ + _PyASCIIObject_INIT("\x04"), \ + _PyASCIIObject_INIT("\x05"), \ + _PyASCIIObject_INIT("\x06"), \ + _PyASCIIObject_INIT("\x07"), \ + _PyASCIIObject_INIT("\x08"), \ + _PyASCIIObject_INIT("\x09"), \ + _PyASCIIObject_INIT("\x0a"), \ + _PyASCIIObject_INIT("\x0b"), \ + _PyASCIIObject_INIT("\x0c"), \ + _PyASCIIObject_INIT("\x0d"), \ + _PyASCIIObject_INIT("\x0e"), \ + _PyASCIIObject_INIT("\x0f"), \ + _PyASCIIObject_INIT("\x10"), \ + _PyASCIIObject_INIT("\x11"), \ + _PyASCIIObject_INIT("\x12"), \ + _PyASCIIObject_INIT("\x13"), \ + _PyASCIIObject_INIT("\x14"), \ + _PyASCIIObject_INIT("\x15"), \ + _PyASCIIObject_INIT("\x16"), \ + _PyASCIIObject_INIT("\x17"), \ + _PyASCIIObject_INIT("\x18"), \ + _PyASCIIObject_INIT("\x19"), \ + _PyASCIIObject_INIT("\x1a"), \ + _PyASCIIObject_INIT("\x1b"), \ + _PyASCIIObject_INIT("\x1c"), \ + _PyASCIIObject_INIT("\x1d"), \ + _PyASCIIObject_INIT("\x1e"), \ + _PyASCIIObject_INIT("\x1f"), \ + _PyASCIIObject_INIT("\x20"), \ + _PyASCIIObject_INIT("\x21"), \ + _PyASCIIObject_INIT("\x22"), \ + _PyASCIIObject_INIT("\x23"), \ + _PyASCIIObject_INIT("\x24"), \ + _PyASCIIObject_INIT("\x25"), \ + _PyASCIIObject_INIT("\x26"), \ + _PyASCIIObject_INIT("\x27"), \ + _PyASCIIObject_INIT("\x28"), \ + _PyASCIIObject_INIT("\x29"), \ + _PyASCIIObject_INIT("\x2a"), \ + _PyASCIIObject_INIT("\x2b"), \ + _PyASCIIObject_INIT("\x2c"), \ + _PyASCIIObject_INIT("\x2d"), \ + _PyASCIIObject_INIT("\x2e"), \ + _PyASCIIObject_INIT("\x2f"), \ + _PyASCIIObject_INIT("\x30"), \ + _PyASCIIObject_INIT("\x31"), \ + _PyASCIIObject_INIT("\x32"), \ + _PyASCIIObject_INIT("\x33"), \ + _PyASCIIObject_INIT("\x34"), \ + _PyASCIIObject_INIT("\x35"), \ + _PyASCIIObject_INIT("\x36"), \ + _PyASCIIObject_INIT("\x37"), \ + _PyASCIIObject_INIT("\x38"), \ + _PyASCIIObject_INIT("\x39"), \ + _PyASCIIObject_INIT("\x3a"), \ + _PyASCIIObject_INIT("\x3b"), \ + _PyASCIIObject_INIT("\x3c"), \ + _PyASCIIObject_INIT("\x3d"), \ + _PyASCIIObject_INIT("\x3e"), \ + _PyASCIIObject_INIT("\x3f"), \ + _PyASCIIObject_INIT("\x40"), \ + _PyASCIIObject_INIT("\x41"), \ + _PyASCIIObject_INIT("\x42"), \ + _PyASCIIObject_INIT("\x43"), \ + _PyASCIIObject_INIT("\x44"), \ + _PyASCIIObject_INIT("\x45"), \ + _PyASCIIObject_INIT("\x46"), \ + _PyASCIIObject_INIT("\x47"), \ + _PyASCIIObject_INIT("\x48"), \ + _PyASCIIObject_INIT("\x49"), \ + _PyASCIIObject_INIT("\x4a"), \ + _PyASCIIObject_INIT("\x4b"), \ + _PyASCIIObject_INIT("\x4c"), \ + _PyASCIIObject_INIT("\x4d"), \ + _PyASCIIObject_INIT("\x4e"), \ + _PyASCIIObject_INIT("\x4f"), \ + _PyASCIIObject_INIT("\x50"), \ + _PyASCIIObject_INIT("\x51"), \ + _PyASCIIObject_INIT("\x52"), \ + _PyASCIIObject_INIT("\x53"), \ + _PyASCIIObject_INIT("\x54"), \ + _PyASCIIObject_INIT("\x55"), \ + _PyASCIIObject_INIT("\x56"), \ + _PyASCIIObject_INIT("\x57"), \ + _PyASCIIObject_INIT("\x58"), \ + _PyASCIIObject_INIT("\x59"), \ + _PyASCIIObject_INIT("\x5a"), \ + _PyASCIIObject_INIT("\x5b"), \ + _PyASCIIObject_INIT("\x5c"), \ + _PyASCIIObject_INIT("\x5d"), \ + _PyASCIIObject_INIT("\x5e"), \ + _PyASCIIObject_INIT("\x5f"), \ + _PyASCIIObject_INIT("\x60"), \ + _PyASCIIObject_INIT("\x61"), \ + _PyASCIIObject_INIT("\x62"), \ + _PyASCIIObject_INIT("\x63"), \ + _PyASCIIObject_INIT("\x64"), \ + _PyASCIIObject_INIT("\x65"), \ + _PyASCIIObject_INIT("\x66"), \ + _PyASCIIObject_INIT("\x67"), \ + _PyASCIIObject_INIT("\x68"), \ + _PyASCIIObject_INIT("\x69"), \ + _PyASCIIObject_INIT("\x6a"), \ + _PyASCIIObject_INIT("\x6b"), \ + _PyASCIIObject_INIT("\x6c"), \ + _PyASCIIObject_INIT("\x6d"), \ + _PyASCIIObject_INIT("\x6e"), \ + _PyASCIIObject_INIT("\x6f"), \ + _PyASCIIObject_INIT("\x70"), \ + _PyASCIIObject_INIT("\x71"), \ + _PyASCIIObject_INIT("\x72"), \ + _PyASCIIObject_INIT("\x73"), \ + _PyASCIIObject_INIT("\x74"), \ + _PyASCIIObject_INIT("\x75"), \ + _PyASCIIObject_INIT("\x76"), \ + _PyASCIIObject_INIT("\x77"), \ + _PyASCIIObject_INIT("\x78"), \ + _PyASCIIObject_INIT("\x79"), \ + _PyASCIIObject_INIT("\x7a"), \ + _PyASCIIObject_INIT("\x7b"), \ + _PyASCIIObject_INIT("\x7c"), \ + _PyASCIIObject_INIT("\x7d"), \ + _PyASCIIObject_INIT("\x7e"), \ + _PyASCIIObject_INIT("\x7f"), \ +} + +#define _Py_str_latin1_INIT { \ + _PyUnicode_LATIN1_INIT("\x80", "\xc2\x80"), \ + _PyUnicode_LATIN1_INIT("\x81", "\xc2\x81"), \ + _PyUnicode_LATIN1_INIT("\x82", "\xc2\x82"), \ + _PyUnicode_LATIN1_INIT("\x83", "\xc2\x83"), \ + _PyUnicode_LATIN1_INIT("\x84", "\xc2\x84"), \ + _PyUnicode_LATIN1_INIT("\x85", "\xc2\x85"), \ + _PyUnicode_LATIN1_INIT("\x86", "\xc2\x86"), \ + _PyUnicode_LATIN1_INIT("\x87", "\xc2\x87"), \ + _PyUnicode_LATIN1_INIT("\x88", "\xc2\x88"), \ + _PyUnicode_LATIN1_INIT("\x89", "\xc2\x89"), \ + _PyUnicode_LATIN1_INIT("\x8a", "\xc2\x8a"), \ + _PyUnicode_LATIN1_INIT("\x8b", "\xc2\x8b"), \ + _PyUnicode_LATIN1_INIT("\x8c", "\xc2\x8c"), \ + _PyUnicode_LATIN1_INIT("\x8d", "\xc2\x8d"), \ + _PyUnicode_LATIN1_INIT("\x8e", "\xc2\x8e"), \ + _PyUnicode_LATIN1_INIT("\x8f", "\xc2\x8f"), \ + _PyUnicode_LATIN1_INIT("\x90", "\xc2\x90"), \ + _PyUnicode_LATIN1_INIT("\x91", "\xc2\x91"), \ + _PyUnicode_LATIN1_INIT("\x92", "\xc2\x92"), \ + _PyUnicode_LATIN1_INIT("\x93", "\xc2\x93"), \ + _PyUnicode_LATIN1_INIT("\x94", "\xc2\x94"), \ + _PyUnicode_LATIN1_INIT("\x95", "\xc2\x95"), \ + _PyUnicode_LATIN1_INIT("\x96", "\xc2\x96"), \ + _PyUnicode_LATIN1_INIT("\x97", "\xc2\x97"), \ + _PyUnicode_LATIN1_INIT("\x98", "\xc2\x98"), \ + _PyUnicode_LATIN1_INIT("\x99", "\xc2\x99"), \ + _PyUnicode_LATIN1_INIT("\x9a", "\xc2\x9a"), \ + _PyUnicode_LATIN1_INIT("\x9b", "\xc2\x9b"), \ + _PyUnicode_LATIN1_INIT("\x9c", "\xc2\x9c"), \ + _PyUnicode_LATIN1_INIT("\x9d", "\xc2\x9d"), \ + _PyUnicode_LATIN1_INIT("\x9e", "\xc2\x9e"), \ + _PyUnicode_LATIN1_INIT("\x9f", "\xc2\x9f"), \ + _PyUnicode_LATIN1_INIT("\xa0", "\xc2\xa0"), \ + _PyUnicode_LATIN1_INIT("\xa1", "\xc2\xa1"), \ + _PyUnicode_LATIN1_INIT("\xa2", "\xc2\xa2"), \ + _PyUnicode_LATIN1_INIT("\xa3", "\xc2\xa3"), \ + _PyUnicode_LATIN1_INIT("\xa4", "\xc2\xa4"), \ + _PyUnicode_LATIN1_INIT("\xa5", "\xc2\xa5"), \ + _PyUnicode_LATIN1_INIT("\xa6", "\xc2\xa6"), \ + _PyUnicode_LATIN1_INIT("\xa7", "\xc2\xa7"), \ + _PyUnicode_LATIN1_INIT("\xa8", "\xc2\xa8"), \ + _PyUnicode_LATIN1_INIT("\xa9", "\xc2\xa9"), \ + _PyUnicode_LATIN1_INIT("\xaa", "\xc2\xaa"), \ + _PyUnicode_LATIN1_INIT("\xab", "\xc2\xab"), \ + _PyUnicode_LATIN1_INIT("\xac", "\xc2\xac"), \ + _PyUnicode_LATIN1_INIT("\xad", "\xc2\xad"), \ + _PyUnicode_LATIN1_INIT("\xae", "\xc2\xae"), \ + _PyUnicode_LATIN1_INIT("\xaf", "\xc2\xaf"), \ + _PyUnicode_LATIN1_INIT("\xb0", "\xc2\xb0"), \ + _PyUnicode_LATIN1_INIT("\xb1", "\xc2\xb1"), \ + _PyUnicode_LATIN1_INIT("\xb2", "\xc2\xb2"), \ + _PyUnicode_LATIN1_INIT("\xb3", "\xc2\xb3"), \ + _PyUnicode_LATIN1_INIT("\xb4", "\xc2\xb4"), \ + _PyUnicode_LATIN1_INIT("\xb5", "\xc2\xb5"), \ + _PyUnicode_LATIN1_INIT("\xb6", "\xc2\xb6"), \ + _PyUnicode_LATIN1_INIT("\xb7", "\xc2\xb7"), \ + _PyUnicode_LATIN1_INIT("\xb8", "\xc2\xb8"), \ + _PyUnicode_LATIN1_INIT("\xb9", "\xc2\xb9"), \ + _PyUnicode_LATIN1_INIT("\xba", "\xc2\xba"), \ + _PyUnicode_LATIN1_INIT("\xbb", "\xc2\xbb"), \ + _PyUnicode_LATIN1_INIT("\xbc", "\xc2\xbc"), \ + _PyUnicode_LATIN1_INIT("\xbd", "\xc2\xbd"), \ + _PyUnicode_LATIN1_INIT("\xbe", "\xc2\xbe"), \ + _PyUnicode_LATIN1_INIT("\xbf", "\xc2\xbf"), \ + _PyUnicode_LATIN1_INIT("\xc0", "\xc3\x80"), \ + _PyUnicode_LATIN1_INIT("\xc1", "\xc3\x81"), \ + _PyUnicode_LATIN1_INIT("\xc2", "\xc3\x82"), \ + _PyUnicode_LATIN1_INIT("\xc3", "\xc3\x83"), \ + _PyUnicode_LATIN1_INIT("\xc4", "\xc3\x84"), \ + _PyUnicode_LATIN1_INIT("\xc5", "\xc3\x85"), \ + _PyUnicode_LATIN1_INIT("\xc6", "\xc3\x86"), \ + _PyUnicode_LATIN1_INIT("\xc7", "\xc3\x87"), \ + _PyUnicode_LATIN1_INIT("\xc8", "\xc3\x88"), \ + _PyUnicode_LATIN1_INIT("\xc9", "\xc3\x89"), \ + _PyUnicode_LATIN1_INIT("\xca", "\xc3\x8a"), \ + _PyUnicode_LATIN1_INIT("\xcb", "\xc3\x8b"), \ + _PyUnicode_LATIN1_INIT("\xcc", "\xc3\x8c"), \ + _PyUnicode_LATIN1_INIT("\xcd", "\xc3\x8d"), \ + _PyUnicode_LATIN1_INIT("\xce", "\xc3\x8e"), \ + _PyUnicode_LATIN1_INIT("\xcf", "\xc3\x8f"), \ + _PyUnicode_LATIN1_INIT("\xd0", "\xc3\x90"), \ + _PyUnicode_LATIN1_INIT("\xd1", "\xc3\x91"), \ + _PyUnicode_LATIN1_INIT("\xd2", "\xc3\x92"), \ + _PyUnicode_LATIN1_INIT("\xd3", "\xc3\x93"), \ + _PyUnicode_LATIN1_INIT("\xd4", "\xc3\x94"), \ + _PyUnicode_LATIN1_INIT("\xd5", "\xc3\x95"), \ + _PyUnicode_LATIN1_INIT("\xd6", "\xc3\x96"), \ + _PyUnicode_LATIN1_INIT("\xd7", "\xc3\x97"), \ + _PyUnicode_LATIN1_INIT("\xd8", "\xc3\x98"), \ + _PyUnicode_LATIN1_INIT("\xd9", "\xc3\x99"), \ + _PyUnicode_LATIN1_INIT("\xda", "\xc3\x9a"), \ + _PyUnicode_LATIN1_INIT("\xdb", "\xc3\x9b"), \ + _PyUnicode_LATIN1_INIT("\xdc", "\xc3\x9c"), \ + _PyUnicode_LATIN1_INIT("\xdd", "\xc3\x9d"), \ + _PyUnicode_LATIN1_INIT("\xde", "\xc3\x9e"), \ + _PyUnicode_LATIN1_INIT("\xdf", "\xc3\x9f"), \ + _PyUnicode_LATIN1_INIT("\xe0", "\xc3\xa0"), \ + _PyUnicode_LATIN1_INIT("\xe1", "\xc3\xa1"), \ + _PyUnicode_LATIN1_INIT("\xe2", "\xc3\xa2"), \ + _PyUnicode_LATIN1_INIT("\xe3", "\xc3\xa3"), \ + _PyUnicode_LATIN1_INIT("\xe4", "\xc3\xa4"), \ + _PyUnicode_LATIN1_INIT("\xe5", "\xc3\xa5"), \ + _PyUnicode_LATIN1_INIT("\xe6", "\xc3\xa6"), \ + _PyUnicode_LATIN1_INIT("\xe7", "\xc3\xa7"), \ + _PyUnicode_LATIN1_INIT("\xe8", "\xc3\xa8"), \ + _PyUnicode_LATIN1_INIT("\xe9", "\xc3\xa9"), \ + _PyUnicode_LATIN1_INIT("\xea", "\xc3\xaa"), \ + _PyUnicode_LATIN1_INIT("\xeb", "\xc3\xab"), \ + _PyUnicode_LATIN1_INIT("\xec", "\xc3\xac"), \ + _PyUnicode_LATIN1_INIT("\xed", "\xc3\xad"), \ + _PyUnicode_LATIN1_INIT("\xee", "\xc3\xae"), \ + _PyUnicode_LATIN1_INIT("\xef", "\xc3\xaf"), \ + _PyUnicode_LATIN1_INIT("\xf0", "\xc3\xb0"), \ + _PyUnicode_LATIN1_INIT("\xf1", "\xc3\xb1"), \ + _PyUnicode_LATIN1_INIT("\xf2", "\xc3\xb2"), \ + _PyUnicode_LATIN1_INIT("\xf3", "\xc3\xb3"), \ + _PyUnicode_LATIN1_INIT("\xf4", "\xc3\xb4"), \ + _PyUnicode_LATIN1_INIT("\xf5", "\xc3\xb5"), \ + _PyUnicode_LATIN1_INIT("\xf6", "\xc3\xb6"), \ + _PyUnicode_LATIN1_INIT("\xf7", "\xc3\xb7"), \ + _PyUnicode_LATIN1_INIT("\xf8", "\xc3\xb8"), \ + _PyUnicode_LATIN1_INIT("\xf9", "\xc3\xb9"), \ + _PyUnicode_LATIN1_INIT("\xfa", "\xc3\xba"), \ + _PyUnicode_LATIN1_INIT("\xfb", "\xc3\xbb"), \ + _PyUnicode_LATIN1_INIT("\xfc", "\xc3\xbc"), \ + _PyUnicode_LATIN1_INIT("\xfd", "\xc3\xbd"), \ + _PyUnicode_LATIN1_INIT("\xfe", "\xc3\xbe"), \ + _PyUnicode_LATIN1_INIT("\xff", "\xc3\xbf"), \ +} +/* End auto-generated code */ + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_RUNTIME_INIT_GENERATED_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_semaphore.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_semaphore.h new file mode 100644 index 000000000..ffcc6d803 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_semaphore.h @@ -0,0 +1,65 @@ +// The _PySemaphore API a simplified cross-platform semaphore used to implement +// wakeup/sleep. +#ifndef Py_INTERNAL_SEMAPHORE_H +#define Py_INTERNAL_SEMAPHORE_H + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_pythread.h" // _POSIX_SEMAPHORES + +#ifdef MS_WINDOWS +# define WIN32_LEAN_AND_MEAN +# include +#elif defined(HAVE_PTHREAD_H) +# include +#elif defined(HAVE_PTHREAD_STUBS) +# include "cpython/pthread_stubs.h" +#else +# error "Require native threads. See https://bugs.python.org/issue31370" +#endif + +#if (defined(_POSIX_SEMAPHORES) && (_POSIX_SEMAPHORES+0) != -1 && \ + defined(HAVE_SEM_TIMEDWAIT)) +# define _Py_USE_SEMAPHORES +# include +#endif + + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct _PySemaphore { +#if defined(MS_WINDOWS) + HANDLE platform_sem; +#elif defined(_Py_USE_SEMAPHORES) + sem_t platform_sem; +#else + pthread_mutex_t mutex; + pthread_cond_t cond; + int counter; +#endif +} _PySemaphore; + +// Puts the current thread to sleep until _PySemaphore_Wakeup() is called. +// If `detach` is true, then the thread will detach/release the GIL while +// sleeping. +PyAPI_FUNC(int) +_PySemaphore_Wait(_PySemaphore *sema, PyTime_t timeout_ns, int detach); + +// Wakes up a single thread waiting on sema. Note that _PySemaphore_Wakeup() +// can be called before _PySemaphore_Wait(). +PyAPI_FUNC(void) +_PySemaphore_Wakeup(_PySemaphore *sema); + +// Initializes/destroys a semaphore +PyAPI_FUNC(void) _PySemaphore_Init(_PySemaphore *sema); +PyAPI_FUNC(void) _PySemaphore_Destroy(_PySemaphore *sema); + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_SEMAPHORE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_setobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_setobject.h new file mode 100644 index 000000000..0494c07fe --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_setobject.h @@ -0,0 +1,39 @@ +#ifndef Py_INTERNAL_SETOBJECT_H +#define Py_INTERNAL_SETOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +// Export for '_abc' shared extension +PyAPI_FUNC(int) _PySet_NextEntry( + PyObject *set, + Py_ssize_t *pos, + PyObject **key, + Py_hash_t *hash); + +// Export for '_pickle' shared extension +PyAPI_FUNC(int) _PySet_NextEntryRef( + PyObject *set, + Py_ssize_t *pos, + PyObject **key, + Py_hash_t *hash); + +// Export for '_pickle' shared extension +PyAPI_FUNC(int) _PySet_Update(PyObject *set, PyObject *iterable); + +// Export for the gdb plugin's (python-gdb.py) benefit +PyAPI_DATA(PyObject *) _PySet_Dummy; + +PyAPI_FUNC(int) _PySet_Contains(PySetObject *so, PyObject *key); + +// Clears the set without acquiring locks. Used by _PyCode_Fini. +extern void _PySet_ClearInternal(PySetObject *so); + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_SETOBJECT_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_signal.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_signal.h new file mode 100644 index 000000000..47213a34a --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_signal.h @@ -0,0 +1,108 @@ +// Define Py_NSIG constant for signal handling. + +#ifndef Py_INTERNAL_SIGNAL_H +#define Py_INTERNAL_SIGNAL_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include // NSIG + + +// Restore signals that the interpreter has called SIG_IGN on to SIG_DFL. +// Export for '_posixsubprocess' shared extension. +PyAPI_FUNC(void) _Py_RestoreSignals(void); + +#ifdef _SIG_MAXSIG + // gh-91145: On FreeBSD, defines NSIG as 32: it doesn't include + // realtime signals: [SIGRTMIN,SIGRTMAX]. Use _SIG_MAXSIG instead. For + // example on x86-64 FreeBSD 13, SIGRTMAX is 126 and _SIG_MAXSIG is 128. +# define Py_NSIG _SIG_MAXSIG +#elif defined(NSIG) +# define Py_NSIG NSIG +#elif defined(_NSIG) +# define Py_NSIG _NSIG // BSD/SysV +#elif defined(_SIGMAX) +# define Py_NSIG (_SIGMAX + 1) // QNX +#elif defined(SIGMAX) +# define Py_NSIG (SIGMAX + 1) // djgpp +#else +# define Py_NSIG 64 // Use a reasonable default value +#endif + +#define INVALID_FD (-1) + +struct _signals_runtime_state { + struct { + // tripped and func should be accessed using atomic ops. + int tripped; + PyObject* func; + } handlers[Py_NSIG]; + + volatile struct { +#ifdef MS_WINDOWS + /* This would be "SOCKET fd" if were always included. + It isn't so we must cast to SOCKET where appropriate. */ + volatile int fd; +#elif defined(__VXWORKS__) + int fd; +#else + sig_atomic_t fd; +#endif + + int warn_on_full_buffer; +#ifdef MS_WINDOWS + int use_send; +#endif + } wakeup; + + /* Speed up sigcheck() when none tripped. + is_tripped should be accessed using atomic ops. */ + int is_tripped; + + /* These objects necessarily belong to the main interpreter. */ + PyObject *default_handler; + PyObject *ignore_handler; + +#ifdef MS_WINDOWS + /* This would be "HANDLE sigint_event" if were always included. + It isn't so we must cast to HANDLE everywhere "sigint_event" is used. */ + void *sigint_event; +#endif + + /* True if the main interpreter thread exited due to an unhandled + * KeyboardInterrupt exception, suggesting the user pressed ^C. */ + int unhandled_keyboard_interrupt; +}; + +#ifdef MS_WINDOWS +# define _signals_WAKEUP_INIT \ + {.fd = INVALID_FD, .warn_on_full_buffer = 1, .use_send = 0} +#else +# define _signals_WAKEUP_INIT \ + {.fd = INVALID_FD, .warn_on_full_buffer = 1} +#endif + +#define _signals_RUNTIME_INIT \ + { \ + .wakeup = _signals_WAKEUP_INIT, \ + } + + +// Export for '_multiprocessing' shared extension +PyAPI_FUNC(int) _PyOS_IsMainThread(void); + +#ifdef MS_WINDOWS +// is not included by Python.h so use void* instead of HANDLE. +// Export for '_multiprocessing' shared extension +PyAPI_FUNC(void*) _PyOS_SigintEvent(void); +#endif + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_SIGNAL_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_sliceobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_sliceobject.h new file mode 100644 index 000000000..ba8b1f1cb --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_sliceobject.h @@ -0,0 +1,20 @@ +#ifndef Py_INTERNAL_SLICEOBJECT_H +#define Py_INTERNAL_SLICEOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +/* runtime lifecycle */ + +PyAPI_FUNC(PyObject *) +_PyBuildSlice_ConsumeRefs(PyObject *start, PyObject *stop); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_SLICEOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_stackref.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_stackref.h new file mode 100644 index 000000000..938981747 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_stackref.h @@ -0,0 +1,195 @@ +#ifndef Py_INTERNAL_STACKREF_H +#define Py_INTERNAL_STACKREF_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include + +typedef union { + uintptr_t bits; +} _PyStackRef; + +static const _PyStackRef Py_STACKREF_NULL = { .bits = 0 }; + +#define Py_TAG_DEFERRED (1) + +// Gets a PyObject * from a _PyStackRef +#if defined(Py_GIL_DISABLED) +static inline PyObject * +PyStackRef_Get(_PyStackRef tagged) +{ + PyObject *cleared = ((PyObject *)((tagged).bits & (~Py_TAG_DEFERRED))); + return cleared; +} +#else +# define PyStackRef_Get(tagged) ((PyObject *)((tagged).bits)) +#endif + +// Converts a PyObject * to a PyStackRef, stealing the reference. +#if defined(Py_GIL_DISABLED) +static inline _PyStackRef +_PyStackRef_StealRef(PyObject *obj) +{ + // Make sure we don't take an already tagged value. + assert(((uintptr_t)obj & Py_TAG_DEFERRED) == 0); + return ((_PyStackRef){.bits = ((uintptr_t)(obj))}); +} +# define PyStackRef_StealRef(obj) _PyStackRef_StealRef(_PyObject_CAST(obj)) +#else +# define PyStackRef_StealRef(obj) ((_PyStackRef){.bits = ((uintptr_t)(obj))}) +#endif + +// Converts a PyObject * to a PyStackRef, with a new reference +#if defined(Py_GIL_DISABLED) +static inline _PyStackRef +_PyStackRef_NewRefDeferred(PyObject *obj) +{ + // Make sure we don't take an already tagged value. + assert(((uintptr_t)obj & Py_TAG_DEFERRED) == 0); + assert(obj != NULL); + if (_PyObject_HasDeferredRefcount(obj)) { + return (_PyStackRef){ .bits = (uintptr_t)obj | Py_TAG_DEFERRED }; + } + else { + return (_PyStackRef){ .bits = (uintptr_t)Py_NewRef(obj) }; + } +} +# define PyStackRef_NewRefDeferred(obj) _PyStackRef_NewRefDeferred(_PyObject_CAST(obj)) +#else +# define PyStackRef_NewRefDeferred(obj) PyStackRef_NewRef(((_PyStackRef){.bits = ((uintptr_t)(obj))})) +#endif + +#if defined(Py_GIL_DISABLED) +static inline _PyStackRef +_PyStackRef_XNewRefDeferred(PyObject *obj) +{ + // Make sure we don't take an already tagged value. + assert(((uintptr_t)obj & Py_TAG_DEFERRED) == 0); + if (obj == NULL) { + return Py_STACKREF_NULL; + } + return _PyStackRef_NewRefDeferred(obj); +} +# define PyStackRef_XNewRefDeferred(obj) _PyStackRef_XNewRefDeferred(_PyObject_CAST(obj)) +#else +# define PyStackRef_XNewRefDeferred(obj) PyStackRef_XNewRef(((_PyStackRef){.bits = ((uintptr_t)(obj))})) +#endif + +// Converts a PyStackRef back to a PyObject *. +#if defined(Py_GIL_DISABLED) +static inline PyObject * +PyStackRef_StealObject(_PyStackRef tagged) +{ + if ((tagged.bits & Py_TAG_DEFERRED) == Py_TAG_DEFERRED) { + assert(_PyObject_HasDeferredRefcount(PyStackRef_Get(tagged))); + return Py_NewRef(PyStackRef_Get(tagged)); + } + return PyStackRef_Get(tagged); +} +#else +# define PyStackRef_StealObject(tagged) PyStackRef_Get(tagged) +#endif + +static inline void +_Py_untag_stack_borrowed(PyObject **dst, const _PyStackRef *src, size_t length) +{ + for (size_t i = 0; i < length; i++) { + dst[i] = PyStackRef_Get(src[i]); + } +} + +static inline void +_Py_untag_stack_steal(PyObject **dst, const _PyStackRef *src, size_t length) +{ + for (size_t i = 0; i < length; i++) { + dst[i] = PyStackRef_StealObject(src[i]); + } +} + + +#define PyStackRef_XSETREF(dst, src) \ + do { \ + _PyStackRef *_tmp_dst_ptr = &(dst); \ + _PyStackRef _tmp_old_dst = (*_tmp_dst_ptr); \ + *_tmp_dst_ptr = (src); \ + PyStackRef_XDECREF(_tmp_old_dst); \ + } while (0) + +#define PyStackRef_SETREF(dst, src) \ + do { \ + _PyStackRef *_tmp_dst_ptr = &(dst); \ + _PyStackRef _tmp_old_dst = (*_tmp_dst_ptr); \ + *_tmp_dst_ptr = (src); \ + PyStackRef_DECREF(_tmp_old_dst); \ + } while (0) + +#define PyStackRef_CLEAR(op) \ + do { \ + _PyStackRef *_tmp_op_ptr = &(op); \ + _PyStackRef _tmp_old_op = (*_tmp_op_ptr); \ + if (_tmp_old_op.bits != Py_STACKREF_NULL.bits) { \ + *_tmp_op_ptr = Py_STACKREF_NULL; \ + PyStackRef_DECREF(_tmp_old_op); \ + } \ + } while (0) + +#if defined(Py_GIL_DISABLED) +static inline void +PyStackRef_DECREF(_PyStackRef tagged) +{ + if ((tagged.bits & Py_TAG_DEFERRED) == Py_TAG_DEFERRED) { + return; + } + Py_DECREF(PyStackRef_Get(tagged)); +} +#else +# define PyStackRef_DECREF(op) Py_DECREF(PyStackRef_Get(op)) +#endif + +#if defined(Py_GIL_DISABLED) +static inline void +PyStackRef_INCREF(_PyStackRef tagged) +{ + if ((tagged.bits & Py_TAG_DEFERRED) == Py_TAG_DEFERRED) { + assert(_PyObject_HasDeferredRefcount(PyStackRef_Get(tagged))); + return; + } + Py_INCREF(PyStackRef_Get(tagged)); +} +#else +# define PyStackRef_INCREF(op) Py_INCREF(PyStackRef_Get(op)) +#endif + +static inline void +PyStackRef_XDECREF(_PyStackRef op) +{ + if (op.bits != Py_STACKREF_NULL.bits) { + PyStackRef_DECREF(op); + } +} + +static inline _PyStackRef +PyStackRef_NewRef(_PyStackRef obj) +{ + PyStackRef_INCREF(obj); + return obj; +} + +static inline _PyStackRef +PyStackRef_XNewRef(_PyStackRef obj) +{ + if (obj.bits == Py_STACKREF_NULL.bits) { + return obj; + } + return PyStackRef_NewRef(obj); +} + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_STACKREF_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_strhex.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_strhex.h new file mode 100644 index 000000000..225f42391 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_strhex.h @@ -0,0 +1,39 @@ +#ifndef Py_INTERNAL_STRHEX_H +#define Py_INTERNAL_STRHEX_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +// Returns a str() containing the hex representation of argbuf. +// Export for '_hashlib' shared extension. +PyAPI_FUNC(PyObject*) _Py_strhex(const + char* argbuf, + const Py_ssize_t arglen); + +// Returns a bytes() containing the ASCII hex representation of argbuf. +extern PyObject* _Py_strhex_bytes( + const char* argbuf, + const Py_ssize_t arglen); + +// These variants include support for a separator between every N bytes: +extern PyObject* _Py_strhex_with_sep( + const char* argbuf, + const Py_ssize_t arglen, + PyObject* sep, + const int bytes_per_group); + +// Export for 'binascii' shared extension +PyAPI_FUNC(PyObject*) _Py_strhex_bytes_with_sep( + const char* argbuf, + const Py_ssize_t arglen, + PyObject* sep, + const int bytes_per_group); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_STRHEX_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_structseq.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_structseq.h new file mode 100644 index 000000000..5cff16562 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_structseq.h @@ -0,0 +1,40 @@ +#ifndef Py_INTERNAL_STRUCTSEQ_H +#define Py_INTERNAL_STRUCTSEQ_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +/* other API */ + +// Export for '_curses' shared extension +PyAPI_FUNC(PyTypeObject*) _PyStructSequence_NewType( + PyStructSequence_Desc *desc, + unsigned long tp_flags); + +extern int _PyStructSequence_InitBuiltinWithFlags( + PyInterpreterState *interp, + PyTypeObject *type, + PyStructSequence_Desc *desc, + unsigned long tp_flags); + +static inline int +_PyStructSequence_InitBuiltin(PyInterpreterState *interp, + PyTypeObject *type, + PyStructSequence_Desc *desc) +{ + return _PyStructSequence_InitBuiltinWithFlags(interp, type, desc, 0); +} + +extern void _PyStructSequence_FiniBuiltin( + PyInterpreterState *interp, + PyTypeObject *type); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_STRUCTSEQ_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_symtable.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_symtable.h new file mode 100644 index 000000000..90252bf83 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_symtable.h @@ -0,0 +1,204 @@ +#ifndef Py_INTERNAL_SYMTABLE_H +#define Py_INTERNAL_SYMTABLE_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +struct _mod; // Type defined in pycore_ast.h + +typedef enum _block_type { + FunctionBlock, ClassBlock, ModuleBlock, + // Used for annotations if 'from __future__ import annotations' is active. + // Annotation blocks cannot bind names and are not evaluated. + AnnotationBlock, + + // The following blocks are used for generics and type aliases. These work + // mostly like functions (see PEP 695 for details). The three different + // blocks function identically; they are different enum entries only so + // that error messages can be more precise. + + // The block to enter when processing a "type" (PEP 695) construction, + // e.g., "type MyGeneric[T] = list[T]". + TypeAliasBlock, + // The block to enter when processing a "generic" (PEP 695) object, + // e.g., "def foo[T](): pass" or "class A[T]: pass". + TypeParametersBlock, + // The block to enter when processing the bound, the constraint tuple + // or the default value of a single "type variable" in the formal sense, + // i.e., a TypeVar, a TypeVarTuple or a ParamSpec object (the latter two + // do not support a bound or a constraint tuple). + TypeVariableBlock, +} _Py_block_ty; + +typedef enum _comprehension_type { + NoComprehension = 0, + ListComprehension = 1, + DictComprehension = 2, + SetComprehension = 3, + GeneratorExpression = 4 } _Py_comprehension_ty; + +/* source location information */ +typedef struct { + int lineno; + int end_lineno; + int col_offset; + int end_col_offset; +} _Py_SourceLocation; + +#define SRC_LOCATION_FROM_AST(n) \ + (_Py_SourceLocation){ \ + .lineno = (n)->lineno, \ + .end_lineno = (n)->end_lineno, \ + .col_offset = (n)->col_offset, \ + .end_col_offset = (n)->end_col_offset } + +static const _Py_SourceLocation NO_LOCATION = {-1, -1, -1, -1}; + +/* __future__ information */ +typedef struct { + int ff_features; /* flags set by future statements */ + _Py_SourceLocation ff_location; /* location of last future statement */ +} _PyFutureFeatures; + +struct _symtable_entry; + +struct symtable { + PyObject *st_filename; /* name of file being compiled, + decoded from the filesystem encoding */ + struct _symtable_entry *st_cur; /* current symbol table entry */ + struct _symtable_entry *st_top; /* symbol table entry for module */ + PyObject *st_blocks; /* dict: map AST node addresses + * to symbol table entries */ + PyObject *st_stack; /* list: stack of namespace info */ + PyObject *st_global; /* borrowed ref to st_top->ste_symbols */ + int st_nblocks; /* number of blocks used. kept for + consistency with the corresponding + compiler structure */ + PyObject *st_private; /* name of current class or NULL */ + _PyFutureFeatures *st_future; /* module's future features that affect + the symbol table */ + int recursion_depth; /* current recursion depth */ + int recursion_limit; /* recursion limit */ +}; + +typedef struct _symtable_entry { + PyObject_HEAD + PyObject *ste_id; /* int: key in ste_table->st_blocks */ + PyObject *ste_symbols; /* dict: variable names to flags */ + PyObject *ste_name; /* string: name of current block */ + PyObject *ste_varnames; /* list of function parameters */ + PyObject *ste_children; /* list of child blocks */ + PyObject *ste_directives;/* locations of global and nonlocal statements */ + PyObject *ste_mangled_names; /* set of names for which mangling should be applied */ + + _Py_block_ty ste_type; + // Optional string set by symtable.c and used when reporting errors. + // The content of that string is a description of the current "context". + // + // For instance, if we are processing the default value of the type + // variable "T" in "def foo[T = int](): pass", `ste_scope_info` is + // set to "a TypeVar default". + const char *ste_scope_info; + + int ste_nested; /* true if block is nested */ + unsigned ste_free : 1; /* true if block has free variables */ + unsigned ste_child_free : 1; /* true if a child block has free vars, + 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 */ + _Py_comprehension_ty ste_comprehension; /* Kind of comprehension (if any) */ + 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 + an argument */ + unsigned ste_needs_class_closure : 1; /* for class scopes, true if a + closure over __class__ + should be created */ + unsigned ste_needs_classdict : 1; /* for class scopes, true if a closure + over the class dict should be created */ + unsigned ste_comp_inlined : 1; /* true if this comprehension is inlined */ + unsigned ste_comp_iter_target : 1; /* true if visiting comprehension target */ + unsigned ste_can_see_class_scope : 1; /* true if this block can see names bound in an + enclosing class scope */ + 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_end_lineno; /* end line of block */ + int ste_end_col_offset; /* end offset of first line of block */ + int ste_opt_lineno; /* lineno of last exec or import * */ + int ste_opt_col_offset; /* offset of last exec or import * */ + struct symtable *ste_table; +} PySTEntryObject; + +extern PyTypeObject PySTEntry_Type; + +#define PySTEntry_Check(op) Py_IS_TYPE((op), &PySTEntry_Type) + +extern long _PyST_GetSymbol(PySTEntryObject *, PyObject *); +extern int _PyST_GetScope(PySTEntryObject *, PyObject *); +extern int _PyST_IsFunctionLike(PySTEntryObject *); + +extern struct symtable* _PySymtable_Build( + struct _mod *mod, + PyObject *filename, + _PyFutureFeatures *future); +extern PySTEntryObject* _PySymtable_Lookup(struct symtable *, void *); + +extern void _PySymtable_Free(struct symtable *); + +extern PyObject *_Py_MaybeMangle(PyObject *privateobj, PySTEntryObject *ste, PyObject *name); +extern PyObject* _Py_Mangle(PyObject *p, PyObject *name); + +/* Flags for def-use information */ + +#define DEF_GLOBAL 1 /* global stmt */ +#define DEF_LOCAL 2 /* assignment in code block */ +#define DEF_PARAM (2<<1) /* formal parameter */ +#define DEF_NONLOCAL (2<<2) /* nonlocal stmt */ +#define USE (2<<3) /* name is used */ +#define DEF_FREE (2<<4) /* name used but not defined in nested block */ +#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_TYPE_PARAM (2<<9) /* this name is a type parameter */ +#define DEF_COMP_CELL (2<<10) /* this name is a cell in an inlined comprehension */ + +#define DEF_BOUND (DEF_LOCAL | DEF_PARAM | DEF_IMPORT) + +/* GLOBAL_EXPLICIT and GLOBAL_IMPLICIT are used internally by the symbol + table. GLOBAL is returned from PyST_GetScope() for either of them. + It is stored in ste_symbols at bits 13-16. +*/ +#define SCOPE_OFFSET 12 +#define SCOPE_MASK (DEF_GLOBAL | DEF_LOCAL | DEF_PARAM | DEF_NONLOCAL) + +#define LOCAL 1 +#define GLOBAL_EXPLICIT 2 +#define GLOBAL_IMPLICIT 3 +#define FREE 4 +#define CELL 5 + +#define GENERATOR 1 +#define GENERATOR_EXPRESSION 2 + +// Used by symtablemodule.c +extern struct symtable* _Py_SymtableStringObjectFlags( + const char *str, + PyObject *filename, + int start, + PyCompilerFlags *flags); + +int _PyFuture_FromAST( + struct _mod * mod, + PyObject *filename, + _PyFutureFeatures* futures); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_SYMTABLE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_sysmodule.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_sysmodule.h new file mode 100644 index 000000000..9b8eafd3d --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_sysmodule.h @@ -0,0 +1,35 @@ +#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 + +// Export for '_pickle' shared extension +PyAPI_FUNC(PyObject*) _PySys_GetAttr(PyThreadState *tstate, PyObject *name); + +// Export for '_pickle' shared extension +PyAPI_FUNC(size_t) _PySys_GetSizeOf(PyObject *); + +extern int _PySys_Audit( + PyThreadState *tstate, + const char *event, + const char *argFormat, + ...); + +// _PySys_ClearAuditHooks() must not be exported: use extern rather than +// PyAPI_FUNC(). We want minimal exposure of this function. +extern void _PySys_ClearAuditHooks(PyThreadState *tstate); + +extern int _PySys_SetAttr(PyObject *, PyObject *); + +extern int _PySys_ClearAttrString(PyInterpreterState *interp, + const char *name, int verbose); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_SYSMODULE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_time.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_time.h new file mode 100644 index 000000000..205ac5d37 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_time.h @@ -0,0 +1,337 @@ +// Internal PyTime_t C API: see Doc/c-api/time.rst for the documentation. +// +// The PyTime_t type is an integer to support directly common arithmetic +// operations such as t1 + t2. +// +// Time formats: +// +// * Seconds. +// * Seconds as a floating-point number (C double). +// * Milliseconds (10^-3 seconds). +// * Microseconds (10^-6 seconds). +// * 100 nanoseconds (10^-7 seconds), used on Windows. +// * Nanoseconds (10^-9 seconds). +// * timeval structure, 1 microsecond (10^-6 seconds). +// * timespec structure, 1 nanosecond (10^-9 seconds). +// +// Note that PyTime_t is now specified as int64_t, in nanoseconds. +// (If we need to change this, we'll need new public API with new names.) +// Previously, PyTime_t was configurable (in theory); some comments and code +// might still allude to that. +// +// Integer overflows are detected and raise OverflowError. Conversion to a +// resolution larger than 1 nanosecond is rounded correctly with the requested +// rounding mode. Available rounding modes: +// +// * Round towards minus infinity (-inf). For example, used to read a clock. +// * Round towards infinity (+inf). For example, used for timeout to wait "at +// least" N seconds. +// * Round to nearest with ties going to nearest even integer. For example, used +// to round from a Python float. +// * Round away from zero. For example, used for timeout. +// +// Some functions clamp the result in the range [PyTime_MIN; PyTime_MAX]. The +// caller doesn't have to handle errors and so doesn't need to hold the GIL to +// handle exceptions. For example, _PyTime_Add(t1, t2) computes t1+t2 and +// clamps the result on overflow. +// +// Clocks: +// +// * System clock +// * Monotonic clock +// * Performance counter +// +// Internally, operations like (t * k / q) with integers are implemented in a +// way to reduce the risk of integer overflow. Such operation is used to convert a +// clock value expressed in ticks with a frequency to PyTime_t, like +// QueryPerformanceCounter() with QueryPerformanceFrequency() on Windows. + + +#ifndef Py_INTERNAL_TIME_H +#define Py_INTERNAL_TIME_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +#ifdef __clang__ +struct timeval; +#endif + +#define _SIZEOF_PYTIME_T 8 + +typedef enum { + // Round towards minus infinity (-inf). + // For example, used to read a clock. + _PyTime_ROUND_FLOOR=0, + + // Round towards infinity (+inf). + // For example, used for timeout to wait "at least" N seconds. + _PyTime_ROUND_CEILING=1, + + // Round to nearest with ties going to nearest even integer. + // For example, used to round from a Python float. + _PyTime_ROUND_HALF_EVEN=2, + + // Round away from zero + // For example, used for timeout. _PyTime_ROUND_CEILING rounds + // -1e-9 to 0 milliseconds which causes bpo-31786 issue. + // _PyTime_ROUND_UP rounds -1e-9 to -1 millisecond which keeps + // the timeout sign as expected. select.poll(timeout) must block + // for negative values. + _PyTime_ROUND_UP=3, + + // _PyTime_ROUND_TIMEOUT (an alias for _PyTime_ROUND_UP) should be + // used for timeouts. + _PyTime_ROUND_TIMEOUT = _PyTime_ROUND_UP +} _PyTime_round_t; + + +// Convert a time_t to a PyLong. +// Export for '_testinternalcapi' shared extension +PyAPI_FUNC(PyObject*) _PyLong_FromTime_t(time_t sec); + +// Convert a PyLong to a time_t. +// Export for '_datetime' shared extension +PyAPI_FUNC(time_t) _PyLong_AsTime_t(PyObject *obj); + +// Convert a number of seconds, int or float, to time_t. +// Export for '_datetime' shared extension. +PyAPI_FUNC(int) _PyTime_ObjectToTime_t( + PyObject *obj, + time_t *sec, + _PyTime_round_t); + +// Convert a number of seconds, int or float, to a timeval structure. +// usec is in the range [0; 999999] and rounded towards zero. +// For example, -1.2 is converted to (-2, 800000). +// Export for '_datetime' shared extension. +PyAPI_FUNC(int) _PyTime_ObjectToTimeval( + PyObject *obj, + time_t *sec, + long *usec, + _PyTime_round_t); + +// Convert a number of seconds, int or float, to a timespec structure. +// nsec is in the range [0; 999999999] and rounded towards zero. +// For example, -1.2 is converted to (-2, 800000000). +// Export for '_testinternalcapi' shared extension. +PyAPI_FUNC(int) _PyTime_ObjectToTimespec( + PyObject *obj, + time_t *sec, + long *nsec, + _PyTime_round_t); + + +// Create a timestamp from a number of seconds. +// Export for '_socket' shared extension. +PyAPI_FUNC(PyTime_t) _PyTime_FromSeconds(int seconds); + +// Create a timestamp from a number of seconds in double. +extern int _PyTime_FromSecondsDouble( + double seconds, + _PyTime_round_t round, + PyTime_t *result); + +// Macro to create a timestamp from a number of seconds, no integer overflow. +// Only use the macro for small values, prefer _PyTime_FromSeconds(). +#define _PYTIME_FROMSECONDS(seconds) \ + ((PyTime_t)(seconds) * (1000 * 1000 * 1000)) + +// Create a timestamp from a number of microseconds. +// Clamp to [PyTime_MIN; PyTime_MAX] on overflow. +extern PyTime_t _PyTime_FromMicrosecondsClamp(PyTime_t us); + +// Create a timestamp from a Python int object (number of nanoseconds). +// Export for '_lsprof' shared extension. +PyAPI_FUNC(int) _PyTime_FromLong(PyTime_t *t, + PyObject *obj); + +// Convert a number of seconds (Python float or int) to a timestamp. +// Raise an exception and return -1 on error, return 0 on success. +// Export for '_socket' shared extension. +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. +// Raise an exception and return -1 on error, return 0 on success. +// Export for 'select' shared extension. +PyAPI_FUNC(int) _PyTime_FromMillisecondsObject(PyTime_t *t, + PyObject *obj, + _PyTime_round_t round); + +// Convert timestamp to a number of milliseconds (10^-3 seconds). +// Export for '_ssl' shared extension. +PyAPI_FUNC(PyTime_t) _PyTime_AsMilliseconds(PyTime_t t, + _PyTime_round_t round); + +// Convert timestamp to a number of microseconds (10^-6 seconds). +// Export for '_queue' shared extension. +PyAPI_FUNC(PyTime_t) _PyTime_AsMicroseconds(PyTime_t t, + _PyTime_round_t round); + +#ifdef MS_WINDOWS +// Convert timestamp to a number of 100 nanoseconds (10^-7 seconds). +extern PyTime_t _PyTime_As100Nanoseconds(PyTime_t t, + _PyTime_round_t round); +#endif + +// Convert a timestamp (number of nanoseconds) as a Python int object. +// Export for '_testinternalcapi' shared extension. +PyAPI_FUNC(PyObject*) _PyTime_AsLong(PyTime_t t); + +#ifndef MS_WINDOWS +// Create a timestamp from a timeval structure. +// Raise an exception and return -1 on overflow, return 0 on success. +extern int _PyTime_FromTimeval(PyTime_t *tp, struct timeval *tv); +#endif + +// Convert a timestamp to a timeval structure (microsecond resolution). +// tv_usec is always positive. +// Raise an exception and return -1 if the conversion overflowed, +// return 0 on success. +// Export for 'select' shared extension. +PyAPI_FUNC(int) _PyTime_AsTimeval(PyTime_t t, + struct timeval *tv, + _PyTime_round_t round); + +// Similar to _PyTime_AsTimeval() but don't raise an exception on overflow. +// On overflow, clamp tv_sec to PyTime_t min/max. +// Export for 'select' shared extension. +PyAPI_FUNC(void) _PyTime_AsTimeval_clamp(PyTime_t t, + struct timeval *tv, + _PyTime_round_t round); + +// Convert a timestamp to a number of seconds (secs) and microseconds (us). +// us is always positive. This function is similar to _PyTime_AsTimeval() +// except that secs is always a time_t type, whereas the timeval structure +// uses a C long for tv_sec on Windows. +// Raise an exception and return -1 if the conversion overflowed, +// return 0 on success. +// Export for '_datetime' shared extension. +PyAPI_FUNC(int) _PyTime_AsTimevalTime_t( + PyTime_t t, + time_t *secs, + int *us, + _PyTime_round_t round); + +#if defined(HAVE_CLOCK_GETTIME) || defined(HAVE_KQUEUE) +// Create a timestamp from a timespec structure. +// Raise an exception and return -1 on overflow, return 0 on success. +extern int _PyTime_FromTimespec(PyTime_t *tp, const struct timespec *ts); + +// Convert a timestamp to a timespec structure (nanosecond resolution). +// tv_nsec is always positive. +// Raise an exception and return -1 on error, return 0 on success. +// Export for '_testinternalcapi' shared extension. +PyAPI_FUNC(int) _PyTime_AsTimespec(PyTime_t t, struct timespec *ts); + +// Similar to _PyTime_AsTimespec() but don't raise an exception on overflow. +// On overflow, clamp tv_sec to PyTime_t min/max. +// Export for '_testinternalcapi' shared extension. +PyAPI_FUNC(void) _PyTime_AsTimespec_clamp(PyTime_t t, struct timespec *ts); +#endif + + +// Compute t1 + t2. Clamp to [PyTime_MIN; PyTime_MAX] on overflow. +extern PyTime_t _PyTime_Add(PyTime_t t1, PyTime_t t2); + +// Structure used by time.get_clock_info() +typedef struct { + const char *implementation; + int monotonic; + int adjustable; + double resolution; +} _Py_clock_info_t; + +// Get the current time from the system clock. +// On success, set *t and *info (if not NULL), and return 0. +// On error, raise an exception and return -1. +extern int _PyTime_TimeWithInfo( + PyTime_t *t, + _Py_clock_info_t *info); + +// Get the time of a monotonic clock, i.e. a clock that cannot go backwards. +// The clock is not affected by system clock updates. The reference point of +// the returned value is undefined, so that only the difference between the +// results of consecutive calls is valid. +// +// Fill info (if set) with information of the function used to get the time. +// +// Return 0 on success, raise an exception and return -1 on error. +// Export for '_testsinglephase' shared extension. +PyAPI_FUNC(int) _PyTime_MonotonicWithInfo( + PyTime_t *t, + _Py_clock_info_t *info); + + +// Converts a timestamp to the Gregorian time, using the local time zone. +// Return 0 on success, raise an exception and return -1 on error. +// Export for '_datetime' shared extension. +PyAPI_FUNC(int) _PyTime_localtime(time_t t, struct tm *tm); + +// Converts a timestamp to the Gregorian time, assuming UTC. +// Return 0 on success, raise an exception and return -1 on error. +// Export for '_datetime' shared extension. +PyAPI_FUNC(int) _PyTime_gmtime(time_t t, struct tm *tm); + + +// Get the performance counter: clock with the highest available resolution to +// measure a short duration. +// +// Fill info (if set) with information of the function used to get the time. +// +// Return 0 on success, raise an exception and return -1 on error. +extern int _PyTime_PerfCounterWithInfo( + PyTime_t *t, + _Py_clock_info_t *info); + + +// --- _PyDeadline ----------------------------------------------------------- + +// Create a deadline. +// Pseudo code: return PyTime_MonotonicRaw() + timeout +// Export for '_ssl' shared extension. +PyAPI_FUNC(PyTime_t) _PyDeadline_Init(PyTime_t timeout); + +// Get remaining time from a deadline. +// Pseudo code: return deadline - PyTime_MonotonicRaw() +// Export for '_ssl' shared extension. +PyAPI_FUNC(PyTime_t) _PyDeadline_Get(PyTime_t deadline); + + +// --- _PyTimeFraction ------------------------------------------------------- + +typedef struct { + PyTime_t numer; + PyTime_t denom; +} _PyTimeFraction; + +// Set a fraction. +// Return 0 on success. +// Return -1 if the fraction is invalid. +extern int _PyTimeFraction_Set( + _PyTimeFraction *frac, + PyTime_t numer, + PyTime_t denom); + +// Compute ticks * frac.numer / frac.denom. +// Clamp to [PyTime_MIN; PyTime_MAX] on overflow. +extern PyTime_t _PyTimeFraction_Mul( + PyTime_t ticks, + const _PyTimeFraction *frac); + +// Compute a clock resolution: frac.numer / frac.denom / 1e9. +extern double _PyTimeFraction_Resolution( + const _PyTimeFraction *frac); + + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_TIME_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_token.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_token.h new file mode 100644 index 000000000..571cd6249 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_token.h @@ -0,0 +1,106 @@ +// Auto-generated by Tools/build/generate_token.py + +/* Token types */ +#ifndef Py_INTERNAL_TOKEN_H +#define Py_INTERNAL_TOKEN_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#undef TILDE /* Prevent clash of our definition with system macro. Ex AIX, ioctl.h */ + +#define ENDMARKER 0 +#define NAME 1 +#define NUMBER 2 +#define STRING 3 +#define NEWLINE 4 +#define INDENT 5 +#define DEDENT 6 +#define LPAR 7 +#define RPAR 8 +#define LSQB 9 +#define RSQB 10 +#define COLON 11 +#define COMMA 12 +#define SEMI 13 +#define PLUS 14 +#define MINUS 15 +#define STAR 16 +#define SLASH 17 +#define VBAR 18 +#define AMPER 19 +#define LESS 20 +#define GREATER 21 +#define EQUAL 22 +#define DOT 23 +#define PERCENT 24 +#define LBRACE 25 +#define RBRACE 26 +#define EQEQUAL 27 +#define NOTEQUAL 28 +#define LESSEQUAL 29 +#define GREATEREQUAL 30 +#define TILDE 31 +#define CIRCUMFLEX 32 +#define LEFTSHIFT 33 +#define RIGHTSHIFT 34 +#define DOUBLESTAR 35 +#define PLUSEQUAL 36 +#define MINEQUAL 37 +#define STAREQUAL 38 +#define SLASHEQUAL 39 +#define PERCENTEQUAL 40 +#define AMPEREQUAL 41 +#define VBAREQUAL 42 +#define CIRCUMFLEXEQUAL 43 +#define LEFTSHIFTEQUAL 44 +#define RIGHTSHIFTEQUAL 45 +#define DOUBLESTAREQUAL 46 +#define DOUBLESLASH 47 +#define DOUBLESLASHEQUAL 48 +#define AT 49 +#define ATEQUAL 50 +#define RARROW 51 +#define ELLIPSIS 52 +#define COLONEQUAL 53 +#define EXCLAMATION 54 +#define OP 55 +#define TYPE_IGNORE 56 +#define TYPE_COMMENT 57 +#define SOFT_KEYWORD 58 +#define FSTRING_START 59 +#define FSTRING_MIDDLE 60 +#define FSTRING_END 61 +#define COMMENT 62 +#define NL 63 +#define ERRORTOKEN 64 +#define N_TOKENS 66 +#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 ISSTRINGLIT(x) ((x) == STRING || \ + (x) == FSTRING_MIDDLE) + + +// Export these 4 symbols for 'test_peg_generator' +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); + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_TOKEN_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_traceback.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_traceback.h new file mode 100644 index 000000000..10922bff9 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_traceback.h @@ -0,0 +1,106 @@ +#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 + +// Export for '_ctypes' shared extension +PyAPI_FUNC(int) _Py_DisplaySourceLine(PyObject *, PyObject *, int, int, int *, PyObject **); + +// Export for 'pyexact' shared extension +PyAPI_FUNC(void) _PyTraceback_Add(const char *, const char *, int); + +/* Write the Python traceback into the file 'fd'. For example: + + Traceback (most recent call first): + File "xxx", line xxx in + File "xxx", line xxx in + ... + File "xxx", line xxx in + + 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. */ + +extern 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. */ + +extern const char* _Py_DumpTracebackThreads( + int fd, + PyInterpreterState *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. */ +extern void _Py_DumpASCII(int fd, PyObject *text); + +/* Format an integer as decimal into the file descriptor fd. + + This function is signal safe. */ +extern void _Py_DumpDecimal( + int fd, + size_t value); + +/* Format an integer as hexadecimal with width digits into fd file descriptor. + The function is signal safe. */ +extern void _Py_DumpHexadecimal( + int fd, + uintptr_t value, + Py_ssize_t width); + +extern PyObject* _PyTraceBack_FromFrame( + PyObject *tb_next, + PyFrameObject *frame); + +#define EXCEPTION_TB_HEADER "Traceback (most recent call last):\n" +#define EXCEPTION_GROUP_TB_HEADER "Exception Group Traceback (most recent call last):\n" + +/* Write the traceback tb to file f. Prefix each line with + indent spaces followed by the margin (if it is not NULL). */ +extern int _PyTraceBack_Print( + PyObject *tb, const char *header, PyObject *f); +extern int _Py_WriteIndentedMargin(int, const char*, PyObject *); +extern int _Py_WriteIndent(int, PyObject *); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_TRACEBACK_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_tracemalloc.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_tracemalloc.h new file mode 100644 index 000000000..7ddc5bac5 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_tracemalloc.h @@ -0,0 +1,170 @@ +#ifndef Py_INTERNAL_TRACEMALLOC_H +#define Py_INTERNAL_TRACEMALLOC_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_hashtable.h" // _Py_hashtable_t + + +/* Trace memory blocks allocated by PyMem_RawMalloc() */ +#define TRACE_RAW_MALLOC + + +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; +}; + + +/* Pack the frame_t structure to reduce the memory footprint on 64-bit + architectures: 12 bytes instead of 16. */ +#if defined(_MSC_VER) +#pragma pack(push, 4) +#endif + +struct +#ifdef __GNUC__ +__attribute__((packed)) +#endif +tracemalloc_frame { + /* filename cannot be NULL: "" is used if the Python frame + filename is NULL */ + PyObject *filename; + unsigned int lineno; +}; +#ifdef _MSC_VER +#pragma pack(pop) +#endif + +struct tracemalloc_traceback { + Py_uhash_t hash; + /* Number of frames stored */ + uint16_t nframe; + /* Total number of frames the traceback had */ + uint16_t total_nframe; + struct tracemalloc_frame frames[1]; +}; + + +struct _tracemalloc_runtime_state { + struct _PyTraceMalloc_Config config; + + /* Protected by the GIL */ + struct { + PyMemAllocatorEx mem; + PyMemAllocatorEx raw; + PyMemAllocatorEx obj; + } allocators; + +#if defined(TRACE_RAW_MALLOC) + PyThread_type_lock tables_lock; +#endif + /* Size in bytes of currently traced memory. + Protected by TABLES_LOCK(). */ + size_t traced_memory; + /* Peak size in bytes of traced memory. + Protected by TABLES_LOCK(). */ + size_t peak_traced_memory; + /* Hash table used as a set to intern filenames: + PyObject* => PyObject*. + Protected by the GIL */ + _Py_hashtable_t *filenames; + /* Buffer to store a new traceback in traceback_new(). + Protected by the GIL. */ + struct tracemalloc_traceback *traceback; + /* Hash table used as a set to intern tracebacks: + traceback_t* => traceback_t* + Protected by the GIL */ + _Py_hashtable_t *tracebacks; + /* pointer (void*) => trace (trace_t*). + Protected by TABLES_LOCK(). */ + _Py_hashtable_t *traces; + /* domain (unsigned int) => traces (_Py_hashtable_t). + Protected by TABLES_LOCK(). */ + _Py_hashtable_t *domains; + + struct tracemalloc_traceback empty_traceback; + + Py_tss_t reentrant_key; +}; + +#define _tracemalloc_runtime_state_INIT \ + { \ + .config = { \ + .initialized = TRACEMALLOC_NOT_INITIALIZED, \ + .tracing = 0, \ + .max_nframe = 1, \ + }, \ + .reentrant_key = Py_tss_NEEDS_INIT, \ + } + + +// 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. +// +// Export for '_testinternalcapi' shared extension. +PyAPI_FUNC(PyObject*) _PyTraceMalloc_GetTraceback( + unsigned int domain, + uintptr_t ptr); + +/* Return non-zero if tracemalloc is tracing */ +extern int _PyTraceMalloc_IsTracing(void); + +/* Clear the tracemalloc traces */ +extern void _PyTraceMalloc_ClearTraces(void); + +/* Clear the tracemalloc traces */ +extern PyObject* _PyTraceMalloc_GetTraces(void); + +/* Clear tracemalloc traceback for an object */ +extern PyObject* _PyTraceMalloc_GetObjectTraceback(PyObject *obj); + +/* Initialize tracemalloc */ +extern int _PyTraceMalloc_Init(void); + +/* Start tracemalloc */ +extern int _PyTraceMalloc_Start(int max_nframe); + +/* Stop tracemalloc */ +extern void _PyTraceMalloc_Stop(void); + +/* Get the tracemalloc traceback limit */ +extern int _PyTraceMalloc_GetTracebackLimit(void); + +/* Get the memory usage of tracemalloc in bytes */ +extern size_t _PyTraceMalloc_GetMemory(void); + +/* Get the current size and peak size of traced memory blocks as a 2-tuple */ +extern PyObject* _PyTraceMalloc_GetTracedMemory(void); + +/* Set the peak size of traced memory blocks to the current size */ +extern void _PyTraceMalloc_ResetPeak(void); + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_TRACEMALLOC_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_tstate.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_tstate.h new file mode 100644 index 000000000..1ed5b1d82 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_tstate.h @@ -0,0 +1,46 @@ +#ifndef Py_INTERNAL_TSTATE_H +#define Py_INTERNAL_TSTATE_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_brc.h" // struct _brc_thread_state +#include "pycore_freelist.h" // struct _Py_freelist_state +#include "pycore_mimalloc.h" // struct _mimalloc_thread_state +#include "pycore_qsbr.h" // struct qsbr + + +// Every PyThreadState is actually allocated as a _PyThreadStateImpl. The +// PyThreadState fields are exposed as part of the C API, although most fields +// are intended to be private. The _PyThreadStateImpl fields not exposed. +typedef struct _PyThreadStateImpl { + // semi-public fields are in PyThreadState. + PyThreadState base; + + PyObject *asyncio_running_loop; // Strong reference + + struct _qsbr_thread_state *qsbr; // only used by free-threaded build + struct llist_node mem_free_queue; // delayed free queue + +#ifdef Py_GIL_DISABLED + struct _gc_thread_state gc; + struct _mimalloc_thread_state mimalloc; + struct _Py_object_freelists freelists; + struct _brc_thread_state brc; +#endif + +#if defined(Py_REF_DEBUG) && defined(Py_GIL_DISABLED) + Py_ssize_t reftotal; // this thread's total refcount operations +#endif + +} _PyThreadStateImpl; + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_TSTATE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_tuple.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_tuple.h new file mode 100644 index 000000000..14a9e42c3 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_tuple.h @@ -0,0 +1,35 @@ +#ifndef Py_INTERNAL_TUPLE_H +#define Py_INTERNAL_TUPLE_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +extern void _PyTuple_MaybeUntrack(PyObject *); +extern void _PyTuple_DebugMallocStats(FILE *out); + +/* runtime lifecycle */ + +extern PyStatus _PyTuple_InitGlobalObjects(PyInterpreterState *); + + +/* other API */ + +#define _PyTuple_ITEMS(op) _Py_RVALUE(_PyTuple_CAST(op)->ob_item) + +extern PyObject *_PyTuple_FromArray(PyObject *const *, Py_ssize_t); +PyAPI_FUNC(PyObject *)_PyTuple_FromArraySteal(PyObject *const *, Py_ssize_t); + +typedef struct { + PyObject_HEAD + Py_ssize_t it_index; + PyTupleObject *it_seq; /* Set to NULL when iterator is exhausted */ +} _PyTupleIterObject; + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_TUPLE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_typeobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_typeobject.h new file mode 100644 index 000000000..05f125f92 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_typeobject.h @@ -0,0 +1,243 @@ +#ifndef Py_INTERNAL_TYPEOBJECT_H +#define Py_INTERNAL_TYPEOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_moduleobject.h" // PyModuleObject +#include "pycore_lock.h" // PyMutex + + +/* state */ + +#define _Py_TYPE_BASE_VERSION_TAG (2<<16) +#define _Py_MAX_GLOBAL_TYPE_VERSION_TAG (_Py_TYPE_BASE_VERSION_TAG - 1) + +/* For now we hard-code this to a value for which we are confident + all the static builtin types will fit (for all builds). */ +#define _Py_MAX_MANAGED_STATIC_BUILTIN_TYPES 200 +#define _Py_MAX_MANAGED_STATIC_EXT_TYPES 10 +#define _Py_MAX_MANAGED_STATIC_TYPES \ + (_Py_MAX_MANAGED_STATIC_BUILTIN_TYPES + _Py_MAX_MANAGED_STATIC_EXT_TYPES) + +struct _types_runtime_state { + /* Used to set PyTypeObject.tp_version_tag for core static types. */ + // bpo-42745: next_version_tag remains shared by all interpreters + // because of static types. + unsigned int next_version_tag; + + struct { + struct { + PyTypeObject *type; + int64_t interp_count; + } types[_Py_MAX_MANAGED_STATIC_TYPES]; + } managed_static; +}; + + +// Type attribute lookup cache: speed up attribute and method lookups, +// see _PyType_Lookup(). +struct type_cache_entry { + unsigned int version; // initialized from type->tp_version_tag +#ifdef Py_GIL_DISABLED + _PySeqLock sequence; +#endif + PyObject *name; // reference to exactly a str or None + PyObject *value; // borrowed reference or NULL +}; + +#define MCACHE_SIZE_EXP 12 + +struct type_cache { + struct type_cache_entry hashtable[1 << MCACHE_SIZE_EXP]; +}; + +typedef struct { + PyTypeObject *type; + int isbuiltin; + int readying; + int ready; + // XXX tp_dict can probably be statically allocated, + // instead of dynamically and stored on the interpreter. + PyObject *tp_dict; + PyObject *tp_subclasses; + /* We never clean up weakrefs for static builtin types since + they will effectively never get triggered. However, there + are also some diagnostic uses for the list of weakrefs, + so we still keep it. */ + PyObject *tp_weaklist; +} managed_static_type_state; + +struct types_state { + /* Used to set PyTypeObject.tp_version_tag. + It starts at _Py_MAX_GLOBAL_TYPE_VERSION_TAG + 1, + where all those lower numbers are used for core static types. */ + unsigned int next_version_tag; + + struct type_cache type_cache; + + /* Every static builtin type is initialized for each interpreter + during its own initialization, including for the main interpreter + during global runtime initialization. This is done by calling + _PyStaticType_InitBuiltin(). + + The first time a static builtin type is initialized, all the + normal PyType_Ready() stuff happens. The only difference from + normal is that there are three PyTypeObject fields holding + objects which are stored here (on PyInterpreterState) rather + than in the corresponding PyTypeObject fields. Those are: + tp_dict (cls.__dict__), tp_subclasses (cls.__subclasses__), + and tp_weaklist. + + When a subinterpreter is initialized, each static builtin type + is still initialized, but only the interpreter-specific portion, + namely those three objects. + + Those objects are stored in the PyInterpreterState.types.builtins + array, at the index corresponding to each specific static builtin + type. That index (a size_t value) is stored in the tp_subclasses + field. For static builtin types, we re-purposed the now-unused + tp_subclasses to avoid adding another field to PyTypeObject. + In all other cases tp_subclasses holds a dict like before. + (The field was previously defined as PyObject*, but is now void* + to reflect its dual use.) + + The index for each static builtin type isn't statically assigned. + Instead it is calculated the first time a type is initialized + (by the main interpreter). The index matches the order in which + the type was initialized relative to the others. The actual + value comes from the current value of num_builtins_initialized, + as each type is initialized for the main interpreter. + + num_builtins_initialized is incremented once for each static + builtin type. Once initialization is over for a subinterpreter, + the value will be the same as for all other interpreters. */ + struct { + size_t num_initialized; + managed_static_type_state initialized[_Py_MAX_MANAGED_STATIC_BUILTIN_TYPES]; + } builtins; + /* We apply a similar strategy for managed extension modules. */ + struct { + size_t num_initialized; + size_t next_index; + managed_static_type_state initialized[_Py_MAX_MANAGED_STATIC_EXT_TYPES]; + } for_extensions; + PyMutex mutex; +}; + + +/* runtime lifecycle */ + +extern PyStatus _PyTypes_InitTypes(PyInterpreterState *); +extern void _PyTypes_FiniTypes(PyInterpreterState *); +extern void _PyTypes_FiniExtTypes(PyInterpreterState *interp); +extern void _PyTypes_Fini(PyInterpreterState *); +extern void _PyTypes_AfterFork(void); + +/* other API */ + +/* Length of array of slotdef pointers used to store slots with the + same __name__. There should be at most MAX_EQUIV-1 slotdef entries with + the same __name__, for any __name__. Since that's a static property, it is + appropriate to declare fixed-size arrays for this. */ +#define MAX_EQUIV 10 + +typedef struct wrapperbase pytype_slotdef; + + +static inline PyObject ** +_PyStaticType_GET_WEAKREFS_LISTPTR(managed_static_type_state *state) +{ + assert(state != NULL); + return &state->tp_weaklist; +} + +extern int _PyStaticType_InitBuiltin( + PyInterpreterState *interp, + PyTypeObject *type); +extern void _PyStaticType_FiniBuiltin( + PyInterpreterState *interp, + PyTypeObject *type); +extern void _PyStaticType_ClearWeakRefs( + PyInterpreterState *interp, + PyTypeObject *type); +extern managed_static_type_state * _PyStaticType_GetState( + PyInterpreterState *interp, + PyTypeObject *type); + +// Export for '_datetime' shared extension. +PyAPI_FUNC(int) _PyStaticType_InitForExtension( + PyInterpreterState *interp, + PyTypeObject *self); + + +/* Like PyType_GetModuleState, but skips verification + * that type is a heap type with an associated module */ +static inline void * +_PyType_GetModuleState(PyTypeObject *type) +{ + assert(PyType_Check(type)); + assert(type->tp_flags & Py_TPFLAGS_HEAPTYPE); + PyHeapTypeObject *et = (PyHeapTypeObject *)type; + assert(et->ht_module); + PyModuleObject *mod = (PyModuleObject *)(et->ht_module); + assert(mod != NULL); + return mod->md_state; +} + + +// Export for 'math' shared extension, used via _PyType_IsReady() static inline +// function +PyAPI_FUNC(PyObject *) _PyType_GetDict(PyTypeObject *); + +extern PyObject * _PyType_GetBases(PyTypeObject *type); +extern PyObject * _PyType_GetMRO(PyTypeObject *type); +extern PyObject* _PyType_GetSubclasses(PyTypeObject *); +extern int _PyType_HasSubclasses(PyTypeObject *); +PyAPI_FUNC(PyObject *) _PyType_GetModuleByDef2(PyTypeObject *, PyTypeObject *, PyModuleDef *); + +// PyType_Ready() must be called if _PyType_IsReady() is false. +// See also the Py_TPFLAGS_READY flag. +static inline int +_PyType_IsReady(PyTypeObject *type) +{ + return _PyType_GetDict(type) != NULL; +} + +extern PyObject* _Py_type_getattro_impl(PyTypeObject *type, PyObject *name, + int *suppress_missing_attribute); +extern PyObject* _Py_type_getattro(PyObject *type, PyObject *name); + +extern PyObject* _Py_BaseObject_RichCompare(PyObject* self, PyObject* other, int op); + +extern PyObject* _Py_slot_tp_getattro(PyObject *self, PyObject *name); +extern PyObject* _Py_slot_tp_getattr_hook(PyObject *self, PyObject *name); + +extern PyTypeObject _PyBufferWrapper_Type; + +PyAPI_FUNC(PyObject*) _PySuper_Lookup(PyTypeObject *su_type, PyObject *su_obj, + PyObject *name, int *meth_found); + +extern PyObject* _PyType_GetFullyQualifiedName(PyTypeObject *type, char sep); + +// Perform the following operation, in a thread-safe way when required by the +// build mode. +// +// self->tp_flags = (self->tp_flags & ~mask) | flags; +extern void _PyType_SetFlags(PyTypeObject *self, unsigned long mask, + unsigned long flags); + +// Like _PyType_SetFlags(), but apply the operation to self and any of its +// subclasses without Py_TPFLAGS_IMMUTABLETYPE set. +extern void _PyType_SetFlagsRecursive(PyTypeObject *self, unsigned long mask, + unsigned long flags); + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_TYPEOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_typevarobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_typevarobject.h new file mode 100644 index 000000000..a368edebd --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_typevarobject.h @@ -0,0 +1,27 @@ +#ifndef Py_INTERNAL_TYPEVAROBJECT_H +#define Py_INTERNAL_TYPEVAROBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +extern PyObject *_Py_make_typevar(PyObject *, PyObject *, PyObject *); +extern PyObject *_Py_make_paramspec(PyThreadState *, PyObject *); +extern PyObject *_Py_make_typevartuple(PyThreadState *, PyObject *); +extern PyObject *_Py_make_typealias(PyThreadState *, PyObject *); +extern PyObject *_Py_subscript_generic(PyThreadState *, PyObject *); +extern PyObject *_Py_set_typeparam_default(PyThreadState *, PyObject *, PyObject *); +extern int _Py_initialize_generic(PyInterpreterState *); +extern void _Py_clear_generic_types(PyInterpreterState *); + +extern PyTypeObject _PyTypeAlias_Type; +extern PyTypeObject _PyNoDefault_Type; +extern PyObject _Py_NoDefaultStruct; + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_TYPEVAROBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_ucnhash.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_ucnhash.h new file mode 100644 index 000000000..1561dfbb3 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_ucnhash.h @@ -0,0 +1,36 @@ +/* Unicode name database interface */ +#ifndef Py_INTERNAL_UCNHASH_H +#define Py_INTERNAL_UCNHASH_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +/* revised ucnhash CAPI interface (exported through a "wrapper") */ + +#define PyUnicodeData_CAPSULE_NAME "unicodedata._ucnhash_CAPI" + +typedef struct { + + /* Get name for a given character code. + Returns non-zero if success, zero if not. + Does not set Python exceptions. */ + int (*getname)(Py_UCS4 code, char* buffer, int buflen, + int with_alias_and_seq); + + /* Get character code for a given name. + Same error handling as for getname(). */ + int (*getcode)(const char* name, int namelen, Py_UCS4* code, + int with_named_seq); + +} _PyUnicode_Name_CAPI; + +extern _PyUnicode_Name_CAPI* _PyUnicode_GetNameCAPI(void); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_UCNHASH_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_unicodeobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_unicodeobject.h new file mode 100644 index 000000000..173c0868c --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_unicodeobject.h @@ -0,0 +1,338 @@ +#ifndef Py_INTERNAL_UNICODEOBJECT_H +#define Py_INTERNAL_UNICODEOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_lock.h" // PyMutex +#include "pycore_fileutils.h" // _Py_error_handler +#include "pycore_identifier.h" // _Py_Identifier +#include "pycore_ucnhash.h" // _PyUnicode_Name_CAPI +#include "pycore_global_objects.h" // _Py_SINGLETON + +/* --- Characters Type APIs ----------------------------------------------- */ + +extern int _PyUnicode_IsXidStart(Py_UCS4 ch); +extern int _PyUnicode_IsXidContinue(Py_UCS4 ch); +extern int _PyUnicode_ToLowerFull(Py_UCS4 ch, Py_UCS4 *res); +extern int _PyUnicode_ToTitleFull(Py_UCS4 ch, Py_UCS4 *res); +extern int _PyUnicode_ToUpperFull(Py_UCS4 ch, Py_UCS4 *res); +extern int _PyUnicode_ToFoldedFull(Py_UCS4 ch, Py_UCS4 *res); +extern int _PyUnicode_IsCaseIgnorable(Py_UCS4 ch); +extern int _PyUnicode_IsCased(Py_UCS4 ch); + +/* --- Unicode API -------------------------------------------------------- */ + +// Export for '_json' shared extension +PyAPI_FUNC(int) _PyUnicode_CheckConsistency( + PyObject *op, + int check_content); + +PyAPI_FUNC(void) _PyUnicode_ExactDealloc(PyObject *op); +extern Py_ssize_t _PyUnicode_InternedSize(void); +extern Py_ssize_t _PyUnicode_InternedSize_Immortal(void); + +// Get a copy of a Unicode string. +// Export for '_datetime' shared extension. +PyAPI_FUNC(PyObject*) _PyUnicode_Copy( + PyObject *unicode); + +/* 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). */ +extern void _PyUnicode_FastFill( + PyObject *unicode, + Py_ssize_t start, + Py_ssize_t length, + Py_UCS4 fill_char + ); + +/* 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). */ +extern void _PyUnicode_FastCopyCharacters( + PyObject *to, + Py_ssize_t to_start, + PyObject *from, + Py_ssize_t from_start, + Py_ssize_t how_many + ); + +/* Create a new string from a buffer of ASCII characters. + WARNING: Don't check if the string contains any non-ASCII character. */ +extern 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. */ +extern Py_UCS4 _PyUnicode_FindMaxChar ( + PyObject *unicode, + Py_ssize_t start, + Py_ssize_t end); + +/* --- _PyUnicodeWriter API ----------------------------------------------- */ + +/* Format the object based on the format_spec, as defined in PEP 3101 + (Advanced String Formatting). */ +extern int _PyUnicode_FormatAdvancedWriter( + _PyUnicodeWriter *writer, + PyObject *obj, + PyObject *format_spec, + Py_ssize_t start, + Py_ssize_t end); + +/* --- UTF-7 Codecs ------------------------------------------------------- */ + +extern 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 ------------------------------------------------------- */ + +// Export for '_tkinter' shared extension. +PyAPI_FUNC(PyObject*) _PyUnicode_AsUTF8String( + PyObject *unicode, + const char *errors); + +/* --- UTF-32 Codecs ------------------------------------------------------ */ + +// Export for '_tkinter' shared extension +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. +// +// Export for '_tkinter' shared extension +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. */ +extern 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. +// Export for test_peg_generator. +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. */ + +/* --- Raw-Unicode-Escape Codecs ---------------------------------------------- */ + +/* Variant of PyUnicode_DecodeRawUnicodeEscape that supports partial decoding. */ +extern 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 ----------------------------------------------------- */ + +extern PyObject* _PyUnicode_AsLatin1String( + PyObject* unicode, + const char* errors); + +/* --- ASCII Codecs ------------------------------------------------------- */ + +extern PyObject* _PyUnicode_AsASCIIString( + PyObject* unicode, + const char* errors); + +/* --- Character Map Codecs ----------------------------------------------- */ + +/* Translate an Unicode object 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. +*/ +extern PyObject* _PyUnicode_EncodeCharmap( + PyObject *unicode, /* Unicode object */ + PyObject *mapping, /* encoding mapping */ + const char *errors); /* error handling */ + +/* --- Decimal Encoder ---------------------------------------------------- */ + +// 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 '?'. +// +// Export for '_testinternalcapi' shared extension. +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. */ +extern 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. +// Export for '_ctypes' shared extension +PyAPI_FUNC(int) _PyUnicode_EqualToASCIIString( + PyObject *left, + const char *right /* ASCII-encoded string */ + ); + +/* Externally visible for str.strip(unicode) */ +extern 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 */ +extern 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); + +/* --- Misc functions ----------------------------------------------------- */ + +extern PyObject* _PyUnicode_FormatLong(PyObject *, int, int, int); + +/* 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) */ +extern int _PyUnicode_EQ(PyObject *, PyObject *); + +// Equality check. +// Export for '_pickle' shared extension. +PyAPI_FUNC(int) _PyUnicode_Equal(PyObject *, PyObject *); + +extern int _PyUnicode_WideCharString_Converter(PyObject *, void *); +extern int _PyUnicode_WideCharString_Opt_Converter(PyObject *, void *); + +// Export for test_peg_generator +PyAPI_FUNC(Py_ssize_t) _PyUnicode_ScanIdentifier(PyObject *); + +/* --- Runtime lifecycle -------------------------------------------------- */ + +extern void _PyUnicode_InitState(PyInterpreterState *); +extern PyStatus _PyUnicode_InitGlobalObjects(PyInterpreterState *); +extern PyStatus _PyUnicode_InitTypes(PyInterpreterState *); +extern void _PyUnicode_Fini(PyInterpreterState *); +extern void _PyUnicode_FiniTypes(PyInterpreterState *); + +extern PyTypeObject _PyUnicodeASCIIIter_Type; + +/* --- Interning ---------------------------------------------------------- */ + +// All these are "ref-neutral", like the public PyUnicode_InternInPlace. + +// Explicit interning routines: +PyAPI_FUNC(void) _PyUnicode_InternMortal(PyInterpreterState *interp, PyObject **); +PyAPI_FUNC(void) _PyUnicode_InternImmortal(PyInterpreterState *interp, PyObject **); +// Left here to help backporting: +PyAPI_FUNC(void) _PyUnicode_InternInPlace(PyInterpreterState *interp, PyObject **p); +// Only for singletons in the _PyRuntime struct: +extern void _PyUnicode_InternStatic(PyInterpreterState *interp, PyObject **); + +/* --- Other API ---------------------------------------------------------- */ + +struct _Py_unicode_runtime_ids { + PyMutex mutex; + // next_index value must be preserved when Py_Initialize()/Py_Finalize() + // is called multiple times: see _PyUnicode_FromId() implementation. + Py_ssize_t next_index; +}; + +struct _Py_unicode_runtime_state { + struct _Py_unicode_runtime_ids ids; +}; + +/* 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_ids { + Py_ssize_t size; + PyObject **array; +}; + +struct _Py_unicode_state { + struct _Py_unicode_fs_codec fs_codec; + + _PyUnicode_Name_CAPI *ucnhash_capi; + + // Unicode identifiers (_Py_Identifier): see _PyUnicode_FromId() + struct _Py_unicode_ids ids; +}; + +extern void _PyUnicode_ClearInterned(PyInterpreterState *interp); + +// Like PyUnicode_AsUTF8(), but check for embedded null characters. +// Export for '_sqlite3' shared extension. +PyAPI_FUNC(const char *) _PyUnicode_AsUTF8NoNUL(PyObject *); + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_UNICODEOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_unicodeobject_generated.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_unicodeobject_generated.h new file mode 100644 index 000000000..533739030 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_unicodeobject_generated.h @@ -0,0 +1,2976 @@ +#ifndef Py_INTERNAL_UNICODEOBJECT_GENERATED_H +#define Py_INTERNAL_UNICODEOBJECT_GENERATED_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +/* The following is auto-generated by Tools/build/generate_global_objects.py. */ +static inline void +_PyUnicode_InitStaticStrings(PyInterpreterState *interp) { + PyObject *string; + string = &_Py_ID(CANCELLED); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(FINISHED); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(False); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(JSONDecodeError); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(PENDING); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(Py_Repr); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(TextIOWrapper); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(True); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(WarningMessage); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_WindowsConsoleIO); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__IOBase_closed); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__abc_tpflags__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__abs__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__abstractmethods__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__add__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__aenter__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__aexit__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__aiter__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__all__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__and__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__anext__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__annotations__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__args__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__await__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__bases__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__bool__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__buffer__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__build_class__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__builtins__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__bytes__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__call__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__cantrace__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__class__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__class_getitem__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__classcell__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__classdict__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__classdictcell__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__complex__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__contains__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__copy__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__ctypes_from_outparam__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__del__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__delattr__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__delete__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__delitem__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__dict__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__dictoffset__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__dir__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__divmod__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__doc__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__enter__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__eq__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__exit__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__file__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__firstlineno__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__float__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__floordiv__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__format__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__fspath__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__ge__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__get__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__getattr__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__getattribute__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__getinitargs__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__getitem__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__getnewargs__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__getnewargs_ex__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__getstate__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__gt__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__hash__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__iadd__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__iand__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__ifloordiv__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__ilshift__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__imatmul__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__imod__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__import__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__imul__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__index__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__init__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__init_subclass__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__instancecheck__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__int__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__invert__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__ior__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__ipow__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__irshift__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__isabstractmethod__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__isub__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__iter__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__itruediv__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__ixor__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__le__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__len__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__length_hint__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__lltrace__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__loader__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__lshift__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__lt__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__main__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__match_args__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__matmul__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__missing__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__mod__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__module__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__mro_entries__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__mul__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__name__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__ne__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__neg__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__new__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__newobj__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__newobj_ex__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__next__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__notes__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__or__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__orig_class__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__origin__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__package__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__parameters__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__path__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__pos__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__pow__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__prepare__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__qualname__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__radd__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__rand__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__rdivmod__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__reduce__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__reduce_ex__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__release_buffer__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__repr__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__reversed__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__rfloordiv__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__rlshift__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__rmatmul__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__rmod__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__rmul__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__ror__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__round__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__rpow__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__rrshift__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__rshift__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__rsub__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__rtruediv__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__rxor__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__set__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__set_name__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__setattr__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__setitem__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__setstate__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__sizeof__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__slotnames__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__slots__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__spec__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__static_attributes__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__str__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__sub__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__subclasscheck__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__subclasshook__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__truediv__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__trunc__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__type_params__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__typing_is_unpacked_typevartuple__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__typing_prepare_subst__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__typing_subst__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__typing_unpacked_tuple_args__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__warningregistry__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__weaklistoffset__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__weakref__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(__xor__); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_abc_impl); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_abstract_); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_active); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_align_); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_annotation); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_anonymous_); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_argtypes_); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_as_parameter_); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_asyncio_future_blocking); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_blksize); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_bootstrap); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_check_retval_); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_dealloc_warn); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_feature_version); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_field_types); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_fields_); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_finalizing); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_find_and_load); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_fix_up_module); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_flags_); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_get_sourcefile); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_handle_fromlist); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_initializing); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_io); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_is_text_encoding); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_length_); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_limbo); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_lock_unlock_module); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_loop); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_needs_com_addref_); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_only_immortal); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_pack_); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_restype_); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_showwarnmsg); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_shutdown); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_slotnames); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_strptime); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_strptime_datetime); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_swappedbytes_); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_type_); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_uninitialized_submodules); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_warn_unawaited_coroutine); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(_xoptions); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(abs_tol); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(access); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(aclose); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(add); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(add_done_callback); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(after_in_child); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(after_in_parent); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(aggregate_class); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(alias); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(allow_code); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(append); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(arg); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(argdefs); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(args); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(arguments); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(argv); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(as_integer_ratio); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(asend); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(ast); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(athrow); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(attribute); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(authorizer_callback); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(autocommit); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(backtick); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(base); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(before); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(big); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(binary_form); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(block); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(bound); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(buffer); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(buffer_callback); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(buffer_size); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(buffering); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(buffers); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(bufsize); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(builtins); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(byteorder); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(bytes); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(bytes_per_sep); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(c_call); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(c_exception); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(c_return); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(cached_datetime_module); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(cached_statements); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(cadata); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(cafile); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(call); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(call_exception_handler); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(call_soon); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(callback); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(cancel); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(capath); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(category); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(cb_type); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(certfile); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(check_same_thread); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(clear); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(close); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(closed); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(closefd); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(closure); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_argcount); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_cellvars); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_code); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_consts); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_exceptiontable); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_filename); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_firstlineno); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_flags); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_freevars); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_kwonlyargcount); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_linetable); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_name); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_names); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_nlocals); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_posonlyargcount); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_qualname); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_stacksize); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(co_varnames); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(code); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(col_offset); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(command); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(comment_factory); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(compile_mode); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(consts); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(context); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(contravariant); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(cookie); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(copy); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(copyreg); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(coro); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(count); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(covariant); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(cwd); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(data); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(database); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(day); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(decode); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(decoder); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(default); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(defaultaction); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(delete); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(depth); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(desired_access); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(detect_types); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(deterministic); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(device); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(dict); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(dictcomp); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(difference_update); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(digest); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(digest_size); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(digestmod); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(dir_fd); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(discard); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(dispatch_table); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(displayhook); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(dklen); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(doc); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(dont_inherit); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(dst); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(dst_dir_fd); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(eager_start); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(effective_ids); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(element_factory); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(encode); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(encoding); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(end); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(end_col_offset); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(end_lineno); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(end_offset); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(endpos); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(entrypoint); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(env); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(errors); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(event); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(eventmask); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(exc_type); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(exc_value); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(excepthook); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(exception); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(existing_file_name); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(exp); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(extend); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(extra_tokens); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(facility); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(factory); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(false); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(family); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(fanout); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(fd); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(fd2); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(fdel); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(fget); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(file); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(file_actions); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(filename); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(fileno); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(filepath); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(fillvalue); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(filter); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(filters); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(final); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(find_class); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(fix_imports); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(flags); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(flush); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(fold); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(follow_symlinks); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(format); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(from_param); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(fromlist); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(fromtimestamp); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(fromutc); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(fset); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(func); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(future); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(generation); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(genexpr); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(get); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(get_debug); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(get_event_loop); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(get_loop); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(get_source); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(getattr); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(getstate); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(gid); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(globals); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(groupindex); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(groups); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(handle); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(handle_seq); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(has_location); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(hash_name); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(header); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(headers); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(hi); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(hook); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(hour); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(ident); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(identity_hint); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(ignore); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(imag); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(importlib); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(in_fd); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(incoming); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(indexgroup); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(inf); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(infer_variance); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(inherit_handle); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(inheritable); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(initial); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(initial_bytes); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(initial_owner); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(initial_state); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(initial_value); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(initval); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(inner_size); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(input); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(insert_comments); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(insert_pis); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(instructions); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(intern); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(intersection); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(interval); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(is_running); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(isatty); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(isinstance); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(isoformat); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(isolation_level); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(istext); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(item); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(items); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(iter); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(iterable); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(iterations); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(join); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(jump); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(keepends); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(key); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(keyfile); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(keys); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(kind); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(kw); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(kw1); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(kw2); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(kwdefaults); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(label); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(lambda); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(last); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(last_exc); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(last_node); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(last_traceback); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(last_type); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(last_value); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(latin1); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(leaf_size); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(len); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(length); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(level); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(limit); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(line); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(line_buffering); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(lineno); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(listcomp); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(little); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(lo); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(locale); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(locals); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(logoption); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(loop); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(manual_reset); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(mapping); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(match); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(max_length); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(maxdigits); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(maxevents); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(maxlen); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(maxmem); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(maxsplit); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(maxvalue); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(memLevel); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(memlimit); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(message); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(metaclass); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(metadata); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(method); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(microsecond); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(milliseconds); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(minute); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(mod); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(mode); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(module); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(module_globals); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(modules); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(month); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(mro); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(msg); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(mutex); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(mycmp); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(n_arg); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(n_fields); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(n_sequence_fields); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(n_unnamed_fields); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(name); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(name_from); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(namespace_separator); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(namespaces); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(narg); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(ndigits); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(nested); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(new_file_name); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(new_limit); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(newline); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(newlines); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(next); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(nlocals); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(node_depth); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(node_offset); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(ns); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(nstype); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(nt); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(null); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(number); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(obj); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(object); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(offset); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(offset_dst); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(offset_src); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(on_type_read); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(onceregistry); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(only_keys); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(oparg); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(opcode); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(open); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(opener); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(operation); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(optimize); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(options); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(order); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(origin); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(out_fd); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(outgoing); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(overlapped); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(owner); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(pages); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(parent); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(password); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(path); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(pattern); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(peek); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(persistent_id); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(persistent_load); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(person); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(pi_factory); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(pid); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(policy); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(pos); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(pos1); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(pos2); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(posix); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(print_file_and_line); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(priority); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(progress); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(progress_handler); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(progress_routine); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(proto); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(protocol); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(ps1); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(ps2); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(query); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(quotetabs); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(raw); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(read); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(read1); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(readable); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(readall); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(readinto); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(readinto1); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(readline); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(readonly); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(real); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(reducer_override); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(registry); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(rel_tol); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(release); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(reload); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(repl); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(replace); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(reserved); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(reset); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(resetids); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(return); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(reverse); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(reversed); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(salt); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(sched_priority); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(scheduler); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(second); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(security_attributes); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(seek); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(seekable); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(selectors); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(self); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(send); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(sep); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(sequence); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(server_hostname); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(server_side); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(session); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(setcomp); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(setpgroup); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(setsid); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(setsigdef); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(setsigmask); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(setstate); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(shape); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(show_cmd); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(signed); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(size); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(sizehint); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(skip_file_prefixes); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(sleep); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(sock); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(sort); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(source); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(source_traceback); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(spam); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(src); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(src_dir_fd); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(stacklevel); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(start); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(statement); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(status); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(stderr); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(stdin); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(stdout); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(step); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(steps); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(store_name); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(strategy); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(strftime); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(strict); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(strict_mode); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(string); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(sub_key); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(symmetric_difference_update); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(tabsize); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(tag); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(target); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(target_is_directory); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(task); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(tb_frame); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(tb_lasti); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(tb_lineno); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(tb_next); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(tell); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(template); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(term); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(text); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(threading); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(throw); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(timeout); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(times); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(timetuple); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(top); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(trace_callback); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(traceback); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(trailers); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(translate); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(true); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(truncate); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(twice); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(txt); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(type); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(type_params); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(tz); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(tzinfo); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(tzname); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(uid); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(unlink); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(unraisablehook); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(uri); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(usedforsecurity); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(value); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(values); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(version); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(volume); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(wait_all); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(warn_on_full_buffer); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(warnings); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(warnoptions); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(wbits); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(week); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(weekday); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(which); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(who); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(withdata); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(writable); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(write); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(write_through); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(year); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_ID(zdict); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(empty); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(dbl_percent); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(dot_locals); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(defaults); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(generic_base); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(kwdefaults); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(type_params); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(anon_null); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(anon_dictcomp); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(anon_genexpr); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(anon_lambda); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(anon_listcomp); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(anon_module); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(anon_setcomp); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(anon_string); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(anon_unknown); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(json_decoder); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(list_err); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(utf_8); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(dbl_open_br); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); + string = &_Py_STR(dbl_close_br); + _PyUnicode_InternStatic(interp, &string); + assert(_PyUnicode_CheckConsistency(string, 1)); + assert(PyUnicode_GET_LENGTH(string) != 1); +} +/* End auto-generated code */ +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_UNICODEOBJECT_GENERATED_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_unionobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_unionobject.h new file mode 100644 index 000000000..6ece7134c --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_unionobject.h @@ -0,0 +1,25 @@ +#ifndef Py_INTERNAL_UNIONOBJECT_H +#define Py_INTERNAL_UNIONOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +// For extensions created by test_peg_generator +PyAPI_DATA(PyTypeObject) _PyUnion_Type; +PyAPI_FUNC(PyObject *) _Py_union_type_or(PyObject *, PyObject *); + +#define _PyUnion_Check(op) Py_IS_TYPE((op), &_PyUnion_Type) + +#define _PyGenericAlias_Check(op) PyObject_TypeCheck((op), &Py_GenericAliasType) +extern PyObject *_Py_subs_parameters(PyObject *, PyObject *, PyObject *, PyObject *); +extern PyObject *_Py_make_parameters(PyObject *); +extern PyObject *_Py_union_args(PyObject *self); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_UNIONOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_uop_ids.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_uop_ids.h new file mode 100644 index 000000000..1e6ef8e54 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_uop_ids.h @@ -0,0 +1,294 @@ +// This file is generated by Tools/cases_generator/uop_id_generator.py +// from: +// Python/bytecodes.c +// Do not edit! + +#ifndef Py_CORE_UOP_IDS_H +#define Py_CORE_UOP_IDS_H +#ifdef __cplusplus +extern "C" { +#endif + +#define _EXIT_TRACE 300 +#define _SET_IP 301 +#define _BEFORE_ASYNC_WITH BEFORE_ASYNC_WITH +#define _BEFORE_WITH BEFORE_WITH +#define _BINARY_OP 302 +#define _BINARY_OP_ADD_FLOAT 303 +#define _BINARY_OP_ADD_INT 304 +#define _BINARY_OP_ADD_UNICODE 305 +#define _BINARY_OP_MULTIPLY_FLOAT 306 +#define _BINARY_OP_MULTIPLY_INT 307 +#define _BINARY_OP_SUBTRACT_FLOAT 308 +#define _BINARY_OP_SUBTRACT_INT 309 +#define _BINARY_SLICE BINARY_SLICE +#define _BINARY_SUBSCR 310 +#define _BINARY_SUBSCR_DICT BINARY_SUBSCR_DICT +#define _BINARY_SUBSCR_GETITEM BINARY_SUBSCR_GETITEM +#define _BINARY_SUBSCR_LIST_INT BINARY_SUBSCR_LIST_INT +#define _BINARY_SUBSCR_STR_INT BINARY_SUBSCR_STR_INT +#define _BINARY_SUBSCR_TUPLE_INT BINARY_SUBSCR_TUPLE_INT +#define _BUILD_CONST_KEY_MAP BUILD_CONST_KEY_MAP +#define _BUILD_LIST BUILD_LIST +#define _BUILD_MAP BUILD_MAP +#define _BUILD_SET BUILD_SET +#define _BUILD_SLICE BUILD_SLICE +#define _BUILD_STRING BUILD_STRING +#define _BUILD_TUPLE BUILD_TUPLE +#define _CALL 311 +#define _CALL_ALLOC_AND_ENTER_INIT CALL_ALLOC_AND_ENTER_INIT +#define _CALL_BUILTIN_CLASS 312 +#define _CALL_BUILTIN_FAST 313 +#define _CALL_BUILTIN_FAST_WITH_KEYWORDS 314 +#define _CALL_BUILTIN_O 315 +#define _CALL_FUNCTION_EX CALL_FUNCTION_EX +#define _CALL_INTRINSIC_1 CALL_INTRINSIC_1 +#define _CALL_INTRINSIC_2 CALL_INTRINSIC_2 +#define _CALL_ISINSTANCE CALL_ISINSTANCE +#define _CALL_KW CALL_KW +#define _CALL_LEN CALL_LEN +#define _CALL_METHOD_DESCRIPTOR_FAST 316 +#define _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS 317 +#define _CALL_METHOD_DESCRIPTOR_NOARGS 318 +#define _CALL_METHOD_DESCRIPTOR_O 319 +#define _CALL_NON_PY_GENERAL 320 +#define _CALL_STR_1 321 +#define _CALL_TUPLE_1 322 +#define _CALL_TYPE_1 CALL_TYPE_1 +#define _CHECK_ATTR_CLASS 323 +#define _CHECK_ATTR_METHOD_LAZY_DICT 324 +#define _CHECK_ATTR_MODULE 325 +#define _CHECK_ATTR_WITH_HINT 326 +#define _CHECK_CALL_BOUND_METHOD_EXACT_ARGS 327 +#define _CHECK_EG_MATCH CHECK_EG_MATCH +#define _CHECK_EXC_MATCH CHECK_EXC_MATCH +#define _CHECK_FUNCTION 328 +#define _CHECK_FUNCTION_EXACT_ARGS 329 +#define _CHECK_FUNCTION_VERSION 330 +#define _CHECK_IS_NOT_PY_CALLABLE 331 +#define _CHECK_MANAGED_OBJECT_HAS_VALUES 332 +#define _CHECK_METHOD_VERSION 333 +#define _CHECK_PEP_523 334 +#define _CHECK_PERIODIC 335 +#define _CHECK_STACK_SPACE 336 +#define _CHECK_STACK_SPACE_OPERAND 337 +#define _CHECK_VALIDITY 338 +#define _CHECK_VALIDITY_AND_SET_IP 339 +#define _COLD_EXIT 340 +#define _COMPARE_OP 341 +#define _COMPARE_OP_FLOAT 342 +#define _COMPARE_OP_INT 343 +#define _COMPARE_OP_STR 344 +#define _CONTAINS_OP 345 +#define _CONTAINS_OP_DICT CONTAINS_OP_DICT +#define _CONTAINS_OP_SET CONTAINS_OP_SET +#define _CONVERT_VALUE CONVERT_VALUE +#define _COPY COPY +#define _COPY_FREE_VARS COPY_FREE_VARS +#define _DELETE_ATTR DELETE_ATTR +#define _DELETE_DEREF DELETE_DEREF +#define _DELETE_FAST DELETE_FAST +#define _DELETE_GLOBAL DELETE_GLOBAL +#define _DELETE_NAME DELETE_NAME +#define _DELETE_SUBSCR DELETE_SUBSCR +#define _DEOPT 346 +#define _DICT_MERGE DICT_MERGE +#define _DICT_UPDATE DICT_UPDATE +#define _DYNAMIC_EXIT 347 +#define _END_SEND END_SEND +#define _ERROR_POP_N 348 +#define _EXIT_INIT_CHECK EXIT_INIT_CHECK +#define _EXPAND_METHOD 349 +#define _FATAL_ERROR 350 +#define _FORMAT_SIMPLE FORMAT_SIMPLE +#define _FORMAT_WITH_SPEC FORMAT_WITH_SPEC +#define _FOR_ITER 351 +#define _FOR_ITER_GEN_FRAME 352 +#define _FOR_ITER_TIER_TWO 353 +#define _GET_AITER GET_AITER +#define _GET_ANEXT GET_ANEXT +#define _GET_AWAITABLE GET_AWAITABLE +#define _GET_ITER GET_ITER +#define _GET_LEN GET_LEN +#define _GET_YIELD_FROM_ITER GET_YIELD_FROM_ITER +#define _GUARD_BOTH_FLOAT 354 +#define _GUARD_BOTH_INT 355 +#define _GUARD_BOTH_UNICODE 356 +#define _GUARD_BUILTINS_VERSION 357 +#define _GUARD_DORV_NO_DICT 358 +#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT 359 +#define _GUARD_GLOBALS_VERSION 360 +#define _GUARD_IS_FALSE_POP 361 +#define _GUARD_IS_NONE_POP 362 +#define _GUARD_IS_NOT_NONE_POP 363 +#define _GUARD_IS_TRUE_POP 364 +#define _GUARD_KEYS_VERSION 365 +#define _GUARD_NOS_FLOAT 366 +#define _GUARD_NOS_INT 367 +#define _GUARD_NOT_EXHAUSTED_LIST 368 +#define _GUARD_NOT_EXHAUSTED_RANGE 369 +#define _GUARD_NOT_EXHAUSTED_TUPLE 370 +#define _GUARD_TOS_FLOAT 371 +#define _GUARD_TOS_INT 372 +#define _GUARD_TYPE_VERSION 373 +#define _INIT_CALL_BOUND_METHOD_EXACT_ARGS 374 +#define _INIT_CALL_PY_EXACT_ARGS 375 +#define _INIT_CALL_PY_EXACT_ARGS_0 376 +#define _INIT_CALL_PY_EXACT_ARGS_1 377 +#define _INIT_CALL_PY_EXACT_ARGS_2 378 +#define _INIT_CALL_PY_EXACT_ARGS_3 379 +#define _INIT_CALL_PY_EXACT_ARGS_4 380 +#define _INSTRUMENTED_CALL INSTRUMENTED_CALL +#define _INSTRUMENTED_CALL_FUNCTION_EX INSTRUMENTED_CALL_FUNCTION_EX +#define _INSTRUMENTED_CALL_KW INSTRUMENTED_CALL_KW +#define _INSTRUMENTED_FOR_ITER INSTRUMENTED_FOR_ITER +#define _INSTRUMENTED_INSTRUCTION INSTRUMENTED_INSTRUCTION +#define _INSTRUMENTED_JUMP_BACKWARD INSTRUMENTED_JUMP_BACKWARD +#define _INSTRUMENTED_JUMP_FORWARD INSTRUMENTED_JUMP_FORWARD +#define _INSTRUMENTED_LOAD_SUPER_ATTR INSTRUMENTED_LOAD_SUPER_ATTR +#define _INSTRUMENTED_POP_JUMP_IF_FALSE INSTRUMENTED_POP_JUMP_IF_FALSE +#define _INSTRUMENTED_POP_JUMP_IF_NONE INSTRUMENTED_POP_JUMP_IF_NONE +#define _INSTRUMENTED_POP_JUMP_IF_NOT_NONE INSTRUMENTED_POP_JUMP_IF_NOT_NONE +#define _INSTRUMENTED_POP_JUMP_IF_TRUE INSTRUMENTED_POP_JUMP_IF_TRUE +#define _INSTRUMENTED_RESUME INSTRUMENTED_RESUME +#define _INSTRUMENTED_RETURN_CONST INSTRUMENTED_RETURN_CONST +#define _INSTRUMENTED_RETURN_VALUE INSTRUMENTED_RETURN_VALUE +#define _INSTRUMENTED_YIELD_VALUE INSTRUMENTED_YIELD_VALUE +#define _INTERNAL_INCREMENT_OPT_COUNTER 381 +#define _IS_NONE 382 +#define _IS_OP IS_OP +#define _ITER_CHECK_LIST 383 +#define _ITER_CHECK_RANGE 384 +#define _ITER_CHECK_TUPLE 385 +#define _ITER_JUMP_LIST 386 +#define _ITER_JUMP_RANGE 387 +#define _ITER_JUMP_TUPLE 388 +#define _ITER_NEXT_LIST 389 +#define _ITER_NEXT_RANGE 390 +#define _ITER_NEXT_TUPLE 391 +#define _JUMP_TO_TOP 392 +#define _LIST_APPEND LIST_APPEND +#define _LIST_EXTEND LIST_EXTEND +#define _LOAD_ASSERTION_ERROR LOAD_ASSERTION_ERROR +#define _LOAD_ATTR 393 +#define _LOAD_ATTR_CLASS 394 +#define _LOAD_ATTR_CLASS_0 395 +#define _LOAD_ATTR_CLASS_1 396 +#define _LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN +#define _LOAD_ATTR_INSTANCE_VALUE 397 +#define _LOAD_ATTR_INSTANCE_VALUE_0 398 +#define _LOAD_ATTR_INSTANCE_VALUE_1 399 +#define _LOAD_ATTR_METHOD_LAZY_DICT 400 +#define _LOAD_ATTR_METHOD_NO_DICT 401 +#define _LOAD_ATTR_METHOD_WITH_VALUES 402 +#define _LOAD_ATTR_MODULE 403 +#define _LOAD_ATTR_NONDESCRIPTOR_NO_DICT 404 +#define _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES 405 +#define _LOAD_ATTR_PROPERTY LOAD_ATTR_PROPERTY +#define _LOAD_ATTR_SLOT 406 +#define _LOAD_ATTR_SLOT_0 407 +#define _LOAD_ATTR_SLOT_1 408 +#define _LOAD_ATTR_WITH_HINT 409 +#define _LOAD_BUILD_CLASS LOAD_BUILD_CLASS +#define _LOAD_CONST LOAD_CONST +#define _LOAD_CONST_INLINE 410 +#define _LOAD_CONST_INLINE_BORROW 411 +#define _LOAD_CONST_INLINE_BORROW_WITH_NULL 412 +#define _LOAD_CONST_INLINE_WITH_NULL 413 +#define _LOAD_DEREF LOAD_DEREF +#define _LOAD_FAST 414 +#define _LOAD_FAST_0 415 +#define _LOAD_FAST_1 416 +#define _LOAD_FAST_2 417 +#define _LOAD_FAST_3 418 +#define _LOAD_FAST_4 419 +#define _LOAD_FAST_5 420 +#define _LOAD_FAST_6 421 +#define _LOAD_FAST_7 422 +#define _LOAD_FAST_AND_CLEAR LOAD_FAST_AND_CLEAR +#define _LOAD_FAST_CHECK LOAD_FAST_CHECK +#define _LOAD_FAST_LOAD_FAST LOAD_FAST_LOAD_FAST +#define _LOAD_FROM_DICT_OR_DEREF LOAD_FROM_DICT_OR_DEREF +#define _LOAD_FROM_DICT_OR_GLOBALS LOAD_FROM_DICT_OR_GLOBALS +#define _LOAD_GLOBAL 423 +#define _LOAD_GLOBAL_BUILTINS 424 +#define _LOAD_GLOBAL_MODULE 425 +#define _LOAD_LOCALS LOAD_LOCALS +#define _LOAD_NAME LOAD_NAME +#define _LOAD_SUPER_ATTR_ATTR LOAD_SUPER_ATTR_ATTR +#define _LOAD_SUPER_ATTR_METHOD LOAD_SUPER_ATTR_METHOD +#define _MAKE_CELL MAKE_CELL +#define _MAKE_FUNCTION MAKE_FUNCTION +#define _MAP_ADD MAP_ADD +#define _MATCH_CLASS MATCH_CLASS +#define _MATCH_KEYS MATCH_KEYS +#define _MATCH_MAPPING MATCH_MAPPING +#define _MATCH_SEQUENCE MATCH_SEQUENCE +#define _NOP NOP +#define _POP_EXCEPT POP_EXCEPT +#define _POP_FRAME 426 +#define _POP_JUMP_IF_FALSE 427 +#define _POP_JUMP_IF_TRUE 428 +#define _POP_TOP POP_TOP +#define _POP_TOP_LOAD_CONST_INLINE_BORROW 429 +#define _PUSH_EXC_INFO PUSH_EXC_INFO +#define _PUSH_FRAME 430 +#define _PUSH_NULL PUSH_NULL +#define _PY_FRAME_GENERAL 431 +#define _REPLACE_WITH_TRUE 432 +#define _RESUME_CHECK RESUME_CHECK +#define _RETURN_GENERATOR RETURN_GENERATOR +#define _SAVE_RETURN_OFFSET 433 +#define _SEND 434 +#define _SEND_GEN SEND_GEN +#define _SETUP_ANNOTATIONS SETUP_ANNOTATIONS +#define _SET_ADD SET_ADD +#define _SET_FUNCTION_ATTRIBUTE SET_FUNCTION_ATTRIBUTE +#define _SET_UPDATE SET_UPDATE +#define _START_EXECUTOR 435 +#define _STORE_ATTR 436 +#define _STORE_ATTR_INSTANCE_VALUE 437 +#define _STORE_ATTR_SLOT 438 +#define _STORE_ATTR_WITH_HINT STORE_ATTR_WITH_HINT +#define _STORE_DEREF STORE_DEREF +#define _STORE_FAST 439 +#define _STORE_FAST_0 440 +#define _STORE_FAST_1 441 +#define _STORE_FAST_2 442 +#define _STORE_FAST_3 443 +#define _STORE_FAST_4 444 +#define _STORE_FAST_5 445 +#define _STORE_FAST_6 446 +#define _STORE_FAST_7 447 +#define _STORE_FAST_LOAD_FAST STORE_FAST_LOAD_FAST +#define _STORE_FAST_STORE_FAST STORE_FAST_STORE_FAST +#define _STORE_GLOBAL STORE_GLOBAL +#define _STORE_NAME STORE_NAME +#define _STORE_SLICE STORE_SLICE +#define _STORE_SUBSCR 448 +#define _STORE_SUBSCR_DICT STORE_SUBSCR_DICT +#define _STORE_SUBSCR_LIST_INT STORE_SUBSCR_LIST_INT +#define _SWAP SWAP +#define _TIER2_RESUME_CHECK 449 +#define _TO_BOOL 450 +#define _TO_BOOL_BOOL TO_BOOL_BOOL +#define _TO_BOOL_INT TO_BOOL_INT +#define _TO_BOOL_LIST TO_BOOL_LIST +#define _TO_BOOL_NONE TO_BOOL_NONE +#define _TO_BOOL_STR TO_BOOL_STR +#define _UNARY_INVERT UNARY_INVERT +#define _UNARY_NEGATIVE UNARY_NEGATIVE +#define _UNARY_NOT UNARY_NOT +#define _UNPACK_EX UNPACK_EX +#define _UNPACK_SEQUENCE 451 +#define _UNPACK_SEQUENCE_LIST UNPACK_SEQUENCE_LIST +#define _UNPACK_SEQUENCE_TUPLE UNPACK_SEQUENCE_TUPLE +#define _UNPACK_SEQUENCE_TWO_TUPLE UNPACK_SEQUENCE_TWO_TUPLE +#define _WITH_EXCEPT_START WITH_EXCEPT_START +#define _YIELD_VALUE YIELD_VALUE +#define MAX_UOP_ID 451 + +#ifdef __cplusplus +} +#endif +#endif /* !Py_CORE_UOP_IDS_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_uop_metadata.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_uop_metadata.h new file mode 100644 index 000000000..02ffc769c --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_uop_metadata.h @@ -0,0 +1,1006 @@ +// This file is generated by Tools/cases_generator/uop_metadata_generator.py +// from: +// Python/bytecodes.c +// Do not edit! + +#ifndef Py_CORE_UOP_METADATA_H +#define Py_CORE_UOP_METADATA_H +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include "pycore_uop_ids.h" +extern const uint16_t _PyUop_Flags[MAX_UOP_ID+1]; +extern const uint8_t _PyUop_Replication[MAX_UOP_ID+1]; +extern const char * const _PyOpcode_uop_name[MAX_UOP_ID+1]; + +extern int _PyUop_num_popped(int opcode, int oparg); + +#ifdef NEED_OPCODE_METADATA +const uint16_t _PyUop_Flags[MAX_UOP_ID+1] = { + [_NOP] = HAS_PURE_FLAG, + [_RESUME_CHECK] = HAS_DEOPT_FLAG, + [_LOAD_FAST_CHECK] = HAS_ARG_FLAG | HAS_LOCAL_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_LOAD_FAST_0] = HAS_LOCAL_FLAG | HAS_PURE_FLAG, + [_LOAD_FAST_1] = HAS_LOCAL_FLAG | HAS_PURE_FLAG, + [_LOAD_FAST_2] = HAS_LOCAL_FLAG | HAS_PURE_FLAG, + [_LOAD_FAST_3] = HAS_LOCAL_FLAG | HAS_PURE_FLAG, + [_LOAD_FAST_4] = HAS_LOCAL_FLAG | HAS_PURE_FLAG, + [_LOAD_FAST_5] = HAS_LOCAL_FLAG | HAS_PURE_FLAG, + [_LOAD_FAST_6] = HAS_LOCAL_FLAG | HAS_PURE_FLAG, + [_LOAD_FAST_7] = HAS_LOCAL_FLAG | HAS_PURE_FLAG, + [_LOAD_FAST] = HAS_ARG_FLAG | HAS_LOCAL_FLAG | HAS_PURE_FLAG, + [_LOAD_FAST_AND_CLEAR] = HAS_ARG_FLAG | HAS_LOCAL_FLAG, + [_LOAD_FAST_LOAD_FAST] = HAS_ARG_FLAG | HAS_LOCAL_FLAG, + [_LOAD_CONST] = HAS_ARG_FLAG | HAS_CONST_FLAG | HAS_PURE_FLAG, + [_STORE_FAST_0] = HAS_LOCAL_FLAG, + [_STORE_FAST_1] = HAS_LOCAL_FLAG, + [_STORE_FAST_2] = HAS_LOCAL_FLAG, + [_STORE_FAST_3] = HAS_LOCAL_FLAG, + [_STORE_FAST_4] = HAS_LOCAL_FLAG, + [_STORE_FAST_5] = HAS_LOCAL_FLAG, + [_STORE_FAST_6] = HAS_LOCAL_FLAG, + [_STORE_FAST_7] = HAS_LOCAL_FLAG, + [_STORE_FAST] = HAS_ARG_FLAG | HAS_LOCAL_FLAG, + [_STORE_FAST_LOAD_FAST] = HAS_ARG_FLAG | HAS_LOCAL_FLAG, + [_STORE_FAST_STORE_FAST] = HAS_ARG_FLAG | HAS_LOCAL_FLAG, + [_POP_TOP] = HAS_PURE_FLAG, + [_PUSH_NULL] = HAS_PURE_FLAG, + [_END_SEND] = HAS_PURE_FLAG, + [_UNARY_NEGATIVE] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_UNARY_NOT] = HAS_PURE_FLAG, + [_TO_BOOL] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_TO_BOOL_BOOL] = HAS_EXIT_FLAG, + [_TO_BOOL_INT] = HAS_EXIT_FLAG | HAS_ESCAPES_FLAG, + [_TO_BOOL_LIST] = HAS_EXIT_FLAG, + [_TO_BOOL_NONE] = HAS_EXIT_FLAG, + [_TO_BOOL_STR] = HAS_EXIT_FLAG | HAS_ESCAPES_FLAG, + [_REPLACE_WITH_TRUE] = 0, + [_UNARY_INVERT] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_GUARD_BOTH_INT] = HAS_EXIT_FLAG, + [_GUARD_NOS_INT] = HAS_EXIT_FLAG, + [_GUARD_TOS_INT] = HAS_EXIT_FLAG, + [_BINARY_OP_MULTIPLY_INT] = HAS_ERROR_FLAG | HAS_PURE_FLAG, + [_BINARY_OP_ADD_INT] = HAS_ERROR_FLAG | HAS_PURE_FLAG, + [_BINARY_OP_SUBTRACT_INT] = HAS_ERROR_FLAG | HAS_PURE_FLAG, + [_GUARD_BOTH_FLOAT] = HAS_EXIT_FLAG, + [_GUARD_NOS_FLOAT] = HAS_EXIT_FLAG, + [_GUARD_TOS_FLOAT] = HAS_EXIT_FLAG, + [_BINARY_OP_MULTIPLY_FLOAT] = HAS_PURE_FLAG, + [_BINARY_OP_ADD_FLOAT] = HAS_PURE_FLAG, + [_BINARY_OP_SUBTRACT_FLOAT] = HAS_PURE_FLAG, + [_GUARD_BOTH_UNICODE] = HAS_EXIT_FLAG, + [_BINARY_OP_ADD_UNICODE] = HAS_ERROR_FLAG | HAS_PURE_FLAG, + [_BINARY_SUBSCR] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_BINARY_SLICE] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_STORE_SLICE] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_BINARY_SUBSCR_LIST_INT] = HAS_DEOPT_FLAG, + [_BINARY_SUBSCR_STR_INT] = HAS_DEOPT_FLAG, + [_BINARY_SUBSCR_TUPLE_INT] = HAS_DEOPT_FLAG, + [_BINARY_SUBSCR_DICT] = HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_LIST_APPEND] = HAS_ARG_FLAG | HAS_ERROR_FLAG, + [_SET_ADD] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_STORE_SUBSCR] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_STORE_SUBSCR_LIST_INT] = HAS_DEOPT_FLAG, + [_STORE_SUBSCR_DICT] = HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_DELETE_SUBSCR] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_CALL_INTRINSIC_1] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_CALL_INTRINSIC_2] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_POP_FRAME] = 0, + [_GET_AITER] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_GET_ANEXT] = HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG, + [_GET_AWAITABLE] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_YIELD_VALUE] = HAS_ARG_FLAG | HAS_ESCAPES_FLAG, + [_POP_EXCEPT] = HAS_ESCAPES_FLAG, + [_LOAD_ASSERTION_ERROR] = 0, + [_LOAD_BUILD_CLASS] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_STORE_NAME] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_DELETE_NAME] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG, + [_UNPACK_SEQUENCE] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_UNPACK_SEQUENCE_TWO_TUPLE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG, + [_UNPACK_SEQUENCE_TUPLE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG, + [_UNPACK_SEQUENCE_LIST] = HAS_ARG_FLAG | HAS_DEOPT_FLAG, + [_UNPACK_EX] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_STORE_ATTR] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_DELETE_ATTR] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_STORE_GLOBAL] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_DELETE_GLOBAL] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG, + [_LOAD_LOCALS] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_LOAD_GLOBAL] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_GUARD_GLOBALS_VERSION] = HAS_DEOPT_FLAG, + [_GUARD_BUILTINS_VERSION] = HAS_DEOPT_FLAG, + [_LOAD_GLOBAL_MODULE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG, + [_LOAD_GLOBAL_BUILTINS] = HAS_ARG_FLAG | HAS_DEOPT_FLAG, + [_DELETE_FAST] = HAS_ARG_FLAG | HAS_LOCAL_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_MAKE_CELL] = HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG, + [_DELETE_DEREF] = HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG, + [_LOAD_FROM_DICT_OR_DEREF] = HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG, + [_LOAD_DEREF] = HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_STORE_DEREF] = HAS_ARG_FLAG | HAS_FREE_FLAG | HAS_ESCAPES_FLAG, + [_COPY_FREE_VARS] = HAS_ARG_FLAG, + [_BUILD_STRING] = HAS_ARG_FLAG | HAS_ERROR_FLAG, + [_BUILD_TUPLE] = HAS_ARG_FLAG | HAS_ERROR_FLAG, + [_BUILD_LIST] = HAS_ARG_FLAG | HAS_ERROR_FLAG, + [_LIST_EXTEND] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_SET_UPDATE] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_BUILD_MAP] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_SETUP_ANNOTATIONS] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_BUILD_CONST_KEY_MAP] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_DICT_UPDATE] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_DICT_MERGE] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_MAP_ADD] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_LOAD_SUPER_ATTR_ATTR] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_LOAD_SUPER_ATTR_METHOD] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_LOAD_ATTR] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_GUARD_TYPE_VERSION] = HAS_EXIT_FLAG, + [_CHECK_MANAGED_OBJECT_HAS_VALUES] = HAS_DEOPT_FLAG, + [_LOAD_ATTR_INSTANCE_VALUE_0] = HAS_DEOPT_FLAG, + [_LOAD_ATTR_INSTANCE_VALUE_1] = HAS_DEOPT_FLAG, + [_LOAD_ATTR_INSTANCE_VALUE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_OPARG_AND_1_FLAG, + [_CHECK_ATTR_MODULE] = HAS_DEOPT_FLAG, + [_LOAD_ATTR_MODULE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG, + [_CHECK_ATTR_WITH_HINT] = HAS_DEOPT_FLAG, + [_LOAD_ATTR_WITH_HINT] = HAS_ARG_FLAG | HAS_NAME_FLAG | HAS_DEOPT_FLAG, + [_LOAD_ATTR_SLOT_0] = HAS_DEOPT_FLAG, + [_LOAD_ATTR_SLOT_1] = HAS_DEOPT_FLAG, + [_LOAD_ATTR_SLOT] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_OPARG_AND_1_FLAG, + [_CHECK_ATTR_CLASS] = HAS_DEOPT_FLAG, + [_LOAD_ATTR_CLASS_0] = 0, + [_LOAD_ATTR_CLASS_1] = 0, + [_LOAD_ATTR_CLASS] = HAS_ARG_FLAG | HAS_OPARG_AND_1_FLAG, + [_GUARD_DORV_NO_DICT] = HAS_DEOPT_FLAG, + [_STORE_ATTR_INSTANCE_VALUE] = 0, + [_STORE_ATTR_SLOT] = 0, + [_COMPARE_OP] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_COMPARE_OP_FLOAT] = HAS_ARG_FLAG, + [_COMPARE_OP_INT] = HAS_ARG_FLAG | HAS_DEOPT_FLAG, + [_COMPARE_OP_STR] = HAS_ARG_FLAG, + [_IS_OP] = HAS_ARG_FLAG, + [_CONTAINS_OP] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_CONTAINS_OP_SET] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_CONTAINS_OP_DICT] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_CHECK_EG_MATCH] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_CHECK_EXC_MATCH] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_IS_NONE] = 0, + [_GET_LEN] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_MATCH_CLASS] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_MATCH_MAPPING] = 0, + [_MATCH_SEQUENCE] = 0, + [_MATCH_KEYS] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_GET_ITER] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_GET_YIELD_FROM_ITER] = HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG, + [_FOR_ITER_TIER_TWO] = HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG, + [_ITER_CHECK_LIST] = HAS_EXIT_FLAG, + [_GUARD_NOT_EXHAUSTED_LIST] = HAS_EXIT_FLAG, + [_ITER_NEXT_LIST] = 0, + [_ITER_CHECK_TUPLE] = HAS_EXIT_FLAG, + [_GUARD_NOT_EXHAUSTED_TUPLE] = HAS_EXIT_FLAG, + [_ITER_NEXT_TUPLE] = 0, + [_ITER_CHECK_RANGE] = HAS_EXIT_FLAG, + [_GUARD_NOT_EXHAUSTED_RANGE] = HAS_EXIT_FLAG, + [_ITER_NEXT_RANGE] = HAS_ERROR_FLAG, + [_FOR_ITER_GEN_FRAME] = HAS_ARG_FLAG | HAS_DEOPT_FLAG, + [_WITH_EXCEPT_START] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_PUSH_EXC_INFO] = 0, + [_GUARD_DORV_VALUES_INST_ATTR_FROM_DICT] = HAS_DEOPT_FLAG, + [_GUARD_KEYS_VERSION] = HAS_DEOPT_FLAG, + [_LOAD_ATTR_METHOD_WITH_VALUES] = HAS_ARG_FLAG, + [_LOAD_ATTR_METHOD_NO_DICT] = HAS_ARG_FLAG, + [_LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES] = HAS_ARG_FLAG, + [_LOAD_ATTR_NONDESCRIPTOR_NO_DICT] = HAS_ARG_FLAG, + [_CHECK_ATTR_METHOD_LAZY_DICT] = HAS_DEOPT_FLAG, + [_LOAD_ATTR_METHOD_LAZY_DICT] = HAS_ARG_FLAG, + [_CHECK_PERIODIC] = HAS_EVAL_BREAK_FLAG, + [_PY_FRAME_GENERAL] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG, + [_CHECK_FUNCTION_VERSION] = HAS_ARG_FLAG | HAS_EXIT_FLAG, + [_CHECK_METHOD_VERSION] = HAS_ARG_FLAG | HAS_EXIT_FLAG, + [_EXPAND_METHOD] = HAS_ARG_FLAG, + [_CHECK_IS_NOT_PY_CALLABLE] = HAS_ARG_FLAG | HAS_EXIT_FLAG, + [_CALL_NON_PY_GENERAL] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_CHECK_CALL_BOUND_METHOD_EXACT_ARGS] = HAS_ARG_FLAG | HAS_EXIT_FLAG, + [_INIT_CALL_BOUND_METHOD_EXACT_ARGS] = HAS_ARG_FLAG, + [_CHECK_PEP_523] = HAS_DEOPT_FLAG, + [_CHECK_FUNCTION_EXACT_ARGS] = HAS_ARG_FLAG | HAS_EXIT_FLAG, + [_CHECK_STACK_SPACE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG, + [_INIT_CALL_PY_EXACT_ARGS_0] = HAS_PURE_FLAG, + [_INIT_CALL_PY_EXACT_ARGS_1] = HAS_PURE_FLAG, + [_INIT_CALL_PY_EXACT_ARGS_2] = HAS_PURE_FLAG, + [_INIT_CALL_PY_EXACT_ARGS_3] = HAS_PURE_FLAG, + [_INIT_CALL_PY_EXACT_ARGS_4] = HAS_PURE_FLAG, + [_INIT_CALL_PY_EXACT_ARGS] = HAS_ARG_FLAG | HAS_PURE_FLAG, + [_PUSH_FRAME] = 0, + [_CALL_TYPE_1] = HAS_ARG_FLAG | HAS_DEOPT_FLAG, + [_CALL_STR_1] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_CALL_TUPLE_1] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_EXIT_INIT_CHECK] = HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG, + [_CALL_BUILTIN_CLASS] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_CALL_BUILTIN_O] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_CALL_BUILTIN_FAST] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_CALL_BUILTIN_FAST_WITH_KEYWORDS] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_CALL_LEN] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG, + [_CALL_ISINSTANCE] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG, + [_CALL_METHOD_DESCRIPTOR_O] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_CALL_METHOD_DESCRIPTOR_NOARGS] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_CALL_METHOD_DESCRIPTOR_FAST] = HAS_ARG_FLAG | HAS_DEOPT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_MAKE_FUNCTION] = HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG, + [_SET_FUNCTION_ATTRIBUTE] = HAS_ARG_FLAG | HAS_ESCAPES_FLAG, + [_RETURN_GENERATOR] = HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG, + [_BUILD_SLICE] = HAS_ARG_FLAG | HAS_ERROR_FLAG, + [_CONVERT_VALUE] = HAS_ARG_FLAG | HAS_ERROR_FLAG, + [_FORMAT_SIMPLE] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_FORMAT_WITH_SPEC] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_COPY] = HAS_ARG_FLAG | HAS_PURE_FLAG, + [_BINARY_OP] = HAS_ARG_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, + [_SWAP] = HAS_ARG_FLAG | HAS_PURE_FLAG, + [_GUARD_IS_TRUE_POP] = HAS_EXIT_FLAG, + [_GUARD_IS_FALSE_POP] = HAS_EXIT_FLAG, + [_GUARD_IS_NONE_POP] = HAS_EXIT_FLAG, + [_GUARD_IS_NOT_NONE_POP] = HAS_EXIT_FLAG, + [_JUMP_TO_TOP] = 0, + [_SET_IP] = 0, + [_CHECK_STACK_SPACE_OPERAND] = HAS_DEOPT_FLAG, + [_SAVE_RETURN_OFFSET] = HAS_ARG_FLAG, + [_EXIT_TRACE] = 0, + [_CHECK_VALIDITY] = HAS_DEOPT_FLAG, + [_LOAD_CONST_INLINE] = HAS_PURE_FLAG, + [_LOAD_CONST_INLINE_BORROW] = HAS_PURE_FLAG, + [_POP_TOP_LOAD_CONST_INLINE_BORROW] = HAS_PURE_FLAG, + [_LOAD_CONST_INLINE_WITH_NULL] = HAS_PURE_FLAG, + [_LOAD_CONST_INLINE_BORROW_WITH_NULL] = HAS_PURE_FLAG, + [_CHECK_FUNCTION] = HAS_DEOPT_FLAG, + [_INTERNAL_INCREMENT_OPT_COUNTER] = 0, + [_COLD_EXIT] = HAS_ARG_FLAG | HAS_ESCAPES_FLAG, + [_DYNAMIC_EXIT] = HAS_ARG_FLAG | HAS_ESCAPES_FLAG, + [_START_EXECUTOR] = HAS_DEOPT_FLAG, + [_FATAL_ERROR] = 0, + [_CHECK_VALIDITY_AND_SET_IP] = HAS_DEOPT_FLAG, + [_DEOPT] = 0, + [_ERROR_POP_N] = HAS_ARG_FLAG, + [_TIER2_RESUME_CHECK] = HAS_DEOPT_FLAG, +}; + +const uint8_t _PyUop_Replication[MAX_UOP_ID+1] = { + [_LOAD_FAST] = 8, + [_STORE_FAST] = 8, + [_INIT_CALL_PY_EXACT_ARGS] = 5, +}; + +const char *const _PyOpcode_uop_name[MAX_UOP_ID+1] = { + [_BINARY_OP] = "_BINARY_OP", + [_BINARY_OP_ADD_FLOAT] = "_BINARY_OP_ADD_FLOAT", + [_BINARY_OP_ADD_INT] = "_BINARY_OP_ADD_INT", + [_BINARY_OP_ADD_UNICODE] = "_BINARY_OP_ADD_UNICODE", + [_BINARY_OP_MULTIPLY_FLOAT] = "_BINARY_OP_MULTIPLY_FLOAT", + [_BINARY_OP_MULTIPLY_INT] = "_BINARY_OP_MULTIPLY_INT", + [_BINARY_OP_SUBTRACT_FLOAT] = "_BINARY_OP_SUBTRACT_FLOAT", + [_BINARY_OP_SUBTRACT_INT] = "_BINARY_OP_SUBTRACT_INT", + [_BINARY_SLICE] = "_BINARY_SLICE", + [_BINARY_SUBSCR] = "_BINARY_SUBSCR", + [_BINARY_SUBSCR_DICT] = "_BINARY_SUBSCR_DICT", + [_BINARY_SUBSCR_LIST_INT] = "_BINARY_SUBSCR_LIST_INT", + [_BINARY_SUBSCR_STR_INT] = "_BINARY_SUBSCR_STR_INT", + [_BINARY_SUBSCR_TUPLE_INT] = "_BINARY_SUBSCR_TUPLE_INT", + [_BUILD_CONST_KEY_MAP] = "_BUILD_CONST_KEY_MAP", + [_BUILD_LIST] = "_BUILD_LIST", + [_BUILD_MAP] = "_BUILD_MAP", + [_BUILD_SLICE] = "_BUILD_SLICE", + [_BUILD_STRING] = "_BUILD_STRING", + [_BUILD_TUPLE] = "_BUILD_TUPLE", + [_CALL_BUILTIN_CLASS] = "_CALL_BUILTIN_CLASS", + [_CALL_BUILTIN_FAST] = "_CALL_BUILTIN_FAST", + [_CALL_BUILTIN_FAST_WITH_KEYWORDS] = "_CALL_BUILTIN_FAST_WITH_KEYWORDS", + [_CALL_BUILTIN_O] = "_CALL_BUILTIN_O", + [_CALL_INTRINSIC_1] = "_CALL_INTRINSIC_1", + [_CALL_INTRINSIC_2] = "_CALL_INTRINSIC_2", + [_CALL_ISINSTANCE] = "_CALL_ISINSTANCE", + [_CALL_LEN] = "_CALL_LEN", + [_CALL_METHOD_DESCRIPTOR_FAST] = "_CALL_METHOD_DESCRIPTOR_FAST", + [_CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = "_CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS", + [_CALL_METHOD_DESCRIPTOR_NOARGS] = "_CALL_METHOD_DESCRIPTOR_NOARGS", + [_CALL_METHOD_DESCRIPTOR_O] = "_CALL_METHOD_DESCRIPTOR_O", + [_CALL_NON_PY_GENERAL] = "_CALL_NON_PY_GENERAL", + [_CALL_STR_1] = "_CALL_STR_1", + [_CALL_TUPLE_1] = "_CALL_TUPLE_1", + [_CALL_TYPE_1] = "_CALL_TYPE_1", + [_CHECK_ATTR_CLASS] = "_CHECK_ATTR_CLASS", + [_CHECK_ATTR_METHOD_LAZY_DICT] = "_CHECK_ATTR_METHOD_LAZY_DICT", + [_CHECK_ATTR_MODULE] = "_CHECK_ATTR_MODULE", + [_CHECK_ATTR_WITH_HINT] = "_CHECK_ATTR_WITH_HINT", + [_CHECK_CALL_BOUND_METHOD_EXACT_ARGS] = "_CHECK_CALL_BOUND_METHOD_EXACT_ARGS", + [_CHECK_EG_MATCH] = "_CHECK_EG_MATCH", + [_CHECK_EXC_MATCH] = "_CHECK_EXC_MATCH", + [_CHECK_FUNCTION] = "_CHECK_FUNCTION", + [_CHECK_FUNCTION_EXACT_ARGS] = "_CHECK_FUNCTION_EXACT_ARGS", + [_CHECK_FUNCTION_VERSION] = "_CHECK_FUNCTION_VERSION", + [_CHECK_IS_NOT_PY_CALLABLE] = "_CHECK_IS_NOT_PY_CALLABLE", + [_CHECK_MANAGED_OBJECT_HAS_VALUES] = "_CHECK_MANAGED_OBJECT_HAS_VALUES", + [_CHECK_METHOD_VERSION] = "_CHECK_METHOD_VERSION", + [_CHECK_PEP_523] = "_CHECK_PEP_523", + [_CHECK_PERIODIC] = "_CHECK_PERIODIC", + [_CHECK_STACK_SPACE] = "_CHECK_STACK_SPACE", + [_CHECK_STACK_SPACE_OPERAND] = "_CHECK_STACK_SPACE_OPERAND", + [_CHECK_VALIDITY] = "_CHECK_VALIDITY", + [_CHECK_VALIDITY_AND_SET_IP] = "_CHECK_VALIDITY_AND_SET_IP", + [_COLD_EXIT] = "_COLD_EXIT", + [_COMPARE_OP] = "_COMPARE_OP", + [_COMPARE_OP_FLOAT] = "_COMPARE_OP_FLOAT", + [_COMPARE_OP_INT] = "_COMPARE_OP_INT", + [_COMPARE_OP_STR] = "_COMPARE_OP_STR", + [_CONTAINS_OP] = "_CONTAINS_OP", + [_CONTAINS_OP_DICT] = "_CONTAINS_OP_DICT", + [_CONTAINS_OP_SET] = "_CONTAINS_OP_SET", + [_CONVERT_VALUE] = "_CONVERT_VALUE", + [_COPY] = "_COPY", + [_COPY_FREE_VARS] = "_COPY_FREE_VARS", + [_DELETE_ATTR] = "_DELETE_ATTR", + [_DELETE_DEREF] = "_DELETE_DEREF", + [_DELETE_FAST] = "_DELETE_FAST", + [_DELETE_GLOBAL] = "_DELETE_GLOBAL", + [_DELETE_NAME] = "_DELETE_NAME", + [_DELETE_SUBSCR] = "_DELETE_SUBSCR", + [_DEOPT] = "_DEOPT", + [_DICT_MERGE] = "_DICT_MERGE", + [_DICT_UPDATE] = "_DICT_UPDATE", + [_DYNAMIC_EXIT] = "_DYNAMIC_EXIT", + [_END_SEND] = "_END_SEND", + [_ERROR_POP_N] = "_ERROR_POP_N", + [_EXIT_INIT_CHECK] = "_EXIT_INIT_CHECK", + [_EXIT_TRACE] = "_EXIT_TRACE", + [_EXPAND_METHOD] = "_EXPAND_METHOD", + [_FATAL_ERROR] = "_FATAL_ERROR", + [_FORMAT_SIMPLE] = "_FORMAT_SIMPLE", + [_FORMAT_WITH_SPEC] = "_FORMAT_WITH_SPEC", + [_FOR_ITER_GEN_FRAME] = "_FOR_ITER_GEN_FRAME", + [_FOR_ITER_TIER_TWO] = "_FOR_ITER_TIER_TWO", + [_GET_AITER] = "_GET_AITER", + [_GET_ANEXT] = "_GET_ANEXT", + [_GET_AWAITABLE] = "_GET_AWAITABLE", + [_GET_ITER] = "_GET_ITER", + [_GET_LEN] = "_GET_LEN", + [_GET_YIELD_FROM_ITER] = "_GET_YIELD_FROM_ITER", + [_GUARD_BOTH_FLOAT] = "_GUARD_BOTH_FLOAT", + [_GUARD_BOTH_INT] = "_GUARD_BOTH_INT", + [_GUARD_BOTH_UNICODE] = "_GUARD_BOTH_UNICODE", + [_GUARD_BUILTINS_VERSION] = "_GUARD_BUILTINS_VERSION", + [_GUARD_DORV_NO_DICT] = "_GUARD_DORV_NO_DICT", + [_GUARD_DORV_VALUES_INST_ATTR_FROM_DICT] = "_GUARD_DORV_VALUES_INST_ATTR_FROM_DICT", + [_GUARD_GLOBALS_VERSION] = "_GUARD_GLOBALS_VERSION", + [_GUARD_IS_FALSE_POP] = "_GUARD_IS_FALSE_POP", + [_GUARD_IS_NONE_POP] = "_GUARD_IS_NONE_POP", + [_GUARD_IS_NOT_NONE_POP] = "_GUARD_IS_NOT_NONE_POP", + [_GUARD_IS_TRUE_POP] = "_GUARD_IS_TRUE_POP", + [_GUARD_KEYS_VERSION] = "_GUARD_KEYS_VERSION", + [_GUARD_NOS_FLOAT] = "_GUARD_NOS_FLOAT", + [_GUARD_NOS_INT] = "_GUARD_NOS_INT", + [_GUARD_NOT_EXHAUSTED_LIST] = "_GUARD_NOT_EXHAUSTED_LIST", + [_GUARD_NOT_EXHAUSTED_RANGE] = "_GUARD_NOT_EXHAUSTED_RANGE", + [_GUARD_NOT_EXHAUSTED_TUPLE] = "_GUARD_NOT_EXHAUSTED_TUPLE", + [_GUARD_TOS_FLOAT] = "_GUARD_TOS_FLOAT", + [_GUARD_TOS_INT] = "_GUARD_TOS_INT", + [_GUARD_TYPE_VERSION] = "_GUARD_TYPE_VERSION", + [_INIT_CALL_BOUND_METHOD_EXACT_ARGS] = "_INIT_CALL_BOUND_METHOD_EXACT_ARGS", + [_INIT_CALL_PY_EXACT_ARGS] = "_INIT_CALL_PY_EXACT_ARGS", + [_INIT_CALL_PY_EXACT_ARGS_0] = "_INIT_CALL_PY_EXACT_ARGS_0", + [_INIT_CALL_PY_EXACT_ARGS_1] = "_INIT_CALL_PY_EXACT_ARGS_1", + [_INIT_CALL_PY_EXACT_ARGS_2] = "_INIT_CALL_PY_EXACT_ARGS_2", + [_INIT_CALL_PY_EXACT_ARGS_3] = "_INIT_CALL_PY_EXACT_ARGS_3", + [_INIT_CALL_PY_EXACT_ARGS_4] = "_INIT_CALL_PY_EXACT_ARGS_4", + [_INTERNAL_INCREMENT_OPT_COUNTER] = "_INTERNAL_INCREMENT_OPT_COUNTER", + [_IS_NONE] = "_IS_NONE", + [_IS_OP] = "_IS_OP", + [_ITER_CHECK_LIST] = "_ITER_CHECK_LIST", + [_ITER_CHECK_RANGE] = "_ITER_CHECK_RANGE", + [_ITER_CHECK_TUPLE] = "_ITER_CHECK_TUPLE", + [_ITER_NEXT_LIST] = "_ITER_NEXT_LIST", + [_ITER_NEXT_RANGE] = "_ITER_NEXT_RANGE", + [_ITER_NEXT_TUPLE] = "_ITER_NEXT_TUPLE", + [_JUMP_TO_TOP] = "_JUMP_TO_TOP", + [_LIST_APPEND] = "_LIST_APPEND", + [_LIST_EXTEND] = "_LIST_EXTEND", + [_LOAD_ASSERTION_ERROR] = "_LOAD_ASSERTION_ERROR", + [_LOAD_ATTR] = "_LOAD_ATTR", + [_LOAD_ATTR_CLASS] = "_LOAD_ATTR_CLASS", + [_LOAD_ATTR_CLASS_0] = "_LOAD_ATTR_CLASS_0", + [_LOAD_ATTR_CLASS_1] = "_LOAD_ATTR_CLASS_1", + [_LOAD_ATTR_INSTANCE_VALUE] = "_LOAD_ATTR_INSTANCE_VALUE", + [_LOAD_ATTR_INSTANCE_VALUE_0] = "_LOAD_ATTR_INSTANCE_VALUE_0", + [_LOAD_ATTR_INSTANCE_VALUE_1] = "_LOAD_ATTR_INSTANCE_VALUE_1", + [_LOAD_ATTR_METHOD_LAZY_DICT] = "_LOAD_ATTR_METHOD_LAZY_DICT", + [_LOAD_ATTR_METHOD_NO_DICT] = "_LOAD_ATTR_METHOD_NO_DICT", + [_LOAD_ATTR_METHOD_WITH_VALUES] = "_LOAD_ATTR_METHOD_WITH_VALUES", + [_LOAD_ATTR_MODULE] = "_LOAD_ATTR_MODULE", + [_LOAD_ATTR_NONDESCRIPTOR_NO_DICT] = "_LOAD_ATTR_NONDESCRIPTOR_NO_DICT", + [_LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES] = "_LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES", + [_LOAD_ATTR_SLOT] = "_LOAD_ATTR_SLOT", + [_LOAD_ATTR_SLOT_0] = "_LOAD_ATTR_SLOT_0", + [_LOAD_ATTR_SLOT_1] = "_LOAD_ATTR_SLOT_1", + [_LOAD_ATTR_WITH_HINT] = "_LOAD_ATTR_WITH_HINT", + [_LOAD_BUILD_CLASS] = "_LOAD_BUILD_CLASS", + [_LOAD_CONST] = "_LOAD_CONST", + [_LOAD_CONST_INLINE] = "_LOAD_CONST_INLINE", + [_LOAD_CONST_INLINE_BORROW] = "_LOAD_CONST_INLINE_BORROW", + [_LOAD_CONST_INLINE_BORROW_WITH_NULL] = "_LOAD_CONST_INLINE_BORROW_WITH_NULL", + [_LOAD_CONST_INLINE_WITH_NULL] = "_LOAD_CONST_INLINE_WITH_NULL", + [_LOAD_DEREF] = "_LOAD_DEREF", + [_LOAD_FAST] = "_LOAD_FAST", + [_LOAD_FAST_0] = "_LOAD_FAST_0", + [_LOAD_FAST_1] = "_LOAD_FAST_1", + [_LOAD_FAST_2] = "_LOAD_FAST_2", + [_LOAD_FAST_3] = "_LOAD_FAST_3", + [_LOAD_FAST_4] = "_LOAD_FAST_4", + [_LOAD_FAST_5] = "_LOAD_FAST_5", + [_LOAD_FAST_6] = "_LOAD_FAST_6", + [_LOAD_FAST_7] = "_LOAD_FAST_7", + [_LOAD_FAST_AND_CLEAR] = "_LOAD_FAST_AND_CLEAR", + [_LOAD_FAST_CHECK] = "_LOAD_FAST_CHECK", + [_LOAD_FAST_LOAD_FAST] = "_LOAD_FAST_LOAD_FAST", + [_LOAD_FROM_DICT_OR_DEREF] = "_LOAD_FROM_DICT_OR_DEREF", + [_LOAD_GLOBAL] = "_LOAD_GLOBAL", + [_LOAD_GLOBAL_BUILTINS] = "_LOAD_GLOBAL_BUILTINS", + [_LOAD_GLOBAL_MODULE] = "_LOAD_GLOBAL_MODULE", + [_LOAD_LOCALS] = "_LOAD_LOCALS", + [_LOAD_SUPER_ATTR_ATTR] = "_LOAD_SUPER_ATTR_ATTR", + [_LOAD_SUPER_ATTR_METHOD] = "_LOAD_SUPER_ATTR_METHOD", + [_MAKE_CELL] = "_MAKE_CELL", + [_MAKE_FUNCTION] = "_MAKE_FUNCTION", + [_MAP_ADD] = "_MAP_ADD", + [_MATCH_CLASS] = "_MATCH_CLASS", + [_MATCH_KEYS] = "_MATCH_KEYS", + [_MATCH_MAPPING] = "_MATCH_MAPPING", + [_MATCH_SEQUENCE] = "_MATCH_SEQUENCE", + [_NOP] = "_NOP", + [_POP_EXCEPT] = "_POP_EXCEPT", + [_POP_FRAME] = "_POP_FRAME", + [_POP_TOP] = "_POP_TOP", + [_POP_TOP_LOAD_CONST_INLINE_BORROW] = "_POP_TOP_LOAD_CONST_INLINE_BORROW", + [_PUSH_EXC_INFO] = "_PUSH_EXC_INFO", + [_PUSH_FRAME] = "_PUSH_FRAME", + [_PUSH_NULL] = "_PUSH_NULL", + [_PY_FRAME_GENERAL] = "_PY_FRAME_GENERAL", + [_REPLACE_WITH_TRUE] = "_REPLACE_WITH_TRUE", + [_RESUME_CHECK] = "_RESUME_CHECK", + [_RETURN_GENERATOR] = "_RETURN_GENERATOR", + [_SAVE_RETURN_OFFSET] = "_SAVE_RETURN_OFFSET", + [_SETUP_ANNOTATIONS] = "_SETUP_ANNOTATIONS", + [_SET_ADD] = "_SET_ADD", + [_SET_FUNCTION_ATTRIBUTE] = "_SET_FUNCTION_ATTRIBUTE", + [_SET_IP] = "_SET_IP", + [_SET_UPDATE] = "_SET_UPDATE", + [_START_EXECUTOR] = "_START_EXECUTOR", + [_STORE_ATTR] = "_STORE_ATTR", + [_STORE_ATTR_INSTANCE_VALUE] = "_STORE_ATTR_INSTANCE_VALUE", + [_STORE_ATTR_SLOT] = "_STORE_ATTR_SLOT", + [_STORE_DEREF] = "_STORE_DEREF", + [_STORE_FAST] = "_STORE_FAST", + [_STORE_FAST_0] = "_STORE_FAST_0", + [_STORE_FAST_1] = "_STORE_FAST_1", + [_STORE_FAST_2] = "_STORE_FAST_2", + [_STORE_FAST_3] = "_STORE_FAST_3", + [_STORE_FAST_4] = "_STORE_FAST_4", + [_STORE_FAST_5] = "_STORE_FAST_5", + [_STORE_FAST_6] = "_STORE_FAST_6", + [_STORE_FAST_7] = "_STORE_FAST_7", + [_STORE_FAST_LOAD_FAST] = "_STORE_FAST_LOAD_FAST", + [_STORE_FAST_STORE_FAST] = "_STORE_FAST_STORE_FAST", + [_STORE_GLOBAL] = "_STORE_GLOBAL", + [_STORE_NAME] = "_STORE_NAME", + [_STORE_SLICE] = "_STORE_SLICE", + [_STORE_SUBSCR] = "_STORE_SUBSCR", + [_STORE_SUBSCR_DICT] = "_STORE_SUBSCR_DICT", + [_STORE_SUBSCR_LIST_INT] = "_STORE_SUBSCR_LIST_INT", + [_SWAP] = "_SWAP", + [_TIER2_RESUME_CHECK] = "_TIER2_RESUME_CHECK", + [_TO_BOOL] = "_TO_BOOL", + [_TO_BOOL_BOOL] = "_TO_BOOL_BOOL", + [_TO_BOOL_INT] = "_TO_BOOL_INT", + [_TO_BOOL_LIST] = "_TO_BOOL_LIST", + [_TO_BOOL_NONE] = "_TO_BOOL_NONE", + [_TO_BOOL_STR] = "_TO_BOOL_STR", + [_UNARY_INVERT] = "_UNARY_INVERT", + [_UNARY_NEGATIVE] = "_UNARY_NEGATIVE", + [_UNARY_NOT] = "_UNARY_NOT", + [_UNPACK_EX] = "_UNPACK_EX", + [_UNPACK_SEQUENCE] = "_UNPACK_SEQUENCE", + [_UNPACK_SEQUENCE_LIST] = "_UNPACK_SEQUENCE_LIST", + [_UNPACK_SEQUENCE_TUPLE] = "_UNPACK_SEQUENCE_TUPLE", + [_UNPACK_SEQUENCE_TWO_TUPLE] = "_UNPACK_SEQUENCE_TWO_TUPLE", + [_WITH_EXCEPT_START] = "_WITH_EXCEPT_START", + [_YIELD_VALUE] = "_YIELD_VALUE", +}; +int _PyUop_num_popped(int opcode, int oparg) +{ + switch(opcode) { + case _NOP: + return 0; + case _RESUME_CHECK: + return 0; + case _LOAD_FAST_CHECK: + return 0; + case _LOAD_FAST_0: + return 0; + case _LOAD_FAST_1: + return 0; + case _LOAD_FAST_2: + return 0; + case _LOAD_FAST_3: + return 0; + case _LOAD_FAST_4: + return 0; + case _LOAD_FAST_5: + return 0; + case _LOAD_FAST_6: + return 0; + case _LOAD_FAST_7: + return 0; + case _LOAD_FAST: + return 0; + case _LOAD_FAST_AND_CLEAR: + return 0; + case _LOAD_FAST_LOAD_FAST: + return 0; + case _LOAD_CONST: + return 0; + case _STORE_FAST_0: + return 1; + case _STORE_FAST_1: + return 1; + case _STORE_FAST_2: + return 1; + case _STORE_FAST_3: + return 1; + case _STORE_FAST_4: + return 1; + case _STORE_FAST_5: + return 1; + case _STORE_FAST_6: + return 1; + case _STORE_FAST_7: + return 1; + case _STORE_FAST: + return 1; + case _STORE_FAST_LOAD_FAST: + return 1; + case _STORE_FAST_STORE_FAST: + return 2; + case _POP_TOP: + return 1; + case _PUSH_NULL: + return 0; + case _END_SEND: + return 2; + case _UNARY_NEGATIVE: + return 1; + case _UNARY_NOT: + return 1; + case _TO_BOOL: + return 1; + case _TO_BOOL_BOOL: + return 1; + case _TO_BOOL_INT: + return 1; + case _TO_BOOL_LIST: + return 1; + case _TO_BOOL_NONE: + return 1; + case _TO_BOOL_STR: + return 1; + case _REPLACE_WITH_TRUE: + return 1; + case _UNARY_INVERT: + return 1; + case _GUARD_BOTH_INT: + return 2; + case _GUARD_NOS_INT: + return 2; + case _GUARD_TOS_INT: + return 1; + case _BINARY_OP_MULTIPLY_INT: + return 2; + case _BINARY_OP_ADD_INT: + return 2; + case _BINARY_OP_SUBTRACT_INT: + return 2; + case _GUARD_BOTH_FLOAT: + return 2; + case _GUARD_NOS_FLOAT: + return 2; + case _GUARD_TOS_FLOAT: + return 1; + case _BINARY_OP_MULTIPLY_FLOAT: + return 2; + case _BINARY_OP_ADD_FLOAT: + return 2; + case _BINARY_OP_SUBTRACT_FLOAT: + return 2; + case _GUARD_BOTH_UNICODE: + return 2; + case _BINARY_OP_ADD_UNICODE: + return 2; + case _BINARY_SUBSCR: + return 2; + case _BINARY_SLICE: + return 3; + case _STORE_SLICE: + return 4; + case _BINARY_SUBSCR_LIST_INT: + return 2; + case _BINARY_SUBSCR_STR_INT: + return 2; + case _BINARY_SUBSCR_TUPLE_INT: + return 2; + case _BINARY_SUBSCR_DICT: + return 2; + case _LIST_APPEND: + return 2 + (oparg-1); + case _SET_ADD: + return 2 + (oparg-1); + case _STORE_SUBSCR: + return 3; + case _STORE_SUBSCR_LIST_INT: + return 3; + case _STORE_SUBSCR_DICT: + return 3; + case _DELETE_SUBSCR: + return 2; + case _CALL_INTRINSIC_1: + return 1; + case _CALL_INTRINSIC_2: + return 2; + case _POP_FRAME: + return 1; + case _GET_AITER: + return 1; + case _GET_ANEXT: + return 1; + case _GET_AWAITABLE: + return 1; + case _YIELD_VALUE: + return 1; + case _POP_EXCEPT: + return 1; + case _LOAD_ASSERTION_ERROR: + return 0; + case _LOAD_BUILD_CLASS: + return 0; + case _STORE_NAME: + return 1; + case _DELETE_NAME: + return 0; + case _UNPACK_SEQUENCE: + return 1; + case _UNPACK_SEQUENCE_TWO_TUPLE: + return 1; + case _UNPACK_SEQUENCE_TUPLE: + return 1; + case _UNPACK_SEQUENCE_LIST: + return 1; + case _UNPACK_EX: + return 1; + case _STORE_ATTR: + return 2; + case _DELETE_ATTR: + return 1; + case _STORE_GLOBAL: + return 1; + case _DELETE_GLOBAL: + return 0; + case _LOAD_LOCALS: + return 0; + case _LOAD_GLOBAL: + return 0; + case _GUARD_GLOBALS_VERSION: + return 0; + case _GUARD_BUILTINS_VERSION: + return 0; + case _LOAD_GLOBAL_MODULE: + return 0; + case _LOAD_GLOBAL_BUILTINS: + return 0; + case _DELETE_FAST: + return 0; + case _MAKE_CELL: + return 0; + case _DELETE_DEREF: + return 0; + case _LOAD_FROM_DICT_OR_DEREF: + return 1; + case _LOAD_DEREF: + return 0; + case _STORE_DEREF: + return 1; + case _COPY_FREE_VARS: + return 0; + case _BUILD_STRING: + return oparg; + case _BUILD_TUPLE: + return oparg; + case _BUILD_LIST: + return oparg; + case _LIST_EXTEND: + return 2 + (oparg-1); + case _SET_UPDATE: + return 2 + (oparg-1); + case _BUILD_MAP: + return oparg*2; + case _SETUP_ANNOTATIONS: + return 0; + case _BUILD_CONST_KEY_MAP: + return 1 + oparg; + case _DICT_UPDATE: + return 2 + (oparg - 1); + case _DICT_MERGE: + return 5 + (oparg - 1); + case _MAP_ADD: + return 3 + (oparg - 1); + case _LOAD_SUPER_ATTR_ATTR: + return 3; + case _LOAD_SUPER_ATTR_METHOD: + return 3; + case _LOAD_ATTR: + return 1; + case _GUARD_TYPE_VERSION: + return 1; + case _CHECK_MANAGED_OBJECT_HAS_VALUES: + return 1; + case _LOAD_ATTR_INSTANCE_VALUE_0: + return 1; + case _LOAD_ATTR_INSTANCE_VALUE_1: + return 1; + case _LOAD_ATTR_INSTANCE_VALUE: + return 1; + case _CHECK_ATTR_MODULE: + return 1; + case _LOAD_ATTR_MODULE: + return 1; + case _CHECK_ATTR_WITH_HINT: + return 1; + case _LOAD_ATTR_WITH_HINT: + return 1; + case _LOAD_ATTR_SLOT_0: + return 1; + case _LOAD_ATTR_SLOT_1: + return 1; + case _LOAD_ATTR_SLOT: + return 1; + case _CHECK_ATTR_CLASS: + return 1; + case _LOAD_ATTR_CLASS_0: + return 1; + case _LOAD_ATTR_CLASS_1: + return 1; + case _LOAD_ATTR_CLASS: + return 1; + case _GUARD_DORV_NO_DICT: + return 1; + case _STORE_ATTR_INSTANCE_VALUE: + return 2; + case _STORE_ATTR_SLOT: + return 2; + case _COMPARE_OP: + return 2; + case _COMPARE_OP_FLOAT: + return 2; + case _COMPARE_OP_INT: + return 2; + case _COMPARE_OP_STR: + return 2; + case _IS_OP: + return 2; + case _CONTAINS_OP: + return 2; + case _CONTAINS_OP_SET: + return 2; + case _CONTAINS_OP_DICT: + return 2; + case _CHECK_EG_MATCH: + return 2; + case _CHECK_EXC_MATCH: + return 2; + case _IS_NONE: + return 1; + case _GET_LEN: + return 1; + case _MATCH_CLASS: + return 3; + case _MATCH_MAPPING: + return 1; + case _MATCH_SEQUENCE: + return 1; + case _MATCH_KEYS: + return 2; + case _GET_ITER: + return 1; + case _GET_YIELD_FROM_ITER: + return 1; + case _FOR_ITER_TIER_TWO: + return 1; + case _ITER_CHECK_LIST: + return 1; + case _GUARD_NOT_EXHAUSTED_LIST: + return 1; + case _ITER_NEXT_LIST: + return 1; + case _ITER_CHECK_TUPLE: + return 1; + case _GUARD_NOT_EXHAUSTED_TUPLE: + return 1; + case _ITER_NEXT_TUPLE: + return 1; + case _ITER_CHECK_RANGE: + return 1; + case _GUARD_NOT_EXHAUSTED_RANGE: + return 1; + case _ITER_NEXT_RANGE: + return 1; + case _FOR_ITER_GEN_FRAME: + return 1; + case _WITH_EXCEPT_START: + return 4; + case _PUSH_EXC_INFO: + return 1; + case _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT: + return 1; + case _GUARD_KEYS_VERSION: + return 1; + case _LOAD_ATTR_METHOD_WITH_VALUES: + return 1; + case _LOAD_ATTR_METHOD_NO_DICT: + return 1; + case _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES: + return 1; + case _LOAD_ATTR_NONDESCRIPTOR_NO_DICT: + return 1; + case _CHECK_ATTR_METHOD_LAZY_DICT: + return 1; + case _LOAD_ATTR_METHOD_LAZY_DICT: + return 1; + case _CHECK_PERIODIC: + return 0; + case _PY_FRAME_GENERAL: + return 2 + oparg; + case _CHECK_FUNCTION_VERSION: + return 2 + oparg; + case _CHECK_METHOD_VERSION: + return 2 + oparg; + case _EXPAND_METHOD: + return 2 + oparg; + case _CHECK_IS_NOT_PY_CALLABLE: + return 2 + oparg; + case _CALL_NON_PY_GENERAL: + return 2 + oparg; + case _CHECK_CALL_BOUND_METHOD_EXACT_ARGS: + return 2 + oparg; + case _INIT_CALL_BOUND_METHOD_EXACT_ARGS: + return 2 + oparg; + case _CHECK_PEP_523: + return 0; + case _CHECK_FUNCTION_EXACT_ARGS: + return 2 + oparg; + case _CHECK_STACK_SPACE: + return 2 + oparg; + case _INIT_CALL_PY_EXACT_ARGS_0: + return 2 + oparg; + case _INIT_CALL_PY_EXACT_ARGS_1: + return 2 + oparg; + case _INIT_CALL_PY_EXACT_ARGS_2: + return 2 + oparg; + case _INIT_CALL_PY_EXACT_ARGS_3: + return 2 + oparg; + case _INIT_CALL_PY_EXACT_ARGS_4: + return 2 + oparg; + case _INIT_CALL_PY_EXACT_ARGS: + return 2 + oparg; + case _PUSH_FRAME: + return 1; + case _CALL_TYPE_1: + return 3; + case _CALL_STR_1: + return 3; + case _CALL_TUPLE_1: + return 3; + case _EXIT_INIT_CHECK: + return 1; + case _CALL_BUILTIN_CLASS: + return 2 + oparg; + case _CALL_BUILTIN_O: + return 2 + oparg; + case _CALL_BUILTIN_FAST: + return 2 + oparg; + case _CALL_BUILTIN_FAST_WITH_KEYWORDS: + return 2 + oparg; + case _CALL_LEN: + return 2 + oparg; + case _CALL_ISINSTANCE: + return 2 + oparg; + case _CALL_METHOD_DESCRIPTOR_O: + return 2 + oparg; + case _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS: + return 2 + oparg; + case _CALL_METHOD_DESCRIPTOR_NOARGS: + return 2 + oparg; + case _CALL_METHOD_DESCRIPTOR_FAST: + return 2 + oparg; + case _MAKE_FUNCTION: + return 1; + case _SET_FUNCTION_ATTRIBUTE: + return 2; + case _RETURN_GENERATOR: + return 0; + case _BUILD_SLICE: + return 2 + ((oparg == 3) ? 1 : 0); + case _CONVERT_VALUE: + return 1; + case _FORMAT_SIMPLE: + return 1; + case _FORMAT_WITH_SPEC: + return 2; + case _COPY: + return 1 + (oparg-1); + case _BINARY_OP: + return 2; + case _SWAP: + return 2 + (oparg-2); + case _GUARD_IS_TRUE_POP: + return 1; + case _GUARD_IS_FALSE_POP: + return 1; + case _GUARD_IS_NONE_POP: + return 1; + case _GUARD_IS_NOT_NONE_POP: + return 1; + case _JUMP_TO_TOP: + return 0; + case _SET_IP: + return 0; + case _CHECK_STACK_SPACE_OPERAND: + return 0; + case _SAVE_RETURN_OFFSET: + return 0; + case _EXIT_TRACE: + return 0; + case _CHECK_VALIDITY: + return 0; + case _LOAD_CONST_INLINE: + return 0; + case _LOAD_CONST_INLINE_BORROW: + return 0; + case _POP_TOP_LOAD_CONST_INLINE_BORROW: + return 1; + case _LOAD_CONST_INLINE_WITH_NULL: + return 0; + case _LOAD_CONST_INLINE_BORROW_WITH_NULL: + return 0; + case _CHECK_FUNCTION: + return 0; + case _INTERNAL_INCREMENT_OPT_COUNTER: + return 1; + case _COLD_EXIT: + return 0; + case _DYNAMIC_EXIT: + return 0; + case _START_EXECUTOR: + return 0; + case _FATAL_ERROR: + return 0; + case _CHECK_VALIDITY_AND_SET_IP: + return 0; + case _DEOPT: + return 0; + case _ERROR_POP_N: + return oparg; + case _TIER2_RESUME_CHECK: + return 0; + default: + return -1; + } +} + +#endif // NEED_OPCODE_METADATA + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_CORE_UOP_METADATA_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_warnings.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_warnings.h new file mode 100644 index 000000000..f9f655931 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_warnings.h @@ -0,0 +1,31 @@ +#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 */ + PyMutex mutex; + long filters_version; +}; + +extern int _PyWarnings_InitState(PyInterpreterState *interp); + +extern PyObject* _PyWarnings_Init(void); + +extern void _PyErr_WarnUnawaitedCoroutine(PyObject *coro); +extern void _PyErr_WarnUnawaitedAgenMethod(PyAsyncGenObject *agen, PyObject *method); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_WARNINGS_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_weakref.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_weakref.h new file mode 100644 index 000000000..94aadb2c1 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/internal/pycore_weakref.h @@ -0,0 +1,119 @@ +#ifndef Py_INTERNAL_WEAKREF_H +#define Py_INTERNAL_WEAKREF_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_critical_section.h" // Py_BEGIN_CRITICAL_SECTION() +#include "pycore_lock.h" +#include "pycore_object.h" // _Py_REF_IS_MERGED() +#include "pycore_pyatomic_ft_wrappers.h" + +#ifdef Py_GIL_DISABLED + +#define WEAKREF_LIST_LOCK(obj) \ + _PyInterpreterState_GET() \ + ->weakref_locks[((uintptr_t)obj) % NUM_WEAKREF_LIST_LOCKS] + +// Lock using the referenced object +#define LOCK_WEAKREFS(obj) \ + PyMutex_LockFlags(&WEAKREF_LIST_LOCK(obj), _Py_LOCK_DONT_DETACH) +#define UNLOCK_WEAKREFS(obj) PyMutex_Unlock(&WEAKREF_LIST_LOCK(obj)) + +// Lock using a weakref +#define LOCK_WEAKREFS_FOR_WR(wr) \ + PyMutex_LockFlags(wr->weakrefs_lock, _Py_LOCK_DONT_DETACH) +#define UNLOCK_WEAKREFS_FOR_WR(wr) PyMutex_Unlock(wr->weakrefs_lock) + +#else + +#define LOCK_WEAKREFS(obj) +#define UNLOCK_WEAKREFS(obj) + +#define LOCK_WEAKREFS_FOR_WR(wr) +#define UNLOCK_WEAKREFS_FOR_WR(wr) + +#endif + +static inline int _is_dead(PyObject *obj) +{ + // Explanation for the Py_REFCNT() check: when a weakref's target is part + // of a long chain of deallocations which triggers the trashcan mechanism, + // clearing the weakrefs can be delayed long after the target's refcount + // has dropped to zero. In the meantime, code accessing the weakref will + // be able to "see" the target object even though it is supposed to be + // unreachable. See issue gh-60806. +#if defined(Py_GIL_DISABLED) + Py_ssize_t shared = _Py_atomic_load_ssize_relaxed(&obj->ob_ref_shared); + return shared == _Py_REF_SHARED(0, _Py_REF_MERGED); +#else + return (Py_REFCNT(obj) == 0); +#endif +} + +static inline PyObject* _PyWeakref_GET_REF(PyObject *ref_obj) +{ + assert(PyWeakref_Check(ref_obj)); + PyWeakReference *ref = _Py_CAST(PyWeakReference*, ref_obj); + + PyObject *obj = FT_ATOMIC_LOAD_PTR(ref->wr_object); + if (obj == Py_None) { + // clear_weakref() was called + return NULL; + } + + LOCK_WEAKREFS(obj); +#ifdef Py_GIL_DISABLED + if (ref->wr_object == Py_None) { + // clear_weakref() was called + UNLOCK_WEAKREFS(obj); + return NULL; + } +#endif + if (_Py_TryIncref(obj)) { + UNLOCK_WEAKREFS(obj); + return obj; + } + UNLOCK_WEAKREFS(obj); + return NULL; +} + +static inline int _PyWeakref_IS_DEAD(PyObject *ref_obj) +{ + assert(PyWeakref_Check(ref_obj)); + int ret = 0; + PyWeakReference *ref = _Py_CAST(PyWeakReference*, ref_obj); + PyObject *obj = FT_ATOMIC_LOAD_PTR(ref->wr_object); + if (obj == Py_None) { + // clear_weakref() was called + ret = 1; + } + else { + LOCK_WEAKREFS(obj); + // See _PyWeakref_GET_REF() for the rationale of this test +#ifdef Py_GIL_DISABLED + ret = (ref->wr_object == Py_None) || _is_dead(obj); +#else + ret = _is_dead(obj); +#endif + UNLOCK_WEAKREFS(obj); + } + return ret; +} + +extern Py_ssize_t _PyWeakref_GetWeakrefCount(PyObject *obj); + +// Clear all the weak references to obj but leave their callbacks uncalled and +// intact. +extern void _PyWeakref_ClearWeakRefsNoCallbacks(PyObject *obj); + +PyAPI_FUNC(int) _PyWeakref_IsDead(PyObject *weakref); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_WEAKREF_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/intrcheck.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/intrcheck.h new file mode 100644 index 000000000..1d1feee83 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/intrcheck.h @@ -0,0 +1,23 @@ +#ifndef Py_INTRCHECK_H +#define Py_INTRCHECK_H +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_FUNC(int) PyOS_InterruptOccurred(void); + +#ifdef HAVE_FORK +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03070000 +PyAPI_FUNC(void) PyOS_BeforeFork(void); +PyAPI_FUNC(void) PyOS_AfterFork_Parent(void); +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); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTRCHECK_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/iterobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/iterobject.h new file mode 100644 index 000000000..e69d09719 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/iterobject.h @@ -0,0 +1,24 @@ +#ifndef Py_ITEROBJECT_H +#define Py_ITEROBJECT_H +/* Iterators (the basic kind, over a sequence) */ +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_DATA(PyTypeObject) PySeqIter_Type; +PyAPI_DATA(PyTypeObject) PyCallIter_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) + +PyAPI_FUNC(PyObject *) PyCallIter_New(PyObject *, PyObject *); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_ITEROBJECT_H */ + diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/listobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/listobject.h new file mode 100644 index 000000000..e1e059b0b --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/listobject.h @@ -0,0 +1,55 @@ +/* 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. + + 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 +#define Py_LISTOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_DATA(PyTypeObject) PyList_Type; +PyAPI_DATA(PyTypeObject) PyListIter_Type; +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) + +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); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030d0000 +PyAPI_FUNC(PyObject *) PyList_GetItemRef(PyObject *, Py_ssize_t); +#endif +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 +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_LISTOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/lock.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/lock.h new file mode 100644 index 000000000..782b9dbc7 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/lock.h @@ -0,0 +1,16 @@ +#ifndef Py_LOCK_H +#define Py_LOCK_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_LOCK_H +# include "cpython/lock.h" +# undef Py_CPYTHON_LOCK_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_LOCK_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/longobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/longobject.h new file mode 100644 index 000000000..19104cd9d --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/longobject.h @@ -0,0 +1,114 @@ +#ifndef Py_LONGOBJECT_H +#define Py_LONGOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + + +/* Long (arbitrary precision) integer object interface */ + +// PyLong_Type is declared by object.h + +#define PyLong_Check(op) \ + PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_LONG_SUBCLASS) +#define PyLong_CheckExact(op) Py_IS_TYPE((op), &PyLong_Type) + +PyAPI_FUNC(PyObject *) PyLong_FromLong(long); +PyAPI_FUNC(PyObject *) PyLong_FromUnsignedLong(unsigned long); +PyAPI_FUNC(PyObject *) PyLong_FromSize_t(size_t); +PyAPI_FUNC(PyObject *) PyLong_FromSsize_t(Py_ssize_t); +PyAPI_FUNC(PyObject *) PyLong_FromDouble(double); + +PyAPI_FUNC(long) PyLong_AsLong(PyObject *); +PyAPI_FUNC(long) PyLong_AsLongAndOverflow(PyObject *, int *); +PyAPI_FUNC(Py_ssize_t) PyLong_AsSsize_t(PyObject *); +PyAPI_FUNC(size_t) PyLong_AsSize_t(PyObject *); +PyAPI_FUNC(unsigned long) PyLong_AsUnsignedLong(PyObject *); +PyAPI_FUNC(unsigned long) PyLong_AsUnsignedLongMask(PyObject *); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030d0000 +PyAPI_FUNC(int) PyLong_AsInt(PyObject *); +#endif + +PyAPI_FUNC(PyObject *) PyLong_GetInfo(void); + +/* It may be useful in the future. I've added it in the PyInt -> PyLong + cleanup to keep the extra information. [CH] */ +#define PyLong_AS_LONG(op) PyLong_AsLong(op) + +/* Issue #1983: pid_t can be longer than a C long on some systems */ +#if !defined(SIZEOF_PID_T) || SIZEOF_PID_T == SIZEOF_INT +#define _Py_PARSE_PID "i" +#define PyLong_FromPid PyLong_FromLong +# if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030d0000 +# define PyLong_AsPid PyLong_AsInt +# elif SIZEOF_INT == SIZEOF_LONG +# define PyLong_AsPid PyLong_AsLong +# else +static inline int +PyLong_AsPid(PyObject *obj) +{ + int overflow; + long result = PyLong_AsLongAndOverflow(obj, &overflow); + if (overflow || result > INT_MAX || result < INT_MIN) { + PyErr_SetString(PyExc_OverflowError, + "Python int too large to convert to C int"); + return -1; + } + return (int)result; +} +# endif +#elif SIZEOF_PID_T == SIZEOF_LONG +#define _Py_PARSE_PID "l" +#define PyLong_FromPid PyLong_FromLong +#define PyLong_AsPid PyLong_AsLong +#elif defined(SIZEOF_LONG_LONG) && SIZEOF_PID_T == SIZEOF_LONG_LONG +#define _Py_PARSE_PID "L" +#define PyLong_FromPid PyLong_FromLongLong +#define PyLong_AsPid PyLong_AsLongLong +#else +#error "sizeof(pid_t) is neither sizeof(int), sizeof(long) or sizeof(long long)" +#endif /* SIZEOF_PID_T */ + +#if SIZEOF_VOID_P == SIZEOF_INT +# define _Py_PARSE_INTPTR "i" +# define _Py_PARSE_UINTPTR "I" +#elif SIZEOF_VOID_P == SIZEOF_LONG +# define _Py_PARSE_INTPTR "l" +# define _Py_PARSE_UINTPTR "k" +#elif defined(SIZEOF_LONG_LONG) && SIZEOF_VOID_P == SIZEOF_LONG_LONG +# define _Py_PARSE_INTPTR "L" +# define _Py_PARSE_UINTPTR "K" +#else +# error "void* different in size from int, long and long long" +#endif /* SIZEOF_VOID_P */ + +PyAPI_FUNC(double) PyLong_AsDouble(PyObject *); +PyAPI_FUNC(PyObject *) PyLong_FromVoidPtr(void *); +PyAPI_FUNC(void *) PyLong_AsVoidPtr(PyObject *); + +PyAPI_FUNC(PyObject *) PyLong_FromLongLong(long long); +PyAPI_FUNC(PyObject *) PyLong_FromUnsignedLongLong(unsigned long long); +PyAPI_FUNC(long long) PyLong_AsLongLong(PyObject *); +PyAPI_FUNC(unsigned long long) PyLong_AsUnsignedLongLong(PyObject *); +PyAPI_FUNC(unsigned long long) PyLong_AsUnsignedLongLongMask(PyObject *); +PyAPI_FUNC(long long) PyLong_AsLongLongAndOverflow(PyObject *, int *); + +PyAPI_FUNC(PyObject *) PyLong_FromString(const char *, char **, int); + +/* These aren't really part of the int object, but they're handy. The + functions are in Python/mystrtoul.c. + */ +PyAPI_FUNC(unsigned long) PyOS_strtoul(const char *, char **, int); +PyAPI_FUNC(long) PyOS_strtol(const char *, char **, int); + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_LONGOBJECT_H +# include "cpython/longobject.h" +# undef Py_CPYTHON_LONGOBJECT_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_LONGOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/marshal.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/marshal.h new file mode 100644 index 000000000..f8b0de80c --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/marshal.h @@ -0,0 +1,31 @@ + +/* Interface for marshal.c */ + +#ifndef Py_MARSHAL_H +#define Py_MARSHAL_H +#ifndef Py_LIMITED_API + +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_FUNC(PyObject *) PyMarshal_ReadObjectFromString(const char *, + Py_ssize_t); +PyAPI_FUNC(PyObject *) PyMarshal_WriteObjectToString(PyObject *, int); + +#define Py_MARSHAL_VERSION 4 + +PyAPI_FUNC(long) PyMarshal_ReadLongFromFile(FILE *); +PyAPI_FUNC(int) PyMarshal_ReadShortFromFile(FILE *); +PyAPI_FUNC(PyObject *) PyMarshal_ReadObjectFromFile(FILE *); +PyAPI_FUNC(PyObject *) PyMarshal_ReadLastObjectFromFile(FILE *); + +PyAPI_FUNC(void) PyMarshal_WriteLongToFile(long, FILE *, int); +PyAPI_FUNC(void) PyMarshal_WriteObjectToFile(PyObject *, FILE *, int); + +#ifdef __cplusplus +} +#endif + +#endif /* Py_LIMITED_API */ +#endif /* !Py_MARSHAL_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/memoryobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/memoryobject.h new file mode 100644 index 000000000..2c9146aa2 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/memoryobject.h @@ -0,0 +1,34 @@ +/* Memory view object. In Python this is available as "memoryview". */ + +#ifndef Py_MEMORYOBJECT_H +#define Py_MEMORYOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_DATA(PyTypeObject) PyMemoryView_Type; + +#define PyMemoryView_Check(op) Py_IS_TYPE((op), &PyMemoryView_Type) + +PyAPI_FUNC(PyObject *) PyMemoryView_FromObject(PyObject *base); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +PyAPI_FUNC(PyObject *) PyMemoryView_FromMemory(char *mem, Py_ssize_t size, + int flags); +#endif +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030b0000 +PyAPI_FUNC(PyObject *) PyMemoryView_FromBuffer(const Py_buffer *info); +#endif +PyAPI_FUNC(PyObject *) PyMemoryView_GetContiguous(PyObject *base, + int buffertype, + char order); + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_MEMORYOBJECT_H +# include "cpython/memoryobject.h" +# undef Py_CPYTHON_MEMORYOBJECT_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_MEMORYOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/methodobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/methodobject.h new file mode 100644 index 000000000..39272815b --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/methodobject.h @@ -0,0 +1,137 @@ + +/* Method object interface */ + +#ifndef Py_METHODOBJECT_H +#define Py_METHODOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +/* This is about the type 'builtin_function_or_method', + not Python methods in user-defined classes. See classobject.h + for the latter. */ + +PyAPI_DATA(PyTypeObject) 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); +typedef PyObject *(*PyCFunctionWithKeywords)(PyObject *, PyObject *, + PyObject *); +typedef PyObject *(*PyCFunctionFastWithKeywords) (PyObject *, + PyObject *const *, Py_ssize_t, + PyObject *); +typedef PyObject *(*PyCMethod)(PyObject *, PyTypeObject *, PyObject *const *, + size_t, PyObject *); + +// For backwards compatibility. `METH_FASTCALL` was added to the stable API in +// 3.10 alongside `_PyCFunctionFastWithKeywords` and `_PyCFunctionFast`. +// Note that the underscore-prefixed names were documented in public docs; +// people may be using them. +typedef PyCFunctionFast _PyCFunctionFast; +typedef PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords; + +// Cast an function to the PyCFunction type to use it with PyMethodDef. +// +// This macro can be used to prevent compiler warnings if the first parameter +// uses a different pointer type than PyObject* (ex: METH_VARARGS and METH_O +// calling conventions). +// +// The macro can also be used for METH_FASTCALL and METH_VARARGS|METH_KEYWORDS +// calling conventions to avoid compiler warnings because the function has more +// than 2 parameters. The macro first casts the function to the +// "void func(void)" type to prevent compiler warnings. +// +// If a function is declared with the METH_NOARGS calling convention, it must +// have 2 parameters. Since the second parameter is unused, Py_UNUSED() can be +// used to prevent a compiler warning. If the function has a single parameter, +// it triggers an undefined behavior when Python calls it with 2 parameters +// (bpo-33012). +#define _PyCFunction_CAST(func) \ + _Py_CAST(PyCFunction, _Py_CAST(void(*)(void), (func))) + +PyAPI_FUNC(PyCFunction) PyCFunction_GetFunction(PyObject *); +PyAPI_FUNC(PyObject *) PyCFunction_GetSelf(PyObject *); +PyAPI_FUNC(int) PyCFunction_GetFlags(PyObject *); + +struct PyMethodDef { + const char *ml_name; /* The name of the built-in function/method */ + PyCFunction ml_meth; /* The C function that implements it */ + int ml_flags; /* Combination of METH_xxx flags, which mostly + describe the args expected by the C func */ + const char *ml_doc; /* The __doc__ attribute, or NULL */ +}; + +/* PyCFunction_New is declared as a function for stable ABI (declaration is + * needed for e.g. GCC with -fvisibility=hidden), but redefined as a macro + * that calls PyCFunction_NewEx. */ +PyAPI_FUNC(PyObject *) PyCFunction_New(PyMethodDef *, PyObject *); +#define PyCFunction_New(ML, SELF) PyCFunction_NewEx((ML), (SELF), NULL) + +/* PyCFunction_NewEx is similar: on 3.9+, this calls PyCMethod_New. */ +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 + + +/* Flag passed to newmethodobject */ +/* #define METH_OLDARGS 0x0000 -- unsupported now */ +#define METH_VARARGS 0x0001 +#define METH_KEYWORDS 0x0002 +/* METH_NOARGS and METH_O must not be combined with the flags above. */ +#define METH_NOARGS 0x0004 +#define METH_O 0x0008 + +/* METH_CLASS and METH_STATIC are a little different; these control + the construction of methods for a class. These cannot be used for + functions in modules. */ +#define METH_CLASS 0x0010 +#define METH_STATIC 0x0020 + +/* METH_COEXIST allows a method to be entered even though a slot has + already filled the entry. When defined, the flag allows a separate + method, "__contains__" for example, to coexist with a defined + slot like sq_contains. */ + +#define METH_COEXIST 0x0040 + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030a0000 +# define METH_FASTCALL 0x0080 +#endif + +/* This bit is preserved for Stackless Python */ +#ifdef STACKLESS +# define METH_STACKLESS 0x0100 +#else +# 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. + */ + +#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 +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_METHODOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/modsupport.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/modsupport.h new file mode 100644 index 000000000..af995f567 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/modsupport.h @@ -0,0 +1,146 @@ +// Module support interface + +#ifndef Py_MODSUPPORT_H +#define Py_MODSUPPORT_H +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_FUNC(int) PyArg_Parse(PyObject *, const char *, ...); +PyAPI_FUNC(int) PyArg_ParseTuple(PyObject *, const char *, ...); +PyAPI_FUNC(int) PyArg_ParseTupleAndKeywords(PyObject *, PyObject *, + const char *, PY_CXX_CONST char * const *, ...); +PyAPI_FUNC(int) PyArg_VaParse(PyObject *, const char *, va_list); +PyAPI_FUNC(int) PyArg_VaParseTupleAndKeywords(PyObject *, PyObject *, + const char *, PY_CXX_CONST char * const *, va_list); + +PyAPI_FUNC(int) PyArg_ValidateKeywordArguments(PyObject *); +PyAPI_FUNC(int) PyArg_UnpackTuple(PyObject *, const char *, Py_ssize_t, Py_ssize_t, ...); +PyAPI_FUNC(PyObject *) Py_BuildValue(const char *, ...); +PyAPI_FUNC(PyObject *) Py_VaBuildValue(const char *, va_list); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030a0000 +// Add an attribute with name 'name' and value 'obj' to the module 'mod. +// On success, return 0. +// On error, raise an exception and return -1. +PyAPI_FUNC(int) PyModule_AddObjectRef(PyObject *mod, const char *name, PyObject *value); +#endif /* Py_LIMITED_API */ + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030d0000 +// Similar to PyModule_AddObjectRef() but steal a reference to 'value'. +PyAPI_FUNC(int) PyModule_Add(PyObject *mod, const char *name, PyObject *value); +#endif /* Py_LIMITED_API */ + +// Similar to PyModule_AddObjectRef() and PyModule_Add() but steal +// a reference to 'value' on success and only on success. +// Errorprone. Should not be used in new code. +PyAPI_FUNC(int) PyModule_AddObject(PyObject *mod, const char *, PyObject *value); + +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 */ + +#define PyModule_AddIntMacro(m, c) PyModule_AddIntConstant((m), #c, (c)) +#define PyModule_AddStringMacro(m, c) PyModule_AddStringConstant((m), #c, (c)) + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 +/* New in 3.5 */ +PyAPI_FUNC(int) PyModule_SetDocString(PyObject *, const char *); +PyAPI_FUNC(int) PyModule_AddFunctions(PyObject *, PyMethodDef *); +PyAPI_FUNC(int) PyModule_ExecDef(PyObject *module, PyModuleDef *def); +#endif + +#define Py_CLEANUP_SUPPORTED 0x20000 + +#define PYTHON_API_VERSION 1013 +#define PYTHON_API_STRING "1013" +/* The API version is maintained (independently from the Python version) + so we can detect mismatches between the interpreter and dynamically + loaded modules. These are diagnosed by an error message but + the module is still loaded (because the mismatch can only be tested + after loading the module). The error message is intended to + explain the core dump a few seconds later. + + The symbol PYTHON_API_STRING defines the same value as a string + literal. *** PLEASE MAKE SURE THE DEFINITIONS MATCH. *** + + Please add a line or two to the top of this log for each API + version change: + + 22-Feb-2006 MvL 1013 PEP 353 - long indices for sequence lengths + + 19-Aug-2002 GvR 1012 Changes to string object struct for + interning changes, saving 3 bytes. + + 17-Jul-2001 GvR 1011 Descr-branch, just to be on the safe side + + 25-Jan-2001 FLD 1010 Parameters added to PyCode_New() and + PyFrame_New(); Python 2.1a2 + + 14-Mar-2000 GvR 1009 Unicode API added + + 3-Jan-1999 GvR 1007 Decided to change back! (Don't reuse 1008!) + + 3-Dec-1998 GvR 1008 Python 1.5.2b1 + + 18-Jan-1997 GvR 1007 string interning and other speedups + + 11-Oct-1996 GvR renamed Py_Ellipses to Py_Ellipsis :-( + + 30-Jul-1996 GvR Slice and ellipses syntax added + + 23-Jul-1996 GvR For 1.4 -- better safe than sorry this time :-) + + 7-Nov-1995 GvR Keyword arguments (should've been done at 1.3 :-( ) + + 10-Jan-1995 GvR Renamed globals to new naming scheme + + 9-Jan-1995 GvR Initial version (incompatible with older API) +*/ + +/* The PYTHON_ABI_VERSION is introduced in PEP 384. For the lifetime of + Python 3, it will stay at the value of 3; changes to the limited API + must be performed in a strictly backwards-compatible manner. */ +#define PYTHON_ABI_VERSION 3 +#define PYTHON_ABI_STRING "3" + +PyAPI_FUNC(PyObject *) PyModule_Create2(PyModuleDef*, int apiver); + +#ifdef Py_LIMITED_API +#define PyModule_Create(module) \ + PyModule_Create2((module), PYTHON_ABI_VERSION) +#else +#define PyModule_Create(module) \ + PyModule_Create2((module), PYTHON_API_VERSION) +#endif + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 +/* New in 3.5 */ +PyAPI_FUNC(PyObject *) PyModule_FromDefAndSpec2(PyModuleDef *def, + PyObject *spec, + int module_api_version); + +#ifdef Py_LIMITED_API +#define PyModule_FromDefAndSpec(module, spec) \ + PyModule_FromDefAndSpec2((module), (spec), PYTHON_ABI_VERSION) +#else +#define PyModule_FromDefAndSpec(module, spec) \ + PyModule_FromDefAndSpec2((module), (spec), PYTHON_API_VERSION) +#endif /* Py_LIMITED_API */ + +#endif /* New in 3.5 */ + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_MODSUPPORT_H +# include "cpython/modsupport.h" +# undef Py_CPYTHON_MODSUPPORT_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_MODSUPPORT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/moduleobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/moduleobject.h new file mode 100644 index 000000000..2a17c891d --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/moduleobject.h @@ -0,0 +1,122 @@ + +/* Module object interface */ + +#ifndef Py_MODULEOBJECT_H +#define Py_MODULEOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_DATA(PyTypeObject) PyModule_Type; + +#define PyModule_Check(op) PyObject_TypeCheck((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( + PyObject *name + ); +#endif +PyAPI_FUNC(PyObject *) PyModule_New( + const char *name /* UTF-8 encoded string */ + ); +PyAPI_FUNC(PyObject *) PyModule_GetDict(PyObject *); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +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 *); +PyAPI_FUNC(PyObject *) PyModule_GetFilenameObject(PyObject *); +PyAPI_FUNC(PyModuleDef*) PyModule_GetDef(PyObject*); +PyAPI_FUNC(void*) PyModule_GetState(PyObject*); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 +/* New in 3.5 */ +PyAPI_FUNC(PyObject *) PyModuleDef_Init(PyModuleDef*); +PyAPI_DATA(PyTypeObject) PyModuleDef_Type; +#endif + +typedef struct PyModuleDef_Base { + PyObject_HEAD + /* The function used to re-initialize the module. + This is only set for legacy (single-phase init) extension modules + and only used for those that support multiple initializations + (m_size >= 0). + It is set by _PyImport_LoadDynamicModuleWithSpec() + and _imp.create_builtin(). */ + PyObject* (*m_init)(void); + /* The module's index into its interpreter's modules_by_index cache. + This is set for all extension modules but only used for legacy ones. + (See PyInterpreterState.modules_by_index for more info.) + It is set by PyModuleDef_Init(). */ + Py_ssize_t m_index; + /* A copy of the module's __dict__ after the first time it was loaded. + This is only set/used for legacy modules that do not support + multiple initializations. + It is set by fix_up_extension() in import.c. */ + PyObject* m_copy; +} PyModuleDef_Base; + +#define PyModuleDef_HEAD_INIT { \ + PyObject_HEAD_INIT(_Py_NULL) \ + _Py_NULL, /* m_init */ \ + 0, /* m_index */ \ + _Py_NULL, /* m_copy */ \ + } + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 +/* New in 3.5 */ +struct PyModuleDef_Slot { + int slot; + void *value; +}; + +#define Py_mod_create 1 +#define Py_mod_exec 2 +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030c0000 +# define Py_mod_multiple_interpreters 3 +#endif +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030d0000 +# define Py_mod_gil 4 +#endif + + +#ifndef Py_LIMITED_API +#define _Py_mod_LAST_SLOT 4 +#endif + +#endif /* New in 3.5 */ + +/* for Py_mod_multiple_interpreters: */ +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030c0000 +# define Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED ((void *)0) +# define Py_MOD_MULTIPLE_INTERPRETERS_SUPPORTED ((void *)1) +# define Py_MOD_PER_INTERPRETER_GIL_SUPPORTED ((void *)2) +#endif + +/* for Py_mod_gil: */ +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030d0000 +# define Py_MOD_GIL_USED ((void *)0) +# define Py_MOD_GIL_NOT_USED ((void *)1) +#endif + +#if !defined(Py_LIMITED_API) && defined(Py_GIL_DISABLED) +PyAPI_FUNC(int) PyUnstable_Module_SetGIL(PyObject *module, void *gil); +#endif + +struct PyModuleDef { + PyModuleDef_Base m_base; + const char* m_name; + const char* m_doc; + Py_ssize_t m_size; + PyMethodDef *m_methods; + PyModuleDef_Slot *m_slots; + traverseproc m_traverse; + inquiry m_clear; + freefunc m_free; +}; + +#ifdef __cplusplus +} +#endif +#endif /* !Py_MODULEOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/monitoring.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/monitoring.h new file mode 100644 index 000000000..985f7f230 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/monitoring.h @@ -0,0 +1,18 @@ +#ifndef Py_MONITORING_H +#define Py_MONITORING_H +#ifdef __cplusplus +extern "C" { +#endif + +// There is currently no limited API for monitoring + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_MONITORING_H +# include "cpython/monitoring.h" +# undef Py_CPYTHON_MONITORING_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_MONITORING_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/object.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/object.h new file mode 100644 index 000000000..78aa7ad0f --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/object.h @@ -0,0 +1,1270 @@ +#ifndef Py_OBJECT_H +#define Py_OBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + + +/* Object and type object interface */ + +/* +Objects are structures allocated on the heap. Special rules apply to +the use of objects to ensure they are properly garbage-collected. +Objects are never allocated statically or on the stack; they must be +accessed through special macros and functions only. (Type objects are +exceptions to the first rule; the standard types are represented by +statically initialized type objects, although work on type/class unification +for Python 2.2 made it possible to have heap-allocated type objects too). + +An object has a 'reference count' that is increased or decreased when a +pointer to the object is copied or deleted; when the reference count +reaches zero there are no references to the object left and it can be +removed from the heap. + +An object has a 'type' that determines what it represents and what kind +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!. + +Objects do not float around in memory; once allocated an object keeps +the same size and address. Objects that must hold variable-size data +can contain pointers to variable-size parts of the object. Not all +objects of the same type have the same size; but the size cannot change +after allocation. (These restrictions are made so a reference to an +object can be simply a pointer -- moving an object would require +updating all the pointers, and changing an object's size would require +moving it if there was another object right next to it.) + +Objects are always accessed through pointers of the type 'PyObject *'. +The type 'PyObject' is a structure that only contains the reference count +and the type pointer. The actual memory allocated for an object +contains other data that can only be accessed after casting the pointer +to a pointer to a longer structure type. This longer type must start +with the reference count and type fields; the macro PyObject_HEAD should be +used for this (to accommodate for future changes). The implementation +of a particular object type can cast the object pointer to the proper +type and back. + +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) +# define Py_REF_DEBUG +#endif + +/* PyObject_HEAD defines the initial segment of every PyObject. */ +#define PyObject_HEAD PyObject ob_base; + +/* +Immortalization: + +The following indicates the immortalization strategy depending on the amount +of available bits in the reference count field. All strategies are backwards +compatible but the specific reference count value or immortalization check +might change depending on the specializations for the underlying system. + +Proper deallocation of immortal instances requires distinguishing between +statically allocated immortal instances vs those promoted by the runtime to be +immortal. The latter should be the only instances that require +cleanup during runtime finalization. +*/ + +#if SIZEOF_VOID_P > 4 +/* +In 64+ bit systems, an object will be marked as immortal by setting all of the +lower 32 bits of the reference count field, which is equal to: 0xFFFFFFFF + +Using the lower 32 bits makes the value backwards compatible by allowing +C-Extensions without the updated checks in Py_INCREF and Py_DECREF to safely +increase and decrease the objects reference count. The object would lose its +immortality, but the execution would still be correct. + +Reference count increases will use saturated arithmetic, taking advantage of +having all the lower 32 bits set, which will avoid the reference count to go +beyond the refcount limit. Immortality checks for reference count decreases will +be done by checking the bit sign flag in the lower 32 bits. +*/ +#define _Py_IMMORTAL_REFCNT _Py_CAST(Py_ssize_t, UINT_MAX) + +#else +/* +In 32 bit systems, an object will be marked as immortal by setting all of the +lower 30 bits of the reference count field, which is equal to: 0x3FFFFFFF + +Using the lower 30 bits makes the value backwards compatible by allowing +C-Extensions without the updated checks in Py_INCREF and Py_DECREF to safely +increase and decrease the objects reference count. The object would lose its +immortality, but the execution would still be correct. + +Reference count increases and decreases will first go through an immortality +check by comparing the reference count field to the immortality reference count. +*/ +#define _Py_IMMORTAL_REFCNT _Py_CAST(Py_ssize_t, UINT_MAX >> 2) +#endif + +// Py_GIL_DISABLED builds indicate immortal objects using `ob_ref_local`, which is +// always 32-bits. +#ifdef Py_GIL_DISABLED +#define _Py_IMMORTAL_REFCNT_LOCAL UINT32_MAX +#endif + +// Kept for backward compatibility. It was needed by Py_TRACE_REFS build. +#define _PyObject_EXTRA_INIT + +/* Make all uses of PyObject_HEAD_INIT immortal. + * + * Statically allocated objects might be shared between + * interpreters, so must be marked as immortal. + */ +#if defined(Py_GIL_DISABLED) +#define PyObject_HEAD_INIT(type) \ + { \ + 0, \ + 0, \ + { 0 }, \ + 0, \ + _Py_IMMORTAL_REFCNT_LOCAL, \ + 0, \ + (type), \ + }, +#else +#define PyObject_HEAD_INIT(type) \ + { \ + { _Py_IMMORTAL_REFCNT }, \ + (type) \ + }, +#endif + +#define PyVarObject_HEAD_INIT(type, size) \ + { \ + PyObject_HEAD_INIT(type) \ + (size) \ + }, + +/* PyObject_VAR_HEAD defines the initial segment of all variable-size + * container objects. These end with a declaration of an array with 1 + * element, but enough space is malloc'ed so that the array actually + * has room for ob_size elements. Note that ob_size is an element count, + * not necessarily a byte count. + */ +#define PyObject_VAR_HEAD PyVarObject ob_base; +#define Py_INVALID_SIZE (Py_ssize_t)-1 + +/* Nothing is actually declared to be a PyObject, but every pointer to + * a Python object can be cast to a PyObject*. This is inheritance built + * by hand. Similarly every pointer to a variable-size Python object can, + * in addition, be cast to PyVarObject*. + */ +#ifndef Py_GIL_DISABLED +struct _object { +#if (defined(__GNUC__) || defined(__clang__)) \ + && !(defined __STDC_VERSION__ && __STDC_VERSION__ >= 201112L) + // On C99 and older, anonymous union is a GCC and clang extension + __extension__ +#endif +#ifdef _MSC_VER + // Ignore MSC warning C4201: "nonstandard extension used: + // nameless struct/union" + __pragma(warning(push)) + __pragma(warning(disable: 4201)) +#endif + union { + Py_ssize_t ob_refcnt; +#if SIZEOF_VOID_P > 4 + PY_UINT32_T ob_refcnt_split[2]; +#endif + }; +#ifdef _MSC_VER + __pragma(warning(pop)) +#endif + + PyTypeObject *ob_type; +}; +#else +// Objects that are not owned by any thread use a thread id (tid) of zero. +// This includes both immortal objects and objects whose reference count +// fields have been merged. +#define _Py_UNOWNED_TID 0 + +// The shared reference count uses the two least-significant bits to store +// flags. The remaining bits are used to store the reference count. +#define _Py_REF_SHARED_SHIFT 2 +#define _Py_REF_SHARED_FLAG_MASK 0x3 + +// The shared flags are initialized to zero. +#define _Py_REF_SHARED_INIT 0x0 +#define _Py_REF_MAYBE_WEAKREF 0x1 +#define _Py_REF_QUEUED 0x2 +#define _Py_REF_MERGED 0x3 + +// Create a shared field from a refcnt and desired flags +#define _Py_REF_SHARED(refcnt, flags) (((refcnt) << _Py_REF_SHARED_SHIFT) + (flags)) + +struct _object { + // ob_tid stores the thread id (or zero). It is also used by the GC and the + // trashcan mechanism as a linked list pointer and by the GC to store the + // computed "gc_refs" refcount. + uintptr_t ob_tid; + uint16_t _padding; + PyMutex ob_mutex; // per-object lock + uint8_t ob_gc_bits; // gc-related state + uint32_t ob_ref_local; // local reference count + Py_ssize_t ob_ref_shared; // shared (atomic) reference count + PyTypeObject *ob_type; +}; +#endif + +/* Cast argument to PyObject* type. */ +#define _PyObject_CAST(op) _Py_CAST(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) _Py_CAST(PyVarObject*, (op)) + + +// Test if the 'x' object is the 'y' object, the same as "x is y" in Python. +PyAPI_FUNC(int) Py_Is(PyObject *x, PyObject *y); +#define Py_Is(x, y) ((x) == (y)) + +#if defined(Py_GIL_DISABLED) && !defined(Py_LIMITED_API) +PyAPI_FUNC(uintptr_t) _Py_GetThreadLocal_Addr(void); + +static inline uintptr_t +_Py_ThreadId(void) +{ + uintptr_t tid; +#if defined(_MSC_VER) && defined(_M_X64) + tid = __readgsqword(48); +#elif defined(_MSC_VER) && defined(_M_IX86) + tid = __readfsdword(24); +#elif defined(_MSC_VER) && defined(_M_ARM64) + tid = __getReg(18); +#elif defined(__MINGW32__) && defined(_M_X64) + tid = __readgsqword(48); +#elif defined(__MINGW32__) && defined(_M_IX86) + tid = __readfsdword(24); +#elif defined(__MINGW32__) && defined(_M_ARM64) + tid = __getReg(18); +#elif defined(__i386__) + __asm__("movl %%gs:0, %0" : "=r" (tid)); // 32-bit always uses GS +#elif defined(__MACH__) && defined(__x86_64__) + __asm__("movq %%gs:0, %0" : "=r" (tid)); // x86_64 macOSX uses GS +#elif defined(__x86_64__) + __asm__("movq %%fs:0, %0" : "=r" (tid)); // x86_64 Linux, BSD uses FS +#elif defined(__arm__) + __asm__ ("mrc p15, 0, %0, c13, c0, 3\nbic %0, %0, #3" : "=r" (tid)); +#elif defined(__aarch64__) && defined(__APPLE__) + __asm__ ("mrs %0, tpidrro_el0" : "=r" (tid)); +#elif defined(__aarch64__) + __asm__ ("mrs %0, tpidr_el0" : "=r" (tid)); +#elif defined(__powerpc64__) + #if defined(__clang__) && _Py__has_builtin(__builtin_thread_pointer) + tid = (uintptr_t)__builtin_thread_pointer(); + #else + // r13 is reserved for use as system thread ID by the Power 64-bit ABI. + register uintptr_t tp __asm__ ("r13"); + __asm__("" : "=r" (tp)); + tid = tp; + #endif +#elif defined(__powerpc__) + #if defined(__clang__) && _Py__has_builtin(__builtin_thread_pointer) + tid = (uintptr_t)__builtin_thread_pointer(); + #else + // r2 is reserved for use as system thread ID by the Power 32-bit ABI. + register uintptr_t tp __asm__ ("r2"); + __asm__ ("" : "=r" (tp)); + tid = tp; + #endif +#elif defined(__s390__) && defined(__GNUC__) + // Both GCC and Clang have supported __builtin_thread_pointer + // for s390 from long time ago. + tid = (uintptr_t)__builtin_thread_pointer(); +#elif defined(__riscv) + #if defined(__clang__) && _Py__has_builtin(__builtin_thread_pointer) + tid = (uintptr_t)__builtin_thread_pointer(); + #else + // tp is Thread Pointer provided by the RISC-V ABI. + __asm__ ("mv %0, tp" : "=r" (tid)); + #endif +#else + // Fallback to a portable implementation if we do not have a faster + // platform-specific implementation. + tid = _Py_GetThreadLocal_Addr(); +#endif + return tid; +} + +static inline Py_ALWAYS_INLINE int +_Py_IsOwnedByCurrentThread(PyObject *ob) +{ +#ifdef _Py_THREAD_SANITIZER + return _Py_atomic_load_uintptr_relaxed(&ob->ob_tid) == _Py_ThreadId(); +#else + return ob->ob_tid == _Py_ThreadId(); +#endif +} +#endif + +static inline Py_ssize_t Py_REFCNT(PyObject *ob) { +#if !defined(Py_GIL_DISABLED) + return ob->ob_refcnt; +#else + uint32_t local = _Py_atomic_load_uint32_relaxed(&ob->ob_ref_local); + if (local == _Py_IMMORTAL_REFCNT_LOCAL) { + return _Py_IMMORTAL_REFCNT; + } + Py_ssize_t shared = _Py_atomic_load_ssize_relaxed(&ob->ob_ref_shared); + return _Py_STATIC_CAST(Py_ssize_t, local) + + Py_ARITHMETIC_RIGHT_SHIFT(Py_ssize_t, shared, _Py_REF_SHARED_SHIFT); +#endif +} +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define Py_REFCNT(ob) Py_REFCNT(_PyObject_CAST(ob)) +#endif + + +// bpo-39573: The Py_SET_TYPE() function must be used to set an object type. +static inline PyTypeObject* Py_TYPE(PyObject *ob) { + return ob->ob_type; +} +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define Py_TYPE(ob) Py_TYPE(_PyObject_CAST(ob)) +#endif + +PyAPI_DATA(PyTypeObject) PyLong_Type; +PyAPI_DATA(PyTypeObject) PyBool_Type; + +// bpo-39573: The Py_SET_SIZE() function must be used to set an object size. +static inline Py_ssize_t Py_SIZE(PyObject *ob) { + assert(ob->ob_type != &PyLong_Type); + assert(ob->ob_type != &PyBool_Type); + return _PyVarObject_CAST(ob)->ob_size; +} +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define Py_SIZE(ob) Py_SIZE(_PyObject_CAST(ob)) +#endif + +static inline Py_ALWAYS_INLINE int _Py_IsImmortal(PyObject *op) +{ +#if defined(Py_GIL_DISABLED) + return (_Py_atomic_load_uint32_relaxed(&op->ob_ref_local) == + _Py_IMMORTAL_REFCNT_LOCAL); +#elif SIZEOF_VOID_P > 4 + return (_Py_CAST(PY_INT32_T, op->ob_refcnt) < 0); +#else + return (op->ob_refcnt == _Py_IMMORTAL_REFCNT); +#endif +} +#define _Py_IsImmortal(op) _Py_IsImmortal(_PyObject_CAST(op)) + +static inline int Py_IS_TYPE(PyObject *ob, PyTypeObject *type) { + return Py_TYPE(ob) == type; +} +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define Py_IS_TYPE(ob, type) Py_IS_TYPE(_PyObject_CAST(ob), (type)) +#endif + + +// Py_SET_REFCNT() implementation for stable ABI +PyAPI_FUNC(void) _Py_SetRefcnt(PyObject *ob, Py_ssize_t refcnt); + +static inline void Py_SET_REFCNT(PyObject *ob, Py_ssize_t refcnt) { +#if defined(Py_LIMITED_API) && Py_LIMITED_API+0 >= 0x030d0000 + // Stable ABI implements Py_SET_REFCNT() as a function call + // on limited C API version 3.13 and newer. + _Py_SetRefcnt(ob, refcnt); +#else + // This immortal check is for code that is unaware of immortal objects. + // The runtime tracks these objects and we should avoid as much + // as possible having extensions inadvertently change the refcnt + // of an immortalized object. + if (_Py_IsImmortal(ob)) { + return; + } + +#ifndef Py_GIL_DISABLED + ob->ob_refcnt = refcnt; +#else + if (_Py_IsOwnedByCurrentThread(ob)) { + if ((size_t)refcnt > (size_t)UINT32_MAX) { + // On overflow, make the object immortal + ob->ob_tid = _Py_UNOWNED_TID; + ob->ob_ref_local = _Py_IMMORTAL_REFCNT_LOCAL; + ob->ob_ref_shared = 0; + } + else { + // Set local refcount to desired refcount and shared refcount + // to zero, but preserve the shared refcount flags. + ob->ob_ref_local = _Py_STATIC_CAST(uint32_t, refcnt); + ob->ob_ref_shared &= _Py_REF_SHARED_FLAG_MASK; + } + } + else { + // Set local refcount to zero and shared refcount to desired refcount. + // Mark the object as merged. + ob->ob_tid = _Py_UNOWNED_TID; + ob->ob_ref_local = 0; + ob->ob_ref_shared = _Py_REF_SHARED(refcnt, _Py_REF_MERGED); + } +#endif // Py_GIL_DISABLED +#endif // Py_LIMITED_API+0 < 0x030d0000 +} +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define Py_SET_REFCNT(ob, refcnt) Py_SET_REFCNT(_PyObject_CAST(ob), (refcnt)) +#endif + + +static inline void Py_SET_TYPE(PyObject *ob, PyTypeObject *type) { + ob->ob_type = type; +} +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define Py_SET_TYPE(ob, type) Py_SET_TYPE(_PyObject_CAST(ob), type) +#endif + +static inline void Py_SET_SIZE(PyVarObject *ob, Py_ssize_t size) { + assert(ob->ob_base.ob_type != &PyLong_Type); + assert(ob->ob_base.ob_type != &PyBool_Type); +#ifdef Py_GIL_DISABLED + _Py_atomic_store_ssize_relaxed(&ob->ob_size, size); +#else + ob->ob_size = size; +#endif +} +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define Py_SET_SIZE(ob, size) Py_SET_SIZE(_PyVarObject_CAST(ob), (size)) +#endif + + +/* +Type objects contain a string containing the type name (to help somewhat +in debugging), the allocation parameters (see PyObject_New() and +PyObject_NewVar()), +and methods for accessing objects of the type. Methods are optional, a +nil pointer meaning that particular kind of access is not available for +this type. The Py_DECREF() macro uses the tp_dealloc method without +checking for a nil pointer; it should always be implemented except if +the implementation can guarantee that the reference count will never +reach zero (e.g., for statically allocated type objects). + +NB: the methods for certain type groups are now contained in separate +method blocks. +*/ + +typedef PyObject * (*unaryfunc)(PyObject *); +typedef PyObject * (*binaryfunc)(PyObject *, PyObject *); +typedef PyObject * (*ternaryfunc)(PyObject *, PyObject *, PyObject *); +typedef int (*inquiry)(PyObject *); +typedef Py_ssize_t (*lenfunc)(PyObject *); +typedef PyObject *(*ssizeargfunc)(PyObject *, Py_ssize_t); +typedef PyObject *(*ssizessizeargfunc)(PyObject *, Py_ssize_t, Py_ssize_t); +typedef int(*ssizeobjargproc)(PyObject *, Py_ssize_t, PyObject *); +typedef int(*ssizessizeobjargproc)(PyObject *, Py_ssize_t, Py_ssize_t, PyObject *); +typedef int(*objobjargproc)(PyObject *, PyObject *, PyObject *); + +typedef int (*objobjproc)(PyObject *, PyObject *); +typedef int (*visitproc)(PyObject *, void *); +typedef int (*traverseproc)(PyObject *, visitproc, void *); + + +typedef void (*freefunc)(void *); +typedef void (*destructor)(PyObject *); +typedef PyObject *(*getattrfunc)(PyObject *, char *); +typedef PyObject *(*getattrofunc)(PyObject *, PyObject *); +typedef int (*setattrfunc)(PyObject *, char *, PyObject *); +typedef int (*setattrofunc)(PyObject *, PyObject *, PyObject *); +typedef PyObject *(*reprfunc)(PyObject *); +typedef Py_hash_t (*hashfunc)(PyObject *); +typedef PyObject *(*richcmpfunc) (PyObject *, PyObject *, int); +typedef PyObject *(*getiterfunc) (PyObject *); +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); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030c0000 // 3.12 +typedef PyObject *(*vectorcallfunc)(PyObject *callable, PyObject *const *args, + size_t nargsf, PyObject *kwnames); +#endif + +typedef struct{ + int slot; /* slot id, see below */ + void *pfunc; /* function pointer */ +} PyType_Slot; + +typedef struct{ + const char* name; + int basicsize; + int itemsize; + unsigned int flags; + PyType_Slot *slots; /* terminated by slot==0. */ +} PyType_Spec; + +PyAPI_FUNC(PyObject*) PyType_FromSpec(PyType_Spec*); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +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); +#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(PyTypeObject *); +PyAPI_FUNC(void *) PyType_GetModuleState(PyTypeObject *); +#endif +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030B0000 +PyAPI_FUNC(PyObject *) PyType_GetName(PyTypeObject *); +PyAPI_FUNC(PyObject *) PyType_GetQualName(PyTypeObject *); +#endif +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030D0000 +PyAPI_FUNC(PyObject *) PyType_GetFullyQualifiedName(PyTypeObject *type); +PyAPI_FUNC(PyObject *) PyType_GetModuleName(PyTypeObject *type); +#endif +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030C0000 +PyAPI_FUNC(PyObject *) PyType_FromMetaclass(PyTypeObject*, PyObject*, PyType_Spec*, PyObject*); +PyAPI_FUNC(void *) PyObject_GetTypeData(PyObject *obj, PyTypeObject *cls); +PyAPI_FUNC(Py_ssize_t) PyType_GetTypeDataSize(PyTypeObject *cls); +#endif + +/* Generic type check */ +PyAPI_FUNC(int) PyType_IsSubtype(PyTypeObject *, PyTypeObject *); + +static inline int PyObject_TypeCheck(PyObject *ob, PyTypeObject *type) { + return Py_IS_TYPE(ob, type) || PyType_IsSubtype(Py_TYPE(ob), type); +} +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define PyObject_TypeCheck(ob, type) PyObject_TypeCheck(_PyObject_CAST(ob), (type)) +#endif + +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(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 *); + +/* Generic operations on objects */ +PyAPI_FUNC(PyObject *) PyObject_Repr(PyObject *); +PyAPI_FUNC(PyObject *) PyObject_Str(PyObject *); +PyAPI_FUNC(PyObject *) PyObject_ASCII(PyObject *); +PyAPI_FUNC(PyObject *) PyObject_Bytes(PyObject *); +PyAPI_FUNC(PyObject *) PyObject_RichCompare(PyObject *, PyObject *, int); +PyAPI_FUNC(int) PyObject_RichCompareBool(PyObject *, PyObject *, int); +PyAPI_FUNC(PyObject *) PyObject_GetAttrString(PyObject *, const char *); +PyAPI_FUNC(int) PyObject_SetAttrString(PyObject *, const char *, PyObject *); +PyAPI_FUNC(int) PyObject_DelAttrString(PyObject *v, const char *name); +PyAPI_FUNC(int) PyObject_HasAttrString(PyObject *, const char *); +PyAPI_FUNC(PyObject *) PyObject_GetAttr(PyObject *, PyObject *); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030d0000 +PyAPI_FUNC(int) PyObject_GetOptionalAttr(PyObject *, PyObject *, PyObject **); +PyAPI_FUNC(int) PyObject_GetOptionalAttrString(PyObject *, const char *, PyObject **); +#endif +PyAPI_FUNC(int) PyObject_SetAttr(PyObject *, PyObject *, PyObject *); +PyAPI_FUNC(int) PyObject_DelAttr(PyObject *v, PyObject *name); +PyAPI_FUNC(int) PyObject_HasAttr(PyObject *, PyObject *); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030d0000 +PyAPI_FUNC(int) PyObject_HasAttrWithError(PyObject *, PyObject *); +PyAPI_FUNC(int) PyObject_HasAttrStringWithError(PyObject *, const char *); +#endif +PyAPI_FUNC(PyObject *) PyObject_SelfIter(PyObject *); +PyAPI_FUNC(PyObject *) PyObject_GenericGetAttr(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 +PyAPI_FUNC(Py_hash_t) PyObject_Hash(PyObject *); +PyAPI_FUNC(Py_hash_t) PyObject_HashNotImplemented(PyObject *); +PyAPI_FUNC(int) PyObject_IsTrue(PyObject *); +PyAPI_FUNC(int) PyObject_Not(PyObject *); +PyAPI_FUNC(int) PyCallable_Check(PyObject *); +PyAPI_FUNC(void) PyObject_ClearWeakRefs(PyObject *); + +/* PyObject_Dir(obj) acts like Python builtins.dir(obj), returning a + list of strings. PyObject_Dir(NULL) is like builtins.dir(), + returning the names of the current locals. In this case, if there are + no current locals, NULL is returned, and PyErr_Occurred() is false. +*/ +PyAPI_FUNC(PyObject *) PyObject_Dir(PyObject *); + +/* Helpers for printing recursive container types */ +PyAPI_FUNC(int) Py_ReprEnter(PyObject *); +PyAPI_FUNC(void) Py_ReprLeave(PyObject *); + +/* Flag bits for printing: */ +#define Py_PRINT_RAW 1 /* No string quotes etc. */ + +/* +Type flags (tp_flags) + +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!). + +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 +optional feature; these flags remain of course.) + +Type definitions should use Py_TPFLAGS_DEFAULT for their tp_flags value. + +Code can use PyType_HasFeature(type_ob, flag_value) to test whether the +given type object has a specified feature. +*/ + +#ifndef Py_LIMITED_API + +/* Track types initialized using _PyStaticType_InitBuiltin(). */ +#define _Py_TPFLAGS_STATIC_BUILTIN (1 << 1) + +/* The values array is placed inline directly after the rest of + * the object. Implies Py_TPFLAGS_HAVE_GC. + */ +#define Py_TPFLAGS_INLINE_VALUES (1 << 2) + +/* Placement of weakref pointers are managed by the VM, not by the type. + * The VM will automatically set tp_weaklistoffset. + */ +#define Py_TPFLAGS_MANAGED_WEAKREF (1 << 3) + +/* Placement of dict (and values) pointers are managed by the VM, not by the type. + * The VM will automatically set tp_dictoffset. Implies Py_TPFLAGS_HAVE_GC. + */ +#define Py_TPFLAGS_MANAGED_DICT (1 << 4) + +#define Py_TPFLAGS_PREHEADER (Py_TPFLAGS_MANAGED_WEAKREF | Py_TPFLAGS_MANAGED_DICT) + +/* Set if instances of the type object are treated as sequences for pattern matching */ +#define Py_TPFLAGS_SEQUENCE (1 << 5) +/* Set if instances of the type object are treated as mappings for pattern matching */ +#define Py_TPFLAGS_MAPPING (1 << 6) +#endif + +/* Disallow creating instances of the type: set tp_new to NULL and don't create + * the "__new__" key in the type dictionary. */ +#define Py_TPFLAGS_DISALLOW_INSTANTIATION (1UL << 7) + +/* Set if the type object is immutable: type attributes cannot be set nor deleted */ +#define Py_TPFLAGS_IMMUTABLETYPE (1UL << 8) + +/* Set if the type object is dynamically allocated */ +#define Py_TPFLAGS_HEAPTYPE (1UL << 9) + +/* Set if the type allows subclassing */ +#define Py_TPFLAGS_BASETYPE (1UL << 10) + +/* Set if the type implements the vectorcall protocol (PEP 590) */ +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030C0000 +#define Py_TPFLAGS_HAVE_VECTORCALL (1UL << 11) +#ifndef Py_LIMITED_API +// Backwards compatibility alias for API that was provisional in Python 3.8 +#define _Py_TPFLAGS_HAVE_VECTORCALL Py_TPFLAGS_HAVE_VECTORCALL +#endif +#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) */ +#define Py_TPFLAGS_HAVE_GC (1UL << 14) + +/* These two bits are preserved for Stackless Python, next after this is 17 */ +#ifdef STACKLESS +#define Py_TPFLAGS_HAVE_STACKLESS_EXTENSION (3UL << 15) +#else +#define Py_TPFLAGS_HAVE_STACKLESS_EXTENSION 0 +#endif + +/* Objects behave like an unbound method */ +#define Py_TPFLAGS_METHOD_DESCRIPTOR (1UL << 17) + +/* Unused. Legacy flag */ +#define Py_TPFLAGS_VALID_VERSION_TAG (1UL << 19) + +/* Type is abstract and cannot be instantiated */ +#define Py_TPFLAGS_IS_ABSTRACT (1UL << 20) + +// This undocumented flag gives certain built-ins their unique pattern-matching +// behavior, which allows a single positional subpattern to match against the +// subject itself (rather than a mapped attribute on it): +#define _Py_TPFLAGS_MATCH_SELF (1UL << 22) + +/* Items (ob_size*tp_itemsize) are found at the end of an instance's memory */ +#define Py_TPFLAGS_ITEMS_AT_END (1UL << 23) + +/* These flags are used to determine if a type is a subclass. */ +#define Py_TPFLAGS_LONG_SUBCLASS (1UL << 24) +#define Py_TPFLAGS_LIST_SUBCLASS (1UL << 25) +#define Py_TPFLAGS_TUPLE_SUBCLASS (1UL << 26) +#define Py_TPFLAGS_BYTES_SUBCLASS (1UL << 27) +#define Py_TPFLAGS_UNICODE_SUBCLASS (1UL << 28) +#define Py_TPFLAGS_DICT_SUBCLASS (1UL << 29) +#define Py_TPFLAGS_BASE_EXC_SUBCLASS (1UL << 30) +#define Py_TPFLAGS_TYPE_SUBCLASS (1UL << 31) + +#define Py_TPFLAGS_DEFAULT ( \ + Py_TPFLAGS_HAVE_STACKLESS_EXTENSION | \ + 0) + +/* NOTE: Some of the following flags reuse lower bits (removed as part of the + * Python 3.0 transition). */ + +/* The following flags are kept for compatibility; in previous + * versions they indicated presence of newer tp_* fields on the + * type struct. + * Starting with 3.8, binary compatibility of C extensions across + * feature releases of Python is not supported anymore (except when + * using the stable ABI, in which all classes are created dynamically, + * using the interpreter's memory layout.) + * Note that older extensions using the stable ABI set these flags, + * so the bits must not be repurposed. + */ +#define Py_TPFLAGS_HAVE_FINALIZE (1UL << 0) +#define Py_TPFLAGS_HAVE_VERSION_TAG (1UL << 18) + + +/* +The macros Py_INCREF(op) and Py_DECREF(op) are used to increment or decrement +reference counts. Py_DECREF calls the object's deallocator function when +the refcount falls to 0; for +objects that don't contain references to other objects or heap memory +this can be the standard function free(). Both macros can be used +wherever a void expression is allowed. The argument must not be a +NULL pointer. If it may be NULL, use Py_XINCREF/Py_XDECREF instead. +The macro _Py_NewReference(op) initialize reference counts to 1, and +in special builds (Py_REF_DEBUG, Py_TRACE_REFS) performs additional +bookkeeping appropriate to the special build. + +We assume that the reference count field can never overflow; this can +be proven when the size of the field is the same as the pointer size, so +we ignore the possibility. Provided a C int is at least 32 bits (which +is implicitly assumed in many parts of this code), that's enough for +about 2**31 references to an object. + +XXX The following became out of date in Python 2.2, but I'm not sure +XXX what the full truth is now. Certainly, heap-allocated type objects +XXX can and should be deallocated. +Type objects should never be deallocated; the type pointer in an object +is not considered to be a reference to the type object, to save +complications in the deallocation function. (This is actually a +decision that's up to the implementer of each new type so if you want, +you can count such references to the type object.) +*/ + +#if defined(Py_REF_DEBUG) && !defined(Py_LIMITED_API) +PyAPI_FUNC(void) _Py_NegativeRefcount(const char *filename, int lineno, + PyObject *op); +PyAPI_FUNC(void) _Py_INCREF_IncRefTotal(void); +PyAPI_FUNC(void) _Py_DECREF_DecRefTotal(void); +#endif // Py_REF_DEBUG && !Py_LIMITED_API + +PyAPI_FUNC(void) _Py_Dealloc(PyObject *); + +/* +These are provided as conveniences to Python runtime embedders, so that +they can have object code that is not dependent on Python compilation flags. +*/ +PyAPI_FUNC(void) Py_IncRef(PyObject *); +PyAPI_FUNC(void) Py_DecRef(PyObject *); + +// Similar to Py_IncRef() and Py_DecRef() but the argument must be non-NULL. +// Private functions used by Py_INCREF() and Py_DECREF(). +PyAPI_FUNC(void) _Py_IncRef(PyObject *); +PyAPI_FUNC(void) _Py_DecRef(PyObject *); + +static inline Py_ALWAYS_INLINE void Py_INCREF(PyObject *op) +{ +#if defined(Py_LIMITED_API) && (Py_LIMITED_API+0 >= 0x030c0000 || defined(Py_REF_DEBUG)) + // Stable ABI implements Py_INCREF() as a function call on limited C API + // version 3.12 and newer, and on Python built in debug mode. _Py_IncRef() + // was added to Python 3.10.0a7, use Py_IncRef() on older Python versions. + // Py_IncRef() accepts NULL whereas _Py_IncRef() doesn't. +# if Py_LIMITED_API+0 >= 0x030a00A7 + _Py_IncRef(op); +# else + Py_IncRef(op); +# endif +#else + // Non-limited C API and limited C API for Python 3.9 and older access + // directly PyObject.ob_refcnt. +#if defined(Py_GIL_DISABLED) + uint32_t local = _Py_atomic_load_uint32_relaxed(&op->ob_ref_local); + uint32_t new_local = local + 1; + if (new_local == 0) { + // local is equal to _Py_IMMORTAL_REFCNT: do nothing + return; + } + if (_Py_IsOwnedByCurrentThread(op)) { + _Py_atomic_store_uint32_relaxed(&op->ob_ref_local, new_local); + } + else { + _Py_atomic_add_ssize(&op->ob_ref_shared, (1 << _Py_REF_SHARED_SHIFT)); + } +#elif SIZEOF_VOID_P > 4 + // Portable saturated add, branching on the carry flag and set low bits + PY_UINT32_T cur_refcnt = op->ob_refcnt_split[PY_BIG_ENDIAN]; + PY_UINT32_T new_refcnt = cur_refcnt + 1; + if (new_refcnt == 0) { + // cur_refcnt is equal to _Py_IMMORTAL_REFCNT: the object is immortal, + // do nothing + return; + } + op->ob_refcnt_split[PY_BIG_ENDIAN] = new_refcnt; +#else + // Explicitly check immortality against the immortal value + if (_Py_IsImmortal(op)) { + return; + } + op->ob_refcnt++; +#endif + _Py_INCREF_STAT_INC(); +#ifdef Py_REF_DEBUG + _Py_INCREF_IncRefTotal(); +#endif +#endif +} +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define Py_INCREF(op) Py_INCREF(_PyObject_CAST(op)) +#endif + + +#if !defined(Py_LIMITED_API) && defined(Py_GIL_DISABLED) +// Implements Py_DECREF on objects not owned by the current thread. +PyAPI_FUNC(void) _Py_DecRefShared(PyObject *); +PyAPI_FUNC(void) _Py_DecRefSharedDebug(PyObject *, const char *, int); + +// Called from Py_DECREF by the owning thread when the local refcount reaches +// zero. The call will deallocate the object if the shared refcount is also +// zero. Otherwise, the thread gives up ownership and merges the reference +// count fields. +PyAPI_FUNC(void) _Py_MergeZeroLocalRefcount(PyObject *); +#endif + +#if defined(Py_LIMITED_API) && (Py_LIMITED_API+0 >= 0x030c0000 || defined(Py_REF_DEBUG)) +// Stable ABI implements Py_DECREF() as a function call on limited C API +// version 3.12 and newer, and on Python built in debug mode. _Py_DecRef() was +// added to Python 3.10.0a7, use Py_DecRef() on older Python versions. +// Py_DecRef() accepts NULL whereas _Py_IncRef() doesn't. +static inline void Py_DECREF(PyObject *op) { +# if Py_LIMITED_API+0 >= 0x030a00A7 + _Py_DecRef(op); +# else + Py_DecRef(op); +# endif +} +#define Py_DECREF(op) Py_DECREF(_PyObject_CAST(op)) + +#elif defined(Py_GIL_DISABLED) && defined(Py_REF_DEBUG) +static inline void Py_DECREF(const char *filename, int lineno, PyObject *op) +{ + uint32_t local = _Py_atomic_load_uint32_relaxed(&op->ob_ref_local); + if (local == _Py_IMMORTAL_REFCNT_LOCAL) { + return; + } + _Py_DECREF_STAT_INC(); + _Py_DECREF_DecRefTotal(); + if (_Py_IsOwnedByCurrentThread(op)) { + if (local == 0) { + _Py_NegativeRefcount(filename, lineno, op); + } + local--; + _Py_atomic_store_uint32_relaxed(&op->ob_ref_local, local); + if (local == 0) { + _Py_MergeZeroLocalRefcount(op); + } + } + else { + _Py_DecRefSharedDebug(op, filename, lineno); + } +} +#define Py_DECREF(op) Py_DECREF(__FILE__, __LINE__, _PyObject_CAST(op)) + +#elif defined(Py_GIL_DISABLED) +static inline void Py_DECREF(PyObject *op) +{ + uint32_t local = _Py_atomic_load_uint32_relaxed(&op->ob_ref_local); + if (local == _Py_IMMORTAL_REFCNT_LOCAL) { + return; + } + _Py_DECREF_STAT_INC(); + if (_Py_IsOwnedByCurrentThread(op)) { + local--; + _Py_atomic_store_uint32_relaxed(&op->ob_ref_local, local); + if (local == 0) { + _Py_MergeZeroLocalRefcount(op); + } + } + else { + _Py_DecRefShared(op); + } +} +#define Py_DECREF(op) Py_DECREF(_PyObject_CAST(op)) + +#elif defined(Py_REF_DEBUG) +static inline void Py_DECREF(const char *filename, int lineno, PyObject *op) +{ + if (op->ob_refcnt <= 0) { + _Py_NegativeRefcount(filename, lineno, op); + } + if (_Py_IsImmortal(op)) { + return; + } + _Py_DECREF_STAT_INC(); + _Py_DECREF_DecRefTotal(); + if (--op->ob_refcnt == 0) { + _Py_Dealloc(op); + } +} +#define Py_DECREF(op) Py_DECREF(__FILE__, __LINE__, _PyObject_CAST(op)) + +#else +static inline Py_ALWAYS_INLINE void Py_DECREF(PyObject *op) +{ + // Non-limited C API and limited C API for Python 3.9 and older access + // directly PyObject.ob_refcnt. + if (_Py_IsImmortal(op)) { + return; + } + _Py_DECREF_STAT_INC(); + if (--op->ob_refcnt == 0) { + _Py_Dealloc(op); + } +} +#define Py_DECREF(op) Py_DECREF(_PyObject_CAST(op)) +#endif + + +/* Safely decref `op` and set `op` to NULL, especially useful in tp_clear + * and tp_dealloc implementations. + * + * Note that "the obvious" code can be deadly: + * + * Py_XDECREF(op); + * op = NULL; + * + * Typically, `op` is something like self->containee, and `self` is done + * using its `containee` member. In the code sequence above, suppose + * `containee` is non-NULL with a refcount of 1. Its refcount falls to + * 0 on the first line, which can trigger an arbitrary amount of code, + * possibly including finalizers (like __del__ methods or weakref callbacks) + * coded in Python, which in turn can release the GIL and allow other threads + * to run, etc. Such code may even invoke methods of `self` again, or cause + * cyclic gc to trigger, but-- oops! --self->containee still points to the + * object being torn down, and it may be in an insane state while being torn + * down. This has in fact been a rich historic source of miserable (rare & + * hard-to-diagnose) segfaulting (and other) bugs. + * + * The safe way is: + * + * Py_CLEAR(op); + * + * That arranges to set `op` to NULL _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. + * + * There are cases where it's safe to use the naive code, but they're brittle. + * For example, if `op` points to a Python integer, you know that destroying + * one of those can't cause problems -- but in part that relies on that + * Python integers aren't currently weakly referencable. Best practice is + * to use Py_CLEAR() even if you can't think of a reason for why you need to. + * + * gh-98724: Use a temporary variable to only evaluate the macro argument once, + * to avoid the duplication of side effects if the argument has side effects. + * + * gh-99701: If the PyObject* type is used with casting arguments to PyObject*, + * the code can be miscompiled with strict aliasing because of type punning. + * With strict aliasing, a compiler considers that two pointers of different + * types cannot read or write the same memory which enables optimization + * opportunities. + * + * If available, use _Py_TYPEOF() to use the 'op' type for temporary variables, + * and so avoid type punning. Otherwise, use memcpy() which causes type erasure + * and so prevents the compiler to reuse an old cached 'op' value after + * Py_CLEAR(). + */ +#ifdef _Py_TYPEOF +#define Py_CLEAR(op) \ + do { \ + _Py_TYPEOF(op)* _tmp_op_ptr = &(op); \ + _Py_TYPEOF(op) _tmp_old_op = (*_tmp_op_ptr); \ + if (_tmp_old_op != NULL) { \ + *_tmp_op_ptr = _Py_NULL; \ + Py_DECREF(_tmp_old_op); \ + } \ + } while (0) +#else +#define Py_CLEAR(op) \ + do { \ + PyObject **_tmp_op_ptr = _Py_CAST(PyObject**, &(op)); \ + PyObject *_tmp_old_op = (*_tmp_op_ptr); \ + if (_tmp_old_op != NULL) { \ + PyObject *_null_ptr = _Py_NULL; \ + memcpy(_tmp_op_ptr, &_null_ptr, sizeof(PyObject*)); \ + Py_DECREF(_tmp_old_op); \ + } \ + } while (0) +#endif + + +/* Function to use in case the object pointer can be NULL: */ +static inline void Py_XINCREF(PyObject *op) +{ + if (op != _Py_NULL) { + Py_INCREF(op); + } +} +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define Py_XINCREF(op) Py_XINCREF(_PyObject_CAST(op)) +#endif + +static inline void Py_XDECREF(PyObject *op) +{ + if (op != _Py_NULL) { + Py_DECREF(op); + } +} +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define Py_XDECREF(op) Py_XDECREF(_PyObject_CAST(op)) +#endif + +// Create a new strong reference to an object: +// increment the reference count of the object and return the object. +PyAPI_FUNC(PyObject*) Py_NewRef(PyObject *obj); + +// Similar to Py_NewRef(), but the object can be NULL. +PyAPI_FUNC(PyObject*) Py_XNewRef(PyObject *obj); + +static inline PyObject* _Py_NewRef(PyObject *obj) +{ + Py_INCREF(obj); + return obj; +} + +static inline PyObject* _Py_XNewRef(PyObject *obj) +{ + Py_XINCREF(obj); + return obj; +} + +// Py_NewRef() and Py_XNewRef() are exported as functions for the stable ABI. +// Names overridden with macros by static inline functions for best +// performances. +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define Py_NewRef(obj) _Py_NewRef(_PyObject_CAST(obj)) +# define Py_XNewRef(obj) _Py_XNewRef(_PyObject_CAST(obj)) +#else +# define Py_NewRef(obj) _Py_NewRef(obj) +# define Py_XNewRef(obj) _Py_XNewRef(obj) +#endif + + +#define Py_CONSTANT_NONE 0 +#define Py_CONSTANT_FALSE 1 +#define Py_CONSTANT_TRUE 2 +#define Py_CONSTANT_ELLIPSIS 3 +#define Py_CONSTANT_NOT_IMPLEMENTED 4 +#define Py_CONSTANT_ZERO 5 +#define Py_CONSTANT_ONE 6 +#define Py_CONSTANT_EMPTY_STR 7 +#define Py_CONSTANT_EMPTY_BYTES 8 +#define Py_CONSTANT_EMPTY_TUPLE 9 + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030d0000 +PyAPI_FUNC(PyObject*) Py_GetConstant(unsigned int constant_id); +PyAPI_FUNC(PyObject*) Py_GetConstantBorrowed(unsigned int constant_id); +#endif + + +/* +_Py_NoneStruct is an object of undefined type which can be used in contexts +where NULL (nil) is not suitable (since NULL often means 'error'). +*/ +PyAPI_DATA(PyObject) _Py_NoneStruct; /* Don't use this directly */ + +#if defined(Py_LIMITED_API) && Py_LIMITED_API+0 >= 0x030D0000 +# define Py_None Py_GetConstantBorrowed(Py_CONSTANT_NONE) +#else +# define Py_None (&_Py_NoneStruct) +#endif + +// Test if an object is the None singleton, the same as "x is None" in Python. +PyAPI_FUNC(int) Py_IsNone(PyObject *x); +#define Py_IsNone(x) Py_Is((x), Py_None) + +/* Macro for returning Py_None from a function */ +#define Py_RETURN_NONE return Py_None + +/* +Py_NotImplemented is a singleton used to signal that an operation is +not implemented for a given type combination. +*/ +PyAPI_DATA(PyObject) _Py_NotImplementedStruct; /* Don't use this directly */ + +#if defined(Py_LIMITED_API) && Py_LIMITED_API+0 >= 0x030D0000 +# define Py_NotImplemented Py_GetConstantBorrowed(Py_CONSTANT_NOT_IMPLEMENTED) +#else +# define Py_NotImplemented (&_Py_NotImplementedStruct) +#endif + +/* Macro for returning Py_NotImplemented from a function */ +#define Py_RETURN_NOTIMPLEMENTED return Py_NotImplemented + +/* Rich comparison opcodes */ +#define Py_LT 0 +#define Py_LE 1 +#define Py_EQ 2 +#define Py_NE 3 +#define Py_GT 4 +#define Py_GE 5 + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030A0000 +/* Result of calling PyIter_Send */ +typedef enum { + PYGEN_RETURN = 0, + PYGEN_ERROR = -1, + PYGEN_NEXT = 1, +} PySendResult; +#endif + +/* + * Macro for implementing rich comparisons + * + * Needs to be a macro because any C-comparable type can be used. + */ +#define Py_RETURN_RICHCOMPARE(val1, val2, op) \ + do { \ + switch (op) { \ + case Py_EQ: if ((val1) == (val2)) Py_RETURN_TRUE; Py_RETURN_FALSE; \ + case Py_NE: if ((val1) != (val2)) Py_RETURN_TRUE; Py_RETURN_FALSE; \ + case Py_LT: if ((val1) < (val2)) Py_RETURN_TRUE; Py_RETURN_FALSE; \ + case Py_GT: if ((val1) > (val2)) Py_RETURN_TRUE; Py_RETURN_FALSE; \ + case Py_LE: if ((val1) <= (val2)) Py_RETURN_TRUE; Py_RETURN_FALSE; \ + case Py_GE: if ((val1) >= (val2)) Py_RETURN_TRUE; Py_RETURN_FALSE; \ + default: \ + Py_UNREACHABLE(); \ + } \ + } while (0) + + +/* +More conventions +================ + +Argument Checking +----------------- + +Functions that take objects as arguments normally don't check for nil +arguments, but they do check the type of the argument, and return an +error if the function doesn't apply to the type. + +Failure Modes +------------- + +Functions may fail for a variety of reasons, including running out of +memory. This is communicated to the caller in two ways: an error string +is set (see errors.h), and the function result differs: functions that +normally return a pointer return NULL for failure, functions returning +an integer return -1 (which could be a legal return value too!), and +other functions return 0 for success and -1 for failure. +Callers should always check for errors before using the result. If +an error was set, the caller must either explicitly clear it, or pass +the error on to its caller. + +Reference Counts +---------------- + +It takes a while to get used to the proper usage of reference counts. + +Functions that create an object set the reference count to 1; such new +objects must be stored somewhere or destroyed again with Py_DECREF(). +Some functions that 'store' objects, such as PyTuple_SetItem() and +PyList_SetItem(), +don't increment the reference count of the object, since the most +frequent use is to store a fresh object. Functions that 'retrieve' +objects, such as PyTuple_GetItem() and PyDict_GetItemString(), also +don't increment +the reference count, since most frequently the object is only looked at +quickly. Thus, to retrieve an object and store it again, the caller +must call Py_INCREF() explicitly. + +NOTE: functions that 'consume' a reference count, like +PyList_SetItem(), consume the reference even if the object wasn't +successfully stored, to simplify error handling. + +It seems attractive to make other functions that take an object as +argument consume a reference count; however, this may quickly get +confusing (even the current practice is already confusing). Consider +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 + + +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 +# ifdef Py_GIL_DISABLED + flags = _Py_atomic_load_ulong_relaxed(&type->tp_flags); +# else + flags = type->tp_flags; +# endif +#endif + return ((flags & feature) != 0); +} + +#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); +} +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define PyType_Check(op) PyType_Check(_PyObject_CAST(op)) +#endif + +#define _PyType_CAST(op) \ + (assert(PyType_Check(op)), _Py_CAST(PyTypeObject*, (op))) + +static inline int PyType_CheckExact(PyObject *op) { + return Py_IS_TYPE(op, &PyType_Type); +} +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define PyType_CheckExact(op) PyType_CheckExact(_PyObject_CAST(op)) +#endif + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030d0000 +PyAPI_FUNC(PyObject *) PyType_GetModuleByDef(PyTypeObject *, PyModuleDef *); +#endif + +#ifdef __cplusplus +} +#endif +#endif // !Py_OBJECT_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/objimpl.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/objimpl.h new file mode 100644 index 000000000..56472a72e --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/objimpl.h @@ -0,0 +1,211 @@ +// The PyObject_ memory family: high-level object memory interfaces. +// See pymem.h for the low-level PyMem_ family. + +#ifndef Py_OBJIMPL_H +#define Py_OBJIMPL_H +#ifdef __cplusplus +extern "C" { +#endif + +/* BEWARE: + + Each interface exports both functions and macros. Extension modules should + use the functions, to ensure binary compatibility across Python versions. + Because the Python implementation is free to change internal details, and + the macros may (or may not) expose details for speed, if you do use the + macros you must recompile your extensions with each Python release. + + Never mix calls to PyObject_ memory functions with calls to the platform + malloc/realloc/ calloc/free, or with calls to PyMem_. +*/ + +/* +Functions and macros for modules that implement new object types. + + - PyObject_New(type, typeobj) allocates memory for a new object of the given + type, and initializes part of it. 'type' must be the C structure type used + to represent the object, and 'typeobj' the address of the corresponding + type object. Reference count and type pointer are filled in; the rest of + the bytes of the object are *undefined*! The resulting expression type is + 'type *'. The size of the object is determined by the tp_basicsize field + of the type object. + + - PyObject_NewVar(type, typeobj, n) is similar but allocates a variable-size + object with room for n items. In addition to the refcount and type pointer + fields, this also fills in the ob_size field. + + - PyObject_Free(op) releases the memory allocated for an object. It does not + run a destructor -- it only frees the memory. + + - PyObject_Init(op, typeobj) and PyObject_InitVar(op, typeobj, n) don't + allocate memory. Instead of a 'type' parameter, they take a pointer to a + new object (allocated by an arbitrary allocator), and initialize its object + header fields. + +Note that objects created with PyObject_{New, NewVar} are allocated using the +specialized Python allocator (implemented in obmalloc.c), if WITH_PYMALLOC is +enabled. In addition, a special debugging allocator is used if Py_DEBUG +macro is also defined. + +In case a specific form of memory management is needed (for example, if you +must use the platform malloc heap(s), or shared memory, or C++ local storage or +operator new), you must first allocate the object with your custom allocator, +then pass its pointer to PyObject_{Init, InitVar} for filling in its Python- +specific fields: reference count, type pointer, possibly others. You should +be aware that Python has no control over these objects because they don't +cooperate with the Python memory manager. Such objects may not be eligible +for automatic garbage collection and you have to make sure that they are +released accordingly whenever their destructor gets called (cf. the specific +form of memory management you're using). + +Unless you have specific memory management requirements, use +PyObject_{New, NewVar, Del}. +*/ + +/* + * Raw object memory interface + * =========================== + */ + +/* Functions to call the same malloc/realloc/free as used by Python's + object allocator. If WITH_PYMALLOC is enabled, these may differ from + the platform malloc/realloc/free. The Python object allocator is + designed for fast, cache-conscious allocation of many "small" objects, + and with low hidden memory overhead. + + PyObject_Malloc(0) returns a unique non-NULL pointer if possible. + + PyObject_Realloc(NULL, n) acts like PyObject_Malloc(n). + PyObject_Realloc(p != NULL, 0) does not return NULL, or free the memory + at p. + + Returned pointers must be checked for NULL explicitly; no action is + performed on failure other than to return NULL (no warning it printed, no + exception is set, etc). + + For allocating objects, use PyObject_{New, NewVar} instead whenever + possible. The PyObject_{Malloc, Realloc, Free} family is exposed + so that you can exploit Python's small-block allocator for non-object + uses. If you must use these routines to allocate object memory, make sure + the object gets initialized via PyObject_{Init, InitVar} after obtaining + the raw memory. +*/ +PyAPI_FUNC(void *) PyObject_Malloc(size_t size); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 +PyAPI_FUNC(void *) PyObject_Calloc(size_t nelem, size_t elsize); +#endif +PyAPI_FUNC(void *) PyObject_Realloc(void *ptr, size_t new_size); +PyAPI_FUNC(void) PyObject_Free(void *ptr); + + +// Deprecated aliases only kept for backward compatibility. +// PyObject_Del and PyObject_DEL are defined with no parameter to be able to +// use them as function pointers (ex: tp_free = PyObject_Del). +#define PyObject_MALLOC PyObject_Malloc +#define PyObject_REALLOC PyObject_Realloc +#define PyObject_FREE PyObject_Free +#define PyObject_Del PyObject_Free +#define PyObject_DEL PyObject_Free + + +/* + * Generic object allocator interface + * ================================== + */ + +/* Functions */ +PyAPI_FUNC(PyObject *) PyObject_Init(PyObject *, PyTypeObject *); +PyAPI_FUNC(PyVarObject *) PyObject_InitVar(PyVarObject *, + PyTypeObject *, Py_ssize_t); + +#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)) + + +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_NewVar(type, typeobj, n) \ + ( (type *) _PyObject_NewVar((typeobj), (n)) ) + +// Alias to PyObject_NewVar(). In Python 3.8, PyObject_NEW_VAR() called +// directly PyObject_MALLOC() with _PyObject_VAR_SIZE(). +#define PyObject_NEW_VAR(type, typeobj, n) PyObject_NewVar(type, (typeobj), (n)) + + +/* + * Garbage Collection Support + * ========================== + */ + +/* C equivalent of gc.collect(). */ +PyAPI_FUNC(Py_ssize_t) PyGC_Collect(void); +/* C API for controlling the state of the garbage collector */ +PyAPI_FUNC(int) PyGC_Enable(void); +PyAPI_FUNC(int) PyGC_Disable(void); +PyAPI_FUNC(int) PyGC_IsEnabled(void); + +/* Test if a type has a GC head */ +#define PyType_IS_GC(t) PyType_HasFeature((t), Py_TPFLAGS_HAVE_GC) + +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)) ) + + + +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 stop tracking this object. + * + * See also private _PyObject_GC_UNTRACK() macro. */ +PyAPI_FUNC(void) PyObject_GC_UnTrack(void *); + +PyAPI_FUNC(void) PyObject_GC_Del(void *); + +#define PyObject_GC_New(type, typeobj) \ + _Py_CAST(type*, _PyObject_GC_New(typeobj)) +#define PyObject_GC_NewVar(type, typeobj, n) \ + _Py_CAST(type*, _PyObject_GC_NewVar((typeobj), (n))) + +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 + * "visit" and "arg". This is intended to keep tp_traverse functions + * looking as much alike as possible. + */ +#define Py_VISIT(op) \ + do { \ + if (op) { \ + 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 + +#ifdef __cplusplus +} +#endif +#endif // !Py_OBJIMPL_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/opcode.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/opcode.h new file mode 100644 index 000000000..2619b6900 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/opcode.h @@ -0,0 +1,42 @@ +#ifndef Py_OPCODE_H +#define Py_OPCODE_H +#ifdef __cplusplus +extern "C" { +#endif + +#include "opcode_ids.h" + + +#define NB_ADD 0 +#define NB_AND 1 +#define NB_FLOOR_DIVIDE 2 +#define NB_LSHIFT 3 +#define NB_MATRIX_MULTIPLY 4 +#define NB_MULTIPLY 5 +#define NB_REMAINDER 6 +#define NB_OR 7 +#define NB_POWER 8 +#define NB_RSHIFT 9 +#define NB_SUBTRACT 10 +#define NB_TRUE_DIVIDE 11 +#define NB_XOR 12 +#define NB_INPLACE_ADD 13 +#define NB_INPLACE_AND 14 +#define NB_INPLACE_FLOOR_DIVIDE 15 +#define NB_INPLACE_LSHIFT 16 +#define NB_INPLACE_MATRIX_MULTIPLY 17 +#define NB_INPLACE_MULTIPLY 18 +#define NB_INPLACE_REMAINDER 19 +#define NB_INPLACE_OR 20 +#define NB_INPLACE_POWER 21 +#define NB_INPLACE_RSHIFT 22 +#define NB_INPLACE_SUBTRACT 23 +#define NB_INPLACE_TRUE_DIVIDE 24 +#define NB_INPLACE_XOR 25 + +#define NB_OPARG_LAST 25 + +#ifdef __cplusplus +} +#endif +#endif /* !Py_OPCODE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/opcode_ids.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/opcode_ids.h new file mode 100644 index 000000000..647f7c0ec --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/opcode_ids.h @@ -0,0 +1,244 @@ +// This file is generated by Tools/cases_generator/opcode_id_generator.py +// from: +// Python/bytecodes.c +// Do not edit! + +#ifndef Py_OPCODE_IDS_H +#define Py_OPCODE_IDS_H +#ifdef __cplusplus +extern "C" { +#endif + +/* Instruction opcodes for compiled code */ +#define CACHE 0 +#define BEFORE_ASYNC_WITH 1 +#define BEFORE_WITH 2 +#define BINARY_OP_INPLACE_ADD_UNICODE 3 +#define BINARY_SLICE 4 +#define BINARY_SUBSCR 5 +#define CHECK_EG_MATCH 6 +#define CHECK_EXC_MATCH 7 +#define CLEANUP_THROW 8 +#define DELETE_SUBSCR 9 +#define END_ASYNC_FOR 10 +#define END_FOR 11 +#define END_SEND 12 +#define EXIT_INIT_CHECK 13 +#define FORMAT_SIMPLE 14 +#define FORMAT_WITH_SPEC 15 +#define GET_AITER 16 +#define RESERVED 17 +#define GET_ANEXT 18 +#define GET_ITER 19 +#define GET_LEN 20 +#define GET_YIELD_FROM_ITER 21 +#define INTERPRETER_EXIT 22 +#define LOAD_ASSERTION_ERROR 23 +#define LOAD_BUILD_CLASS 24 +#define LOAD_LOCALS 25 +#define MAKE_FUNCTION 26 +#define MATCH_KEYS 27 +#define MATCH_MAPPING 28 +#define MATCH_SEQUENCE 29 +#define NOP 30 +#define POP_EXCEPT 31 +#define POP_TOP 32 +#define PUSH_EXC_INFO 33 +#define PUSH_NULL 34 +#define RETURN_GENERATOR 35 +#define RETURN_VALUE 36 +#define SETUP_ANNOTATIONS 37 +#define STORE_SLICE 38 +#define STORE_SUBSCR 39 +#define TO_BOOL 40 +#define UNARY_INVERT 41 +#define UNARY_NEGATIVE 42 +#define UNARY_NOT 43 +#define WITH_EXCEPT_START 44 +#define BINARY_OP 45 +#define BUILD_CONST_KEY_MAP 46 +#define BUILD_LIST 47 +#define BUILD_MAP 48 +#define BUILD_SET 49 +#define BUILD_SLICE 50 +#define BUILD_STRING 51 +#define BUILD_TUPLE 52 +#define CALL 53 +#define CALL_FUNCTION_EX 54 +#define CALL_INTRINSIC_1 55 +#define CALL_INTRINSIC_2 56 +#define CALL_KW 57 +#define COMPARE_OP 58 +#define CONTAINS_OP 59 +#define CONVERT_VALUE 60 +#define COPY 61 +#define COPY_FREE_VARS 62 +#define DELETE_ATTR 63 +#define DELETE_DEREF 64 +#define DELETE_FAST 65 +#define DELETE_GLOBAL 66 +#define DELETE_NAME 67 +#define DICT_MERGE 68 +#define DICT_UPDATE 69 +#define ENTER_EXECUTOR 70 +#define EXTENDED_ARG 71 +#define FOR_ITER 72 +#define GET_AWAITABLE 73 +#define IMPORT_FROM 74 +#define IMPORT_NAME 75 +#define IS_OP 76 +#define JUMP_BACKWARD 77 +#define JUMP_BACKWARD_NO_INTERRUPT 78 +#define JUMP_FORWARD 79 +#define LIST_APPEND 80 +#define LIST_EXTEND 81 +#define LOAD_ATTR 82 +#define LOAD_CONST 83 +#define LOAD_DEREF 84 +#define LOAD_FAST 85 +#define LOAD_FAST_AND_CLEAR 86 +#define LOAD_FAST_CHECK 87 +#define LOAD_FAST_LOAD_FAST 88 +#define LOAD_FROM_DICT_OR_DEREF 89 +#define LOAD_FROM_DICT_OR_GLOBALS 90 +#define LOAD_GLOBAL 91 +#define LOAD_NAME 92 +#define LOAD_SUPER_ATTR 93 +#define MAKE_CELL 94 +#define MAP_ADD 95 +#define MATCH_CLASS 96 +#define POP_JUMP_IF_FALSE 97 +#define POP_JUMP_IF_NONE 98 +#define POP_JUMP_IF_NOT_NONE 99 +#define POP_JUMP_IF_TRUE 100 +#define RAISE_VARARGS 101 +#define RERAISE 102 +#define RETURN_CONST 103 +#define SEND 104 +#define SET_ADD 105 +#define SET_FUNCTION_ATTRIBUTE 106 +#define SET_UPDATE 107 +#define STORE_ATTR 108 +#define STORE_DEREF 109 +#define STORE_FAST 110 +#define STORE_FAST_LOAD_FAST 111 +#define STORE_FAST_STORE_FAST 112 +#define STORE_GLOBAL 113 +#define STORE_NAME 114 +#define SWAP 115 +#define UNPACK_EX 116 +#define UNPACK_SEQUENCE 117 +#define YIELD_VALUE 118 +#define RESUME 149 +#define BINARY_OP_ADD_FLOAT 150 +#define BINARY_OP_ADD_INT 151 +#define BINARY_OP_ADD_UNICODE 152 +#define BINARY_OP_MULTIPLY_FLOAT 153 +#define BINARY_OP_MULTIPLY_INT 154 +#define BINARY_OP_SUBTRACT_FLOAT 155 +#define BINARY_OP_SUBTRACT_INT 156 +#define BINARY_SUBSCR_DICT 157 +#define BINARY_SUBSCR_GETITEM 158 +#define BINARY_SUBSCR_LIST_INT 159 +#define BINARY_SUBSCR_STR_INT 160 +#define BINARY_SUBSCR_TUPLE_INT 161 +#define CALL_ALLOC_AND_ENTER_INIT 162 +#define CALL_BOUND_METHOD_EXACT_ARGS 163 +#define CALL_BOUND_METHOD_GENERAL 164 +#define CALL_BUILTIN_CLASS 165 +#define CALL_BUILTIN_FAST 166 +#define CALL_BUILTIN_FAST_WITH_KEYWORDS 167 +#define CALL_BUILTIN_O 168 +#define CALL_ISINSTANCE 169 +#define CALL_LEN 170 +#define CALL_LIST_APPEND 171 +#define CALL_METHOD_DESCRIPTOR_FAST 172 +#define CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS 173 +#define CALL_METHOD_DESCRIPTOR_NOARGS 174 +#define CALL_METHOD_DESCRIPTOR_O 175 +#define CALL_NON_PY_GENERAL 176 +#define CALL_PY_EXACT_ARGS 177 +#define CALL_PY_GENERAL 178 +#define CALL_STR_1 179 +#define CALL_TUPLE_1 180 +#define CALL_TYPE_1 181 +#define COMPARE_OP_FLOAT 182 +#define COMPARE_OP_INT 183 +#define COMPARE_OP_STR 184 +#define CONTAINS_OP_DICT 185 +#define CONTAINS_OP_SET 186 +#define FOR_ITER_GEN 187 +#define FOR_ITER_LIST 188 +#define FOR_ITER_RANGE 189 +#define FOR_ITER_TUPLE 190 +#define LOAD_ATTR_CLASS 191 +#define LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN 192 +#define LOAD_ATTR_INSTANCE_VALUE 193 +#define LOAD_ATTR_METHOD_LAZY_DICT 194 +#define LOAD_ATTR_METHOD_NO_DICT 195 +#define LOAD_ATTR_METHOD_WITH_VALUES 196 +#define LOAD_ATTR_MODULE 197 +#define LOAD_ATTR_NONDESCRIPTOR_NO_DICT 198 +#define LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES 199 +#define LOAD_ATTR_PROPERTY 200 +#define LOAD_ATTR_SLOT 201 +#define LOAD_ATTR_WITH_HINT 202 +#define LOAD_GLOBAL_BUILTIN 203 +#define LOAD_GLOBAL_MODULE 204 +#define LOAD_SUPER_ATTR_ATTR 205 +#define LOAD_SUPER_ATTR_METHOD 206 +#define RESUME_CHECK 207 +#define SEND_GEN 208 +#define STORE_ATTR_INSTANCE_VALUE 209 +#define STORE_ATTR_SLOT 210 +#define STORE_ATTR_WITH_HINT 211 +#define STORE_SUBSCR_DICT 212 +#define STORE_SUBSCR_LIST_INT 213 +#define TO_BOOL_ALWAYS_TRUE 214 +#define TO_BOOL_BOOL 215 +#define TO_BOOL_INT 216 +#define TO_BOOL_LIST 217 +#define TO_BOOL_NONE 218 +#define TO_BOOL_STR 219 +#define UNPACK_SEQUENCE_LIST 220 +#define UNPACK_SEQUENCE_TUPLE 221 +#define UNPACK_SEQUENCE_TWO_TUPLE 222 +#define INSTRUMENTED_RESUME 236 +#define INSTRUMENTED_END_FOR 237 +#define INSTRUMENTED_END_SEND 238 +#define INSTRUMENTED_RETURN_VALUE 239 +#define INSTRUMENTED_RETURN_CONST 240 +#define INSTRUMENTED_YIELD_VALUE 241 +#define INSTRUMENTED_LOAD_SUPER_ATTR 242 +#define INSTRUMENTED_FOR_ITER 243 +#define INSTRUMENTED_CALL 244 +#define INSTRUMENTED_CALL_KW 245 +#define INSTRUMENTED_CALL_FUNCTION_EX 246 +#define INSTRUMENTED_INSTRUCTION 247 +#define INSTRUMENTED_JUMP_FORWARD 248 +#define INSTRUMENTED_JUMP_BACKWARD 249 +#define INSTRUMENTED_POP_JUMP_IF_TRUE 250 +#define INSTRUMENTED_POP_JUMP_IF_FALSE 251 +#define INSTRUMENTED_POP_JUMP_IF_NONE 252 +#define INSTRUMENTED_POP_JUMP_IF_NOT_NONE 253 +#define INSTRUMENTED_LINE 254 +#define JUMP 256 +#define JUMP_NO_INTERRUPT 257 +#define LOAD_CLOSURE 258 +#define LOAD_METHOD 259 +#define LOAD_SUPER_METHOD 260 +#define LOAD_ZERO_SUPER_ATTR 261 +#define LOAD_ZERO_SUPER_METHOD 262 +#define POP_BLOCK 263 +#define SETUP_CLEANUP 264 +#define SETUP_FINALLY 265 +#define SETUP_WITH 266 +#define STORE_FAST_MAYBE_NULL 267 + +#define HAVE_ARGUMENT 44 +#define MIN_INSTRUMENTED_OPCODE 236 + +#ifdef __cplusplus +} +#endif +#endif /* !Py_OPCODE_IDS_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/osdefs.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/osdefs.h new file mode 100644 index 000000000..2599e87a9 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/osdefs.h @@ -0,0 +1,57 @@ +// Operating system dependencies. +// +// Define constants: +// +// - ALTSEP +// - DELIM +// - MAXPATHLEN +// - SEP + +#ifndef Py_OSDEFS_H +#define Py_OSDEFS_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef MS_WINDOWS +# define SEP L'\\' +# define ALTSEP L'/' +# define MAXPATHLEN 256 +# define DELIM L';' +#endif + +#ifdef __VXWORKS__ +# define DELIM L';' +#endif + +/* Filename separator */ +#ifndef SEP +# define SEP L'/' +#endif + +/* Max pathname length */ +#ifdef __hpux +# include +# include +# ifndef PATH_MAX +# define PATH_MAX MAXPATHLEN +# endif +#endif + +#ifndef MAXPATHLEN +# if defined(PATH_MAX) && PATH_MAX > 1024 +# define MAXPATHLEN PATH_MAX +# else +# define MAXPATHLEN 1024 +# endif +#endif + +/* Search path entry delimiter */ +#ifndef DELIM +# define DELIM L':' +#endif + +#ifdef __cplusplus +} +#endif +#endif // !Py_OSDEFS_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/osmodule.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/osmodule.h new file mode 100644 index 000000000..9095c2fdd --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/osmodule.h @@ -0,0 +1,17 @@ + +/* os module interface */ + +#ifndef Py_OSMODULE_H +#define Py_OSMODULE_H +#ifdef __cplusplus +extern "C" { +#endif + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03060000 +PyAPI_FUNC(PyObject *) PyOS_FSPath(PyObject *path); +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_OSMODULE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/patchlevel.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/patchlevel.h new file mode 100644 index 000000000..977f1b037 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/patchlevel.h @@ -0,0 +1,35 @@ + +/* Python version identification scheme. + + When the major or minor version changes, the VERSION variable in + configure.ac must also be changed. + + There is also (independent) API version information in modsupport.h. +*/ + +/* Values for PY_RELEASE_LEVEL */ +#define PY_RELEASE_LEVEL_ALPHA 0xA +#define PY_RELEASE_LEVEL_BETA 0xB +#define PY_RELEASE_LEVEL_GAMMA 0xC /* For release candidates */ +#define PY_RELEASE_LEVEL_FINAL 0xF /* Serial should be 0 here */ + /* Higher for patch releases */ + +/* Version parsed out into numeric values */ +/*--start constants--*/ +#define PY_MAJOR_VERSION 3 +#define PY_MINOR_VERSION 13 +#define PY_MICRO_VERSION 0 +#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_FINAL +#define PY_RELEASE_SERIAL 0 + +/* Version as a string */ +#define PY_VERSION "3.13.0+" +/*--end constants--*/ + +/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2. + Use this for numeric comparisons, e.g. #if PY_VERSION_HEX >= ... */ +#define PY_VERSION_HEX ((PY_MAJOR_VERSION << 24) | \ + (PY_MINOR_VERSION << 16) | \ + (PY_MICRO_VERSION << 8) | \ + (PY_RELEASE_LEVEL << 4) | \ + (PY_RELEASE_SERIAL << 0)) diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/py_curses.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/py_curses.h new file mode 100644 index 000000000..79b1b01fc --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/py_curses.h @@ -0,0 +1,116 @@ + +#ifndef Py_CURSES_H +#define Py_CURSES_H + +#ifdef __APPLE__ +/* +** On Mac OS X 10.2 [n]curses.h and stdlib.h use different guards +** against multiple definition of wchar_t. +*/ +#ifdef _BSD_WCHAR_T_DEFINED_ +#define _WCHAR_T +#endif +#endif /* __APPLE__ */ + +/* On FreeBSD, [n]curses.h and stdlib.h/wchar.h use different guards + against multiple definition of wchar_t and wint_t. */ +#if defined(__FreeBSD__) && defined(_XOPEN_SOURCE_EXTENDED) +# ifndef __wchar_t +# define __wchar_t +# endif +# ifndef __wint_t +# define __wint_t +# endif +#endif + +#if defined(WINDOW_HAS_FLAGS) && defined(__APPLE__) +/* gh-109617, gh-115383: we can rely on the default value for NCURSES_OPAQUE on + most platforms, but not on macOS. This is because, starting with Xcode 15, + Apple-provided ncurses.h comes from ncurses 6 (which defaults to opaque + structs) but can still be linked to older versions of ncurses dynamic + libraries which don't provide functions such as is_pad() to deal with opaque + structs. Setting NCURSES_OPAQUE to 0 is harmless in all ncurses releases to + this date (provided that a thread-safe implementation is not required), but + this might change in the future. This fix might become irrelevant once + support for macOS 13 or earlier is dropped. */ +#define NCURSES_OPAQUE 0 +#endif + +#if defined(HAVE_NCURSESW_NCURSES_H) +# include +#elif defined(HAVE_NCURSESW_CURSES_H) +# include +#elif defined(HAVE_NCURSES_NCURSES_H) +# include +#elif defined(HAVE_NCURSES_CURSES_H) +# include +#elif defined(HAVE_NCURSES_H) +# include +#elif defined(HAVE_CURSES_H) +# include +#endif + +#ifdef NCURSES_VERSION +/* configure was checking , but we will + use , which has some or all these features. */ +#if !defined(WINDOW_HAS_FLAGS) && \ + (NCURSES_VERSION_PATCH+0 < 20070303 || !(NCURSES_OPAQUE+0)) +/* the WINDOW flags field was always accessible in ncurses prior to 20070303; + after that, it depends on the value of NCURSES_OPAQUE. */ +#define WINDOW_HAS_FLAGS 1 +#endif +#if !defined(HAVE_CURSES_IS_PAD) && NCURSES_VERSION_PATCH+0 >= 20090906 +#define HAVE_CURSES_IS_PAD 1 +#endif +#ifndef MVWDELCH_IS_EXPRESSION +#define MVWDELCH_IS_EXPRESSION 1 +#endif +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#define PyCurses_API_pointers 4 + +/* Type declarations */ + +typedef struct { + PyObject_HEAD + WINDOW *win; + char *encoding; +} PyCursesWindowObject; + +#define PyCursesWindow_Check(v) Py_IS_TYPE((v), &PyCursesWindow_Type) + +#define PyCurses_CAPSULE_NAME "_curses._C_API" + + +#ifdef CURSES_MODULE +/* This section is used when compiling _cursesmodule.c */ + +#else +/* This section is used in modules that use the _cursesmodule API */ + +static void **PyCurses_API; + +#define PyCursesWindow_Type (*_PyType_CAST(PyCurses_API[0])) +#define PyCursesSetupTermCalled {if (! ((int (*)(void))PyCurses_API[1]) () ) return NULL;} +#define PyCursesInitialised {if (! ((int (*)(void))PyCurses_API[2]) () ) return NULL;} +#define PyCursesInitialisedColor {if (! ((int (*)(void))PyCurses_API[3]) () ) return NULL;} + +#define import_curses() \ + PyCurses_API = (void **)PyCapsule_Import(PyCurses_CAPSULE_NAME, 1); + +#endif + +/* general error messages */ +static const char catchall_ERR[] = "curses function returned ERR"; +static const char catchall_NULL[] = "curses function returned NULL"; + +#ifdef __cplusplus +} +#endif + +#endif /* !defined(Py_CURSES_H) */ + diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyatomic.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyatomic.h new file mode 100644 index 000000000..2ce2c81cf --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyatomic.h @@ -0,0 +1,16 @@ +#ifndef Py_ATOMIC_H +#define Py_ATOMIC_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_ATOMIC_H +# include "cpython/pyatomic.h" +# undef Py_CPYTHON_ATOMIC_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_ATOMIC_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pybuffer.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pybuffer.h new file mode 100644 index 000000000..ca1c6058d --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pybuffer.h @@ -0,0 +1,145 @@ +/* Public Py_buffer API */ + +#ifndef Py_BUFFER_H +#define Py_BUFFER_H +#ifdef __cplusplus +extern "C" { +#endif + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030b0000 + +/* === New Buffer API ============================================ + * Limited API and stable ABI since Python 3.11 + * + * Py_buffer struct layout and size is now part of the stable abi3. The + * struct layout and size must not be changed in any way, as it would + * break the ABI. + * + */ + +typedef struct { + 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 *); + +/* 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(const Py_buffer *view, const 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, const Py_buffer *view, + Py_ssize_t len, char order); + +PyAPI_FUNC(int) PyBuffer_FromContiguous(const Py_buffer *view, const 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); + +/* Maximum number of dimensions */ +#define PyBUF_MAX_NDIM 64 + +/* Flags for getting buffers. Keep these in sync with inspect.BufferFlags. */ +#define PyBUF_SIMPLE 0 +#define PyBUF_WRITABLE 0x0001 + +#ifndef Py_LIMITED_API +/* we used to include an E, backwards compatible alias */ +#define PyBUF_WRITEABLE PyBUF_WRITABLE +#endif + +#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 + +#endif /* !Py_LIMITED_API || Py_LIMITED_API >= 3.11 */ + +#ifdef __cplusplus +} +#endif +#endif /* Py_BUFFER_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pycapsule.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pycapsule.h new file mode 100644 index 000000000..666b9f867 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pycapsule.h @@ -0,0 +1,58 @@ + +/* Capsule objects let you wrap a C "void *" pointer in a Python + object. They're a way of passing data through the Python interpreter + without creating your own custom type. + + Capsules are used for communication between extension modules. + They provide a way for an extension module to export a C interface + to other extension modules, so that extension modules can use the + Python import mechanism to link to one another. + + For more information, please see "c-api/capsule.html" in the + documentation. +*/ + +#ifndef Py_CAPSULE_H +#define Py_CAPSULE_H +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_DATA(PyTypeObject) PyCapsule_Type; + +typedef void (*PyCapsule_Destructor)(PyObject *); + +#define PyCapsule_CheckExact(op) Py_IS_TYPE((op), &PyCapsule_Type) + + +PyAPI_FUNC(PyObject *) PyCapsule_New( + void *pointer, + const char *name, + PyCapsule_Destructor destructor); + +PyAPI_FUNC(void *) PyCapsule_GetPointer(PyObject *capsule, const char *name); + +PyAPI_FUNC(PyCapsule_Destructor) PyCapsule_GetDestructor(PyObject *capsule); + +PyAPI_FUNC(const char *) PyCapsule_GetName(PyObject *capsule); + +PyAPI_FUNC(void *) PyCapsule_GetContext(PyObject *capsule); + +PyAPI_FUNC(int) PyCapsule_IsValid(PyObject *capsule, const char *name); + +PyAPI_FUNC(int) PyCapsule_SetPointer(PyObject *capsule, void *pointer); + +PyAPI_FUNC(int) PyCapsule_SetDestructor(PyObject *capsule, PyCapsule_Destructor destructor); + +PyAPI_FUNC(int) PyCapsule_SetName(PyObject *capsule, const char *name); + +PyAPI_FUNC(int) PyCapsule_SetContext(PyObject *capsule, void *context); + +PyAPI_FUNC(void *) PyCapsule_Import( + const char *name, /* UTF-8 encoded string */ + int no_block); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_CAPSULE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyconfig-android-aarch64.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyconfig-android-aarch64.h new file mode 100644 index 000000000..5f0e5839e --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyconfig-android-aarch64.h @@ -0,0 +1,2015 @@ +/* pyconfig.h. Generated from pyconfig.h.in by configure. */ +/* pyconfig.h.in. Generated from configure.ac by autoheader. */ + + +#ifndef Py_PYCONFIG_H +#define Py_PYCONFIG_H + + +/* 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 */ + +/* 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 */ + +/* The normal alignment of `long', in bytes. */ +#define ALIGNOF_LONG 8 + +/* The normal alignment of `max_align_t', in bytes. */ +#define ALIGNOF_MAX_ALIGN_T 16 + +/* The normal alignment of `size_t', in bytes. */ +#define ALIGNOF_SIZE_T 8 + +/* Alternative SOABI used in debug build to load C extensions built in release + mode */ +/* #undef ALT_SOABI */ + +/* The Android API level. */ +#define ANDROID_API_LEVEL 21 + +/* Define if C doubles are 64-bit IEEE 754 binary format, stored in ARM + mixed-endian order (byte order 45670123) */ +/* #undef DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 */ + +/* Define if C doubles are 64-bit IEEE 754 binary format, stored with the most + significant byte first */ +/* #undef DOUBLE_IS_BIG_ENDIAN_IEEE754 */ + +/* Define if C doubles are 64-bit IEEE 754 binary format, stored with the + least significant byte first */ +#define DOUBLE_IS_LITTLE_ENDIAN_IEEE754 1 + +/* 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 if getpgrp() must be called as getpgrp(0). */ +/* #undef GETPGRP_HAVE_ARG */ + +/* Define if you have the 'accept' function. */ +#define HAVE_ACCEPT 1 + +/* Define to 1 if you have the `accept4' function. */ +#define HAVE_ACCEPT4 1 + +/* Define to 1 if you have the `acosh' function. */ +#define HAVE_ACOSH 1 + +/* struct addrinfo (netdb.h) */ +#define HAVE_ADDRINFO 1 + +/* Define to 1 if you have the `alarm' function. */ +#define HAVE_ALARM 1 + +/* Define if aligned memory access is required */ +/* #undef HAVE_ALIGNED_REQUIRED */ + +/* Define to 1 if you have the header file. */ +#define HAVE_ALLOCA_H 1 + +/* Define this if your time.h defines altzone. */ +/* #undef HAVE_ALTZONE */ + +/* Define to 1 if you have the `asinh' function. */ +#define HAVE_ASINH 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ASM_TYPES_H 1 + +/* Define to 1 if you have the `atanh' function. */ +#define HAVE_ATANH 1 + +/* Define if you have the 'bind' function. */ +#define HAVE_BIND 1 + +/* Define to 1 if you have the `bind_textdomain_codeset' function. */ +/* #undef HAVE_BIND_TEXTDOMAIN_CODESET */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_BLUETOOTH_BLUETOOTH_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_BLUETOOTH_H */ + +/* Define if mbstowcs(NULL, "text", 0) does not return the number of wide + chars that would be converted. */ +/* #undef HAVE_BROKEN_MBSTOWCS */ + +/* Define if nice() returns success/failure instead of the new priority. */ +/* #undef HAVE_BROKEN_NICE */ + +/* Define if the system reports an invalid PIPE_BUF value. */ +/* #undef HAVE_BROKEN_PIPE_BUF */ + +/* Define if poll() sets errno on invalid file descriptors. */ +/* #undef HAVE_BROKEN_POLL */ + +/* Define if the Posix semaphores do not work on your system */ +/* #undef HAVE_BROKEN_POSIX_SEMAPHORES */ + +/* Define if pthread_sigmask() does not work on your system. */ +/* #undef HAVE_BROKEN_PTHREAD_SIGMASK */ + +/* define to 1 if your sem_getvalue is broken. */ +#define HAVE_BROKEN_SEM_GETVALUE 1 + +/* Define if 'unsetenv' does not return an int. */ +/* #undef HAVE_BROKEN_UNSETENV */ + +/* Has builtin __atomic_load_n() and __atomic_store_n() functions */ +#define HAVE_BUILTIN_ATOMIC 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_BZLIB_H 1 + +/* Define to 1 if you have the 'chflags' function. */ +/* #undef HAVE_CHFLAGS */ + +/* Define to 1 if you have the `chmod' function. */ +#define HAVE_CHMOD 1 + +/* Define to 1 if you have the `chown' function. */ +#define HAVE_CHOWN 1 + +/* Define if you have the 'chroot' function. */ +/* #undef HAVE_CHROOT */ + +/* Define to 1 if you have the `clock' function. */ +#define HAVE_CLOCK 1 + +/* Define to 1 if you have the `clock_getres' function. */ +#define HAVE_CLOCK_GETRES 1 + +/* Define to 1 if you have the `clock_gettime' function. */ +#define HAVE_CLOCK_GETTIME 1 + +/* Define to 1 if you have the `clock_nanosleep' function. */ +/* #undef HAVE_CLOCK_NANOSLEEP */ + +/* Define to 1 if you have the `clock_settime' function. */ +/* #undef HAVE_CLOCK_SETTIME */ + +/* Define to 1 if the system has the type `clock_t'. */ +#define HAVE_CLOCK_T 1 + +/* Define to 1 if you have the `closefrom' function. */ +/* #undef HAVE_CLOSEFROM */ + +/* Define to 1 if you have the `close_range' function. */ +/* #undef HAVE_CLOSE_RANGE */ + +/* Define if the C compiler supports computed gotos. */ +/* #undef HAVE_COMPUTED_GOTOS */ + +/* Define to 1 if you have the `confstr' function. */ +/* #undef HAVE_CONFSTR */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_CONIO_H */ + +/* Define if you have the 'connect' function. */ +#define HAVE_CONNECT 1 + +/* Define to 1 if you have the `copy_file_range' function. */ +/* #undef HAVE_COPY_FILE_RANGE */ + +/* Define to 1 if you have the `ctermid' function. */ +/* #undef HAVE_CTERMID */ + +/* Define if you have the 'ctermid_r' function. */ +/* #undef HAVE_CTERMID_R */ + +/* Define if you have the 'filter' function. */ +/* #undef HAVE_CURSES_FILTER */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_CURSES_H */ + +/* Define if you have the 'has_key' function. */ +/* #undef HAVE_CURSES_HAS_KEY */ + +/* Define if you have the 'immedok' function. */ +/* #undef HAVE_CURSES_IMMEDOK */ + +/* Define if you have the 'is_pad' function. */ +/* #undef HAVE_CURSES_IS_PAD */ + +/* Define if you have the 'is_term_resized' function. */ +/* #undef HAVE_CURSES_IS_TERM_RESIZED */ + +/* Define if you have the 'resizeterm' function. */ +/* #undef HAVE_CURSES_RESIZETERM */ + +/* Define if you have the 'resize_term' function. */ +/* #undef HAVE_CURSES_RESIZE_TERM */ + +/* Define if you have the 'syncok' function. */ +/* #undef HAVE_CURSES_SYNCOK */ + +/* Define if you have the 'typeahead' function. */ +/* #undef HAVE_CURSES_TYPEAHEAD */ + +/* Define if you have the 'use_env' function. */ +/* #undef HAVE_CURSES_USE_ENV */ + +/* Define if you have the 'wchgat' function. */ +/* #undef HAVE_CURSES_WCHGAT */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_DB_H */ + +/* Define to 1 if you have the declaration of `RTLD_DEEPBIND', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_DEEPBIND 0 + +/* Define to 1 if you have the declaration of `RTLD_GLOBAL', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_GLOBAL 1 + +/* Define to 1 if you have the declaration of `RTLD_LAZY', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_LAZY 1 + +/* Define to 1 if you have the declaration of `RTLD_LOCAL', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_LOCAL 1 + +/* Define to 1 if you have the declaration of `RTLD_MEMBER', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_MEMBER 0 + +/* Define to 1 if you have the declaration of `RTLD_NODELETE', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_NODELETE 1 + +/* Define to 1 if you have the declaration of `RTLD_NOLOAD', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_NOLOAD 1 + +/* Define to 1 if you have the declaration of `RTLD_NOW', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_NOW 1 + +/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. + */ +/* #undef HAVE_DECL_TZNAME */ + +/* Define to 1 if you have the device macros. */ +#define HAVE_DEVICE_MACROS 1 + +/* Define to 1 if you have the /dev/ptc device file. */ +/* #undef HAVE_DEV_PTC */ + +/* Define to 1 if you have the /dev/ptmx device file. */ +/* #undef HAVE_DEV_PTMX */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_DIRECT_H */ + +/* Define to 1 if the dirent structure has a d_type field */ +#define HAVE_DIRENT_D_TYPE 1 + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +#define HAVE_DIRENT_H 1 + +/* Define if you have the 'dirfd' function or macro. */ +#define HAVE_DIRFD 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if you have the `dlopen' function. */ +#define HAVE_DLOPEN 1 + +/* Define to 1 if you have the `dup' function. */ +#define HAVE_DUP 1 + +/* Define to 1 if you have the `dup2' function. */ +#define HAVE_DUP2 1 + +/* Define to 1 if you have the `dup3' function. */ +#define HAVE_DUP3 1 + +/* Define if you have the '_dyld_shared_cache_contains_path' function. */ +/* #undef HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH */ + +/* Defined when any dynamic module loading is enabled. */ +#define HAVE_DYNAMIC_LOADING 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_EDITLINE_READLINE_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_ENDIAN_H 1 + +/* Define if you have the 'epoll_create' function. */ +#define HAVE_EPOLL 1 + +/* Define if you have the 'epoll_create1' function. */ +#define HAVE_EPOLL_CREATE1 1 + +/* Define to 1 if you have the `erf' function. */ +#define HAVE_ERF 1 + +/* Define to 1 if you have the `erfc' function. */ +#define HAVE_ERFC 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ERRNO_H 1 + +/* Define if you have the 'eventfd' function. */ +#define HAVE_EVENTFD 1 + +/* 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 `expm1' function. */ +#define HAVE_EXPM1 1 + +/* Define to 1 if you have the `faccessat' function. */ +#define HAVE_FACCESSAT 1 + +/* Define if you have the 'fchdir' function. */ +#define HAVE_FCHDIR 1 + +/* Define to 1 if you have the `fchmod' function. */ +#define HAVE_FCHMOD 1 + +/* Define to 1 if you have the `fchmodat' function. */ +/* #undef HAVE_FCHMODAT */ + +/* Define to 1 if you have the `fchown' function. */ +#define HAVE_FCHOWN 1 + +/* Define to 1 if you have the `fchownat' function. */ +#define HAVE_FCHOWNAT 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_FCNTL_H 1 + +/* Define if you have the 'fdatasync' function. */ +#define HAVE_FDATASYNC 1 + +/* 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 `fexecve' function. */ +/* #undef HAVE_FEXECVE */ + +/* Define if you have the 'ffi_closure_alloc' function. */ +#define HAVE_FFI_CLOSURE_ALLOC 1 + +/* Define if you have the 'ffi_prep_cif_var' function. */ +#define HAVE_FFI_PREP_CIF_VAR 1 + +/* Define if you have the 'ffi_prep_closure_loc' function. */ +#define HAVE_FFI_PREP_CLOSURE_LOC 1 + +/* Define to 1 if you have the `flock' function. */ +#define HAVE_FLOCK 1 + +/* Define to 1 if you have the `fork' function. */ +#define HAVE_FORK 1 + +/* Define to 1 if you have the `fork1' function. */ +/* #undef HAVE_FORK1 */ + +/* Define to 1 if you have the `forkpty' function. */ +/* #undef HAVE_FORKPTY */ + +/* Define to 1 if you have the `fpathconf' function. */ +#define HAVE_FPATHCONF 1 + +/* Define to 1 if you have the `fseek64' function. */ +/* #undef HAVE_FSEEK64 */ + +/* Define to 1 if you have the `fseeko' function. */ +#define HAVE_FSEEKO 1 + +/* Define to 1 if you have the `fstatat' function. */ +#define HAVE_FSTATAT 1 + +/* Define to 1 if you have the `fstatvfs' function. */ +#define HAVE_FSTATVFS 1 + +/* Define if you have the 'fsync' function. */ +#define HAVE_FSYNC 1 + +/* Define to 1 if you have the `ftell64' function. */ +/* #undef HAVE_FTELL64 */ + +/* Define to 1 if you have the `ftello' function. */ +#define HAVE_FTELLO 1 + +/* Define to 1 if you have the `ftime' function. */ +/* #undef HAVE_FTIME */ + +/* Define to 1 if you have the `ftruncate' function. */ +#define HAVE_FTRUNCATE 1 + +/* Define to 1 if you have the `futimens' function. */ +#define HAVE_FUTIMENS 1 + +/* Define to 1 if you have the `futimes' function. */ +/* #undef HAVE_FUTIMES */ + +/* Define to 1 if you have the `futimesat' function. */ +/* #undef HAVE_FUTIMESAT */ + +/* Define to 1 if you have the `gai_strerror' function. */ +#define HAVE_GAI_STRERROR 1 + +/* Define if we can use gcc inline assembler to get and set mc68881 fpcr */ +/* #undef HAVE_GCC_ASM_FOR_MC68881 */ + +/* Define if we can use x64 gcc inline assembler */ +/* #undef HAVE_GCC_ASM_FOR_X64 */ + +/* Define if we can use gcc inline assembler to get and set x87 control word + */ +/* #undef HAVE_GCC_ASM_FOR_X87 */ + +/* Define if your compiler provides __uint128_t */ +#define HAVE_GCC_UINT128_T 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_GDBM_DASH_NDBM_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_GDBM_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_GDBM_NDBM_H */ + +/* Define if you have the getaddrinfo function. */ +#define HAVE_GETADDRINFO 1 + +/* Define this if you have flockfile(), getc_unlocked(), and funlockfile() */ +#define HAVE_GETC_UNLOCKED 1 + +/* Define to 1 if you have the `getegid' function. */ +#define HAVE_GETEGID 1 + +/* Define to 1 if you have the `getentropy' function. */ +/* #undef HAVE_GETENTROPY */ + +/* Define to 1 if you have the `geteuid' function. */ +#define HAVE_GETEUID 1 + +/* Define to 1 if you have the `getgid' function. */ +#define HAVE_GETGID 1 + +/* Define to 1 if you have the `getgrent' function. */ +/* #undef HAVE_GETGRENT */ + +/* Define to 1 if you have the `getgrgid' function. */ +#define HAVE_GETGRGID 1 + +/* Define to 1 if you have the `getgrgid_r' function. */ +/* #undef HAVE_GETGRGID_R */ + +/* Define to 1 if you have the `getgrnam_r' function. */ +/* #undef HAVE_GETGRNAM_R */ + +/* Define to 1 if you have the `getgrouplist' function. */ +#define HAVE_GETGROUPLIST 1 + +/* Define to 1 if you have the `getgroups' function. */ +#define HAVE_GETGROUPS 1 + +/* Define if you have the 'gethostbyaddr' function. */ +#define HAVE_GETHOSTBYADDR 1 + +/* Define to 1 if you have the `gethostbyname' function. */ +#define HAVE_GETHOSTBYNAME 1 + +/* Define this if you have some version of gethostbyname_r() */ +#define HAVE_GETHOSTBYNAME_R 1 + +/* Define this if you have the 3-arg version of gethostbyname_r(). */ +/* #undef HAVE_GETHOSTBYNAME_R_3_ARG */ + +/* Define this if you have the 5-arg version of gethostbyname_r(). */ +/* #undef HAVE_GETHOSTBYNAME_R_5_ARG */ + +/* Define this if you have the 6-arg version of gethostbyname_r(). */ +#define HAVE_GETHOSTBYNAME_R_6_ARG 1 + +/* Define to 1 if you have the `gethostname' function. */ +#define HAVE_GETHOSTNAME 1 + +/* Define to 1 if you have the `getitimer' function. */ +#define HAVE_GETITIMER 1 + +/* Define to 1 if you have the `getloadavg' function. */ +/* #undef HAVE_GETLOADAVG */ + +/* Define to 1 if you have the `getlogin' function. */ +#define HAVE_GETLOGIN 1 + +/* Define to 1 if you have the `getnameinfo' function. */ +#define HAVE_GETNAMEINFO 1 + +/* Define if you have the 'getpagesize' function. */ +#define HAVE_GETPAGESIZE 1 + +/* Define if you have the 'getpeername' function. */ +#define HAVE_GETPEERNAME 1 + +/* Define to 1 if you have the `getpgid' function. */ +#define HAVE_GETPGID 1 + +/* Define to 1 if you have the `getpgrp' function. */ +#define HAVE_GETPGRP 1 + +/* Define to 1 if you have the `getpid' function. */ +#define HAVE_GETPID 1 + +/* Define to 1 if you have the `getppid' function. */ +#define HAVE_GETPPID 1 + +/* Define to 1 if you have the `getpriority' function. */ +#define HAVE_GETPRIORITY 1 + +/* Define if you have the 'getprotobyname' function. */ +#define HAVE_GETPROTOBYNAME 1 + +/* Define to 1 if you have the `getpwent' function. */ +/* #undef HAVE_GETPWENT */ + +/* Define to 1 if you have the `getpwnam_r' function. */ +#define HAVE_GETPWNAM_R 1 + +/* Define to 1 if you have the `getpwuid' function. */ +#define HAVE_GETPWUID 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 */ + +/* Define to 1 if the Linux getrandom() syscall is available */ +#define HAVE_GETRANDOM_SYSCALL 1 + +/* Define to 1 if you have the `getresgid' function. */ +#define HAVE_GETRESGID 1 + +/* Define to 1 if you have the `getresuid' function. */ +#define HAVE_GETRESUID 1 + +/* Define to 1 if you have the `getrusage' function. */ +#define HAVE_GETRUSAGE 1 + +/* Define if you have the 'getservbyname' function. */ +#define HAVE_GETSERVBYNAME 1 + +/* Define if you have the 'getservbyport' function. */ +#define HAVE_GETSERVBYPORT 1 + +/* Define to 1 if you have the `getsid' function. */ +#define HAVE_GETSID 1 + +/* Define if you have the 'getsockname' function. */ +#define HAVE_GETSOCKNAME 1 + +/* Define to 1 if you have the `getspent' function. */ +/* #undef HAVE_GETSPENT */ + +/* Define to 1 if you have the `getspnam' function. */ +/* #undef HAVE_GETSPNAM */ + +/* Define to 1 if you have the `getuid' function. */ +#define HAVE_GETUID 1 + +/* Define to 1 if you have the `getwd' function. */ +/* #undef HAVE_GETWD */ + +/* Define if glibc has incorrect _FORTIFY_SOURCE wrappers for memmove and + bcopy. */ +/* #undef HAVE_GLIBC_MEMMOVE_BUG */ + +/* Define to 1 if you have the `grantpt' function. */ +#define HAVE_GRANTPT 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_GRP_H 1 + +/* Define if you have the 'hstrerror' function. */ +#define HAVE_HSTRERROR 1 + +/* Define this if you have le64toh() */ +#define HAVE_HTOLE64 1 + +/* Define to 1 if you have the `if_nameindex' function. */ +/* #undef HAVE_IF_NAMEINDEX */ + +/* Define if you have the 'inet_aton' function. */ +#define HAVE_INET_ATON 1 + +/* Define if you have the 'inet_ntoa' function. */ +#define HAVE_INET_NTOA 1 + +/* Define if you have the 'inet_pton' function. */ +#define HAVE_INET_PTON 1 + +/* Define to 1 if you have the `initgroups' function. */ +/* #undef HAVE_INITGROUPS */ + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_IO_H */ + +/* Define if gcc has the ipa-pure-const bug. */ +/* #undef HAVE_IPA_PURE_CONST_BUG */ + +/* Define to 1 if you have the `kill' function. */ +#define HAVE_KILL 1 + +/* Define to 1 if you have the `killpg' function. */ +#define HAVE_KILLPG 1 + +/* Define if you have the 'kqueue' function. */ +/* #undef HAVE_KQUEUE */ + +/* Define to 1 if you have the header file. */ +#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.) */ +/* #undef HAVE_LARGEFILE_SUPPORT */ + +/* Define to 1 if you have the 'lchflags' function. */ +/* #undef HAVE_LCHFLAGS */ + +/* Define to 1 if you have the `lchmod' function. */ +/* #undef HAVE_LCHMOD */ + +/* Define to 1 if you have the `lchown' function. */ +#define HAVE_LCHOWN 1 + +/* Define to 1 if you want to build _blake2 module with libb2 */ +/* #undef HAVE_LIBB2 */ + +/* Define to 1 if you have the `db' library (-ldb). */ +/* #undef HAVE_LIBDB */ + +/* Define to 1 if you have the `dl' library (-ldl). */ +#define HAVE_LIBDL 1 + +/* Define to 1 if you have the `dld' library (-ldld). */ +/* #undef HAVE_LIBDLD */ + +/* Define to 1 if you have the `ieee' library (-lieee). */ +/* #undef HAVE_LIBIEEE */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LIBINTL_H */ + +/* Define to 1 if you have the `resolv' library (-lresolv). */ +/* #undef HAVE_LIBRESOLV */ + +/* Define to 1 if you have the `sendfile' library (-lsendfile). */ +/* #undef HAVE_LIBSENDFILE */ + +/* Define to 1 if you have the `sqlite3' library (-lsqlite3). */ +#define HAVE_LIBSQLITE3 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LIBUTIL_H */ + +/* Define if you have the 'link' function. */ +#define HAVE_LINK 1 + +/* Define to 1 if you have the `linkat' function. */ +#define HAVE_LINKAT 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_AUXVEC_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_CAN_BCM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_CAN_H 1 + +/* Define to 1 if you have the 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 to 1 if you have the 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 header file. */ +#define HAVE_LINUX_FS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_LIMITS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_MEMFD_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_NETLINK_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_QRTR_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_RANDOM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_SOUNDCARD_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_TIPC_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_VM_SOCKETS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_WAIT_H 1 + +/* Define if you have the 'listen' function. */ +#define HAVE_LISTEN 1 + +/* Define to 1 if you have the `lockf' function. */ +/* #undef HAVE_LOCKF */ + +/* Define to 1 if you have the `log1p' function. */ +#define HAVE_LOG1P 1 + +/* Define to 1 if you have the `log2' function. */ +#define HAVE_LOG2 1 + +/* Define to 1 if you have the `login_tty' function. */ +/* #undef HAVE_LOGIN_TTY */ + +/* 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. */ +#define HAVE_LSTAT 1 + +/* Define to 1 if you have the `lutimes' function. */ +/* #undef HAVE_LUTIMES */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LZMA_H */ + +/* 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 to 1 if you have the `memrchr' function. */ +#define HAVE_MEMRCHR 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_MINIX_CONFIG_H */ + +/* Define to 1 if you have the `mkdirat' function. */ +#define HAVE_MKDIRAT 1 + +/* Define to 1 if you have the `mkfifo' function. */ +#define HAVE_MKFIFO 1 + +/* Define to 1 if you have the `mkfifoat' function. */ +/* #undef HAVE_MKFIFOAT */ + +/* Define to 1 if you have the `mknod' function. */ +#define HAVE_MKNOD 1 + +/* Define to 1 if you have the `mknodat' function. */ +#define HAVE_MKNODAT 1 + +/* Define to 1 if you have the `mktime' function. */ +#define HAVE_MKTIME 1 + +/* Define to 1 if you have the `mmap' function. */ +#define HAVE_MMAP 1 + +/* Define to 1 if you have the `mremap' function. */ +#define HAVE_MREMAP 1 + +/* Define to 1 if you have the `nanosleep' function. */ +#define HAVE_NANOSLEEP 1 + +/* Define if you have the 'ncurses' library */ +/* #undef HAVE_NCURSES */ + +/* Define if you have the 'ncursesw' library */ +/* #undef HAVE_NCURSESW */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSESW_CURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSESW_NCURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSESW_PANEL_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSES_CURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSES_NCURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSES_PANEL_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NDBM_H */ + +/* Define to 1 if you have the header file, and it defines `DIR'. */ +/* #undef HAVE_NDIR_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NETCAN_CAN_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_NETDB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_NETINET_IN_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NETLINK_NETLINK_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_NETPACKET_PACKET_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_NET_ETHERNET_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_NET_IF_H 1 + +/* Define to 1 if you have the `nice' function. */ +#define HAVE_NICE 1 + +/* Define if the internal form of wchar_t in non-Unicode locales is not + Unicode. */ +/* #undef HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION */ + +/* Define to 1 if you have the `openat' function. */ +#define HAVE_OPENAT 1 + +/* Define to 1 if you have the `opendir' function. */ +#define HAVE_OPENDIR 1 + +/* Define to 1 if you have the `openpty' function. */ +/* #undef HAVE_OPENPTY */ + +/* Define if you have the 'panel' library */ +/* #undef HAVE_PANEL */ + +/* Define if you have the 'panelw' library */ +/* #undef HAVE_PANELW */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_PANEL_H */ + +/* Define to 1 if you have the `pathconf' function. */ +#define HAVE_PATHCONF 1 + +/* Define to 1 if you have the `pause' function. */ +#define HAVE_PAUSE 1 + +/* Define to 1 if you have the `pipe' function. */ +#define HAVE_PIPE 1 + +/* Define to 1 if you have the `pipe2' function. */ +#define HAVE_PIPE2 1 + +/* Define to 1 if you have the `plock' function. */ +/* #undef HAVE_PLOCK */ + +/* Define to 1 if you have the `poll' function. */ +#define HAVE_POLL 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_POLL_H 1 + +/* Define to 1 if you have the `posix_fadvise' function. */ +#define HAVE_POSIX_FADVISE 1 + +/* Define to 1 if you have the `posix_fallocate' function. */ +#define HAVE_POSIX_FALLOCATE 1 + +/* Define to 1 if you have the `posix_openpt' function. */ +#define HAVE_POSIX_OPENPT 1 + +/* Define to 1 if you have the `posix_spawn' function. */ +/* #undef HAVE_POSIX_SPAWN */ + +/* Define to 1 if you have the `posix_spawnp' function. */ +/* #undef HAVE_POSIX_SPAWNP */ + +/* Define to 1 if you have the `posix_spawn_file_actions_addclosefrom_np' + function. */ +/* #undef HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSEFROM_NP */ + +/* Define to 1 if you have the `pread' function. */ +#define HAVE_PREAD 1 + +/* Define to 1 if you have the `preadv' function. */ +/* #undef HAVE_PREADV */ + +/* Define to 1 if you have the `preadv2' function. */ +/* #undef HAVE_PREADV2 */ + +/* Define if you have the 'prlimit' function. */ +#define HAVE_PRLIMIT 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_PROCESS_H */ + +/* Define to 1 if you have the `process_vm_readv' function. */ +/* #undef HAVE_PROCESS_VM_READV */ + +/* 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_cond_timedwait_relative_np' function. + */ +/* #undef HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE_NP */ + +/* Defined for Solaris 2.6 bug in pthread header. */ +/* #undef HAVE_PTHREAD_DESTRUCTOR */ + +/* Define to 1 if you have the `pthread_getcpuclockid' function. */ +#define HAVE_PTHREAD_GETCPUCLOCKID 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_PTHREAD_H 1 + +/* Define to 1 if you have the `pthread_init' function. */ +/* #undef HAVE_PTHREAD_INIT */ + +/* Define to 1 if you have the `pthread_kill' function. */ +#define HAVE_PTHREAD_KILL 1 + +/* Define to 1 if you have the `pthread_sigmask' function. */ +#define HAVE_PTHREAD_SIGMASK 1 + +/* Define if platform requires stubbed pthreads support */ +/* #undef HAVE_PTHREAD_STUBS */ + +/* Define to 1 if you have the `ptsname' function. */ +#define HAVE_PTSNAME 1 + +/* Define to 1 if you have the `ptsname_r' function. */ +#define HAVE_PTSNAME_R 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_PTY_H 1 + +/* Define to 1 if you have the `pwrite' function. */ +#define HAVE_PWRITE 1 + +/* Define to 1 if you have the `pwritev' function. */ +/* #undef HAVE_PWRITEV */ + +/* Define to 1 if you have the `pwritev2' function. */ +/* #undef HAVE_PWRITEV2 */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_READLINE_READLINE_H */ + +/* Define to 1 if you have the `readlink' function. */ +#define HAVE_READLINK 1 + +/* Define to 1 if you have the `readlinkat' function. */ +#define HAVE_READLINKAT 1 + +/* Define to 1 if you have the `readv' function. */ +#define HAVE_READV 1 + +/* Define to 1 if you have the `realpath' function. */ +#define HAVE_REALPATH 1 + +/* Define if you have the 'recvfrom' function. */ +#define HAVE_RECVFROM 1 + +/* Define to 1 if you have the `renameat' function. */ +#define HAVE_RENAMEAT 1 + +/* Define if readline supports append_history */ +/* #undef HAVE_RL_APPEND_HISTORY */ + +/* Define if you can turn off readline's signal handling. */ +/* #undef HAVE_RL_CATCH_SIGNAL */ + +/* Define to 1 if the system has the type `rl_compdisp_func_t'. */ +/* #undef HAVE_RL_COMPDISP_FUNC_T */ + +/* Define if you have readline 2.2 */ +/* #undef HAVE_RL_COMPLETION_APPEND_CHARACTER */ + +/* Define if you have readline 4.0 */ +/* #undef HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK */ + +/* Define if you have readline 4.2 */ +/* #undef HAVE_RL_COMPLETION_MATCHES */ + +/* Define if you have rl_completion_suppress_append */ +/* #undef HAVE_RL_COMPLETION_SUPPRESS_APPEND */ + +/* Define if you have readline 4.0 */ +/* #undef HAVE_RL_PRE_INPUT_HOOK */ + +/* Define if you have readline 4.0 */ +/* #undef HAVE_RL_RESIZE_TERMINAL */ + +/* 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 + +/* Define to 1 if you have the header file. */ +#define HAVE_SCHED_H 1 + +/* Define to 1 if you have the `sched_rr_get_interval' function. */ +#define HAVE_SCHED_RR_GET_INTERVAL 1 + +/* Define to 1 if you have the `sched_setaffinity' function. */ +#define HAVE_SCHED_SETAFFINITY 1 + +/* Define to 1 if you have the `sched_setparam' function. */ +#define HAVE_SCHED_SETPARAM 1 + +/* Define to 1 if you have the `sched_setscheduler' function. */ +#define HAVE_SCHED_SETSCHEDULER 1 + +/* Define to 1 if you have the `sem_clockwait' function. */ +/* #undef HAVE_SEM_CLOCKWAIT */ + +/* Define to 1 if you have the `sem_getvalue' function. */ +#define HAVE_SEM_GETVALUE 1 + +/* Define to 1 if you have the `sem_open' function. */ +/* #undef HAVE_SEM_OPEN */ + +/* Define to 1 if you have the `sem_timedwait' function. */ +#define HAVE_SEM_TIMEDWAIT 1 + +/* Define to 1 if you have the `sem_unlink' function. */ +/* #undef HAVE_SEM_UNLINK */ + +/* Define to 1 if you have the `sendfile' function. */ +#define HAVE_SENDFILE 1 + +/* Define if you have the 'sendto' function. */ +#define HAVE_SENDTO 1 + +/* Define to 1 if you have the `setegid' function. */ +/* #undef HAVE_SETEGID */ + +/* Define to 1 if you have the `seteuid' function. */ +/* #undef HAVE_SETEUID */ + +/* Define to 1 if you have the `setgid' function. */ +/* #undef HAVE_SETGID */ + +/* Define if you have the 'setgroups' function. */ +#define HAVE_SETGROUPS 1 + +/* Define to 1 if you have the `sethostname' function. */ +/* #undef HAVE_SETHOSTNAME */ + +/* Define to 1 if you have the `setitimer' function. */ +#define HAVE_SETITIMER 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SETJMP_H 1 + +/* Define to 1 if you have the `setlocale' function. */ +#define HAVE_SETLOCALE 1 + +/* Define to 1 if you have the `setns' function. */ +#define HAVE_SETNS 1 + +/* Define to 1 if you have the `setpgid' function. */ +#define HAVE_SETPGID 1 + +/* Define to 1 if you have the `setpgrp' function. */ +#define HAVE_SETPGRP 1 + +/* Define to 1 if you have the `setpriority' function. */ +#define HAVE_SETPRIORITY 1 + +/* Define to 1 if you have the `setregid' function. */ +/* #undef HAVE_SETREGID */ + +/* Define to 1 if you have the `setresgid' function. */ +/* #undef HAVE_SETRESGID */ + +/* Define to 1 if you have the `setresuid' function. */ +/* #undef HAVE_SETRESUID */ + +/* Define to 1 if you have the `setreuid' function. */ +/* #undef HAVE_SETREUID */ + +/* Define to 1 if you have the `setsid' function. */ +#define HAVE_SETSID 1 + +/* Define if you have the 'setsockopt' function. */ +#define HAVE_SETSOCKOPT 1 + +/* Define to 1 if you have the `setuid' function. */ +/* #undef HAVE_SETUID */ + +/* Define to 1 if you have the `setvbuf' function. */ +#define HAVE_SETVBUF 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SHADOW_H */ + +/* Define to 1 if you have the `shm_open' function. */ +/* #undef HAVE_SHM_OPEN */ + +/* Define to 1 if you have the `shm_unlink' function. */ +/* #undef HAVE_SHM_UNLINK */ + +/* Define to 1 if you have the `shutdown' function. */ +#define HAVE_SHUTDOWN 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 `si_band' is a member of `siginfo_t'. */ +#define HAVE_SIGINFO_T_SI_BAND 1 + +/* Define to 1 if you have the `siginterrupt' function. */ +#define HAVE_SIGINTERRUPT 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SIGNAL_H 1 + +/* Define to 1 if you have the `sigpending' function. */ +#define HAVE_SIGPENDING 1 + +/* Define to 1 if you have the `sigrelse' function. */ +/* #undef HAVE_SIGRELSE */ + +/* Define to 1 if you have the `sigtimedwait' function. */ +/* #undef HAVE_SIGTIMEDWAIT */ + +/* Define to 1 if you have the `sigwait' function. */ +#define HAVE_SIGWAIT 1 + +/* Define to 1 if you have the `sigwaitinfo' function. */ +/* #undef HAVE_SIGWAITINFO */ + +/* Define to 1 if you have the `snprintf' function. */ +#define HAVE_SNPRINTF 1 + +/* struct sockaddr_alg (linux/if_alg.h) */ +#define HAVE_SOCKADDR_ALG 1 + +/* Define if sockaddr has sa_len member */ +/* #undef HAVE_SOCKADDR_SA_LEN */ + +/* struct sockaddr_storage (sys/socket.h) */ +#define HAVE_SOCKADDR_STORAGE 1 + +/* Define if you have the 'socket' function. */ +#define HAVE_SOCKET 1 + +/* Define if you have the 'socketpair' function. */ +#define HAVE_SOCKETPAIR 1 + +/* Define to 1 if the system has the type `socklen_t'. */ +#define HAVE_SOCKLEN_T 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SPAWN_H 1 + +/* Define to 1 if you have the `splice' function. */ +#define HAVE_SPLICE 1 + +/* Define to 1 if the system has the type `ssize_t'. */ +#define HAVE_SSIZE_T 1 + +/* Define to 1 if you have the `statvfs' function. */ +#define HAVE_STATVFS 1 + +/* Define if you have struct stat.st_mtim.tv_nsec */ +#define HAVE_STAT_TV_NSEC 1 + +/* Define if you have struct stat.st_mtimensec */ +/* #undef HAVE_STAT_TV_NSEC2 */ + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDIO_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Has stdatomic.h with atomic_int and atomic_uintptr_t */ +#define HAVE_STD_ATOMIC 1 + +/* Define to 1 if you have the `strftime' function. */ +#define HAVE_STRFTIME 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `strlcpy' function. */ +#define HAVE_STRLCPY 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_STROPTS_H */ + +/* 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 + +/* Define to 1 if `pw_passwd' is a member of `struct passwd'. */ +#define HAVE_STRUCT_PASSWD_PW_PASSWD 1 + +/* Define to 1 if `st_birthtime' is a member of `struct stat'. */ +/* #undef HAVE_STRUCT_STAT_ST_BIRTHTIME */ + +/* Define to 1 if `st_blksize' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_BLKSIZE 1 + +/* Define to 1 if `st_blocks' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_BLOCKS 1 + +/* Define to 1 if `st_flags' is a member of `struct stat'. */ +/* #undef HAVE_STRUCT_STAT_ST_FLAGS */ + +/* Define to 1 if `st_gen' is a member of `struct stat'. */ +/* #undef HAVE_STRUCT_STAT_ST_GEN */ + +/* Define to 1 if `st_rdev' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_RDEV 1 + +/* Define to 1 if `tm_zone' is a member of `struct tm'. */ +#define HAVE_STRUCT_TM_TM_ZONE 1 + +/* Define if you have the 'symlink' function. */ +#define HAVE_SYMLINK 1 + +/* Define to 1 if you have the `symlinkat' function. */ +#define HAVE_SYMLINKAT 1 + +/* Define to 1 if you have the `sync' function. */ +#define HAVE_SYNC 1 + +/* Define to 1 if you have the `sysconf' function. */ +#define HAVE_SYSCONF 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYSEXITS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYSLOG_H 1 + +/* Define to 1 if you have the `system' function. */ +#define HAVE_SYSTEM 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_AUDIOIO_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_AUXV_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_BSDTTY_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_DEVPOLL_H */ + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +/* #undef HAVE_SYS_DIR_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_ENDIAN_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_EPOLL_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_EVENTFD_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_EVENT_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_FILE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_IOCTL_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_KERN_CONTROL_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_LOADAVG_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_LOCK_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_MEMFD_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_MKDEV_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_MMAN_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_MODEM_H */ + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +/* #undef HAVE_SYS_NDIR_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_POLL_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_RANDOM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_RESOURCE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SELECT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SENDFILE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SOCKET_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SOUNDCARD_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STATVFS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SYSCALL_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SYSMACROS_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SYS_DOMAIN_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_TERMIO_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIMERFD_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIMES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_UIO_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_UN_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_UTSNAME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_WAIT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_XATTR_H 1 + +/* Define to 1 if you have the `tcgetpgrp' function. */ +#define HAVE_TCGETPGRP 1 + +/* Define to 1 if you have the `tcsetpgrp' function. */ +#define HAVE_TCSETPGRP 1 + +/* Define to 1 if you have the `tempnam' function. */ +#define HAVE_TEMPNAM 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_TERMIOS_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_TERM_H */ + +/* Define to 1 if you have the `timegm' function. */ +#define HAVE_TIMEGM 1 + +/* Define if you have the 'timerfd_create' function. */ +#define HAVE_TIMERFD_CREATE 1 + +/* Define to 1 if you have the `times' function. */ +#define HAVE_TIMES 1 + +/* Define to 1 if you have the `tmpfile' function. */ +#define HAVE_TMPFILE 1 + +/* Define to 1 if you have the `tmpnam' function. */ +#define HAVE_TMPNAM 1 + +/* Define to 1 if you have the `tmpnam_r' function. */ +/* #undef HAVE_TMPNAM_R */ + +/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use + `HAVE_STRUCT_TM_TM_ZONE' instead. */ +#define HAVE_TM_ZONE 1 + +/* Define to 1 if you have the `truncate' function. */ +#define HAVE_TRUNCATE 1 + +/* Define to 1 if you have the `ttyname' function. */ +#define HAVE_TTYNAME 1 + +/* Define to 1 if you don't have `tm_zone' but do have the external array + `tzname'. */ +/* #undef HAVE_TZNAME */ + +/* Define to 1 if you have the `umask' function. */ +#define HAVE_UMASK 1 + +/* Define to 1 if you have the `uname' function. */ +#define HAVE_UNAME 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to 1 if you have the `unlinkat' function. */ +#define HAVE_UNLINKAT 1 + +/* Define to 1 if you have the `unlockpt' function. */ +#define HAVE_UNLOCKPT 1 + +/* Define to 1 if you have the `unshare' function. */ +#define HAVE_UNSHARE 1 + +/* Define if you have a useable wchar_t type defined in wchar.h; useable means + wchar_t must be an unsigned type with at least 16 bits. (see + Include/unicodeobject.h). */ +/* #undef HAVE_USABLE_WCHAR_T */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_UTIL_H */ + +/* Define to 1 if you have the `utimensat' function. */ +#define HAVE_UTIMENSAT 1 + +/* Define to 1 if you have the `utimes' function. */ +#define HAVE_UTIMES 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UTIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UTMP_H 1 + +/* Define to 1 if you have the `uuid_create' function. */ +/* #undef HAVE_UUID_CREATE */ + +/* Define to 1 if you have the `uuid_enc_be' function. */ +/* #undef HAVE_UUID_ENC_BE */ + +/* Define if uuid_generate_time_safe() exists. */ +/* #undef HAVE_UUID_GENERATE_TIME_SAFE */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_UUID_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_UUID_UUID_H */ + +/* Define to 1 if you have the `vfork' function. */ +#define HAVE_VFORK 1 + +/* Define to 1 if you have the `wait' function. */ +#define HAVE_WAIT 1 + +/* Define to 1 if you have the `wait3' function. */ +/* #undef HAVE_WAIT3 */ + +/* Define to 1 if you have the `wait4' function. */ +#define HAVE_WAIT4 1 + +/* Define to 1 if you have the `waitid' function. */ +#define HAVE_WAITID 1 + +/* Define to 1 if you have the `waitpid' function. */ +#define HAVE_WAITPID 1 + +/* Define if the compiler provides a wchar.h header file. */ +#define HAVE_WCHAR_H 1 + +/* Define to 1 if you have the `wcscoll' function. */ +#define HAVE_WCSCOLL 1 + +/* Define to 1 if you have the `wcsftime' function. */ +#define HAVE_WCSFTIME 1 + +/* Define to 1 if you have the `wcsxfrm' function. */ +#define HAVE_WCSXFRM 1 + +/* Define to 1 if you have the `wmemcmp' function. */ +#define HAVE_WMEMCMP 1 + +/* Define if tzset() actually switches the local timezone in a meaningful way. + */ +/* #undef HAVE_WORKING_TZSET */ + +/* Define to 1 if you have the `writev' function. */ +#define HAVE_WRITEV 1 + +/* Define if the zlib library has inflateCopy */ +#define HAVE_ZLIB_COPY 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ZLIB_H 1 + +/* Define to 1 if you have the `_getpty' function. */ +/* #undef HAVE__GETPTY */ + +/* Define to 1 if the system has the type `__uint128_t'. */ +#define HAVE___UINT128_T 1 + +/* Define to 1 if `major', `minor', and `makedev' are declared in . + */ +/* #undef MAJOR_IN_MKDEV */ + +/* Define to 1 if `major', `minor', and `makedev' are declared in + . */ +#define MAJOR_IN_SYSMACROS 1 + +/* Define if mvwdelch in curses.h is an expression. */ +/* #undef MVWDELCH_IS_EXPRESSION */ + +/* Define to the address where bug reports for this package should be sent. */ +/* #undef PACKAGE_BUGREPORT */ + +/* Define to the full name of this package. */ +/* #undef PACKAGE_NAME */ + +/* Define to the full name and version of this package. */ +/* #undef PACKAGE_STRING */ + +/* Define to the one symbol short name of this package. */ +/* #undef PACKAGE_TARNAME */ + +/* Define to the home page for this package. */ +/* #undef PACKAGE_URL */ + +/* Define to the version of this package. */ +/* #undef PACKAGE_VERSION */ + +/* Define if POSIX semaphores aren't enabled on your system */ +/* #undef POSIX_SEMAPHORES_NOT_ENABLED */ + +/* Define if pthread_key_t is compatible with int. */ +#define PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT 1 + +/* Defined if PTHREAD_SCOPE_SYSTEM supported. */ +/* #undef PTHREAD_SYSTEM_SCHED_SUPPORTED */ + +/* Define as the preferred size in bits of long digits */ +/* #undef PYLONG_BITS_IN_DIGIT */ + +/* enabled builtin hash modules */ +#define PY_BUILTIN_HASHLIB_HASHES "md5,sha1,sha2,sha3,blake2" + +/* Define if you want to coerce the C locale to a UTF-8 based locale */ +#define PY_COERCE_C_LOCALE 1 + +/* Define to 1 if you have the perf trampoline. */ +/* #undef PY_HAVE_PERF_TRAMPOLINE */ + +/* Define to 1 to build the sqlite module with loadable extensions support. */ +/* #undef PY_SQLITE_ENABLE_LOAD_EXTENSION */ + +/* Define if SQLite was compiled with the serialize API */ +#define PY_SQLITE_HAVE_SERIALIZE 1 + +/* Default cipher suites list for ssl module. 1: Python's preferred selection, + 2: leave OpenSSL defaults untouched, 0: custom string */ +#define PY_SSL_DEFAULT_CIPHERS 1 + +/* Cipher suite string for PY_SSL_DEFAULT_CIPHERS=0 */ +/* #undef PY_SSL_DEFAULT_CIPHER_STRING */ + +/* PEP 11 Support tier (1, 2, 3 or 0 for unsupported) */ +#define PY_SUPPORT_TIER 3 + +/* Define if you want to build an interpreter with many run-time checks. */ +/* #undef Py_DEBUG */ + +/* Defined if Python is built as a shared library. */ +#define Py_ENABLE_SHARED 1 + +/* Define if you want to disable the GIL */ +/* #undef Py_GIL_DISABLED */ + +/* Define hash algorithm for str, bytes and memoryview. SipHash24: 1, FNV: 2, + SipHash13: 3, externally defined: 0 */ +/* #undef Py_HASH_ALGORITHM */ + +/* Define if rl_startup_hook takes arguments */ +/* #undef Py_RL_STARTUP_HOOK_TAKES_ARGS */ + +/* Define if you want to enable internal statistics gathering. */ +/* #undef Py_STATS */ + +/* The version of SunOS/Solaris as reported by `uname -r' without the dot. */ +/* #undef Py_SUNOS_VERSION */ + +/* 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 if i>>j for signed int i does not extend the sign bit when i < 0 */ +/* #undef SIGNED_RIGHT_SHIFT_ZERO_FILLS */ + +/* The size of `double', as computed by sizeof. */ +#define SIZEOF_DOUBLE 8 + +/* The size of `float', as computed by sizeof. */ +#define SIZEOF_FLOAT 4 + +/* The size of `fpos_t', as computed by sizeof. */ +#define SIZEOF_FPOS_T 8 + +/* The size of `int', as computed by sizeof. */ +#define SIZEOF_INT 4 + +/* The size of `long', as computed by sizeof. */ +#define SIZEOF_LONG 8 + +/* The size of `long double', as computed by sizeof. */ +#define SIZEOF_LONG_DOUBLE 16 + +/* The size of `long long', as computed by sizeof. */ +#define SIZEOF_LONG_LONG 8 + +/* The size of `off_t', as computed by sizeof. */ +#define SIZEOF_OFF_T 8 + +/* The size of `pid_t', as computed by sizeof. */ +#define SIZEOF_PID_T 4 + +/* The size of `pthread_key_t', as computed by sizeof. */ +#define SIZEOF_PTHREAD_KEY_T 4 + +/* The size of `pthread_t', as computed by sizeof. */ +#define SIZEOF_PTHREAD_T 8 + +/* The size of `short', as computed by sizeof. */ +#define SIZEOF_SHORT 2 + +/* The size of `size_t', as computed by sizeof. */ +#define SIZEOF_SIZE_T 8 + +/* The size of `time_t', as computed by sizeof. */ +#define SIZEOF_TIME_T 8 + +/* The size of `uintptr_t', as computed by sizeof. */ +#define SIZEOF_UINTPTR_T 8 + +/* The size of `void *', as computed by sizeof. */ +#define SIZEOF_VOID_P 8 + +/* The size of `wchar_t', as computed by sizeof. */ +#define SIZEOF_WCHAR_T 4 + +/* The size of `_Bool', as computed by sizeof. */ +#define SIZEOF__BOOL 1 + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define if you can safely include both and + (which you can't on SCO ODT 3.0). */ +#define SYS_SELECT_WITH_SYS_TIME 1 + +/* Custom thread stack size depending on chosen sanitizer runtimes. */ +/* #undef THREAD_STACK_SIZE */ + +/* Library needed by timemodule.c: librt may be needed for clock_gettime() */ +/* #undef TIMEMODULE_LIB */ + +/* Define to 1 if your declares `struct tm'. */ +/* #undef TM_IN_SYS_TIME */ + +/* Define if you want to use computed gotos in ceval.c. */ +/* #undef USE_COMPUTED_GOTOS */ + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# define _ALL_SOURCE 1 +#endif +/* Enable general extensions on macOS. */ +#ifndef _DARWIN_C_SOURCE +# define _DARWIN_C_SOURCE 1 +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# define __EXTENSIONS__ 1 +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +#endif +/* Enable X/Open compliant socket functions that do not require linking + with -lxnet on HP-UX 11.11. */ +#ifndef _HPUX_ALT_XOPEN_SOCKET_API +# define _HPUX_ALT_XOPEN_SOCKET_API 1 +#endif +/* Identify the host operating system as Minix. + This macro does not affect the system headers' behavior. + A future release of Autoconf may stop defining this macro. */ +#ifndef _MINIX +/* # undef _MINIX */ +#endif +/* Enable general extensions on NetBSD. + Enable NetBSD compatibility extensions on Minix. */ +#ifndef _NETBSD_SOURCE +# define _NETBSD_SOURCE 1 +#endif +/* Enable OpenBSD compatibility extensions on NetBSD. + Oddly enough, this does nothing on OpenBSD. */ +#ifndef _OPENBSD_SOURCE +# define _OPENBSD_SOURCE 1 +#endif +/* Define to 1 if needed for POSIX-compatible behavior. */ +#ifndef _POSIX_SOURCE +/* # undef _POSIX_SOURCE */ +#endif +/* Define to 2 if needed for POSIX-compatible behavior. */ +#ifndef _POSIX_1_SOURCE +/* # undef _POSIX_1_SOURCE */ +#endif +/* Enable POSIX-compatible threading on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# define _POSIX_PTHREAD_SEMANTICS 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */ +#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ +# define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */ +#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ +# define __STDC_WANT_IEC_60559_BFP_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */ +#ifndef __STDC_WANT_IEC_60559_DFP_EXT__ +# define __STDC_WANT_IEC_60559_DFP_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ +#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ +# define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-3:2015. */ +#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ +# define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */ +#ifndef __STDC_WANT_LIB_EXT2__ +# define __STDC_WANT_LIB_EXT2__ 1 +#endif +/* Enable extensions specified by ISO/IEC 24747:2009. */ +#ifndef __STDC_WANT_MATH_SPEC_FUNCS__ +# define __STDC_WANT_MATH_SPEC_FUNCS__ 1 +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# define _TANDEM_SOURCE 1 +#endif +/* Enable X/Open extensions. Define to 500 only if necessary + to make mbstate_t available. */ +#ifndef _XOPEN_SOURCE +# define _XOPEN_SOURCE 700 +#endif + + +/* Define if WINDOW in curses.h offers a field _flags. */ +/* #undef WINDOW_HAS_FLAGS */ + +/* 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 + +/* Define if you want to compile in DTrace support */ +/* #undef WITH_DTRACE */ + +/* Define if you want to use the new-style (Openstep, Rhapsody, MacOS) dynamic + linker (dyld) instead of the old-style (NextStep) dynamic linker (rld). + Dyld is necessary to support frameworks. */ +/* #undef WITH_DYLD */ + +/* Define to build the readline module against libedit. */ +/* #undef WITH_EDITLINE */ + +/* Define if you want to compile in object freelists optimization */ +#define WITH_FREELISTS 1 + +/* Define to 1 if libintl is needed for locale functions. */ +/* #undef WITH_LIBINTL */ + +/* Define if you want to compile in mimalloc memory allocator. */ +#define WITH_MIMALLOC 1 + +/* Define if you want to produce an OpenStep/Rhapsody framework (shared + library plus accessory files). */ +/* #undef WITH_NEXT_FRAMEWORK */ + +/* Define if you want to compile in Python-specific mallocs */ +#define WITH_PYMALLOC 1 + +/* Define if you want pymalloc to be disabled when running under valgrind */ +/* #undef WITH_VALGRIND */ + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +/* # undef WORDS_BIGENDIAN */ +# endif +#endif + +/* Define if arithmetic is subject to x87-style double rounding issue */ +/* #undef X87_DOUBLE_ROUNDING */ + +/* Define on OpenBSD to activate all library features */ +/* #undef _BSD_SOURCE */ + +/* Define on Darwin to activate all library features */ +#define _DARWIN_C_SOURCE 1 + +/* This must be set to 64 on some systems to enable large file support. */ +#define _FILE_OFFSET_BITS 64 + +/* Define to include mbstate_t for mbrtowc */ +/* #undef _INCLUDE__STDC_A1_SOURCE */ + +/* This must be defined on some systems to enable large file support. */ +#define _LARGEFILE_SOURCE 1 + +/* This must be defined on AIX systems to enable large file support. */ +/* #undef _LARGE_FILES */ + +/* Define on NetBSD to activate all library features */ +#define _NETBSD_SOURCE 1 + +/* Define to activate features from IEEE Stds 1003.1-2008 */ +#define _POSIX_C_SOURCE 200809L + +/* Define if you have POSIX threads, and your system does not define that. */ +/* #undef _POSIX_THREADS */ + +/* framework name */ +#define _PYTHONFRAMEWORK "" + +/* Define to force use of thread-safe errno, h_errno, and other functions */ +#define _REENTRANT 1 + +/* Define to 1 if you want to emulate getpid() on WASI */ +/* #undef _WASI_EMULATED_GETPID */ + +/* Define to 1 if you want to emulate process clocks on WASI */ +/* #undef _WASI_EMULATED_PROCESS_CLOCKS */ + +/* Define to 1 if you want to emulate signals on WASI */ +/* #undef _WASI_EMULATED_SIGNAL */ + +/* Define to the level of X/Open that your system supports */ +#define _XOPEN_SOURCE 700 + +/* Define to activate Unix95-and-earlier features */ +#define _XOPEN_SOURCE_EXTENDED 1 + +/* Define on FreeBSD to activate all library features */ +#define __BSD_VISIBLE 1 + +/* Define to 'long' if does not define clock_t. */ +/* #undef clock_t */ + +/* Define to empty if `const' does not conform to ANSI C. */ +/* #undef const */ + +/* Define to `int' if doesn't define. */ +/* #undef gid_t */ + +/* Define to `int' if does not define. */ +/* #undef mode_t */ + +/* Define to `long int' if does not define. */ +/* #undef off_t */ + +/* Define as a signed integer type capable of holding a process identifier. */ +/* #undef pid_t */ + +/* Define to empty if the keyword does not work. */ +/* #undef signed */ + +/* Define to `unsigned int' if does not define. */ +/* #undef size_t */ + +/* Define to 'int' if does not define. */ +/* #undef socklen_t */ + +/* Define to `int' if doesn't define. */ +/* #undef uid_t */ + + +/* Define the macros needed if on a UnixWare 7.x system. */ +#if defined(__USLC__) && defined(__SCO_VERSION__) +#define STRICT_SYSV_CURSES /* Don't use ncurses extensions */ +#endif + +#endif /*Py_PYCONFIG_H*/ + diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyconfig-android-x86_64.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyconfig-android-x86_64.h new file mode 100644 index 000000000..34c3e0221 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyconfig-android-x86_64.h @@ -0,0 +1,2015 @@ +/* pyconfig.h. Generated from pyconfig.h.in by configure. */ +/* pyconfig.h.in. Generated from configure.ac by autoheader. */ + + +#ifndef Py_PYCONFIG_H +#define Py_PYCONFIG_H + + +/* 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 */ + +/* 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 */ + +/* The normal alignment of `long', in bytes. */ +#define ALIGNOF_LONG 8 + +/* The normal alignment of `max_align_t', in bytes. */ +#define ALIGNOF_MAX_ALIGN_T 16 + +/* The normal alignment of `size_t', in bytes. */ +#define ALIGNOF_SIZE_T 8 + +/* Alternative SOABI used in debug build to load C extensions built in release + mode */ +/* #undef ALT_SOABI */ + +/* The Android API level. */ +#define ANDROID_API_LEVEL 21 + +/* Define if C doubles are 64-bit IEEE 754 binary format, stored in ARM + mixed-endian order (byte order 45670123) */ +/* #undef DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 */ + +/* Define if C doubles are 64-bit IEEE 754 binary format, stored with the most + significant byte first */ +/* #undef DOUBLE_IS_BIG_ENDIAN_IEEE754 */ + +/* Define if C doubles are 64-bit IEEE 754 binary format, stored with the + least significant byte first */ +#define DOUBLE_IS_LITTLE_ENDIAN_IEEE754 1 + +/* 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 if getpgrp() must be called as getpgrp(0). */ +/* #undef GETPGRP_HAVE_ARG */ + +/* Define if you have the 'accept' function. */ +#define HAVE_ACCEPT 1 + +/* Define to 1 if you have the `accept4' function. */ +#define HAVE_ACCEPT4 1 + +/* Define to 1 if you have the `acosh' function. */ +#define HAVE_ACOSH 1 + +/* struct addrinfo (netdb.h) */ +#define HAVE_ADDRINFO 1 + +/* Define to 1 if you have the `alarm' function. */ +#define HAVE_ALARM 1 + +/* Define if aligned memory access is required */ +/* #undef HAVE_ALIGNED_REQUIRED */ + +/* Define to 1 if you have the header file. */ +#define HAVE_ALLOCA_H 1 + +/* Define this if your time.h defines altzone. */ +/* #undef HAVE_ALTZONE */ + +/* Define to 1 if you have the `asinh' function. */ +#define HAVE_ASINH 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ASM_TYPES_H 1 + +/* Define to 1 if you have the `atanh' function. */ +#define HAVE_ATANH 1 + +/* Define if you have the 'bind' function. */ +#define HAVE_BIND 1 + +/* Define to 1 if you have the `bind_textdomain_codeset' function. */ +/* #undef HAVE_BIND_TEXTDOMAIN_CODESET */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_BLUETOOTH_BLUETOOTH_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_BLUETOOTH_H */ + +/* Define if mbstowcs(NULL, "text", 0) does not return the number of wide + chars that would be converted. */ +/* #undef HAVE_BROKEN_MBSTOWCS */ + +/* Define if nice() returns success/failure instead of the new priority. */ +/* #undef HAVE_BROKEN_NICE */ + +/* Define if the system reports an invalid PIPE_BUF value. */ +/* #undef HAVE_BROKEN_PIPE_BUF */ + +/* Define if poll() sets errno on invalid file descriptors. */ +/* #undef HAVE_BROKEN_POLL */ + +/* Define if the Posix semaphores do not work on your system */ +/* #undef HAVE_BROKEN_POSIX_SEMAPHORES */ + +/* Define if pthread_sigmask() does not work on your system. */ +/* #undef HAVE_BROKEN_PTHREAD_SIGMASK */ + +/* define to 1 if your sem_getvalue is broken. */ +#define HAVE_BROKEN_SEM_GETVALUE 1 + +/* Define if 'unsetenv' does not return an int. */ +/* #undef HAVE_BROKEN_UNSETENV */ + +/* Has builtin __atomic_load_n() and __atomic_store_n() functions */ +#define HAVE_BUILTIN_ATOMIC 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_BZLIB_H 1 + +/* Define to 1 if you have the 'chflags' function. */ +/* #undef HAVE_CHFLAGS */ + +/* Define to 1 if you have the `chmod' function. */ +#define HAVE_CHMOD 1 + +/* Define to 1 if you have the `chown' function. */ +#define HAVE_CHOWN 1 + +/* Define if you have the 'chroot' function. */ +/* #undef HAVE_CHROOT */ + +/* Define to 1 if you have the `clock' function. */ +#define HAVE_CLOCK 1 + +/* Define to 1 if you have the `clock_getres' function. */ +#define HAVE_CLOCK_GETRES 1 + +/* Define to 1 if you have the `clock_gettime' function. */ +#define HAVE_CLOCK_GETTIME 1 + +/* Define to 1 if you have the `clock_nanosleep' function. */ +/* #undef HAVE_CLOCK_NANOSLEEP */ + +/* Define to 1 if you have the `clock_settime' function. */ +/* #undef HAVE_CLOCK_SETTIME */ + +/* Define to 1 if the system has the type `clock_t'. */ +#define HAVE_CLOCK_T 1 + +/* Define to 1 if you have the `closefrom' function. */ +/* #undef HAVE_CLOSEFROM */ + +/* Define to 1 if you have the `close_range' function. */ +/* #undef HAVE_CLOSE_RANGE */ + +/* Define if the C compiler supports computed gotos. */ +/* #undef HAVE_COMPUTED_GOTOS */ + +/* Define to 1 if you have the `confstr' function. */ +/* #undef HAVE_CONFSTR */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_CONIO_H */ + +/* Define if you have the 'connect' function. */ +#define HAVE_CONNECT 1 + +/* Define to 1 if you have the `copy_file_range' function. */ +/* #undef HAVE_COPY_FILE_RANGE */ + +/* Define to 1 if you have the `ctermid' function. */ +/* #undef HAVE_CTERMID */ + +/* Define if you have the 'ctermid_r' function. */ +/* #undef HAVE_CTERMID_R */ + +/* Define if you have the 'filter' function. */ +/* #undef HAVE_CURSES_FILTER */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_CURSES_H */ + +/* Define if you have the 'has_key' function. */ +/* #undef HAVE_CURSES_HAS_KEY */ + +/* Define if you have the 'immedok' function. */ +/* #undef HAVE_CURSES_IMMEDOK */ + +/* Define if you have the 'is_pad' function. */ +/* #undef HAVE_CURSES_IS_PAD */ + +/* Define if you have the 'is_term_resized' function. */ +/* #undef HAVE_CURSES_IS_TERM_RESIZED */ + +/* Define if you have the 'resizeterm' function. */ +/* #undef HAVE_CURSES_RESIZETERM */ + +/* Define if you have the 'resize_term' function. */ +/* #undef HAVE_CURSES_RESIZE_TERM */ + +/* Define if you have the 'syncok' function. */ +/* #undef HAVE_CURSES_SYNCOK */ + +/* Define if you have the 'typeahead' function. */ +/* #undef HAVE_CURSES_TYPEAHEAD */ + +/* Define if you have the 'use_env' function. */ +/* #undef HAVE_CURSES_USE_ENV */ + +/* Define if you have the 'wchgat' function. */ +/* #undef HAVE_CURSES_WCHGAT */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_DB_H */ + +/* Define to 1 if you have the declaration of `RTLD_DEEPBIND', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_DEEPBIND 0 + +/* Define to 1 if you have the declaration of `RTLD_GLOBAL', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_GLOBAL 1 + +/* Define to 1 if you have the declaration of `RTLD_LAZY', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_LAZY 1 + +/* Define to 1 if you have the declaration of `RTLD_LOCAL', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_LOCAL 1 + +/* Define to 1 if you have the declaration of `RTLD_MEMBER', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_MEMBER 0 + +/* Define to 1 if you have the declaration of `RTLD_NODELETE', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_NODELETE 1 + +/* Define to 1 if you have the declaration of `RTLD_NOLOAD', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_NOLOAD 1 + +/* Define to 1 if you have the declaration of `RTLD_NOW', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_NOW 1 + +/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. + */ +/* #undef HAVE_DECL_TZNAME */ + +/* Define to 1 if you have the device macros. */ +#define HAVE_DEVICE_MACROS 1 + +/* Define to 1 if you have the /dev/ptc device file. */ +/* #undef HAVE_DEV_PTC */ + +/* Define to 1 if you have the /dev/ptmx device file. */ +/* #undef HAVE_DEV_PTMX */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_DIRECT_H */ + +/* Define to 1 if the dirent structure has a d_type field */ +#define HAVE_DIRENT_D_TYPE 1 + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +#define HAVE_DIRENT_H 1 + +/* Define if you have the 'dirfd' function or macro. */ +#define HAVE_DIRFD 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if you have the `dlopen' function. */ +#define HAVE_DLOPEN 1 + +/* Define to 1 if you have the `dup' function. */ +#define HAVE_DUP 1 + +/* Define to 1 if you have the `dup2' function. */ +#define HAVE_DUP2 1 + +/* Define to 1 if you have the `dup3' function. */ +#define HAVE_DUP3 1 + +/* Define if you have the '_dyld_shared_cache_contains_path' function. */ +/* #undef HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH */ + +/* Defined when any dynamic module loading is enabled. */ +#define HAVE_DYNAMIC_LOADING 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_EDITLINE_READLINE_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_ENDIAN_H 1 + +/* Define if you have the 'epoll_create' function. */ +#define HAVE_EPOLL 1 + +/* Define if you have the 'epoll_create1' function. */ +#define HAVE_EPOLL_CREATE1 1 + +/* Define to 1 if you have the `erf' function. */ +#define HAVE_ERF 1 + +/* Define to 1 if you have the `erfc' function. */ +#define HAVE_ERFC 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ERRNO_H 1 + +/* Define if you have the 'eventfd' function. */ +#define HAVE_EVENTFD 1 + +/* 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 `expm1' function. */ +#define HAVE_EXPM1 1 + +/* Define to 1 if you have the `faccessat' function. */ +#define HAVE_FACCESSAT 1 + +/* Define if you have the 'fchdir' function. */ +#define HAVE_FCHDIR 1 + +/* Define to 1 if you have the `fchmod' function. */ +#define HAVE_FCHMOD 1 + +/* Define to 1 if you have the `fchmodat' function. */ +/* #undef HAVE_FCHMODAT */ + +/* Define to 1 if you have the `fchown' function. */ +#define HAVE_FCHOWN 1 + +/* Define to 1 if you have the `fchownat' function. */ +#define HAVE_FCHOWNAT 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_FCNTL_H 1 + +/* Define if you have the 'fdatasync' function. */ +#define HAVE_FDATASYNC 1 + +/* 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 `fexecve' function. */ +/* #undef HAVE_FEXECVE */ + +/* Define if you have the 'ffi_closure_alloc' function. */ +#define HAVE_FFI_CLOSURE_ALLOC 1 + +/* Define if you have the 'ffi_prep_cif_var' function. */ +#define HAVE_FFI_PREP_CIF_VAR 1 + +/* Define if you have the 'ffi_prep_closure_loc' function. */ +#define HAVE_FFI_PREP_CLOSURE_LOC 1 + +/* Define to 1 if you have the `flock' function. */ +#define HAVE_FLOCK 1 + +/* Define to 1 if you have the `fork' function. */ +#define HAVE_FORK 1 + +/* Define to 1 if you have the `fork1' function. */ +/* #undef HAVE_FORK1 */ + +/* Define to 1 if you have the `forkpty' function. */ +/* #undef HAVE_FORKPTY */ + +/* Define to 1 if you have the `fpathconf' function. */ +#define HAVE_FPATHCONF 1 + +/* Define to 1 if you have the `fseek64' function. */ +/* #undef HAVE_FSEEK64 */ + +/* Define to 1 if you have the `fseeko' function. */ +#define HAVE_FSEEKO 1 + +/* Define to 1 if you have the `fstatat' function. */ +#define HAVE_FSTATAT 1 + +/* Define to 1 if you have the `fstatvfs' function. */ +#define HAVE_FSTATVFS 1 + +/* Define if you have the 'fsync' function. */ +#define HAVE_FSYNC 1 + +/* Define to 1 if you have the `ftell64' function. */ +/* #undef HAVE_FTELL64 */ + +/* Define to 1 if you have the `ftello' function. */ +#define HAVE_FTELLO 1 + +/* Define to 1 if you have the `ftime' function. */ +/* #undef HAVE_FTIME */ + +/* Define to 1 if you have the `ftruncate' function. */ +#define HAVE_FTRUNCATE 1 + +/* Define to 1 if you have the `futimens' function. */ +#define HAVE_FUTIMENS 1 + +/* Define to 1 if you have the `futimes' function. */ +/* #undef HAVE_FUTIMES */ + +/* Define to 1 if you have the `futimesat' function. */ +/* #undef HAVE_FUTIMESAT */ + +/* Define to 1 if you have the `gai_strerror' function. */ +#define HAVE_GAI_STRERROR 1 + +/* Define if we can use gcc inline assembler to get and set mc68881 fpcr */ +/* #undef HAVE_GCC_ASM_FOR_MC68881 */ + +/* Define if we can use x64 gcc inline assembler */ +#define HAVE_GCC_ASM_FOR_X64 1 + +/* Define if we can use gcc inline assembler to get and set x87 control word + */ +#define HAVE_GCC_ASM_FOR_X87 1 + +/* Define if your compiler provides __uint128_t */ +#define HAVE_GCC_UINT128_T 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_GDBM_DASH_NDBM_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_GDBM_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_GDBM_NDBM_H */ + +/* Define if you have the getaddrinfo function. */ +#define HAVE_GETADDRINFO 1 + +/* Define this if you have flockfile(), getc_unlocked(), and funlockfile() */ +#define HAVE_GETC_UNLOCKED 1 + +/* Define to 1 if you have the `getegid' function. */ +#define HAVE_GETEGID 1 + +/* Define to 1 if you have the `getentropy' function. */ +/* #undef HAVE_GETENTROPY */ + +/* Define to 1 if you have the `geteuid' function. */ +#define HAVE_GETEUID 1 + +/* Define to 1 if you have the `getgid' function. */ +#define HAVE_GETGID 1 + +/* Define to 1 if you have the `getgrent' function. */ +/* #undef HAVE_GETGRENT */ + +/* Define to 1 if you have the `getgrgid' function. */ +#define HAVE_GETGRGID 1 + +/* Define to 1 if you have the `getgrgid_r' function. */ +/* #undef HAVE_GETGRGID_R */ + +/* Define to 1 if you have the `getgrnam_r' function. */ +/* #undef HAVE_GETGRNAM_R */ + +/* Define to 1 if you have the `getgrouplist' function. */ +#define HAVE_GETGROUPLIST 1 + +/* Define to 1 if you have the `getgroups' function. */ +#define HAVE_GETGROUPS 1 + +/* Define if you have the 'gethostbyaddr' function. */ +#define HAVE_GETHOSTBYADDR 1 + +/* Define to 1 if you have the `gethostbyname' function. */ +#define HAVE_GETHOSTBYNAME 1 + +/* Define this if you have some version of gethostbyname_r() */ +#define HAVE_GETHOSTBYNAME_R 1 + +/* Define this if you have the 3-arg version of gethostbyname_r(). */ +/* #undef HAVE_GETHOSTBYNAME_R_3_ARG */ + +/* Define this if you have the 5-arg version of gethostbyname_r(). */ +/* #undef HAVE_GETHOSTBYNAME_R_5_ARG */ + +/* Define this if you have the 6-arg version of gethostbyname_r(). */ +#define HAVE_GETHOSTBYNAME_R_6_ARG 1 + +/* Define to 1 if you have the `gethostname' function. */ +#define HAVE_GETHOSTNAME 1 + +/* Define to 1 if you have the `getitimer' function. */ +#define HAVE_GETITIMER 1 + +/* Define to 1 if you have the `getloadavg' function. */ +/* #undef HAVE_GETLOADAVG */ + +/* Define to 1 if you have the `getlogin' function. */ +#define HAVE_GETLOGIN 1 + +/* Define to 1 if you have the `getnameinfo' function. */ +#define HAVE_GETNAMEINFO 1 + +/* Define if you have the 'getpagesize' function. */ +#define HAVE_GETPAGESIZE 1 + +/* Define if you have the 'getpeername' function. */ +#define HAVE_GETPEERNAME 1 + +/* Define to 1 if you have the `getpgid' function. */ +#define HAVE_GETPGID 1 + +/* Define to 1 if you have the `getpgrp' function. */ +#define HAVE_GETPGRP 1 + +/* Define to 1 if you have the `getpid' function. */ +#define HAVE_GETPID 1 + +/* Define to 1 if you have the `getppid' function. */ +#define HAVE_GETPPID 1 + +/* Define to 1 if you have the `getpriority' function. */ +#define HAVE_GETPRIORITY 1 + +/* Define if you have the 'getprotobyname' function. */ +#define HAVE_GETPROTOBYNAME 1 + +/* Define to 1 if you have the `getpwent' function. */ +/* #undef HAVE_GETPWENT */ + +/* Define to 1 if you have the `getpwnam_r' function. */ +#define HAVE_GETPWNAM_R 1 + +/* Define to 1 if you have the `getpwuid' function. */ +#define HAVE_GETPWUID 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 */ + +/* Define to 1 if the Linux getrandom() syscall is available */ +#define HAVE_GETRANDOM_SYSCALL 1 + +/* Define to 1 if you have the `getresgid' function. */ +#define HAVE_GETRESGID 1 + +/* Define to 1 if you have the `getresuid' function. */ +#define HAVE_GETRESUID 1 + +/* Define to 1 if you have the `getrusage' function. */ +#define HAVE_GETRUSAGE 1 + +/* Define if you have the 'getservbyname' function. */ +#define HAVE_GETSERVBYNAME 1 + +/* Define if you have the 'getservbyport' function. */ +#define HAVE_GETSERVBYPORT 1 + +/* Define to 1 if you have the `getsid' function. */ +#define HAVE_GETSID 1 + +/* Define if you have the 'getsockname' function. */ +#define HAVE_GETSOCKNAME 1 + +/* Define to 1 if you have the `getspent' function. */ +/* #undef HAVE_GETSPENT */ + +/* Define to 1 if you have the `getspnam' function. */ +/* #undef HAVE_GETSPNAM */ + +/* Define to 1 if you have the `getuid' function. */ +#define HAVE_GETUID 1 + +/* Define to 1 if you have the `getwd' function. */ +/* #undef HAVE_GETWD */ + +/* Define if glibc has incorrect _FORTIFY_SOURCE wrappers for memmove and + bcopy. */ +/* #undef HAVE_GLIBC_MEMMOVE_BUG */ + +/* Define to 1 if you have the `grantpt' function. */ +#define HAVE_GRANTPT 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_GRP_H 1 + +/* Define if you have the 'hstrerror' function. */ +#define HAVE_HSTRERROR 1 + +/* Define this if you have le64toh() */ +#define HAVE_HTOLE64 1 + +/* Define to 1 if you have the `if_nameindex' function. */ +/* #undef HAVE_IF_NAMEINDEX */ + +/* Define if you have the 'inet_aton' function. */ +#define HAVE_INET_ATON 1 + +/* Define if you have the 'inet_ntoa' function. */ +#define HAVE_INET_NTOA 1 + +/* Define if you have the 'inet_pton' function. */ +#define HAVE_INET_PTON 1 + +/* Define to 1 if you have the `initgroups' function. */ +/* #undef HAVE_INITGROUPS */ + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_IO_H */ + +/* Define if gcc has the ipa-pure-const bug. */ +/* #undef HAVE_IPA_PURE_CONST_BUG */ + +/* Define to 1 if you have the `kill' function. */ +#define HAVE_KILL 1 + +/* Define to 1 if you have the `killpg' function. */ +#define HAVE_KILLPG 1 + +/* Define if you have the 'kqueue' function. */ +/* #undef HAVE_KQUEUE */ + +/* Define to 1 if you have the header file. */ +#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.) */ +/* #undef HAVE_LARGEFILE_SUPPORT */ + +/* Define to 1 if you have the 'lchflags' function. */ +/* #undef HAVE_LCHFLAGS */ + +/* Define to 1 if you have the `lchmod' function. */ +/* #undef HAVE_LCHMOD */ + +/* Define to 1 if you have the `lchown' function. */ +#define HAVE_LCHOWN 1 + +/* Define to 1 if you want to build _blake2 module with libb2 */ +/* #undef HAVE_LIBB2 */ + +/* Define to 1 if you have the `db' library (-ldb). */ +/* #undef HAVE_LIBDB */ + +/* Define to 1 if you have the `dl' library (-ldl). */ +#define HAVE_LIBDL 1 + +/* Define to 1 if you have the `dld' library (-ldld). */ +/* #undef HAVE_LIBDLD */ + +/* Define to 1 if you have the `ieee' library (-lieee). */ +/* #undef HAVE_LIBIEEE */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LIBINTL_H */ + +/* Define to 1 if you have the `resolv' library (-lresolv). */ +/* #undef HAVE_LIBRESOLV */ + +/* Define to 1 if you have the `sendfile' library (-lsendfile). */ +/* #undef HAVE_LIBSENDFILE */ + +/* Define to 1 if you have the `sqlite3' library (-lsqlite3). */ +#define HAVE_LIBSQLITE3 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LIBUTIL_H */ + +/* Define if you have the 'link' function. */ +#define HAVE_LINK 1 + +/* Define to 1 if you have the `linkat' function. */ +#define HAVE_LINKAT 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_AUXVEC_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_CAN_BCM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_CAN_H 1 + +/* Define to 1 if you have the 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 to 1 if you have the 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 header file. */ +#define HAVE_LINUX_FS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_LIMITS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_MEMFD_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_NETLINK_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_QRTR_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_RANDOM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_SOUNDCARD_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_TIPC_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_VM_SOCKETS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LINUX_WAIT_H 1 + +/* Define if you have the 'listen' function. */ +#define HAVE_LISTEN 1 + +/* Define to 1 if you have the `lockf' function. */ +/* #undef HAVE_LOCKF */ + +/* Define to 1 if you have the `log1p' function. */ +#define HAVE_LOG1P 1 + +/* Define to 1 if you have the `log2' function. */ +#define HAVE_LOG2 1 + +/* Define to 1 if you have the `login_tty' function. */ +/* #undef HAVE_LOGIN_TTY */ + +/* 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. */ +#define HAVE_LSTAT 1 + +/* Define to 1 if you have the `lutimes' function. */ +/* #undef HAVE_LUTIMES */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LZMA_H */ + +/* 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 to 1 if you have the `memrchr' function. */ +#define HAVE_MEMRCHR 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_MINIX_CONFIG_H */ + +/* Define to 1 if you have the `mkdirat' function. */ +#define HAVE_MKDIRAT 1 + +/* Define to 1 if you have the `mkfifo' function. */ +#define HAVE_MKFIFO 1 + +/* Define to 1 if you have the `mkfifoat' function. */ +/* #undef HAVE_MKFIFOAT */ + +/* Define to 1 if you have the `mknod' function. */ +#define HAVE_MKNOD 1 + +/* Define to 1 if you have the `mknodat' function. */ +#define HAVE_MKNODAT 1 + +/* Define to 1 if you have the `mktime' function. */ +#define HAVE_MKTIME 1 + +/* Define to 1 if you have the `mmap' function. */ +#define HAVE_MMAP 1 + +/* Define to 1 if you have the `mremap' function. */ +#define HAVE_MREMAP 1 + +/* Define to 1 if you have the `nanosleep' function. */ +#define HAVE_NANOSLEEP 1 + +/* Define if you have the 'ncurses' library */ +/* #undef HAVE_NCURSES */ + +/* Define if you have the 'ncursesw' library */ +/* #undef HAVE_NCURSESW */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSESW_CURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSESW_NCURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSESW_PANEL_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSES_CURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSES_NCURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSES_PANEL_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NDBM_H */ + +/* Define to 1 if you have the header file, and it defines `DIR'. */ +/* #undef HAVE_NDIR_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NETCAN_CAN_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_NETDB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_NETINET_IN_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NETLINK_NETLINK_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_NETPACKET_PACKET_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_NET_ETHERNET_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_NET_IF_H 1 + +/* Define to 1 if you have the `nice' function. */ +#define HAVE_NICE 1 + +/* Define if the internal form of wchar_t in non-Unicode locales is not + Unicode. */ +/* #undef HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION */ + +/* Define to 1 if you have the `openat' function. */ +#define HAVE_OPENAT 1 + +/* Define to 1 if you have the `opendir' function. */ +#define HAVE_OPENDIR 1 + +/* Define to 1 if you have the `openpty' function. */ +/* #undef HAVE_OPENPTY */ + +/* Define if you have the 'panel' library */ +/* #undef HAVE_PANEL */ + +/* Define if you have the 'panelw' library */ +/* #undef HAVE_PANELW */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_PANEL_H */ + +/* Define to 1 if you have the `pathconf' function. */ +#define HAVE_PATHCONF 1 + +/* Define to 1 if you have the `pause' function. */ +#define HAVE_PAUSE 1 + +/* Define to 1 if you have the `pipe' function. */ +#define HAVE_PIPE 1 + +/* Define to 1 if you have the `pipe2' function. */ +#define HAVE_PIPE2 1 + +/* Define to 1 if you have the `plock' function. */ +/* #undef HAVE_PLOCK */ + +/* Define to 1 if you have the `poll' function. */ +#define HAVE_POLL 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_POLL_H 1 + +/* Define to 1 if you have the `posix_fadvise' function. */ +#define HAVE_POSIX_FADVISE 1 + +/* Define to 1 if you have the `posix_fallocate' function. */ +#define HAVE_POSIX_FALLOCATE 1 + +/* Define to 1 if you have the `posix_openpt' function. */ +#define HAVE_POSIX_OPENPT 1 + +/* Define to 1 if you have the `posix_spawn' function. */ +/* #undef HAVE_POSIX_SPAWN */ + +/* Define to 1 if you have the `posix_spawnp' function. */ +/* #undef HAVE_POSIX_SPAWNP */ + +/* Define to 1 if you have the `posix_spawn_file_actions_addclosefrom_np' + function. */ +/* #undef HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSEFROM_NP */ + +/* Define to 1 if you have the `pread' function. */ +#define HAVE_PREAD 1 + +/* Define to 1 if you have the `preadv' function. */ +/* #undef HAVE_PREADV */ + +/* Define to 1 if you have the `preadv2' function. */ +/* #undef HAVE_PREADV2 */ + +/* Define if you have the 'prlimit' function. */ +#define HAVE_PRLIMIT 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_PROCESS_H */ + +/* Define to 1 if you have the `process_vm_readv' function. */ +/* #undef HAVE_PROCESS_VM_READV */ + +/* 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_cond_timedwait_relative_np' function. + */ +/* #undef HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE_NP */ + +/* Defined for Solaris 2.6 bug in pthread header. */ +/* #undef HAVE_PTHREAD_DESTRUCTOR */ + +/* Define to 1 if you have the `pthread_getcpuclockid' function. */ +#define HAVE_PTHREAD_GETCPUCLOCKID 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_PTHREAD_H 1 + +/* Define to 1 if you have the `pthread_init' function. */ +/* #undef HAVE_PTHREAD_INIT */ + +/* Define to 1 if you have the `pthread_kill' function. */ +#define HAVE_PTHREAD_KILL 1 + +/* Define to 1 if you have the `pthread_sigmask' function. */ +#define HAVE_PTHREAD_SIGMASK 1 + +/* Define if platform requires stubbed pthreads support */ +/* #undef HAVE_PTHREAD_STUBS */ + +/* Define to 1 if you have the `ptsname' function. */ +#define HAVE_PTSNAME 1 + +/* Define to 1 if you have the `ptsname_r' function. */ +#define HAVE_PTSNAME_R 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_PTY_H 1 + +/* Define to 1 if you have the `pwrite' function. */ +#define HAVE_PWRITE 1 + +/* Define to 1 if you have the `pwritev' function. */ +/* #undef HAVE_PWRITEV */ + +/* Define to 1 if you have the `pwritev2' function. */ +/* #undef HAVE_PWRITEV2 */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_READLINE_READLINE_H */ + +/* Define to 1 if you have the `readlink' function. */ +#define HAVE_READLINK 1 + +/* Define to 1 if you have the `readlinkat' function. */ +#define HAVE_READLINKAT 1 + +/* Define to 1 if you have the `readv' function. */ +#define HAVE_READV 1 + +/* Define to 1 if you have the `realpath' function. */ +#define HAVE_REALPATH 1 + +/* Define if you have the 'recvfrom' function. */ +#define HAVE_RECVFROM 1 + +/* Define to 1 if you have the `renameat' function. */ +#define HAVE_RENAMEAT 1 + +/* Define if readline supports append_history */ +/* #undef HAVE_RL_APPEND_HISTORY */ + +/* Define if you can turn off readline's signal handling. */ +/* #undef HAVE_RL_CATCH_SIGNAL */ + +/* Define to 1 if the system has the type `rl_compdisp_func_t'. */ +/* #undef HAVE_RL_COMPDISP_FUNC_T */ + +/* Define if you have readline 2.2 */ +/* #undef HAVE_RL_COMPLETION_APPEND_CHARACTER */ + +/* Define if you have readline 4.0 */ +/* #undef HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK */ + +/* Define if you have readline 4.2 */ +/* #undef HAVE_RL_COMPLETION_MATCHES */ + +/* Define if you have rl_completion_suppress_append */ +/* #undef HAVE_RL_COMPLETION_SUPPRESS_APPEND */ + +/* Define if you have readline 4.0 */ +/* #undef HAVE_RL_PRE_INPUT_HOOK */ + +/* Define if you have readline 4.0 */ +/* #undef HAVE_RL_RESIZE_TERMINAL */ + +/* 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 + +/* Define to 1 if you have the header file. */ +#define HAVE_SCHED_H 1 + +/* Define to 1 if you have the `sched_rr_get_interval' function. */ +#define HAVE_SCHED_RR_GET_INTERVAL 1 + +/* Define to 1 if you have the `sched_setaffinity' function. */ +#define HAVE_SCHED_SETAFFINITY 1 + +/* Define to 1 if you have the `sched_setparam' function. */ +#define HAVE_SCHED_SETPARAM 1 + +/* Define to 1 if you have the `sched_setscheduler' function. */ +#define HAVE_SCHED_SETSCHEDULER 1 + +/* Define to 1 if you have the `sem_clockwait' function. */ +/* #undef HAVE_SEM_CLOCKWAIT */ + +/* Define to 1 if you have the `sem_getvalue' function. */ +#define HAVE_SEM_GETVALUE 1 + +/* Define to 1 if you have the `sem_open' function. */ +/* #undef HAVE_SEM_OPEN */ + +/* Define to 1 if you have the `sem_timedwait' function. */ +#define HAVE_SEM_TIMEDWAIT 1 + +/* Define to 1 if you have the `sem_unlink' function. */ +/* #undef HAVE_SEM_UNLINK */ + +/* Define to 1 if you have the `sendfile' function. */ +#define HAVE_SENDFILE 1 + +/* Define if you have the 'sendto' function. */ +#define HAVE_SENDTO 1 + +/* Define to 1 if you have the `setegid' function. */ +/* #undef HAVE_SETEGID */ + +/* Define to 1 if you have the `seteuid' function. */ +/* #undef HAVE_SETEUID */ + +/* Define to 1 if you have the `setgid' function. */ +/* #undef HAVE_SETGID */ + +/* Define if you have the 'setgroups' function. */ +#define HAVE_SETGROUPS 1 + +/* Define to 1 if you have the `sethostname' function. */ +/* #undef HAVE_SETHOSTNAME */ + +/* Define to 1 if you have the `setitimer' function. */ +#define HAVE_SETITIMER 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SETJMP_H 1 + +/* Define to 1 if you have the `setlocale' function. */ +#define HAVE_SETLOCALE 1 + +/* Define to 1 if you have the `setns' function. */ +#define HAVE_SETNS 1 + +/* Define to 1 if you have the `setpgid' function. */ +#define HAVE_SETPGID 1 + +/* Define to 1 if you have the `setpgrp' function. */ +#define HAVE_SETPGRP 1 + +/* Define to 1 if you have the `setpriority' function. */ +#define HAVE_SETPRIORITY 1 + +/* Define to 1 if you have the `setregid' function. */ +/* #undef HAVE_SETREGID */ + +/* Define to 1 if you have the `setresgid' function. */ +/* #undef HAVE_SETRESGID */ + +/* Define to 1 if you have the `setresuid' function. */ +/* #undef HAVE_SETRESUID */ + +/* Define to 1 if you have the `setreuid' function. */ +/* #undef HAVE_SETREUID */ + +/* Define to 1 if you have the `setsid' function. */ +#define HAVE_SETSID 1 + +/* Define if you have the 'setsockopt' function. */ +#define HAVE_SETSOCKOPT 1 + +/* Define to 1 if you have the `setuid' function. */ +/* #undef HAVE_SETUID */ + +/* Define to 1 if you have the `setvbuf' function. */ +#define HAVE_SETVBUF 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SHADOW_H */ + +/* Define to 1 if you have the `shm_open' function. */ +/* #undef HAVE_SHM_OPEN */ + +/* Define to 1 if you have the `shm_unlink' function. */ +/* #undef HAVE_SHM_UNLINK */ + +/* Define to 1 if you have the `shutdown' function. */ +#define HAVE_SHUTDOWN 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 `si_band' is a member of `siginfo_t'. */ +#define HAVE_SIGINFO_T_SI_BAND 1 + +/* Define to 1 if you have the `siginterrupt' function. */ +#define HAVE_SIGINTERRUPT 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SIGNAL_H 1 + +/* Define to 1 if you have the `sigpending' function. */ +#define HAVE_SIGPENDING 1 + +/* Define to 1 if you have the `sigrelse' function. */ +/* #undef HAVE_SIGRELSE */ + +/* Define to 1 if you have the `sigtimedwait' function. */ +/* #undef HAVE_SIGTIMEDWAIT */ + +/* Define to 1 if you have the `sigwait' function. */ +#define HAVE_SIGWAIT 1 + +/* Define to 1 if you have the `sigwaitinfo' function. */ +/* #undef HAVE_SIGWAITINFO */ + +/* Define to 1 if you have the `snprintf' function. */ +#define HAVE_SNPRINTF 1 + +/* struct sockaddr_alg (linux/if_alg.h) */ +#define HAVE_SOCKADDR_ALG 1 + +/* Define if sockaddr has sa_len member */ +/* #undef HAVE_SOCKADDR_SA_LEN */ + +/* struct sockaddr_storage (sys/socket.h) */ +#define HAVE_SOCKADDR_STORAGE 1 + +/* Define if you have the 'socket' function. */ +#define HAVE_SOCKET 1 + +/* Define if you have the 'socketpair' function. */ +#define HAVE_SOCKETPAIR 1 + +/* Define to 1 if the system has the type `socklen_t'. */ +#define HAVE_SOCKLEN_T 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SPAWN_H 1 + +/* Define to 1 if you have the `splice' function. */ +#define HAVE_SPLICE 1 + +/* Define to 1 if the system has the type `ssize_t'. */ +#define HAVE_SSIZE_T 1 + +/* Define to 1 if you have the `statvfs' function. */ +#define HAVE_STATVFS 1 + +/* Define if you have struct stat.st_mtim.tv_nsec */ +#define HAVE_STAT_TV_NSEC 1 + +/* Define if you have struct stat.st_mtimensec */ +/* #undef HAVE_STAT_TV_NSEC2 */ + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDIO_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Has stdatomic.h with atomic_int and atomic_uintptr_t */ +#define HAVE_STD_ATOMIC 1 + +/* Define to 1 if you have the `strftime' function. */ +#define HAVE_STRFTIME 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `strlcpy' function. */ +#define HAVE_STRLCPY 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_STROPTS_H */ + +/* 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 + +/* Define to 1 if `pw_passwd' is a member of `struct passwd'. */ +#define HAVE_STRUCT_PASSWD_PW_PASSWD 1 + +/* Define to 1 if `st_birthtime' is a member of `struct stat'. */ +/* #undef HAVE_STRUCT_STAT_ST_BIRTHTIME */ + +/* Define to 1 if `st_blksize' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_BLKSIZE 1 + +/* Define to 1 if `st_blocks' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_BLOCKS 1 + +/* Define to 1 if `st_flags' is a member of `struct stat'. */ +/* #undef HAVE_STRUCT_STAT_ST_FLAGS */ + +/* Define to 1 if `st_gen' is a member of `struct stat'. */ +/* #undef HAVE_STRUCT_STAT_ST_GEN */ + +/* Define to 1 if `st_rdev' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_RDEV 1 + +/* Define to 1 if `tm_zone' is a member of `struct tm'. */ +#define HAVE_STRUCT_TM_TM_ZONE 1 + +/* Define if you have the 'symlink' function. */ +#define HAVE_SYMLINK 1 + +/* Define to 1 if you have the `symlinkat' function. */ +#define HAVE_SYMLINKAT 1 + +/* Define to 1 if you have the `sync' function. */ +#define HAVE_SYNC 1 + +/* Define to 1 if you have the `sysconf' function. */ +#define HAVE_SYSCONF 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYSEXITS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYSLOG_H 1 + +/* Define to 1 if you have the `system' function. */ +#define HAVE_SYSTEM 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_AUDIOIO_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_AUXV_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_BSDTTY_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_DEVPOLL_H */ + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +/* #undef HAVE_SYS_DIR_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_ENDIAN_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_EPOLL_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_EVENTFD_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_EVENT_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_FILE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_IOCTL_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_KERN_CONTROL_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_LOADAVG_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_LOCK_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_MEMFD_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_MKDEV_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_MMAN_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_MODEM_H */ + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +/* #undef HAVE_SYS_NDIR_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_POLL_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_RANDOM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_RESOURCE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SELECT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SENDFILE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SOCKET_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SOUNDCARD_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STATVFS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SYSCALL_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SYSMACROS_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SYS_DOMAIN_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_TERMIO_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIMERFD_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIMES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_UIO_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_UN_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_UTSNAME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_WAIT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_XATTR_H 1 + +/* Define to 1 if you have the `tcgetpgrp' function. */ +#define HAVE_TCGETPGRP 1 + +/* Define to 1 if you have the `tcsetpgrp' function. */ +#define HAVE_TCSETPGRP 1 + +/* Define to 1 if you have the `tempnam' function. */ +#define HAVE_TEMPNAM 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_TERMIOS_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_TERM_H */ + +/* Define to 1 if you have the `timegm' function. */ +#define HAVE_TIMEGM 1 + +/* Define if you have the 'timerfd_create' function. */ +#define HAVE_TIMERFD_CREATE 1 + +/* Define to 1 if you have the `times' function. */ +#define HAVE_TIMES 1 + +/* Define to 1 if you have the `tmpfile' function. */ +#define HAVE_TMPFILE 1 + +/* Define to 1 if you have the `tmpnam' function. */ +#define HAVE_TMPNAM 1 + +/* Define to 1 if you have the `tmpnam_r' function. */ +/* #undef HAVE_TMPNAM_R */ + +/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use + `HAVE_STRUCT_TM_TM_ZONE' instead. */ +#define HAVE_TM_ZONE 1 + +/* Define to 1 if you have the `truncate' function. */ +#define HAVE_TRUNCATE 1 + +/* Define to 1 if you have the `ttyname' function. */ +#define HAVE_TTYNAME 1 + +/* Define to 1 if you don't have `tm_zone' but do have the external array + `tzname'. */ +/* #undef HAVE_TZNAME */ + +/* Define to 1 if you have the `umask' function. */ +#define HAVE_UMASK 1 + +/* Define to 1 if you have the `uname' function. */ +#define HAVE_UNAME 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to 1 if you have the `unlinkat' function. */ +#define HAVE_UNLINKAT 1 + +/* Define to 1 if you have the `unlockpt' function. */ +#define HAVE_UNLOCKPT 1 + +/* Define to 1 if you have the `unshare' function. */ +#define HAVE_UNSHARE 1 + +/* Define if you have a useable wchar_t type defined in wchar.h; useable means + wchar_t must be an unsigned type with at least 16 bits. (see + Include/unicodeobject.h). */ +/* #undef HAVE_USABLE_WCHAR_T */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_UTIL_H */ + +/* Define to 1 if you have the `utimensat' function. */ +#define HAVE_UTIMENSAT 1 + +/* Define to 1 if you have the `utimes' function. */ +#define HAVE_UTIMES 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UTIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UTMP_H 1 + +/* Define to 1 if you have the `uuid_create' function. */ +/* #undef HAVE_UUID_CREATE */ + +/* Define to 1 if you have the `uuid_enc_be' function. */ +/* #undef HAVE_UUID_ENC_BE */ + +/* Define if uuid_generate_time_safe() exists. */ +/* #undef HAVE_UUID_GENERATE_TIME_SAFE */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_UUID_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_UUID_UUID_H */ + +/* Define to 1 if you have the `vfork' function. */ +#define HAVE_VFORK 1 + +/* Define to 1 if you have the `wait' function. */ +#define HAVE_WAIT 1 + +/* Define to 1 if you have the `wait3' function. */ +/* #undef HAVE_WAIT3 */ + +/* Define to 1 if you have the `wait4' function. */ +#define HAVE_WAIT4 1 + +/* Define to 1 if you have the `waitid' function. */ +#define HAVE_WAITID 1 + +/* Define to 1 if you have the `waitpid' function. */ +#define HAVE_WAITPID 1 + +/* Define if the compiler provides a wchar.h header file. */ +#define HAVE_WCHAR_H 1 + +/* Define to 1 if you have the `wcscoll' function. */ +#define HAVE_WCSCOLL 1 + +/* Define to 1 if you have the `wcsftime' function. */ +#define HAVE_WCSFTIME 1 + +/* Define to 1 if you have the `wcsxfrm' function. */ +#define HAVE_WCSXFRM 1 + +/* Define to 1 if you have the `wmemcmp' function. */ +#define HAVE_WMEMCMP 1 + +/* Define if tzset() actually switches the local timezone in a meaningful way. + */ +/* #undef HAVE_WORKING_TZSET */ + +/* Define to 1 if you have the `writev' function. */ +#define HAVE_WRITEV 1 + +/* Define if the zlib library has inflateCopy */ +#define HAVE_ZLIB_COPY 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ZLIB_H 1 + +/* Define to 1 if you have the `_getpty' function. */ +/* #undef HAVE__GETPTY */ + +/* Define to 1 if the system has the type `__uint128_t'. */ +#define HAVE___UINT128_T 1 + +/* Define to 1 if `major', `minor', and `makedev' are declared in . + */ +/* #undef MAJOR_IN_MKDEV */ + +/* Define to 1 if `major', `minor', and `makedev' are declared in + . */ +#define MAJOR_IN_SYSMACROS 1 + +/* Define if mvwdelch in curses.h is an expression. */ +/* #undef MVWDELCH_IS_EXPRESSION */ + +/* Define to the address where bug reports for this package should be sent. */ +/* #undef PACKAGE_BUGREPORT */ + +/* Define to the full name of this package. */ +/* #undef PACKAGE_NAME */ + +/* Define to the full name and version of this package. */ +/* #undef PACKAGE_STRING */ + +/* Define to the one symbol short name of this package. */ +/* #undef PACKAGE_TARNAME */ + +/* Define to the home page for this package. */ +/* #undef PACKAGE_URL */ + +/* Define to the version of this package. */ +/* #undef PACKAGE_VERSION */ + +/* Define if POSIX semaphores aren't enabled on your system */ +/* #undef POSIX_SEMAPHORES_NOT_ENABLED */ + +/* Define if pthread_key_t is compatible with int. */ +#define PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT 1 + +/* Defined if PTHREAD_SCOPE_SYSTEM supported. */ +/* #undef PTHREAD_SYSTEM_SCHED_SUPPORTED */ + +/* Define as the preferred size in bits of long digits */ +/* #undef PYLONG_BITS_IN_DIGIT */ + +/* enabled builtin hash modules */ +#define PY_BUILTIN_HASHLIB_HASHES "md5,sha1,sha2,sha3,blake2" + +/* Define if you want to coerce the C locale to a UTF-8 based locale */ +#define PY_COERCE_C_LOCALE 1 + +/* Define to 1 if you have the perf trampoline. */ +/* #undef PY_HAVE_PERF_TRAMPOLINE */ + +/* Define to 1 to build the sqlite module with loadable extensions support. */ +/* #undef PY_SQLITE_ENABLE_LOAD_EXTENSION */ + +/* Define if SQLite was compiled with the serialize API */ +#define PY_SQLITE_HAVE_SERIALIZE 1 + +/* Default cipher suites list for ssl module. 1: Python's preferred selection, + 2: leave OpenSSL defaults untouched, 0: custom string */ +#define PY_SSL_DEFAULT_CIPHERS 1 + +/* Cipher suite string for PY_SSL_DEFAULT_CIPHERS=0 */ +/* #undef PY_SSL_DEFAULT_CIPHER_STRING */ + +/* PEP 11 Support tier (1, 2, 3 or 0 for unsupported) */ +#define PY_SUPPORT_TIER 3 + +/* Define if you want to build an interpreter with many run-time checks. */ +/* #undef Py_DEBUG */ + +/* Defined if Python is built as a shared library. */ +#define Py_ENABLE_SHARED 1 + +/* Define if you want to disable the GIL */ +/* #undef Py_GIL_DISABLED */ + +/* Define hash algorithm for str, bytes and memoryview. SipHash24: 1, FNV: 2, + SipHash13: 3, externally defined: 0 */ +/* #undef Py_HASH_ALGORITHM */ + +/* Define if rl_startup_hook takes arguments */ +/* #undef Py_RL_STARTUP_HOOK_TAKES_ARGS */ + +/* Define if you want to enable internal statistics gathering. */ +/* #undef Py_STATS */ + +/* The version of SunOS/Solaris as reported by `uname -r' without the dot. */ +/* #undef Py_SUNOS_VERSION */ + +/* 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 if i>>j for signed int i does not extend the sign bit when i < 0 */ +/* #undef SIGNED_RIGHT_SHIFT_ZERO_FILLS */ + +/* The size of `double', as computed by sizeof. */ +#define SIZEOF_DOUBLE 8 + +/* The size of `float', as computed by sizeof. */ +#define SIZEOF_FLOAT 4 + +/* The size of `fpos_t', as computed by sizeof. */ +#define SIZEOF_FPOS_T 8 + +/* The size of `int', as computed by sizeof. */ +#define SIZEOF_INT 4 + +/* The size of `long', as computed by sizeof. */ +#define SIZEOF_LONG 8 + +/* The size of `long double', as computed by sizeof. */ +#define SIZEOF_LONG_DOUBLE 16 + +/* The size of `long long', as computed by sizeof. */ +#define SIZEOF_LONG_LONG 8 + +/* The size of `off_t', as computed by sizeof. */ +#define SIZEOF_OFF_T 8 + +/* The size of `pid_t', as computed by sizeof. */ +#define SIZEOF_PID_T 4 + +/* The size of `pthread_key_t', as computed by sizeof. */ +#define SIZEOF_PTHREAD_KEY_T 4 + +/* The size of `pthread_t', as computed by sizeof. */ +#define SIZEOF_PTHREAD_T 8 + +/* The size of `short', as computed by sizeof. */ +#define SIZEOF_SHORT 2 + +/* The size of `size_t', as computed by sizeof. */ +#define SIZEOF_SIZE_T 8 + +/* The size of `time_t', as computed by sizeof. */ +#define SIZEOF_TIME_T 8 + +/* The size of `uintptr_t', as computed by sizeof. */ +#define SIZEOF_UINTPTR_T 8 + +/* The size of `void *', as computed by sizeof. */ +#define SIZEOF_VOID_P 8 + +/* The size of `wchar_t', as computed by sizeof. */ +#define SIZEOF_WCHAR_T 4 + +/* The size of `_Bool', as computed by sizeof. */ +#define SIZEOF__BOOL 1 + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define if you can safely include both and + (which you can't on SCO ODT 3.0). */ +#define SYS_SELECT_WITH_SYS_TIME 1 + +/* Custom thread stack size depending on chosen sanitizer runtimes. */ +/* #undef THREAD_STACK_SIZE */ + +/* Library needed by timemodule.c: librt may be needed for clock_gettime() */ +/* #undef TIMEMODULE_LIB */ + +/* Define to 1 if your declares `struct tm'. */ +/* #undef TM_IN_SYS_TIME */ + +/* Define if you want to use computed gotos in ceval.c. */ +/* #undef USE_COMPUTED_GOTOS */ + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# define _ALL_SOURCE 1 +#endif +/* Enable general extensions on macOS. */ +#ifndef _DARWIN_C_SOURCE +# define _DARWIN_C_SOURCE 1 +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# define __EXTENSIONS__ 1 +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +#endif +/* Enable X/Open compliant socket functions that do not require linking + with -lxnet on HP-UX 11.11. */ +#ifndef _HPUX_ALT_XOPEN_SOCKET_API +# define _HPUX_ALT_XOPEN_SOCKET_API 1 +#endif +/* Identify the host operating system as Minix. + This macro does not affect the system headers' behavior. + A future release of Autoconf may stop defining this macro. */ +#ifndef _MINIX +/* # undef _MINIX */ +#endif +/* Enable general extensions on NetBSD. + Enable NetBSD compatibility extensions on Minix. */ +#ifndef _NETBSD_SOURCE +# define _NETBSD_SOURCE 1 +#endif +/* Enable OpenBSD compatibility extensions on NetBSD. + Oddly enough, this does nothing on OpenBSD. */ +#ifndef _OPENBSD_SOURCE +# define _OPENBSD_SOURCE 1 +#endif +/* Define to 1 if needed for POSIX-compatible behavior. */ +#ifndef _POSIX_SOURCE +/* # undef _POSIX_SOURCE */ +#endif +/* Define to 2 if needed for POSIX-compatible behavior. */ +#ifndef _POSIX_1_SOURCE +/* # undef _POSIX_1_SOURCE */ +#endif +/* Enable POSIX-compatible threading on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# define _POSIX_PTHREAD_SEMANTICS 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */ +#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ +# define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */ +#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ +# define __STDC_WANT_IEC_60559_BFP_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */ +#ifndef __STDC_WANT_IEC_60559_DFP_EXT__ +# define __STDC_WANT_IEC_60559_DFP_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ +#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ +# define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-3:2015. */ +#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ +# define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */ +#ifndef __STDC_WANT_LIB_EXT2__ +# define __STDC_WANT_LIB_EXT2__ 1 +#endif +/* Enable extensions specified by ISO/IEC 24747:2009. */ +#ifndef __STDC_WANT_MATH_SPEC_FUNCS__ +# define __STDC_WANT_MATH_SPEC_FUNCS__ 1 +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# define _TANDEM_SOURCE 1 +#endif +/* Enable X/Open extensions. Define to 500 only if necessary + to make mbstate_t available. */ +#ifndef _XOPEN_SOURCE +# define _XOPEN_SOURCE 700 +#endif + + +/* Define if WINDOW in curses.h offers a field _flags. */ +/* #undef WINDOW_HAS_FLAGS */ + +/* 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 + +/* Define if you want to compile in DTrace support */ +/* #undef WITH_DTRACE */ + +/* Define if you want to use the new-style (Openstep, Rhapsody, MacOS) dynamic + linker (dyld) instead of the old-style (NextStep) dynamic linker (rld). + Dyld is necessary to support frameworks. */ +/* #undef WITH_DYLD */ + +/* Define to build the readline module against libedit. */ +/* #undef WITH_EDITLINE */ + +/* Define if you want to compile in object freelists optimization */ +#define WITH_FREELISTS 1 + +/* Define to 1 if libintl is needed for locale functions. */ +/* #undef WITH_LIBINTL */ + +/* Define if you want to compile in mimalloc memory allocator. */ +#define WITH_MIMALLOC 1 + +/* Define if you want to produce an OpenStep/Rhapsody framework (shared + library plus accessory files). */ +/* #undef WITH_NEXT_FRAMEWORK */ + +/* Define if you want to compile in Python-specific mallocs */ +#define WITH_PYMALLOC 1 + +/* Define if you want pymalloc to be disabled when running under valgrind */ +/* #undef WITH_VALGRIND */ + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +/* # undef WORDS_BIGENDIAN */ +# endif +#endif + +/* Define if arithmetic is subject to x87-style double rounding issue */ +/* #undef X87_DOUBLE_ROUNDING */ + +/* Define on OpenBSD to activate all library features */ +/* #undef _BSD_SOURCE */ + +/* Define on Darwin to activate all library features */ +#define _DARWIN_C_SOURCE 1 + +/* This must be set to 64 on some systems to enable large file support. */ +#define _FILE_OFFSET_BITS 64 + +/* Define to include mbstate_t for mbrtowc */ +/* #undef _INCLUDE__STDC_A1_SOURCE */ + +/* This must be defined on some systems to enable large file support. */ +#define _LARGEFILE_SOURCE 1 + +/* This must be defined on AIX systems to enable large file support. */ +/* #undef _LARGE_FILES */ + +/* Define on NetBSD to activate all library features */ +#define _NETBSD_SOURCE 1 + +/* Define to activate features from IEEE Stds 1003.1-2008 */ +#define _POSIX_C_SOURCE 200809L + +/* Define if you have POSIX threads, and your system does not define that. */ +/* #undef _POSIX_THREADS */ + +/* framework name */ +#define _PYTHONFRAMEWORK "" + +/* Define to force use of thread-safe errno, h_errno, and other functions */ +#define _REENTRANT 1 + +/* Define to 1 if you want to emulate getpid() on WASI */ +/* #undef _WASI_EMULATED_GETPID */ + +/* Define to 1 if you want to emulate process clocks on WASI */ +/* #undef _WASI_EMULATED_PROCESS_CLOCKS */ + +/* Define to 1 if you want to emulate signals on WASI */ +/* #undef _WASI_EMULATED_SIGNAL */ + +/* Define to the level of X/Open that your system supports */ +#define _XOPEN_SOURCE 700 + +/* Define to activate Unix95-and-earlier features */ +#define _XOPEN_SOURCE_EXTENDED 1 + +/* Define on FreeBSD to activate all library features */ +#define __BSD_VISIBLE 1 + +/* Define to 'long' if does not define clock_t. */ +/* #undef clock_t */ + +/* Define to empty if `const' does not conform to ANSI C. */ +/* #undef const */ + +/* Define to `int' if doesn't define. */ +/* #undef gid_t */ + +/* Define to `int' if does not define. */ +/* #undef mode_t */ + +/* Define to `long int' if does not define. */ +/* #undef off_t */ + +/* Define as a signed integer type capable of holding a process identifier. */ +/* #undef pid_t */ + +/* Define to empty if the keyword does not work. */ +/* #undef signed */ + +/* Define to `unsigned int' if does not define. */ +/* #undef size_t */ + +/* Define to 'int' if does not define. */ +/* #undef socklen_t */ + +/* Define to `int' if doesn't define. */ +/* #undef uid_t */ + + +/* Define the macros needed if on a UnixWare 7.x system. */ +#if defined(__USLC__) && defined(__SCO_VERSION__) +#define STRICT_SYSV_CURSES /* Don't use ncurses extensions */ +#endif + +#endif /*Py_PYCONFIG_H*/ + diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyconfig-ios-arm64.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyconfig-ios-arm64.h new file mode 100644 index 000000000..449939abe --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyconfig-ios-arm64.h @@ -0,0 +1,2015 @@ +/* pyconfig.h. Generated from pyconfig.h.in by configure. */ +/* pyconfig.h.in. Generated from configure.ac by autoheader. */ + + +#ifndef Py_PYCONFIG_H +#define Py_PYCONFIG_H + + +/* 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 */ + +/* 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 */ + +/* The normal alignment of `long', in bytes. */ +#define ALIGNOF_LONG 8 + +/* The normal alignment of `max_align_t', in bytes. */ +#define ALIGNOF_MAX_ALIGN_T 8 + +/* The normal alignment of `size_t', in bytes. */ +#define ALIGNOF_SIZE_T 8 + +/* 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 */ + +/* Define if C doubles are 64-bit IEEE 754 binary format, stored in ARM + mixed-endian order (byte order 45670123) */ +/* #undef DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 */ + +/* Define if C doubles are 64-bit IEEE 754 binary format, stored with the most + significant byte first */ +/* #undef DOUBLE_IS_BIG_ENDIAN_IEEE754 */ + +/* Define if C doubles are 64-bit IEEE 754 binary format, stored with the + least significant byte first */ +#define DOUBLE_IS_LITTLE_ENDIAN_IEEE754 1 + +/* 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 if getpgrp() must be called as getpgrp(0). */ +/* #undef GETPGRP_HAVE_ARG */ + +/* Define if you have the 'accept' function. */ +#define HAVE_ACCEPT 1 + +/* Define to 1 if you have the `accept4' function. */ +/* #undef HAVE_ACCEPT4 */ + +/* Define to 1 if you have the `acosh' function. */ +#define HAVE_ACOSH 1 + +/* struct addrinfo (netdb.h) */ +#define HAVE_ADDRINFO 1 + +/* Define to 1 if you have the `alarm' function. */ +#define HAVE_ALARM 1 + +/* Define if aligned memory access is required */ +#define HAVE_ALIGNED_REQUIRED 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ALLOCA_H 1 + +/* Define this if your time.h defines altzone. */ +/* #undef HAVE_ALTZONE */ + +/* Define to 1 if you have the `asinh' function. */ +#define HAVE_ASINH 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_ASM_TYPES_H */ + +/* Define to 1 if you have the `atanh' function. */ +#define HAVE_ATANH 1 + +/* Define if you have the 'bind' function. */ +#define HAVE_BIND 1 + +/* Define to 1 if you have the `bind_textdomain_codeset' function. */ +/* #undef HAVE_BIND_TEXTDOMAIN_CODESET */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_BLUETOOTH_BLUETOOTH_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_BLUETOOTH_H */ + +/* Define if mbstowcs(NULL, "text", 0) does not return the number of wide + chars that would be converted. */ +/* #undef HAVE_BROKEN_MBSTOWCS */ + +/* Define if nice() returns success/failure instead of the new priority. */ +/* #undef HAVE_BROKEN_NICE */ + +/* Define if the system reports an invalid PIPE_BUF value. */ +/* #undef HAVE_BROKEN_PIPE_BUF */ + +/* Define if poll() sets errno on invalid file descriptors. */ +/* #undef HAVE_BROKEN_POLL */ + +/* Define if the Posix semaphores do not work on your system */ +/* #undef HAVE_BROKEN_POSIX_SEMAPHORES */ + +/* Define if pthread_sigmask() does not work on your system. */ +/* #undef HAVE_BROKEN_PTHREAD_SIGMASK */ + +/* define to 1 if your sem_getvalue is broken. */ +#define HAVE_BROKEN_SEM_GETVALUE 1 + +/* Define if 'unsetenv' does not return an int. */ +/* #undef HAVE_BROKEN_UNSETENV */ + +/* Has builtin __atomic_load_n() and __atomic_store_n() functions */ +#define HAVE_BUILTIN_ATOMIC 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_BZLIB_H */ + +/* Define to 1 if you have the 'chflags' function. */ +#define HAVE_CHFLAGS 1 + +/* Define to 1 if you have the `chmod' function. */ +#define HAVE_CHMOD 1 + +/* Define to 1 if you have the `chown' function. */ +#define HAVE_CHOWN 1 + +/* Define if you have the 'chroot' function. */ +#define HAVE_CHROOT 1 + +/* Define to 1 if you have the `clock' function. */ +#define HAVE_CLOCK 1 + +/* Define to 1 if you have the `clock_getres' function. */ +#define HAVE_CLOCK_GETRES 1 + +/* Define to 1 if you have the `clock_gettime' function. */ +#define HAVE_CLOCK_GETTIME 1 + +/* Define to 1 if you have the `clock_nanosleep' function. */ +/* #undef HAVE_CLOCK_NANOSLEEP */ + +/* Define to 1 if you have the `clock_settime' function. */ +/* #undef HAVE_CLOCK_SETTIME */ + +/* Define to 1 if the system has the type `clock_t'. */ +#define HAVE_CLOCK_T 1 + +/* Define to 1 if you have the `closefrom' function. */ +/* #undef HAVE_CLOSEFROM */ + +/* Define to 1 if you have the `close_range' function. */ +/* #undef HAVE_CLOSE_RANGE */ + +/* Define if the C compiler supports computed gotos. */ +/* #undef HAVE_COMPUTED_GOTOS */ + +/* Define to 1 if you have the `confstr' function. */ +#define HAVE_CONFSTR 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_CONIO_H */ + +/* Define if you have the 'connect' function. */ +#define HAVE_CONNECT 1 + +/* Define to 1 if you have the `copy_file_range' function. */ +/* #undef HAVE_COPY_FILE_RANGE */ + +/* Define to 1 if you have the `ctermid' function. */ +#define HAVE_CTERMID 1 + +/* Define if you have the 'ctermid_r' function. */ +#define HAVE_CTERMID_R 1 + +/* Define if you have the 'filter' function. */ +/* #undef HAVE_CURSES_FILTER */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_CURSES_H */ + +/* Define if you have the 'has_key' function. */ +/* #undef HAVE_CURSES_HAS_KEY */ + +/* Define if you have the 'immedok' function. */ +/* #undef HAVE_CURSES_IMMEDOK */ + +/* Define if you have the 'is_pad' function. */ +/* #undef HAVE_CURSES_IS_PAD */ + +/* Define if you have the 'is_term_resized' function. */ +/* #undef HAVE_CURSES_IS_TERM_RESIZED */ + +/* Define if you have the 'resizeterm' function. */ +/* #undef HAVE_CURSES_RESIZETERM */ + +/* Define if you have the 'resize_term' function. */ +/* #undef HAVE_CURSES_RESIZE_TERM */ + +/* Define if you have the 'syncok' function. */ +/* #undef HAVE_CURSES_SYNCOK */ + +/* Define if you have the 'typeahead' function. */ +/* #undef HAVE_CURSES_TYPEAHEAD */ + +/* Define if you have the 'use_env' function. */ +/* #undef HAVE_CURSES_USE_ENV */ + +/* Define if you have the 'wchgat' function. */ +/* #undef HAVE_CURSES_WCHGAT */ + +/* Define to 1 if you have the header file. */ +#define HAVE_DB_H 1 + +/* Define to 1 if you have the declaration of `RTLD_DEEPBIND', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_DEEPBIND 0 + +/* Define to 1 if you have the declaration of `RTLD_GLOBAL', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_GLOBAL 1 + +/* Define to 1 if you have the declaration of `RTLD_LAZY', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_LAZY 1 + +/* Define to 1 if you have the declaration of `RTLD_LOCAL', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_LOCAL 1 + +/* Define to 1 if you have the declaration of `RTLD_MEMBER', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_MEMBER 0 + +/* Define to 1 if you have the declaration of `RTLD_NODELETE', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_NODELETE 1 + +/* Define to 1 if you have the declaration of `RTLD_NOLOAD', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_NOLOAD 1 + +/* Define to 1 if you have the declaration of `RTLD_NOW', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_NOW 1 + +/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. + */ +/* #undef HAVE_DECL_TZNAME */ + +/* Define to 1 if you have the device macros. */ +#define HAVE_DEVICE_MACROS 1 + +/* Define to 1 if you have the /dev/ptc device file. */ +/* #undef HAVE_DEV_PTC */ + +/* Define to 1 if you have the /dev/ptmx device file. */ +/* #undef HAVE_DEV_PTMX */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_DIRECT_H */ + +/* Define to 1 if the dirent structure has a d_type field */ +#define HAVE_DIRENT_D_TYPE 1 + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +#define HAVE_DIRENT_H 1 + +/* Define if you have the 'dirfd' function or macro. */ +#define HAVE_DIRFD 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if you have the `dlopen' function. */ +#define HAVE_DLOPEN 1 + +/* Define to 1 if you have the `dup' function. */ +#define HAVE_DUP 1 + +/* Define to 1 if you have the `dup2' function. */ +#define HAVE_DUP2 1 + +/* Define to 1 if you have the `dup3' function. */ +/* #undef HAVE_DUP3 */ + +/* Define if you have the '_dyld_shared_cache_contains_path' function. */ +#define HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH 1 + +/* Defined when any dynamic module loading is enabled. */ +#define HAVE_DYNAMIC_LOADING 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_EDITLINE_READLINE_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_ENDIAN_H 1 + +/* Define if you have the 'epoll_create' function. */ +/* #undef HAVE_EPOLL */ + +/* Define if you have the 'epoll_create1' function. */ +/* #undef HAVE_EPOLL_CREATE1 */ + +/* Define to 1 if you have the `erf' function. */ +#define HAVE_ERF 1 + +/* Define to 1 if you have the `erfc' function. */ +#define HAVE_ERFC 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ERRNO_H 1 + +/* Define if you have the 'eventfd' function. */ +/* #undef HAVE_EVENTFD */ + +/* 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 `expm1' function. */ +#define HAVE_EXPM1 1 + +/* Define to 1 if you have the `faccessat' function. */ +#define HAVE_FACCESSAT 1 + +/* Define if you have the 'fchdir' function. */ +#define HAVE_FCHDIR 1 + +/* Define to 1 if you have the `fchmod' function. */ +#define HAVE_FCHMOD 1 + +/* Define to 1 if you have the `fchmodat' function. */ +#define HAVE_FCHMODAT 1 + +/* Define to 1 if you have the `fchown' function. */ +#define HAVE_FCHOWN 1 + +/* Define to 1 if you have the `fchownat' function. */ +#define HAVE_FCHOWNAT 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_FCNTL_H 1 + +/* Define if you have the 'fdatasync' function. */ +/* #undef HAVE_FDATASYNC */ + +/* 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 `fexecve' function. */ +/* #undef HAVE_FEXECVE */ + +/* Define if you have the 'ffi_closure_alloc' function. */ +#define HAVE_FFI_CLOSURE_ALLOC 1 + +/* Define if you have the 'ffi_prep_cif_var' function. */ +#define HAVE_FFI_PREP_CIF_VAR 1 + +/* Define if you have the 'ffi_prep_closure_loc' function. */ +#define HAVE_FFI_PREP_CLOSURE_LOC 1 + +/* Define to 1 if you have the `flock' function. */ +#define HAVE_FLOCK 1 + +/* Define to 1 if you have the `fork' function. */ +#define HAVE_FORK 1 + +/* Define to 1 if you have the `fork1' function. */ +/* #undef HAVE_FORK1 */ + +/* Define to 1 if you have the `forkpty' function. */ +#define HAVE_FORKPTY 1 + +/* Define to 1 if you have the `fpathconf' function. */ +#define HAVE_FPATHCONF 1 + +/* Define to 1 if you have the `fseek64' function. */ +/* #undef HAVE_FSEEK64 */ + +/* Define to 1 if you have the `fseeko' function. */ +#define HAVE_FSEEKO 1 + +/* Define to 1 if you have the `fstatat' function. */ +#define HAVE_FSTATAT 1 + +/* Define to 1 if you have the `fstatvfs' function. */ +#define HAVE_FSTATVFS 1 + +/* Define if you have the 'fsync' function. */ +#define HAVE_FSYNC 1 + +/* Define to 1 if you have the `ftell64' function. */ +/* #undef HAVE_FTELL64 */ + +/* Define to 1 if you have the `ftello' function. */ +#define HAVE_FTELLO 1 + +/* Define to 1 if you have the `ftime' function. */ +#define HAVE_FTIME 1 + +/* Define to 1 if you have the `ftruncate' function. */ +#define HAVE_FTRUNCATE 1 + +/* Define to 1 if you have the `futimens' function. */ +#define HAVE_FUTIMENS 1 + +/* Define to 1 if you have the `futimes' function. */ +#define HAVE_FUTIMES 1 + +/* Define to 1 if you have the `futimesat' function. */ +/* #undef HAVE_FUTIMESAT */ + +/* Define to 1 if you have the `gai_strerror' function. */ +#define HAVE_GAI_STRERROR 1 + +/* Define if we can use gcc inline assembler to get and set mc68881 fpcr */ +/* #undef HAVE_GCC_ASM_FOR_MC68881 */ + +/* Define if we can use x64 gcc inline assembler */ +/* #undef HAVE_GCC_ASM_FOR_X64 */ + +/* Define if we can use gcc inline assembler to get and set x87 control word + */ +/* #undef HAVE_GCC_ASM_FOR_X87 */ + +/* Define if your compiler provides __uint128_t */ +#define HAVE_GCC_UINT128_T 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_GDBM_DASH_NDBM_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_GDBM_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_GDBM_NDBM_H */ + +/* Define if you have the getaddrinfo function. */ +#define HAVE_GETADDRINFO 1 + +/* Define this if you have flockfile(), getc_unlocked(), and funlockfile() */ +#define HAVE_GETC_UNLOCKED 1 + +/* Define to 1 if you have the `getegid' function. */ +#define HAVE_GETEGID 1 + +/* Define to 1 if you have the `getentropy' function. */ +/* #undef HAVE_GETENTROPY */ + +/* Define to 1 if you have the `geteuid' function. */ +#define HAVE_GETEUID 1 + +/* Define to 1 if you have the `getgid' function. */ +#define HAVE_GETGID 1 + +/* Define to 1 if you have the `getgrent' function. */ +#define HAVE_GETGRENT 1 + +/* Define to 1 if you have the `getgrgid' function. */ +#define HAVE_GETGRGID 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 + +/* Define to 1 if you have the `getgroups' function. */ +/* #undef HAVE_GETGROUPS */ + +/* Define if you have the 'gethostbyaddr' function. */ +#define HAVE_GETHOSTBYADDR 1 + +/* Define to 1 if you have the `gethostbyname' function. */ +#define HAVE_GETHOSTBYNAME 1 + +/* Define this if you have some version of gethostbyname_r() */ +/* #undef HAVE_GETHOSTBYNAME_R */ + +/* Define this if you have the 3-arg version of gethostbyname_r(). */ +/* #undef HAVE_GETHOSTBYNAME_R_3_ARG */ + +/* Define this if you have the 5-arg version of gethostbyname_r(). */ +/* #undef HAVE_GETHOSTBYNAME_R_5_ARG */ + +/* Define this if you have the 6-arg version of gethostbyname_r(). */ +/* #undef HAVE_GETHOSTBYNAME_R_6_ARG */ + +/* Define to 1 if you have the `gethostname' function. */ +#define HAVE_GETHOSTNAME 1 + +/* Define to 1 if you have the `getitimer' function. */ +#define HAVE_GETITIMER 1 + +/* Define to 1 if you have the `getloadavg' function. */ +#define HAVE_GETLOADAVG 1 + +/* Define to 1 if you have the `getlogin' function. */ +#define HAVE_GETLOGIN 1 + +/* Define to 1 if you have the `getnameinfo' function. */ +#define HAVE_GETNAMEINFO 1 + +/* Define if you have the 'getpagesize' function. */ +#define HAVE_GETPAGESIZE 1 + +/* Define if you have the 'getpeername' function. */ +#define HAVE_GETPEERNAME 1 + +/* Define to 1 if you have the `getpgid' function. */ +#define HAVE_GETPGID 1 + +/* Define to 1 if you have the `getpgrp' function. */ +#define HAVE_GETPGRP 1 + +/* Define to 1 if you have the `getpid' function. */ +#define HAVE_GETPID 1 + +/* Define to 1 if you have the `getppid' function. */ +#define HAVE_GETPPID 1 + +/* Define to 1 if you have the `getpriority' function. */ +#define HAVE_GETPRIORITY 1 + +/* Define if you have the 'getprotobyname' function. */ +#define HAVE_GETPROTOBYNAME 1 + +/* 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' function. */ +#define HAVE_GETPWUID 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 */ + +/* Define to 1 if the Linux getrandom() syscall is available */ +/* #undef HAVE_GETRANDOM_SYSCALL */ + +/* Define to 1 if you have the `getresgid' function. */ +/* #undef HAVE_GETRESGID */ + +/* Define to 1 if you have the `getresuid' function. */ +/* #undef HAVE_GETRESUID */ + +/* Define to 1 if you have the `getrusage' function. */ +#define HAVE_GETRUSAGE 1 + +/* Define if you have the 'getservbyname' function. */ +#define HAVE_GETSERVBYNAME 1 + +/* Define if you have the 'getservbyport' function. */ +#define HAVE_GETSERVBYPORT 1 + +/* Define to 1 if you have the `getsid' function. */ +#define HAVE_GETSID 1 + +/* Define if you have the 'getsockname' function. */ +#define HAVE_GETSOCKNAME 1 + +/* Define to 1 if you have the `getspent' function. */ +/* #undef HAVE_GETSPENT */ + +/* Define to 1 if you have the `getspnam' function. */ +/* #undef HAVE_GETSPNAM */ + +/* Define to 1 if you have the `getuid' function. */ +#define HAVE_GETUID 1 + +/* Define to 1 if you have the `getwd' function. */ +#define HAVE_GETWD 1 + +/* Define if glibc has incorrect _FORTIFY_SOURCE wrappers for memmove and + bcopy. */ +/* #undef HAVE_GLIBC_MEMMOVE_BUG */ + +/* Define to 1 if you have the `grantpt' function. */ +#define HAVE_GRANTPT 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_GRP_H 1 + +/* Define if you have the 'hstrerror' function. */ +#define HAVE_HSTRERROR 1 + +/* Define this if you have le64toh() */ +/* #undef HAVE_HTOLE64 */ + +/* Define to 1 if you have the `if_nameindex' function. */ +#define HAVE_IF_NAMEINDEX 1 + +/* Define if you have the 'inet_aton' function. */ +#define HAVE_INET_ATON 1 + +/* Define if you have the 'inet_ntoa' function. */ +#define HAVE_INET_NTOA 1 + +/* Define if you have the 'inet_pton' function. */ +#define HAVE_INET_PTON 1 + +/* Define to 1 if you have the `initgroups' function. */ +#define HAVE_INITGROUPS 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_IO_H */ + +/* Define if gcc has the ipa-pure-const bug. */ +/* #undef HAVE_IPA_PURE_CONST_BUG */ + +/* Define to 1 if you have the `kill' function. */ +#define HAVE_KILL 1 + +/* Define to 1 if you have the `killpg' function. */ +#define HAVE_KILLPG 1 + +/* Define if you have the 'kqueue' function. */ +#define HAVE_KQUEUE 1 + +/* Define to 1 if you have the header file. */ +#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.) */ +/* #undef HAVE_LARGEFILE_SUPPORT */ + +/* Define to 1 if you have the 'lchflags' function. */ +#define HAVE_LCHFLAGS 1 + +/* Define to 1 if you have the `lchmod' function. */ +#define HAVE_LCHMOD 1 + +/* Define to 1 if you have the `lchown' function. */ +#define HAVE_LCHOWN 1 + +/* Define to 1 if you want to build _blake2 module with libb2 */ +/* #undef HAVE_LIBB2 */ + +/* Define to 1 if you have the `db' library (-ldb). */ +/* #undef HAVE_LIBDB */ + +/* Define to 1 if you have the `dl' library (-ldl). */ +#define HAVE_LIBDL 1 + +/* Define to 1 if you have the `dld' library (-ldld). */ +/* #undef HAVE_LIBDLD */ + +/* Define to 1 if you have the `ieee' library (-lieee). */ +/* #undef HAVE_LIBIEEE */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LIBINTL_H */ + +/* Define to 1 if you have the `resolv' library (-lresolv). */ +/* #undef HAVE_LIBRESOLV */ + +/* Define to 1 if you have the `sendfile' library (-lsendfile). */ +/* #undef HAVE_LIBSENDFILE */ + +/* Define to 1 if you have the `sqlite3' library (-lsqlite3). */ +#define HAVE_LIBSQLITE3 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LIBUTIL_H */ + +/* Define if you have the 'link' function. */ +#define HAVE_LINK 1 + +/* Define to 1 if you have the `linkat' function. */ +#define HAVE_LINKAT 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_AUXVEC_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_CAN_BCM_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_CAN_H */ + +/* Define to 1 if you have the 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 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 header file. */ +/* #undef HAVE_LINUX_FS_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_LIMITS_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_MEMFD_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_NETLINK_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_QRTR_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_RANDOM_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_SOUNDCARD_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_TIPC_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_VM_SOCKETS_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_WAIT_H */ + +/* Define if you have the 'listen' function. */ +#define HAVE_LISTEN 1 + +/* Define to 1 if you have the `lockf' function. */ +#define HAVE_LOCKF 1 + +/* Define to 1 if you have the `log1p' function. */ +#define HAVE_LOG1P 1 + +/* Define to 1 if you have the `log2' function. */ +#define HAVE_LOG2 1 + +/* Define to 1 if you have the `login_tty' function. */ +#define HAVE_LOGIN_TTY 1 + +/* 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. */ +#define HAVE_LSTAT 1 + +/* Define to 1 if you have the `lutimes' function. */ +#define HAVE_LUTIMES 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LZMA_H */ + +/* 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 to 1 if you have the `memrchr' function. */ +/* #undef HAVE_MEMRCHR */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_MINIX_CONFIG_H */ + +/* Define to 1 if you have the `mkdirat' function. */ +#define HAVE_MKDIRAT 1 + +/* Define to 1 if you have the `mkfifo' function. */ +#define HAVE_MKFIFO 1 + +/* Define to 1 if you have the `mkfifoat' function. */ +#define HAVE_MKFIFOAT 1 + +/* Define to 1 if you have the `mknod' function. */ +#define HAVE_MKNOD 1 + +/* Define to 1 if you have the `mknodat' function. */ +#define HAVE_MKNODAT 1 + +/* Define to 1 if you have the `mktime' function. */ +#define HAVE_MKTIME 1 + +/* Define to 1 if you have the `mmap' function. */ +#define HAVE_MMAP 1 + +/* Define to 1 if you have the `mremap' function. */ +/* #undef HAVE_MREMAP */ + +/* Define to 1 if you have the `nanosleep' function. */ +#define HAVE_NANOSLEEP 1 + +/* Define if you have the 'ncurses' library */ +/* #undef HAVE_NCURSES */ + +/* Define if you have the 'ncursesw' library */ +/* #undef HAVE_NCURSESW */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSESW_CURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSESW_NCURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSESW_PANEL_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSES_CURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSES_NCURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSES_PANEL_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_NDBM_H 1 + +/* Define to 1 if you have the header file, and it defines `DIR'. */ +/* #undef HAVE_NDIR_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NETCAN_CAN_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_NETDB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_NETINET_IN_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NETLINK_NETLINK_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NETPACKET_PACKET_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_NET_ETHERNET_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_NET_IF_H 1 + +/* Define to 1 if you have the `nice' function. */ +#define HAVE_NICE 1 + +/* Define if the internal form of wchar_t in non-Unicode locales is not + Unicode. */ +/* #undef HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION */ + +/* Define to 1 if you have the `openat' function. */ +#define HAVE_OPENAT 1 + +/* Define to 1 if you have the `opendir' function. */ +#define HAVE_OPENDIR 1 + +/* Define to 1 if you have the `openpty' function. */ +#define HAVE_OPENPTY 1 + +/* Define if you have the 'panel' library */ +/* #undef HAVE_PANEL */ + +/* Define if you have the 'panelw' library */ +/* #undef HAVE_PANELW */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_PANEL_H */ + +/* Define to 1 if you have the `pathconf' function. */ +#define HAVE_PATHCONF 1 + +/* Define to 1 if you have the `pause' function. */ +#define HAVE_PAUSE 1 + +/* Define to 1 if you have the `pipe' function. */ +#define HAVE_PIPE 1 + +/* Define to 1 if you have the `pipe2' function. */ +/* #undef HAVE_PIPE2 */ + +/* Define to 1 if you have the `plock' function. */ +/* #undef HAVE_PLOCK */ + +/* Define to 1 if you have the `poll' function. */ +#define HAVE_POLL 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_POLL_H 1 + +/* Define to 1 if you have the `posix_fadvise' function. */ +/* #undef HAVE_POSIX_FADVISE */ + +/* Define to 1 if you have the `posix_fallocate' function. */ +/* #undef HAVE_POSIX_FALLOCATE */ + +/* Define to 1 if you have the `posix_openpt' function. */ +#define HAVE_POSIX_OPENPT 1 + +/* 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_spawn_file_actions_addclosefrom_np' + function. */ +/* #undef HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSEFROM_NP */ + +/* Define to 1 if you have the `pread' function. */ +#define HAVE_PREAD 1 + +/* Define to 1 if you have the `preadv' function. */ +#define HAVE_PREADV 1 + +/* Define to 1 if you have the `preadv2' function. */ +/* #undef HAVE_PREADV2 */ + +/* Define if you have the 'prlimit' function. */ +/* #undef HAVE_PRLIMIT */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_PROCESS_H */ + +/* Define to 1 if you have the `process_vm_readv' function. */ +/* #undef HAVE_PROCESS_VM_READV */ + +/* 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_cond_timedwait_relative_np' function. + */ +#define HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE_NP 1 + +/* Defined for Solaris 2.6 bug in pthread header. */ +/* #undef HAVE_PTHREAD_DESTRUCTOR */ + +/* Define to 1 if you have the `pthread_getcpuclockid' function. */ +/* #undef HAVE_PTHREAD_GETCPUCLOCKID */ + +/* Define to 1 if you have the header file. */ +#define HAVE_PTHREAD_H 1 + +/* Define to 1 if you have the `pthread_init' function. */ +/* #undef HAVE_PTHREAD_INIT */ + +/* Define to 1 if you have the `pthread_kill' function. */ +#define HAVE_PTHREAD_KILL 1 + +/* Define to 1 if you have the `pthread_sigmask' function. */ +#define HAVE_PTHREAD_SIGMASK 1 + +/* Define if platform requires stubbed pthreads support */ +/* #undef HAVE_PTHREAD_STUBS */ + +/* Define to 1 if you have the `ptsname' function. */ +#define HAVE_PTSNAME 1 + +/* Define to 1 if you have the `ptsname_r' function. */ +#define HAVE_PTSNAME_R 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_PTY_H */ + +/* Define to 1 if you have the `pwrite' function. */ +#define HAVE_PWRITE 1 + +/* Define to 1 if you have the `pwritev' function. */ +#define HAVE_PWRITEV 1 + +/* Define to 1 if you have the `pwritev2' function. */ +/* #undef HAVE_PWRITEV2 */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_READLINE_READLINE_H */ + +/* Define to 1 if you have the `readlink' function. */ +#define HAVE_READLINK 1 + +/* Define to 1 if you have the `readlinkat' function. */ +#define HAVE_READLINKAT 1 + +/* Define to 1 if you have the `readv' function. */ +#define HAVE_READV 1 + +/* Define to 1 if you have the `realpath' function. */ +#define HAVE_REALPATH 1 + +/* Define if you have the 'recvfrom' function. */ +#define HAVE_RECVFROM 1 + +/* Define to 1 if you have the `renameat' function. */ +#define HAVE_RENAMEAT 1 + +/* Define if readline supports append_history */ +/* #undef HAVE_RL_APPEND_HISTORY */ + +/* Define if you can turn off readline's signal handling. */ +/* #undef HAVE_RL_CATCH_SIGNAL */ + +/* Define to 1 if the system has the type `rl_compdisp_func_t'. */ +/* #undef HAVE_RL_COMPDISP_FUNC_T */ + +/* Define if you have readline 2.2 */ +/* #undef HAVE_RL_COMPLETION_APPEND_CHARACTER */ + +/* Define if you have readline 4.0 */ +/* #undef HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK */ + +/* Define if you have readline 4.2 */ +/* #undef HAVE_RL_COMPLETION_MATCHES */ + +/* Define if you have rl_completion_suppress_append */ +/* #undef HAVE_RL_COMPLETION_SUPPRESS_APPEND */ + +/* Define if you have readline 4.0 */ +/* #undef HAVE_RL_PRE_INPUT_HOOK */ + +/* Define if you have readline 4.0 */ +/* #undef HAVE_RL_RESIZE_TERMINAL */ + +/* 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 + +/* Define to 1 if you have the header file. */ +#define HAVE_SCHED_H 1 + +/* Define to 1 if you have the `sched_rr_get_interval' function. */ +/* #undef HAVE_SCHED_RR_GET_INTERVAL */ + +/* Define to 1 if you have the `sched_setaffinity' function. */ +/* #undef HAVE_SCHED_SETAFFINITY */ + +/* Define to 1 if you have the `sched_setparam' function. */ +/* #undef HAVE_SCHED_SETPARAM */ + +/* Define to 1 if you have the `sched_setscheduler' function. */ +/* #undef HAVE_SCHED_SETSCHEDULER */ + +/* Define to 1 if you have the `sem_clockwait' function. */ +/* #undef HAVE_SEM_CLOCKWAIT */ + +/* Define to 1 if you have the `sem_getvalue' function. */ +#define HAVE_SEM_GETVALUE 1 + +/* Define to 1 if you have the `sem_open' function. */ +#define HAVE_SEM_OPEN 1 + +/* Define to 1 if you have the `sem_timedwait' function. */ +/* #undef HAVE_SEM_TIMEDWAIT */ + +/* Define to 1 if you have the `sem_unlink' function. */ +#define HAVE_SEM_UNLINK 1 + +/* Define to 1 if you have the `sendfile' function. */ +#define HAVE_SENDFILE 1 + +/* Define if you have the 'sendto' function. */ +#define HAVE_SENDTO 1 + +/* Define to 1 if you have the `setegid' function. */ +#define HAVE_SETEGID 1 + +/* Define to 1 if you have the `seteuid' function. */ +#define HAVE_SETEUID 1 + +/* Define to 1 if you have the `setgid' function. */ +#define HAVE_SETGID 1 + +/* Define if you have the 'setgroups' function. */ +#define HAVE_SETGROUPS 1 + +/* Define to 1 if you have the `sethostname' function. */ +#define HAVE_SETHOSTNAME 1 + +/* Define to 1 if you have the `setitimer' function. */ +#define HAVE_SETITIMER 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SETJMP_H 1 + +/* Define to 1 if you have the `setlocale' function. */ +#define HAVE_SETLOCALE 1 + +/* Define to 1 if you have the `setns' function. */ +/* #undef HAVE_SETNS */ + +/* Define to 1 if you have the `setpgid' function. */ +#define HAVE_SETPGID 1 + +/* Define to 1 if you have the `setpgrp' function. */ +#define HAVE_SETPGRP 1 + +/* Define to 1 if you have the `setpriority' function. */ +#define HAVE_SETPRIORITY 1 + +/* Define to 1 if you have the `setregid' function. */ +#define HAVE_SETREGID 1 + +/* Define to 1 if you have the `setresgid' function. */ +/* #undef HAVE_SETRESGID */ + +/* Define to 1 if you have the `setresuid' function. */ +/* #undef HAVE_SETRESUID */ + +/* Define to 1 if you have the `setreuid' function. */ +#define HAVE_SETREUID 1 + +/* Define to 1 if you have the `setsid' function. */ +#define HAVE_SETSID 1 + +/* Define if you have the 'setsockopt' function. */ +#define HAVE_SETSOCKOPT 1 + +/* Define to 1 if you have the `setuid' function. */ +#define HAVE_SETUID 1 + +/* Define to 1 if you have the `setvbuf' function. */ +#define HAVE_SETVBUF 1 + +/* Define to 1 if you have the 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 `shutdown' function. */ +#define HAVE_SHUTDOWN 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 `si_band' is a member of `siginfo_t'. */ +#define HAVE_SIGINFO_T_SI_BAND 1 + +/* Define to 1 if you have the `siginterrupt' function. */ +#define HAVE_SIGINTERRUPT 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SIGNAL_H 1 + +/* Define to 1 if you have the `sigpending' function. */ +#define HAVE_SIGPENDING 1 + +/* Define to 1 if you have the `sigrelse' function. */ +#define HAVE_SIGRELSE 1 + +/* Define to 1 if you have the `sigtimedwait' function. */ +/* #undef HAVE_SIGTIMEDWAIT */ + +/* Define to 1 if you have the `sigwait' function. */ +#define HAVE_SIGWAIT 1 + +/* Define to 1 if you have the `sigwaitinfo' function. */ +/* #undef HAVE_SIGWAITINFO */ + +/* Define to 1 if you have the `snprintf' function. */ +#define HAVE_SNPRINTF 1 + +/* struct sockaddr_alg (linux/if_alg.h) */ +/* #undef HAVE_SOCKADDR_ALG */ + +/* Define if sockaddr has sa_len member */ +#define HAVE_SOCKADDR_SA_LEN 1 + +/* struct sockaddr_storage (sys/socket.h) */ +#define HAVE_SOCKADDR_STORAGE 1 + +/* Define if you have the 'socket' function. */ +#define HAVE_SOCKET 1 + +/* Define if you have the 'socketpair' function. */ +#define HAVE_SOCKETPAIR 1 + +/* Define to 1 if the system has the type `socklen_t'. */ +#define HAVE_SOCKLEN_T 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SPAWN_H 1 + +/* Define to 1 if you have the `splice' function. */ +/* #undef HAVE_SPLICE */ + +/* Define to 1 if the system has the type `ssize_t'. */ +#define HAVE_SSIZE_T 1 + +/* Define to 1 if you have the `statvfs' function. */ +#define HAVE_STATVFS 1 + +/* Define if you have struct stat.st_mtim.tv_nsec */ +/* #undef HAVE_STAT_TV_NSEC */ + +/* Define if you have struct stat.st_mtimensec */ +#define HAVE_STAT_TV_NSEC2 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDIO_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Has stdatomic.h with atomic_int and atomic_uintptr_t */ +#define HAVE_STD_ATOMIC 1 + +/* Define to 1 if you have the `strftime' function. */ +#define HAVE_STRFTIME 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `strlcpy' function. */ +#define HAVE_STRLCPY 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_STROPTS_H */ + +/* 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 + +/* Define to 1 if `pw_passwd' is a member of `struct passwd'. */ +#define HAVE_STRUCT_PASSWD_PW_PASSWD 1 + +/* Define to 1 if `st_birthtime' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_BIRTHTIME 1 + +/* Define to 1 if `st_blksize' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_BLKSIZE 1 + +/* Define to 1 if `st_blocks' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_BLOCKS 1 + +/* Define to 1 if `st_flags' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_FLAGS 1 + +/* Define to 1 if `st_gen' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_GEN 1 + +/* Define to 1 if `st_rdev' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_RDEV 1 + +/* Define to 1 if `tm_zone' is a member of `struct tm'. */ +#define HAVE_STRUCT_TM_TM_ZONE 1 + +/* Define if you have the 'symlink' function. */ +#define HAVE_SYMLINK 1 + +/* Define to 1 if you have the `symlinkat' function. */ +#define HAVE_SYMLINKAT 1 + +/* Define to 1 if you have the `sync' function. */ +#define HAVE_SYNC 1 + +/* Define to 1 if you have the `sysconf' function. */ +#define HAVE_SYSCONF 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYSEXITS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYSLOG_H 1 + +/* Define to 1 if you have the `system' function. */ +/* #undef HAVE_SYSTEM */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_AUDIOIO_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_AUXV_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_BSDTTY_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_DEVPOLL_H */ + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +/* #undef HAVE_SYS_DIR_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_ENDIAN_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_EPOLL_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_EVENTFD_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_EVENT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_FILE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_IOCTL_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_KERN_CONTROL_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_LOADAVG_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_LOCK_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_MEMFD_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_MKDEV_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_MMAN_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_MODEM_H */ + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +/* #undef HAVE_SYS_NDIR_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_POLL_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_RANDOM_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_RESOURCE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SELECT_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SENDFILE_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SOCKET_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SOUNDCARD_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STATVFS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SYSCALL_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SYSMACROS_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SYS_DOMAIN_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_TERMIO_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_TIMERFD_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIMES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_UIO_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_UN_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_UTSNAME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_WAIT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_XATTR_H 1 + +/* Define to 1 if you have the `tcgetpgrp' function. */ +#define HAVE_TCGETPGRP 1 + +/* Define to 1 if you have the `tcsetpgrp' function. */ +#define HAVE_TCSETPGRP 1 + +/* Define to 1 if you have the `tempnam' function. */ +#define HAVE_TEMPNAM 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_TERMIOS_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_TERM_H */ + +/* Define to 1 if you have the `timegm' function. */ +#define HAVE_TIMEGM 1 + +/* Define if you have the 'timerfd_create' function. */ +/* #undef HAVE_TIMERFD_CREATE */ + +/* Define to 1 if you have the `times' function. */ +#define HAVE_TIMES 1 + +/* Define to 1 if you have the `tmpfile' function. */ +#define HAVE_TMPFILE 1 + +/* Define to 1 if you have the `tmpnam' function. */ +#define HAVE_TMPNAM 1 + +/* Define to 1 if you have the `tmpnam_r' function. */ +/* #undef HAVE_TMPNAM_R */ + +/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use + `HAVE_STRUCT_TM_TM_ZONE' instead. */ +#define HAVE_TM_ZONE 1 + +/* Define to 1 if you have the `truncate' function. */ +#define HAVE_TRUNCATE 1 + +/* Define to 1 if you have the `ttyname' function. */ +#define HAVE_TTYNAME 1 + +/* Define to 1 if you don't have `tm_zone' but do have the external array + `tzname'. */ +/* #undef HAVE_TZNAME */ + +/* Define to 1 if you have the `umask' function. */ +#define HAVE_UMASK 1 + +/* Define to 1 if you have the `uname' function. */ +#define HAVE_UNAME 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to 1 if you have the `unlinkat' function. */ +#define HAVE_UNLINKAT 1 + +/* Define to 1 if you have the `unlockpt' function. */ +#define HAVE_UNLOCKPT 1 + +/* Define to 1 if you have the `unshare' function. */ +/* #undef HAVE_UNSHARE */ + +/* Define if you have a useable wchar_t type defined in wchar.h; useable means + wchar_t must be an unsigned type with at least 16 bits. (see + Include/unicodeobject.h). */ +/* #undef HAVE_USABLE_WCHAR_T */ + +/* Define to 1 if you have the header file. */ +#define HAVE_UTIL_H 1 + +/* Define to 1 if you have the `utimensat' function. */ +#define HAVE_UTIMENSAT 1 + +/* Define to 1 if you have the `utimes' function. */ +#define HAVE_UTIMES 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UTIME_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_UTMP_H */ + +/* Define to 1 if you have the `uuid_create' function. */ +/* #undef HAVE_UUID_CREATE */ + +/* Define to 1 if you have the `uuid_enc_be' function. */ +/* #undef HAVE_UUID_ENC_BE */ + +/* Define if uuid_generate_time_safe() exists. */ +/* #undef HAVE_UUID_GENERATE_TIME_SAFE */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_UUID_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_UUID_UUID_H 1 + +/* Define to 1 if you have the `vfork' function. */ +#define HAVE_VFORK 1 + +/* Define to 1 if you have the `wait' function. */ +#define HAVE_WAIT 1 + +/* Define to 1 if you have the `wait3' function. */ +#define HAVE_WAIT3 1 + +/* Define to 1 if you have the `wait4' function. */ +#define HAVE_WAIT4 1 + +/* Define to 1 if you have the `waitid' function. */ +#define HAVE_WAITID 1 + +/* Define to 1 if you have the `waitpid' function. */ +#define HAVE_WAITPID 1 + +/* Define if the compiler provides a wchar.h header file. */ +#define HAVE_WCHAR_H 1 + +/* Define to 1 if you have the `wcscoll' function. */ +#define HAVE_WCSCOLL 1 + +/* Define to 1 if you have the `wcsftime' function. */ +#define HAVE_WCSFTIME 1 + +/* Define to 1 if you have the `wcsxfrm' function. */ +#define HAVE_WCSXFRM 1 + +/* Define to 1 if you have the `wmemcmp' function. */ +#define HAVE_WMEMCMP 1 + +/* Define if tzset() actually switches the local timezone in a meaningful way. + */ +/* #undef HAVE_WORKING_TZSET */ + +/* Define to 1 if you have the `writev' function. */ +#define HAVE_WRITEV 1 + +/* Define if the zlib library has inflateCopy */ +#define HAVE_ZLIB_COPY 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ZLIB_H 1 + +/* Define to 1 if you have the `_getpty' function. */ +/* #undef HAVE__GETPTY */ + +/* Define to 1 if the system has the type `__uint128_t'. */ +#define HAVE___UINT128_T 1 + +/* Define to 1 if `major', `minor', and `makedev' are declared in . + */ +/* #undef MAJOR_IN_MKDEV */ + +/* Define to 1 if `major', `minor', and `makedev' are declared in + . */ +/* #undef MAJOR_IN_SYSMACROS */ + +/* Define if mvwdelch in curses.h is an expression. */ +/* #undef MVWDELCH_IS_EXPRESSION */ + +/* Define to the address where bug reports for this package should be sent. */ +/* #undef PACKAGE_BUGREPORT */ + +/* Define to the full name of this package. */ +/* #undef PACKAGE_NAME */ + +/* Define to the full name and version of this package. */ +/* #undef PACKAGE_STRING */ + +/* Define to the one symbol short name of this package. */ +/* #undef PACKAGE_TARNAME */ + +/* Define to the home page for this package. */ +/* #undef PACKAGE_URL */ + +/* Define to the version of this package. */ +/* #undef PACKAGE_VERSION */ + +/* Define if POSIX semaphores aren't enabled on your system */ +/* #undef POSIX_SEMAPHORES_NOT_ENABLED */ + +/* Define if pthread_key_t is compatible with int. */ +/* #undef PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT */ + +/* Defined if PTHREAD_SCOPE_SYSTEM supported. */ +/* #undef PTHREAD_SYSTEM_SCHED_SUPPORTED */ + +/* Define as the preferred size in bits of long digits */ +/* #undef PYLONG_BITS_IN_DIGIT */ + +/* enabled builtin hash modules */ +#define PY_BUILTIN_HASHLIB_HASHES "md5,sha1,sha2,sha3,blake2" + +/* Define if you want to coerce the C locale to a UTF-8 based locale */ +#define PY_COERCE_C_LOCALE 1 + +/* Define to 1 if you have the perf trampoline. */ +/* #undef PY_HAVE_PERF_TRAMPOLINE */ + +/* Define to 1 to build the sqlite module with loadable extensions support. */ +/* #undef PY_SQLITE_ENABLE_LOAD_EXTENSION */ + +/* Define if SQLite was compiled with the serialize API */ +#define PY_SQLITE_HAVE_SERIALIZE 1 + +/* Default cipher suites list for ssl module. 1: Python's preferred selection, + 2: leave OpenSSL defaults untouched, 0: custom string */ +#define PY_SSL_DEFAULT_CIPHERS 1 + +/* Cipher suite string for PY_SSL_DEFAULT_CIPHERS=0 */ +/* #undef PY_SSL_DEFAULT_CIPHER_STRING */ + +/* PEP 11 Support tier (1, 2, 3 or 0 for unsupported) */ +#define PY_SUPPORT_TIER 3 + +/* Define if you want to build an interpreter with many run-time checks. */ +/* #undef Py_DEBUG */ + +/* Defined if Python is built as a shared library. */ +/* #undef Py_ENABLE_SHARED */ + +/* Define if you want to disable the GIL */ +/* #undef Py_GIL_DISABLED */ + +/* Define hash algorithm for str, bytes and memoryview. SipHash24: 1, FNV: 2, + SipHash13: 3, externally defined: 0 */ +/* #undef Py_HASH_ALGORITHM */ + +/* Define if rl_startup_hook takes arguments */ +/* #undef Py_RL_STARTUP_HOOK_TAKES_ARGS */ + +/* Define if you want to enable internal statistics gathering. */ +/* #undef Py_STATS */ + +/* The version of SunOS/Solaris as reported by `uname -r' without the dot. */ +/* #undef Py_SUNOS_VERSION */ + +/* 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 if i>>j for signed int i does not extend the sign bit when i < 0 */ +/* #undef SIGNED_RIGHT_SHIFT_ZERO_FILLS */ + +/* The size of `double', as computed by sizeof. */ +#define SIZEOF_DOUBLE 8 + +/* The size of `float', as computed by sizeof. */ +#define SIZEOF_FLOAT 4 + +/* The size of `fpos_t', as computed by sizeof. */ +#define SIZEOF_FPOS_T 8 + +/* The size of `int', as computed by sizeof. */ +#define SIZEOF_INT 4 + +/* The size of `long', as computed by sizeof. */ +#define SIZEOF_LONG 8 + +/* The size of `long double', as computed by sizeof. */ +#define SIZEOF_LONG_DOUBLE 8 + +/* The size of `long long', as computed by sizeof. */ +#define SIZEOF_LONG_LONG 8 + +/* The size of `off_t', as computed by sizeof. */ +#define SIZEOF_OFF_T 8 + +/* The size of `pid_t', as computed by sizeof. */ +#define SIZEOF_PID_T 4 + +/* The size of `pthread_key_t', as computed by sizeof. */ +#define SIZEOF_PTHREAD_KEY_T 8 + +/* The size of `pthread_t', as computed by sizeof. */ +#define SIZEOF_PTHREAD_T 8 + +/* The size of `short', as computed by sizeof. */ +#define SIZEOF_SHORT 2 + +/* The size of `size_t', as computed by sizeof. */ +#define SIZEOF_SIZE_T 8 + +/* The size of `time_t', as computed by sizeof. */ +#define SIZEOF_TIME_T 8 + +/* The size of `uintptr_t', as computed by sizeof. */ +#define SIZEOF_UINTPTR_T 8 + +/* The size of `void *', as computed by sizeof. */ +#define SIZEOF_VOID_P 8 + +/* The size of `wchar_t', as computed by sizeof. */ +#define SIZEOF_WCHAR_T 4 + +/* The size of `_Bool', as computed by sizeof. */ +#define SIZEOF__BOOL 1 + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define if you can safely include both and + (which you can't on SCO ODT 3.0). */ +#define SYS_SELECT_WITH_SYS_TIME 1 + +/* Custom thread stack size depending on chosen sanitizer runtimes. */ +#define THREAD_STACK_SIZE 0x1000000 + +/* Library needed by timemodule.c: librt may be needed for clock_gettime() */ +/* #undef TIMEMODULE_LIB */ + +/* Define to 1 if your declares `struct tm'. */ +/* #undef TM_IN_SYS_TIME */ + +/* Define if you want to use computed gotos in ceval.c. */ +/* #undef USE_COMPUTED_GOTOS */ + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# define _ALL_SOURCE 1 +#endif +/* Enable general extensions on macOS. */ +#ifndef _DARWIN_C_SOURCE +# define _DARWIN_C_SOURCE 1 +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# define __EXTENSIONS__ 1 +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +#endif +/* Enable X/Open compliant socket functions that do not require linking + with -lxnet on HP-UX 11.11. */ +#ifndef _HPUX_ALT_XOPEN_SOCKET_API +# define _HPUX_ALT_XOPEN_SOCKET_API 1 +#endif +/* Identify the host operating system as Minix. + This macro does not affect the system headers' behavior. + A future release of Autoconf may stop defining this macro. */ +#ifndef _MINIX +/* # undef _MINIX */ +#endif +/* Enable general extensions on NetBSD. + Enable NetBSD compatibility extensions on Minix. */ +#ifndef _NETBSD_SOURCE +# define _NETBSD_SOURCE 1 +#endif +/* Enable OpenBSD compatibility extensions on NetBSD. + Oddly enough, this does nothing on OpenBSD. */ +#ifndef _OPENBSD_SOURCE +# define _OPENBSD_SOURCE 1 +#endif +/* Define to 1 if needed for POSIX-compatible behavior. */ +#ifndef _POSIX_SOURCE +/* # undef _POSIX_SOURCE */ +#endif +/* Define to 2 if needed for POSIX-compatible behavior. */ +#ifndef _POSIX_1_SOURCE +/* # undef _POSIX_1_SOURCE */ +#endif +/* Enable POSIX-compatible threading on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# define _POSIX_PTHREAD_SEMANTICS 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */ +#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ +# define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */ +#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ +# define __STDC_WANT_IEC_60559_BFP_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */ +#ifndef __STDC_WANT_IEC_60559_DFP_EXT__ +# define __STDC_WANT_IEC_60559_DFP_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ +#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ +# define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-3:2015. */ +#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ +# define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */ +#ifndef __STDC_WANT_LIB_EXT2__ +# define __STDC_WANT_LIB_EXT2__ 1 +#endif +/* Enable extensions specified by ISO/IEC 24747:2009. */ +#ifndef __STDC_WANT_MATH_SPEC_FUNCS__ +# define __STDC_WANT_MATH_SPEC_FUNCS__ 1 +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# define _TANDEM_SOURCE 1 +#endif +/* Enable X/Open extensions. Define to 500 only if necessary + to make mbstate_t available. */ +#ifndef _XOPEN_SOURCE +/* # undef _XOPEN_SOURCE */ +#endif + + +/* Define if WINDOW in curses.h offers a field _flags. */ +/* #undef WINDOW_HAS_FLAGS */ + +/* 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 + +/* Define if you want to compile in DTrace support */ +/* #undef WITH_DTRACE */ + +/* Define if you want to use the new-style (Openstep, Rhapsody, MacOS) dynamic + linker (dyld) instead of the old-style (NextStep) dynamic linker (rld). + Dyld is necessary to support frameworks. */ +/* #undef WITH_DYLD */ + +/* Define to build the readline module against libedit. */ +/* #undef WITH_EDITLINE */ + +/* Define if you want to compile in object freelists optimization */ +#define WITH_FREELISTS 1 + +/* Define to 1 if libintl is needed for locale functions. */ +/* #undef WITH_LIBINTL */ + +/* Define if you want to compile in mimalloc memory allocator. */ +#define WITH_MIMALLOC 1 + +/* Define if you want to produce an OpenStep/Rhapsody framework (shared + library plus accessory files). */ +#define WITH_NEXT_FRAMEWORK 1 + +/* Define if you want to compile in Python-specific mallocs */ +#define WITH_PYMALLOC 1 + +/* Define if you want pymalloc to be disabled when running under valgrind */ +/* #undef WITH_VALGRIND */ + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +/* # undef WORDS_BIGENDIAN */ +# endif +#endif + +/* Define if arithmetic is subject to x87-style double rounding issue */ +/* #undef X87_DOUBLE_ROUNDING */ + +/* Define on OpenBSD to activate all library features */ +/* #undef _BSD_SOURCE */ + +/* Define on Darwin to activate all library features */ +#define _DARWIN_C_SOURCE 1 + +/* This must be set to 64 on some systems to enable large file support. */ +#define _FILE_OFFSET_BITS 64 + +/* Define to include mbstate_t for mbrtowc */ +/* #undef _INCLUDE__STDC_A1_SOURCE */ + +/* This must be defined on some systems to enable large file support. */ +#define _LARGEFILE_SOURCE 1 + +/* This must be defined on AIX systems to enable large file support. */ +/* #undef _LARGE_FILES */ + +/* Define on NetBSD to activate all library features */ +#define _NETBSD_SOURCE 1 + +/* Define to activate features from IEEE Stds 1003.1-2008 */ +/* #undef _POSIX_C_SOURCE */ + +/* Define if you have POSIX threads, and your system does not define that. */ +/* #undef _POSIX_THREADS */ + +/* framework name */ +#define _PYTHONFRAMEWORK "Python" + +/* Define to force use of thread-safe errno, h_errno, and other functions */ +#define _REENTRANT 1 + +/* Define to 1 if you want to emulate getpid() on WASI */ +/* #undef _WASI_EMULATED_GETPID */ + +/* Define to 1 if you want to emulate process clocks on WASI */ +/* #undef _WASI_EMULATED_PROCESS_CLOCKS */ + +/* Define to 1 if you want to emulate signals on WASI */ +/* #undef _WASI_EMULATED_SIGNAL */ + +/* Define to the level of X/Open that your system supports */ +/* #undef _XOPEN_SOURCE */ + +/* Define to activate Unix95-and-earlier features */ +/* #undef _XOPEN_SOURCE_EXTENDED */ + +/* Define on FreeBSD to activate all library features */ +#define __BSD_VISIBLE 1 + +/* Define to 'long' if does not define clock_t. */ +/* #undef clock_t */ + +/* Define to empty if `const' does not conform to ANSI C. */ +/* #undef const */ + +/* Define to `int' if doesn't define. */ +/* #undef gid_t */ + +/* Define to `int' if does not define. */ +/* #undef mode_t */ + +/* Define to `long int' if does not define. */ +/* #undef off_t */ + +/* Define as a signed integer type capable of holding a process identifier. */ +/* #undef pid_t */ + +/* Define to empty if the keyword does not work. */ +/* #undef signed */ + +/* Define to `unsigned int' if does not define. */ +/* #undef size_t */ + +/* Define to 'int' if does not define. */ +/* #undef socklen_t */ + +/* Define to `int' if doesn't define. */ +/* #undef uid_t */ + + +/* Define the macros needed if on a UnixWare 7.x system. */ +#if defined(__USLC__) && defined(__SCO_VERSION__) +#define STRICT_SYSV_CURSES /* Don't use ncurses extensions */ +#endif + +#endif /*Py_PYCONFIG_H*/ + diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyconfig-ios-x86_64.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyconfig-ios-x86_64.h new file mode 100644 index 000000000..340fc9b6d --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyconfig-ios-x86_64.h @@ -0,0 +1,2015 @@ +/* pyconfig.h. Generated from pyconfig.h.in by configure. */ +/* pyconfig.h.in. Generated from configure.ac by autoheader. */ + + +#ifndef Py_PYCONFIG_H +#define Py_PYCONFIG_H + + +/* 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 */ + +/* 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 */ + +/* The normal alignment of `long', in bytes. */ +#define ALIGNOF_LONG 8 + +/* The normal alignment of `max_align_t', in bytes. */ +#define ALIGNOF_MAX_ALIGN_T 16 + +/* The normal alignment of `size_t', in bytes. */ +#define ALIGNOF_SIZE_T 8 + +/* 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 */ + +/* Define if C doubles are 64-bit IEEE 754 binary format, stored in ARM + mixed-endian order (byte order 45670123) */ +/* #undef DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 */ + +/* Define if C doubles are 64-bit IEEE 754 binary format, stored with the most + significant byte first */ +/* #undef DOUBLE_IS_BIG_ENDIAN_IEEE754 */ + +/* Define if C doubles are 64-bit IEEE 754 binary format, stored with the + least significant byte first */ +#define DOUBLE_IS_LITTLE_ENDIAN_IEEE754 1 + +/* 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 if getpgrp() must be called as getpgrp(0). */ +/* #undef GETPGRP_HAVE_ARG */ + +/* Define if you have the 'accept' function. */ +#define HAVE_ACCEPT 1 + +/* Define to 1 if you have the `accept4' function. */ +/* #undef HAVE_ACCEPT4 */ + +/* Define to 1 if you have the `acosh' function. */ +#define HAVE_ACOSH 1 + +/* struct addrinfo (netdb.h) */ +#define HAVE_ADDRINFO 1 + +/* Define to 1 if you have the `alarm' function. */ +#define HAVE_ALARM 1 + +/* Define if aligned memory access is required */ +#define HAVE_ALIGNED_REQUIRED 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ALLOCA_H 1 + +/* Define this if your time.h defines altzone. */ +/* #undef HAVE_ALTZONE */ + +/* Define to 1 if you have the `asinh' function. */ +#define HAVE_ASINH 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_ASM_TYPES_H */ + +/* Define to 1 if you have the `atanh' function. */ +#define HAVE_ATANH 1 + +/* Define if you have the 'bind' function. */ +#define HAVE_BIND 1 + +/* Define to 1 if you have the `bind_textdomain_codeset' function. */ +/* #undef HAVE_BIND_TEXTDOMAIN_CODESET */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_BLUETOOTH_BLUETOOTH_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_BLUETOOTH_H */ + +/* Define if mbstowcs(NULL, "text", 0) does not return the number of wide + chars that would be converted. */ +/* #undef HAVE_BROKEN_MBSTOWCS */ + +/* Define if nice() returns success/failure instead of the new priority. */ +/* #undef HAVE_BROKEN_NICE */ + +/* Define if the system reports an invalid PIPE_BUF value. */ +/* #undef HAVE_BROKEN_PIPE_BUF */ + +/* Define if poll() sets errno on invalid file descriptors. */ +/* #undef HAVE_BROKEN_POLL */ + +/* Define if the Posix semaphores do not work on your system */ +/* #undef HAVE_BROKEN_POSIX_SEMAPHORES */ + +/* Define if pthread_sigmask() does not work on your system. */ +/* #undef HAVE_BROKEN_PTHREAD_SIGMASK */ + +/* define to 1 if your sem_getvalue is broken. */ +#define HAVE_BROKEN_SEM_GETVALUE 1 + +/* Define if 'unsetenv' does not return an int. */ +/* #undef HAVE_BROKEN_UNSETENV */ + +/* Has builtin __atomic_load_n() and __atomic_store_n() functions */ +#define HAVE_BUILTIN_ATOMIC 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_BZLIB_H */ + +/* Define to 1 if you have the 'chflags' function. */ +#define HAVE_CHFLAGS 1 + +/* Define to 1 if you have the `chmod' function. */ +#define HAVE_CHMOD 1 + +/* Define to 1 if you have the `chown' function. */ +#define HAVE_CHOWN 1 + +/* Define if you have the 'chroot' function. */ +#define HAVE_CHROOT 1 + +/* Define to 1 if you have the `clock' function. */ +#define HAVE_CLOCK 1 + +/* Define to 1 if you have the `clock_getres' function. */ +#define HAVE_CLOCK_GETRES 1 + +/* Define to 1 if you have the `clock_gettime' function. */ +#define HAVE_CLOCK_GETTIME 1 + +/* Define to 1 if you have the `clock_nanosleep' function. */ +/* #undef HAVE_CLOCK_NANOSLEEP */ + +/* Define to 1 if you have the `clock_settime' function. */ +/* #undef HAVE_CLOCK_SETTIME */ + +/* Define to 1 if the system has the type `clock_t'. */ +#define HAVE_CLOCK_T 1 + +/* Define to 1 if you have the `closefrom' function. */ +/* #undef HAVE_CLOSEFROM */ + +/* Define to 1 if you have the `close_range' function. */ +/* #undef HAVE_CLOSE_RANGE */ + +/* Define if the C compiler supports computed gotos. */ +/* #undef HAVE_COMPUTED_GOTOS */ + +/* Define to 1 if you have the `confstr' function. */ +#define HAVE_CONFSTR 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_CONIO_H */ + +/* Define if you have the 'connect' function. */ +#define HAVE_CONNECT 1 + +/* Define to 1 if you have the `copy_file_range' function. */ +/* #undef HAVE_COPY_FILE_RANGE */ + +/* Define to 1 if you have the `ctermid' function. */ +#define HAVE_CTERMID 1 + +/* Define if you have the 'ctermid_r' function. */ +#define HAVE_CTERMID_R 1 + +/* Define if you have the 'filter' function. */ +/* #undef HAVE_CURSES_FILTER */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_CURSES_H */ + +/* Define if you have the 'has_key' function. */ +/* #undef HAVE_CURSES_HAS_KEY */ + +/* Define if you have the 'immedok' function. */ +/* #undef HAVE_CURSES_IMMEDOK */ + +/* Define if you have the 'is_pad' function. */ +/* #undef HAVE_CURSES_IS_PAD */ + +/* Define if you have the 'is_term_resized' function. */ +/* #undef HAVE_CURSES_IS_TERM_RESIZED */ + +/* Define if you have the 'resizeterm' function. */ +/* #undef HAVE_CURSES_RESIZETERM */ + +/* Define if you have the 'resize_term' function. */ +/* #undef HAVE_CURSES_RESIZE_TERM */ + +/* Define if you have the 'syncok' function. */ +/* #undef HAVE_CURSES_SYNCOK */ + +/* Define if you have the 'typeahead' function. */ +/* #undef HAVE_CURSES_TYPEAHEAD */ + +/* Define if you have the 'use_env' function. */ +/* #undef HAVE_CURSES_USE_ENV */ + +/* Define if you have the 'wchgat' function. */ +/* #undef HAVE_CURSES_WCHGAT */ + +/* Define to 1 if you have the header file. */ +#define HAVE_DB_H 1 + +/* Define to 1 if you have the declaration of `RTLD_DEEPBIND', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_DEEPBIND 0 + +/* Define to 1 if you have the declaration of `RTLD_GLOBAL', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_GLOBAL 1 + +/* Define to 1 if you have the declaration of `RTLD_LAZY', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_LAZY 1 + +/* Define to 1 if you have the declaration of `RTLD_LOCAL', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_LOCAL 1 + +/* Define to 1 if you have the declaration of `RTLD_MEMBER', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_MEMBER 0 + +/* Define to 1 if you have the declaration of `RTLD_NODELETE', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_NODELETE 1 + +/* Define to 1 if you have the declaration of `RTLD_NOLOAD', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_NOLOAD 1 + +/* Define to 1 if you have the declaration of `RTLD_NOW', and to 0 if you + don't. */ +#define HAVE_DECL_RTLD_NOW 1 + +/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. + */ +/* #undef HAVE_DECL_TZNAME */ + +/* Define to 1 if you have the device macros. */ +#define HAVE_DEVICE_MACROS 1 + +/* Define to 1 if you have the /dev/ptc device file. */ +/* #undef HAVE_DEV_PTC */ + +/* Define to 1 if you have the /dev/ptmx device file. */ +/* #undef HAVE_DEV_PTMX */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_DIRECT_H */ + +/* Define to 1 if the dirent structure has a d_type field */ +#define HAVE_DIRENT_D_TYPE 1 + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +#define HAVE_DIRENT_H 1 + +/* Define if you have the 'dirfd' function or macro. */ +#define HAVE_DIRFD 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if you have the `dlopen' function. */ +#define HAVE_DLOPEN 1 + +/* Define to 1 if you have the `dup' function. */ +#define HAVE_DUP 1 + +/* Define to 1 if you have the `dup2' function. */ +#define HAVE_DUP2 1 + +/* Define to 1 if you have the `dup3' function. */ +/* #undef HAVE_DUP3 */ + +/* Define if you have the '_dyld_shared_cache_contains_path' function. */ +#define HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH 1 + +/* Defined when any dynamic module loading is enabled. */ +#define HAVE_DYNAMIC_LOADING 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_EDITLINE_READLINE_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_ENDIAN_H 1 + +/* Define if you have the 'epoll_create' function. */ +/* #undef HAVE_EPOLL */ + +/* Define if you have the 'epoll_create1' function. */ +/* #undef HAVE_EPOLL_CREATE1 */ + +/* Define to 1 if you have the `erf' function. */ +#define HAVE_ERF 1 + +/* Define to 1 if you have the `erfc' function. */ +#define HAVE_ERFC 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ERRNO_H 1 + +/* Define if you have the 'eventfd' function. */ +/* #undef HAVE_EVENTFD */ + +/* 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 `expm1' function. */ +#define HAVE_EXPM1 1 + +/* Define to 1 if you have the `faccessat' function. */ +#define HAVE_FACCESSAT 1 + +/* Define if you have the 'fchdir' function. */ +#define HAVE_FCHDIR 1 + +/* Define to 1 if you have the `fchmod' function. */ +#define HAVE_FCHMOD 1 + +/* Define to 1 if you have the `fchmodat' function. */ +#define HAVE_FCHMODAT 1 + +/* Define to 1 if you have the `fchown' function. */ +#define HAVE_FCHOWN 1 + +/* Define to 1 if you have the `fchownat' function. */ +#define HAVE_FCHOWNAT 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_FCNTL_H 1 + +/* Define if you have the 'fdatasync' function. */ +/* #undef HAVE_FDATASYNC */ + +/* 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 `fexecve' function. */ +/* #undef HAVE_FEXECVE */ + +/* Define if you have the 'ffi_closure_alloc' function. */ +#define HAVE_FFI_CLOSURE_ALLOC 1 + +/* Define if you have the 'ffi_prep_cif_var' function. */ +#define HAVE_FFI_PREP_CIF_VAR 1 + +/* Define if you have the 'ffi_prep_closure_loc' function. */ +#define HAVE_FFI_PREP_CLOSURE_LOC 1 + +/* Define to 1 if you have the `flock' function. */ +#define HAVE_FLOCK 1 + +/* Define to 1 if you have the `fork' function. */ +#define HAVE_FORK 1 + +/* Define to 1 if you have the `fork1' function. */ +/* #undef HAVE_FORK1 */ + +/* Define to 1 if you have the `forkpty' function. */ +#define HAVE_FORKPTY 1 + +/* Define to 1 if you have the `fpathconf' function. */ +#define HAVE_FPATHCONF 1 + +/* Define to 1 if you have the `fseek64' function. */ +/* #undef HAVE_FSEEK64 */ + +/* Define to 1 if you have the `fseeko' function. */ +#define HAVE_FSEEKO 1 + +/* Define to 1 if you have the `fstatat' function. */ +#define HAVE_FSTATAT 1 + +/* Define to 1 if you have the `fstatvfs' function. */ +#define HAVE_FSTATVFS 1 + +/* Define if you have the 'fsync' function. */ +#define HAVE_FSYNC 1 + +/* Define to 1 if you have the `ftell64' function. */ +/* #undef HAVE_FTELL64 */ + +/* Define to 1 if you have the `ftello' function. */ +#define HAVE_FTELLO 1 + +/* Define to 1 if you have the `ftime' function. */ +#define HAVE_FTIME 1 + +/* Define to 1 if you have the `ftruncate' function. */ +#define HAVE_FTRUNCATE 1 + +/* Define to 1 if you have the `futimens' function. */ +#define HAVE_FUTIMENS 1 + +/* Define to 1 if you have the `futimes' function. */ +#define HAVE_FUTIMES 1 + +/* Define to 1 if you have the `futimesat' function. */ +/* #undef HAVE_FUTIMESAT */ + +/* Define to 1 if you have the `gai_strerror' function. */ +#define HAVE_GAI_STRERROR 1 + +/* Define if we can use gcc inline assembler to get and set mc68881 fpcr */ +/* #undef HAVE_GCC_ASM_FOR_MC68881 */ + +/* Define if we can use x64 gcc inline assembler */ +#define HAVE_GCC_ASM_FOR_X64 1 + +/* Define if we can use gcc inline assembler to get and set x87 control word + */ +#define HAVE_GCC_ASM_FOR_X87 1 + +/* Define if your compiler provides __uint128_t */ +#define HAVE_GCC_UINT128_T 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_GDBM_DASH_NDBM_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_GDBM_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_GDBM_NDBM_H */ + +/* Define if you have the getaddrinfo function. */ +#define HAVE_GETADDRINFO 1 + +/* Define this if you have flockfile(), getc_unlocked(), and funlockfile() */ +#define HAVE_GETC_UNLOCKED 1 + +/* Define to 1 if you have the `getegid' function. */ +#define HAVE_GETEGID 1 + +/* Define to 1 if you have the `getentropy' function. */ +/* #undef HAVE_GETENTROPY */ + +/* Define to 1 if you have the `geteuid' function. */ +#define HAVE_GETEUID 1 + +/* Define to 1 if you have the `getgid' function. */ +#define HAVE_GETGID 1 + +/* Define to 1 if you have the `getgrent' function. */ +#define HAVE_GETGRENT 1 + +/* Define to 1 if you have the `getgrgid' function. */ +#define HAVE_GETGRGID 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 + +/* Define to 1 if you have the `getgroups' function. */ +/* #undef HAVE_GETGROUPS */ + +/* Define if you have the 'gethostbyaddr' function. */ +#define HAVE_GETHOSTBYADDR 1 + +/* Define to 1 if you have the `gethostbyname' function. */ +#define HAVE_GETHOSTBYNAME 1 + +/* Define this if you have some version of gethostbyname_r() */ +/* #undef HAVE_GETHOSTBYNAME_R */ + +/* Define this if you have the 3-arg version of gethostbyname_r(). */ +/* #undef HAVE_GETHOSTBYNAME_R_3_ARG */ + +/* Define this if you have the 5-arg version of gethostbyname_r(). */ +/* #undef HAVE_GETHOSTBYNAME_R_5_ARG */ + +/* Define this if you have the 6-arg version of gethostbyname_r(). */ +/* #undef HAVE_GETHOSTBYNAME_R_6_ARG */ + +/* Define to 1 if you have the `gethostname' function. */ +#define HAVE_GETHOSTNAME 1 + +/* Define to 1 if you have the `getitimer' function. */ +#define HAVE_GETITIMER 1 + +/* Define to 1 if you have the `getloadavg' function. */ +#define HAVE_GETLOADAVG 1 + +/* Define to 1 if you have the `getlogin' function. */ +#define HAVE_GETLOGIN 1 + +/* Define to 1 if you have the `getnameinfo' function. */ +#define HAVE_GETNAMEINFO 1 + +/* Define if you have the 'getpagesize' function. */ +#define HAVE_GETPAGESIZE 1 + +/* Define if you have the 'getpeername' function. */ +#define HAVE_GETPEERNAME 1 + +/* Define to 1 if you have the `getpgid' function. */ +#define HAVE_GETPGID 1 + +/* Define to 1 if you have the `getpgrp' function. */ +#define HAVE_GETPGRP 1 + +/* Define to 1 if you have the `getpid' function. */ +#define HAVE_GETPID 1 + +/* Define to 1 if you have the `getppid' function. */ +#define HAVE_GETPPID 1 + +/* Define to 1 if you have the `getpriority' function. */ +#define HAVE_GETPRIORITY 1 + +/* Define if you have the 'getprotobyname' function. */ +#define HAVE_GETPROTOBYNAME 1 + +/* 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' function. */ +#define HAVE_GETPWUID 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 */ + +/* Define to 1 if the Linux getrandom() syscall is available */ +/* #undef HAVE_GETRANDOM_SYSCALL */ + +/* Define to 1 if you have the `getresgid' function. */ +/* #undef HAVE_GETRESGID */ + +/* Define to 1 if you have the `getresuid' function. */ +/* #undef HAVE_GETRESUID */ + +/* Define to 1 if you have the `getrusage' function. */ +#define HAVE_GETRUSAGE 1 + +/* Define if you have the 'getservbyname' function. */ +#define HAVE_GETSERVBYNAME 1 + +/* Define if you have the 'getservbyport' function. */ +#define HAVE_GETSERVBYPORT 1 + +/* Define to 1 if you have the `getsid' function. */ +#define HAVE_GETSID 1 + +/* Define if you have the 'getsockname' function. */ +#define HAVE_GETSOCKNAME 1 + +/* Define to 1 if you have the `getspent' function. */ +/* #undef HAVE_GETSPENT */ + +/* Define to 1 if you have the `getspnam' function. */ +/* #undef HAVE_GETSPNAM */ + +/* Define to 1 if you have the `getuid' function. */ +#define HAVE_GETUID 1 + +/* Define to 1 if you have the `getwd' function. */ +#define HAVE_GETWD 1 + +/* Define if glibc has incorrect _FORTIFY_SOURCE wrappers for memmove and + bcopy. */ +/* #undef HAVE_GLIBC_MEMMOVE_BUG */ + +/* Define to 1 if you have the `grantpt' function. */ +#define HAVE_GRANTPT 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_GRP_H 1 + +/* Define if you have the 'hstrerror' function. */ +#define HAVE_HSTRERROR 1 + +/* Define this if you have le64toh() */ +/* #undef HAVE_HTOLE64 */ + +/* Define to 1 if you have the `if_nameindex' function. */ +#define HAVE_IF_NAMEINDEX 1 + +/* Define if you have the 'inet_aton' function. */ +#define HAVE_INET_ATON 1 + +/* Define if you have the 'inet_ntoa' function. */ +#define HAVE_INET_NTOA 1 + +/* Define if you have the 'inet_pton' function. */ +#define HAVE_INET_PTON 1 + +/* Define to 1 if you have the `initgroups' function. */ +#define HAVE_INITGROUPS 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_IO_H */ + +/* Define if gcc has the ipa-pure-const bug. */ +/* #undef HAVE_IPA_PURE_CONST_BUG */ + +/* Define to 1 if you have the `kill' function. */ +#define HAVE_KILL 1 + +/* Define to 1 if you have the `killpg' function. */ +#define HAVE_KILLPG 1 + +/* Define if you have the 'kqueue' function. */ +#define HAVE_KQUEUE 1 + +/* Define to 1 if you have the header file. */ +#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.) */ +/* #undef HAVE_LARGEFILE_SUPPORT */ + +/* Define to 1 if you have the 'lchflags' function. */ +#define HAVE_LCHFLAGS 1 + +/* Define to 1 if you have the `lchmod' function. */ +#define HAVE_LCHMOD 1 + +/* Define to 1 if you have the `lchown' function. */ +#define HAVE_LCHOWN 1 + +/* Define to 1 if you want to build _blake2 module with libb2 */ +/* #undef HAVE_LIBB2 */ + +/* Define to 1 if you have the `db' library (-ldb). */ +/* #undef HAVE_LIBDB */ + +/* Define to 1 if you have the `dl' library (-ldl). */ +#define HAVE_LIBDL 1 + +/* Define to 1 if you have the `dld' library (-ldld). */ +/* #undef HAVE_LIBDLD */ + +/* Define to 1 if you have the `ieee' library (-lieee). */ +/* #undef HAVE_LIBIEEE */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LIBINTL_H */ + +/* Define to 1 if you have the `resolv' library (-lresolv). */ +/* #undef HAVE_LIBRESOLV */ + +/* Define to 1 if you have the `sendfile' library (-lsendfile). */ +/* #undef HAVE_LIBSENDFILE */ + +/* Define to 1 if you have the `sqlite3' library (-lsqlite3). */ +#define HAVE_LIBSQLITE3 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LIBUTIL_H */ + +/* Define if you have the 'link' function. */ +#define HAVE_LINK 1 + +/* Define to 1 if you have the `linkat' function. */ +#define HAVE_LINKAT 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_AUXVEC_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_CAN_BCM_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_CAN_H */ + +/* Define to 1 if you have the 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 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 header file. */ +/* #undef HAVE_LINUX_FS_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_LIMITS_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_MEMFD_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_NETLINK_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_QRTR_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_RANDOM_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_SOUNDCARD_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_TIPC_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_VM_SOCKETS_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_WAIT_H */ + +/* Define if you have the 'listen' function. */ +#define HAVE_LISTEN 1 + +/* Define to 1 if you have the `lockf' function. */ +#define HAVE_LOCKF 1 + +/* Define to 1 if you have the `log1p' function. */ +#define HAVE_LOG1P 1 + +/* Define to 1 if you have the `log2' function. */ +#define HAVE_LOG2 1 + +/* Define to 1 if you have the `login_tty' function. */ +#define HAVE_LOGIN_TTY 1 + +/* 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. */ +#define HAVE_LSTAT 1 + +/* Define to 1 if you have the `lutimes' function. */ +#define HAVE_LUTIMES 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LZMA_H */ + +/* 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 to 1 if you have the `memrchr' function. */ +/* #undef HAVE_MEMRCHR */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_MINIX_CONFIG_H */ + +/* Define to 1 if you have the `mkdirat' function. */ +#define HAVE_MKDIRAT 1 + +/* Define to 1 if you have the `mkfifo' function. */ +#define HAVE_MKFIFO 1 + +/* Define to 1 if you have the `mkfifoat' function. */ +#define HAVE_MKFIFOAT 1 + +/* Define to 1 if you have the `mknod' function. */ +#define HAVE_MKNOD 1 + +/* Define to 1 if you have the `mknodat' function. */ +#define HAVE_MKNODAT 1 + +/* Define to 1 if you have the `mktime' function. */ +#define HAVE_MKTIME 1 + +/* Define to 1 if you have the `mmap' function. */ +#define HAVE_MMAP 1 + +/* Define to 1 if you have the `mremap' function. */ +/* #undef HAVE_MREMAP */ + +/* Define to 1 if you have the `nanosleep' function. */ +#define HAVE_NANOSLEEP 1 + +/* Define if you have the 'ncurses' library */ +/* #undef HAVE_NCURSES */ + +/* Define if you have the 'ncursesw' library */ +/* #undef HAVE_NCURSESW */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSESW_CURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSESW_NCURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSESW_PANEL_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSES_CURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSES_NCURSES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NCURSES_PANEL_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_NDBM_H 1 + +/* Define to 1 if you have the header file, and it defines `DIR'. */ +/* #undef HAVE_NDIR_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NETCAN_CAN_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_NETDB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_NETINET_IN_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NETLINK_NETLINK_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NETPACKET_PACKET_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_NET_ETHERNET_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_NET_IF_H 1 + +/* Define to 1 if you have the `nice' function. */ +#define HAVE_NICE 1 + +/* Define if the internal form of wchar_t in non-Unicode locales is not + Unicode. */ +/* #undef HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION */ + +/* Define to 1 if you have the `openat' function. */ +#define HAVE_OPENAT 1 + +/* Define to 1 if you have the `opendir' function. */ +#define HAVE_OPENDIR 1 + +/* Define to 1 if you have the `openpty' function. */ +#define HAVE_OPENPTY 1 + +/* Define if you have the 'panel' library */ +/* #undef HAVE_PANEL */ + +/* Define if you have the 'panelw' library */ +/* #undef HAVE_PANELW */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_PANEL_H */ + +/* Define to 1 if you have the `pathconf' function. */ +#define HAVE_PATHCONF 1 + +/* Define to 1 if you have the `pause' function. */ +#define HAVE_PAUSE 1 + +/* Define to 1 if you have the `pipe' function. */ +#define HAVE_PIPE 1 + +/* Define to 1 if you have the `pipe2' function. */ +/* #undef HAVE_PIPE2 */ + +/* Define to 1 if you have the `plock' function. */ +/* #undef HAVE_PLOCK */ + +/* Define to 1 if you have the `poll' function. */ +#define HAVE_POLL 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_POLL_H 1 + +/* Define to 1 if you have the `posix_fadvise' function. */ +/* #undef HAVE_POSIX_FADVISE */ + +/* Define to 1 if you have the `posix_fallocate' function. */ +/* #undef HAVE_POSIX_FALLOCATE */ + +/* Define to 1 if you have the `posix_openpt' function. */ +#define HAVE_POSIX_OPENPT 1 + +/* 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_spawn_file_actions_addclosefrom_np' + function. */ +/* #undef HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSEFROM_NP */ + +/* Define to 1 if you have the `pread' function. */ +#define HAVE_PREAD 1 + +/* Define to 1 if you have the `preadv' function. */ +#define HAVE_PREADV 1 + +/* Define to 1 if you have the `preadv2' function. */ +/* #undef HAVE_PREADV2 */ + +/* Define if you have the 'prlimit' function. */ +/* #undef HAVE_PRLIMIT */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_PROCESS_H */ + +/* Define to 1 if you have the `process_vm_readv' function. */ +/* #undef HAVE_PROCESS_VM_READV */ + +/* 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_cond_timedwait_relative_np' function. + */ +#define HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE_NP 1 + +/* Defined for Solaris 2.6 bug in pthread header. */ +/* #undef HAVE_PTHREAD_DESTRUCTOR */ + +/* Define to 1 if you have the `pthread_getcpuclockid' function. */ +/* #undef HAVE_PTHREAD_GETCPUCLOCKID */ + +/* Define to 1 if you have the header file. */ +#define HAVE_PTHREAD_H 1 + +/* Define to 1 if you have the `pthread_init' function. */ +/* #undef HAVE_PTHREAD_INIT */ + +/* Define to 1 if you have the `pthread_kill' function. */ +#define HAVE_PTHREAD_KILL 1 + +/* Define to 1 if you have the `pthread_sigmask' function. */ +#define HAVE_PTHREAD_SIGMASK 1 + +/* Define if platform requires stubbed pthreads support */ +/* #undef HAVE_PTHREAD_STUBS */ + +/* Define to 1 if you have the `ptsname' function. */ +#define HAVE_PTSNAME 1 + +/* Define to 1 if you have the `ptsname_r' function. */ +#define HAVE_PTSNAME_R 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_PTY_H */ + +/* Define to 1 if you have the `pwrite' function. */ +#define HAVE_PWRITE 1 + +/* Define to 1 if you have the `pwritev' function. */ +#define HAVE_PWRITEV 1 + +/* Define to 1 if you have the `pwritev2' function. */ +/* #undef HAVE_PWRITEV2 */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_READLINE_READLINE_H */ + +/* Define to 1 if you have the `readlink' function. */ +#define HAVE_READLINK 1 + +/* Define to 1 if you have the `readlinkat' function. */ +#define HAVE_READLINKAT 1 + +/* Define to 1 if you have the `readv' function. */ +#define HAVE_READV 1 + +/* Define to 1 if you have the `realpath' function. */ +#define HAVE_REALPATH 1 + +/* Define if you have the 'recvfrom' function. */ +#define HAVE_RECVFROM 1 + +/* Define to 1 if you have the `renameat' function. */ +#define HAVE_RENAMEAT 1 + +/* Define if readline supports append_history */ +/* #undef HAVE_RL_APPEND_HISTORY */ + +/* Define if you can turn off readline's signal handling. */ +/* #undef HAVE_RL_CATCH_SIGNAL */ + +/* Define to 1 if the system has the type `rl_compdisp_func_t'. */ +/* #undef HAVE_RL_COMPDISP_FUNC_T */ + +/* Define if you have readline 2.2 */ +/* #undef HAVE_RL_COMPLETION_APPEND_CHARACTER */ + +/* Define if you have readline 4.0 */ +/* #undef HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK */ + +/* Define if you have readline 4.2 */ +/* #undef HAVE_RL_COMPLETION_MATCHES */ + +/* Define if you have rl_completion_suppress_append */ +/* #undef HAVE_RL_COMPLETION_SUPPRESS_APPEND */ + +/* Define if you have readline 4.0 */ +/* #undef HAVE_RL_PRE_INPUT_HOOK */ + +/* Define if you have readline 4.0 */ +/* #undef HAVE_RL_RESIZE_TERMINAL */ + +/* 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 + +/* Define to 1 if you have the header file. */ +#define HAVE_SCHED_H 1 + +/* Define to 1 if you have the `sched_rr_get_interval' function. */ +/* #undef HAVE_SCHED_RR_GET_INTERVAL */ + +/* Define to 1 if you have the `sched_setaffinity' function. */ +/* #undef HAVE_SCHED_SETAFFINITY */ + +/* Define to 1 if you have the `sched_setparam' function. */ +/* #undef HAVE_SCHED_SETPARAM */ + +/* Define to 1 if you have the `sched_setscheduler' function. */ +/* #undef HAVE_SCHED_SETSCHEDULER */ + +/* Define to 1 if you have the `sem_clockwait' function. */ +/* #undef HAVE_SEM_CLOCKWAIT */ + +/* Define to 1 if you have the `sem_getvalue' function. */ +#define HAVE_SEM_GETVALUE 1 + +/* Define to 1 if you have the `sem_open' function. */ +#define HAVE_SEM_OPEN 1 + +/* Define to 1 if you have the `sem_timedwait' function. */ +/* #undef HAVE_SEM_TIMEDWAIT */ + +/* Define to 1 if you have the `sem_unlink' function. */ +#define HAVE_SEM_UNLINK 1 + +/* Define to 1 if you have the `sendfile' function. */ +#define HAVE_SENDFILE 1 + +/* Define if you have the 'sendto' function. */ +#define HAVE_SENDTO 1 + +/* Define to 1 if you have the `setegid' function. */ +#define HAVE_SETEGID 1 + +/* Define to 1 if you have the `seteuid' function. */ +#define HAVE_SETEUID 1 + +/* Define to 1 if you have the `setgid' function. */ +#define HAVE_SETGID 1 + +/* Define if you have the 'setgroups' function. */ +#define HAVE_SETGROUPS 1 + +/* Define to 1 if you have the `sethostname' function. */ +#define HAVE_SETHOSTNAME 1 + +/* Define to 1 if you have the `setitimer' function. */ +#define HAVE_SETITIMER 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SETJMP_H 1 + +/* Define to 1 if you have the `setlocale' function. */ +#define HAVE_SETLOCALE 1 + +/* Define to 1 if you have the `setns' function. */ +/* #undef HAVE_SETNS */ + +/* Define to 1 if you have the `setpgid' function. */ +#define HAVE_SETPGID 1 + +/* Define to 1 if you have the `setpgrp' function. */ +#define HAVE_SETPGRP 1 + +/* Define to 1 if you have the `setpriority' function. */ +#define HAVE_SETPRIORITY 1 + +/* Define to 1 if you have the `setregid' function. */ +#define HAVE_SETREGID 1 + +/* Define to 1 if you have the `setresgid' function. */ +/* #undef HAVE_SETRESGID */ + +/* Define to 1 if you have the `setresuid' function. */ +/* #undef HAVE_SETRESUID */ + +/* Define to 1 if you have the `setreuid' function. */ +#define HAVE_SETREUID 1 + +/* Define to 1 if you have the `setsid' function. */ +#define HAVE_SETSID 1 + +/* Define if you have the 'setsockopt' function. */ +#define HAVE_SETSOCKOPT 1 + +/* Define to 1 if you have the `setuid' function. */ +#define HAVE_SETUID 1 + +/* Define to 1 if you have the `setvbuf' function. */ +#define HAVE_SETVBUF 1 + +/* Define to 1 if you have the 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 `shutdown' function. */ +#define HAVE_SHUTDOWN 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 `si_band' is a member of `siginfo_t'. */ +#define HAVE_SIGINFO_T_SI_BAND 1 + +/* Define to 1 if you have the `siginterrupt' function. */ +#define HAVE_SIGINTERRUPT 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SIGNAL_H 1 + +/* Define to 1 if you have the `sigpending' function. */ +#define HAVE_SIGPENDING 1 + +/* Define to 1 if you have the `sigrelse' function. */ +#define HAVE_SIGRELSE 1 + +/* Define to 1 if you have the `sigtimedwait' function. */ +/* #undef HAVE_SIGTIMEDWAIT */ + +/* Define to 1 if you have the `sigwait' function. */ +#define HAVE_SIGWAIT 1 + +/* Define to 1 if you have the `sigwaitinfo' function. */ +/* #undef HAVE_SIGWAITINFO */ + +/* Define to 1 if you have the `snprintf' function. */ +#define HAVE_SNPRINTF 1 + +/* struct sockaddr_alg (linux/if_alg.h) */ +/* #undef HAVE_SOCKADDR_ALG */ + +/* Define if sockaddr has sa_len member */ +#define HAVE_SOCKADDR_SA_LEN 1 + +/* struct sockaddr_storage (sys/socket.h) */ +#define HAVE_SOCKADDR_STORAGE 1 + +/* Define if you have the 'socket' function. */ +#define HAVE_SOCKET 1 + +/* Define if you have the 'socketpair' function. */ +#define HAVE_SOCKETPAIR 1 + +/* Define to 1 if the system has the type `socklen_t'. */ +#define HAVE_SOCKLEN_T 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SPAWN_H 1 + +/* Define to 1 if you have the `splice' function. */ +/* #undef HAVE_SPLICE */ + +/* Define to 1 if the system has the type `ssize_t'. */ +#define HAVE_SSIZE_T 1 + +/* Define to 1 if you have the `statvfs' function. */ +#define HAVE_STATVFS 1 + +/* Define if you have struct stat.st_mtim.tv_nsec */ +/* #undef HAVE_STAT_TV_NSEC */ + +/* Define if you have struct stat.st_mtimensec */ +#define HAVE_STAT_TV_NSEC2 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDIO_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Has stdatomic.h with atomic_int and atomic_uintptr_t */ +#define HAVE_STD_ATOMIC 1 + +/* Define to 1 if you have the `strftime' function. */ +#define HAVE_STRFTIME 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `strlcpy' function. */ +#define HAVE_STRLCPY 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_STROPTS_H */ + +/* 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 + +/* Define to 1 if `pw_passwd' is a member of `struct passwd'. */ +#define HAVE_STRUCT_PASSWD_PW_PASSWD 1 + +/* Define to 1 if `st_birthtime' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_BIRTHTIME 1 + +/* Define to 1 if `st_blksize' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_BLKSIZE 1 + +/* Define to 1 if `st_blocks' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_BLOCKS 1 + +/* Define to 1 if `st_flags' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_FLAGS 1 + +/* Define to 1 if `st_gen' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_GEN 1 + +/* Define to 1 if `st_rdev' is a member of `struct stat'. */ +#define HAVE_STRUCT_STAT_ST_RDEV 1 + +/* Define to 1 if `tm_zone' is a member of `struct tm'. */ +#define HAVE_STRUCT_TM_TM_ZONE 1 + +/* Define if you have the 'symlink' function. */ +#define HAVE_SYMLINK 1 + +/* Define to 1 if you have the `symlinkat' function. */ +#define HAVE_SYMLINKAT 1 + +/* Define to 1 if you have the `sync' function. */ +#define HAVE_SYNC 1 + +/* Define to 1 if you have the `sysconf' function. */ +#define HAVE_SYSCONF 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYSEXITS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYSLOG_H 1 + +/* Define to 1 if you have the `system' function. */ +/* #undef HAVE_SYSTEM */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_AUDIOIO_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_AUXV_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_BSDTTY_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_DEVPOLL_H */ + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +/* #undef HAVE_SYS_DIR_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_ENDIAN_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_EPOLL_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_EVENTFD_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_EVENT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_FILE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_IOCTL_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_KERN_CONTROL_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_LOADAVG_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_LOCK_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_MEMFD_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_MKDEV_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_MMAN_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_MODEM_H */ + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +/* #undef HAVE_SYS_NDIR_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_POLL_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_RANDOM_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_RESOURCE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SELECT_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SENDFILE_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SOCKET_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SOUNDCARD_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STATVFS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SYSCALL_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SYSMACROS_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SYS_DOMAIN_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_TERMIO_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_TIMERFD_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIMES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_UIO_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_UN_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_UTSNAME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_WAIT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_XATTR_H 1 + +/* Define to 1 if you have the `tcgetpgrp' function. */ +#define HAVE_TCGETPGRP 1 + +/* Define to 1 if you have the `tcsetpgrp' function. */ +#define HAVE_TCSETPGRP 1 + +/* Define to 1 if you have the `tempnam' function. */ +#define HAVE_TEMPNAM 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_TERMIOS_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_TERM_H */ + +/* Define to 1 if you have the `timegm' function. */ +#define HAVE_TIMEGM 1 + +/* Define if you have the 'timerfd_create' function. */ +/* #undef HAVE_TIMERFD_CREATE */ + +/* Define to 1 if you have the `times' function. */ +#define HAVE_TIMES 1 + +/* Define to 1 if you have the `tmpfile' function. */ +#define HAVE_TMPFILE 1 + +/* Define to 1 if you have the `tmpnam' function. */ +#define HAVE_TMPNAM 1 + +/* Define to 1 if you have the `tmpnam_r' function. */ +/* #undef HAVE_TMPNAM_R */ + +/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use + `HAVE_STRUCT_TM_TM_ZONE' instead. */ +#define HAVE_TM_ZONE 1 + +/* Define to 1 if you have the `truncate' function. */ +#define HAVE_TRUNCATE 1 + +/* Define to 1 if you have the `ttyname' function. */ +#define HAVE_TTYNAME 1 + +/* Define to 1 if you don't have `tm_zone' but do have the external array + `tzname'. */ +/* #undef HAVE_TZNAME */ + +/* Define to 1 if you have the `umask' function. */ +#define HAVE_UMASK 1 + +/* Define to 1 if you have the `uname' function. */ +#define HAVE_UNAME 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to 1 if you have the `unlinkat' function. */ +#define HAVE_UNLINKAT 1 + +/* Define to 1 if you have the `unlockpt' function. */ +#define HAVE_UNLOCKPT 1 + +/* Define to 1 if you have the `unshare' function. */ +/* #undef HAVE_UNSHARE */ + +/* Define if you have a useable wchar_t type defined in wchar.h; useable means + wchar_t must be an unsigned type with at least 16 bits. (see + Include/unicodeobject.h). */ +/* #undef HAVE_USABLE_WCHAR_T */ + +/* Define to 1 if you have the header file. */ +#define HAVE_UTIL_H 1 + +/* Define to 1 if you have the `utimensat' function. */ +#define HAVE_UTIMENSAT 1 + +/* Define to 1 if you have the `utimes' function. */ +#define HAVE_UTIMES 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UTIME_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_UTMP_H */ + +/* Define to 1 if you have the `uuid_create' function. */ +/* #undef HAVE_UUID_CREATE */ + +/* Define to 1 if you have the `uuid_enc_be' function. */ +/* #undef HAVE_UUID_ENC_BE */ + +/* Define if uuid_generate_time_safe() exists. */ +/* #undef HAVE_UUID_GENERATE_TIME_SAFE */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_UUID_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_UUID_UUID_H 1 + +/* Define to 1 if you have the `vfork' function. */ +#define HAVE_VFORK 1 + +/* Define to 1 if you have the `wait' function. */ +#define HAVE_WAIT 1 + +/* Define to 1 if you have the `wait3' function. */ +#define HAVE_WAIT3 1 + +/* Define to 1 if you have the `wait4' function. */ +#define HAVE_WAIT4 1 + +/* Define to 1 if you have the `waitid' function. */ +#define HAVE_WAITID 1 + +/* Define to 1 if you have the `waitpid' function. */ +#define HAVE_WAITPID 1 + +/* Define if the compiler provides a wchar.h header file. */ +#define HAVE_WCHAR_H 1 + +/* Define to 1 if you have the `wcscoll' function. */ +#define HAVE_WCSCOLL 1 + +/* Define to 1 if you have the `wcsftime' function. */ +#define HAVE_WCSFTIME 1 + +/* Define to 1 if you have the `wcsxfrm' function. */ +#define HAVE_WCSXFRM 1 + +/* Define to 1 if you have the `wmemcmp' function. */ +#define HAVE_WMEMCMP 1 + +/* Define if tzset() actually switches the local timezone in a meaningful way. + */ +/* #undef HAVE_WORKING_TZSET */ + +/* Define to 1 if you have the `writev' function. */ +#define HAVE_WRITEV 1 + +/* Define if the zlib library has inflateCopy */ +#define HAVE_ZLIB_COPY 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ZLIB_H 1 + +/* Define to 1 if you have the `_getpty' function. */ +/* #undef HAVE__GETPTY */ + +/* Define to 1 if the system has the type `__uint128_t'. */ +#define HAVE___UINT128_T 1 + +/* Define to 1 if `major', `minor', and `makedev' are declared in . + */ +/* #undef MAJOR_IN_MKDEV */ + +/* Define to 1 if `major', `minor', and `makedev' are declared in + . */ +/* #undef MAJOR_IN_SYSMACROS */ + +/* Define if mvwdelch in curses.h is an expression. */ +/* #undef MVWDELCH_IS_EXPRESSION */ + +/* Define to the address where bug reports for this package should be sent. */ +/* #undef PACKAGE_BUGREPORT */ + +/* Define to the full name of this package. */ +/* #undef PACKAGE_NAME */ + +/* Define to the full name and version of this package. */ +/* #undef PACKAGE_STRING */ + +/* Define to the one symbol short name of this package. */ +/* #undef PACKAGE_TARNAME */ + +/* Define to the home page for this package. */ +/* #undef PACKAGE_URL */ + +/* Define to the version of this package. */ +/* #undef PACKAGE_VERSION */ + +/* Define if POSIX semaphores aren't enabled on your system */ +/* #undef POSIX_SEMAPHORES_NOT_ENABLED */ + +/* Define if pthread_key_t is compatible with int. */ +/* #undef PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT */ + +/* Defined if PTHREAD_SCOPE_SYSTEM supported. */ +/* #undef PTHREAD_SYSTEM_SCHED_SUPPORTED */ + +/* Define as the preferred size in bits of long digits */ +/* #undef PYLONG_BITS_IN_DIGIT */ + +/* enabled builtin hash modules */ +#define PY_BUILTIN_HASHLIB_HASHES "md5,sha1,sha2,sha3,blake2" + +/* Define if you want to coerce the C locale to a UTF-8 based locale */ +#define PY_COERCE_C_LOCALE 1 + +/* Define to 1 if you have the perf trampoline. */ +/* #undef PY_HAVE_PERF_TRAMPOLINE */ + +/* Define to 1 to build the sqlite module with loadable extensions support. */ +/* #undef PY_SQLITE_ENABLE_LOAD_EXTENSION */ + +/* Define if SQLite was compiled with the serialize API */ +#define PY_SQLITE_HAVE_SERIALIZE 1 + +/* Default cipher suites list for ssl module. 1: Python's preferred selection, + 2: leave OpenSSL defaults untouched, 0: custom string */ +#define PY_SSL_DEFAULT_CIPHERS 1 + +/* Cipher suite string for PY_SSL_DEFAULT_CIPHERS=0 */ +/* #undef PY_SSL_DEFAULT_CIPHER_STRING */ + +/* PEP 11 Support tier (1, 2, 3 or 0 for unsupported) */ +#define PY_SUPPORT_TIER 0 + +/* Define if you want to build an interpreter with many run-time checks. */ +/* #undef Py_DEBUG */ + +/* Defined if Python is built as a shared library. */ +/* #undef Py_ENABLE_SHARED */ + +/* Define if you want to disable the GIL */ +/* #undef Py_GIL_DISABLED */ + +/* Define hash algorithm for str, bytes and memoryview. SipHash24: 1, FNV: 2, + SipHash13: 3, externally defined: 0 */ +/* #undef Py_HASH_ALGORITHM */ + +/* Define if rl_startup_hook takes arguments */ +/* #undef Py_RL_STARTUP_HOOK_TAKES_ARGS */ + +/* Define if you want to enable internal statistics gathering. */ +/* #undef Py_STATS */ + +/* The version of SunOS/Solaris as reported by `uname -r' without the dot. */ +/* #undef Py_SUNOS_VERSION */ + +/* 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 if i>>j for signed int i does not extend the sign bit when i < 0 */ +/* #undef SIGNED_RIGHT_SHIFT_ZERO_FILLS */ + +/* The size of `double', as computed by sizeof. */ +#define SIZEOF_DOUBLE 8 + +/* The size of `float', as computed by sizeof. */ +#define SIZEOF_FLOAT 4 + +/* The size of `fpos_t', as computed by sizeof. */ +#define SIZEOF_FPOS_T 8 + +/* The size of `int', as computed by sizeof. */ +#define SIZEOF_INT 4 + +/* The size of `long', as computed by sizeof. */ +#define SIZEOF_LONG 8 + +/* The size of `long double', as computed by sizeof. */ +#define SIZEOF_LONG_DOUBLE 16 + +/* The size of `long long', as computed by sizeof. */ +#define SIZEOF_LONG_LONG 8 + +/* The size of `off_t', as computed by sizeof. */ +#define SIZEOF_OFF_T 8 + +/* The size of `pid_t', as computed by sizeof. */ +#define SIZEOF_PID_T 4 + +/* The size of `pthread_key_t', as computed by sizeof. */ +#define SIZEOF_PTHREAD_KEY_T 8 + +/* The size of `pthread_t', as computed by sizeof. */ +#define SIZEOF_PTHREAD_T 8 + +/* The size of `short', as computed by sizeof. */ +#define SIZEOF_SHORT 2 + +/* The size of `size_t', as computed by sizeof. */ +#define SIZEOF_SIZE_T 8 + +/* The size of `time_t', as computed by sizeof. */ +#define SIZEOF_TIME_T 8 + +/* The size of `uintptr_t', as computed by sizeof. */ +#define SIZEOF_UINTPTR_T 8 + +/* The size of `void *', as computed by sizeof. */ +#define SIZEOF_VOID_P 8 + +/* The size of `wchar_t', as computed by sizeof. */ +#define SIZEOF_WCHAR_T 4 + +/* The size of `_Bool', as computed by sizeof. */ +#define SIZEOF__BOOL 1 + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define if you can safely include both and + (which you can't on SCO ODT 3.0). */ +#define SYS_SELECT_WITH_SYS_TIME 1 + +/* Custom thread stack size depending on chosen sanitizer runtimes. */ +#define THREAD_STACK_SIZE 0x1000000 + +/* Library needed by timemodule.c: librt may be needed for clock_gettime() */ +/* #undef TIMEMODULE_LIB */ + +/* Define to 1 if your declares `struct tm'. */ +/* #undef TM_IN_SYS_TIME */ + +/* Define if you want to use computed gotos in ceval.c. */ +/* #undef USE_COMPUTED_GOTOS */ + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# define _ALL_SOURCE 1 +#endif +/* Enable general extensions on macOS. */ +#ifndef _DARWIN_C_SOURCE +# define _DARWIN_C_SOURCE 1 +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# define __EXTENSIONS__ 1 +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +#endif +/* Enable X/Open compliant socket functions that do not require linking + with -lxnet on HP-UX 11.11. */ +#ifndef _HPUX_ALT_XOPEN_SOCKET_API +# define _HPUX_ALT_XOPEN_SOCKET_API 1 +#endif +/* Identify the host operating system as Minix. + This macro does not affect the system headers' behavior. + A future release of Autoconf may stop defining this macro. */ +#ifndef _MINIX +/* # undef _MINIX */ +#endif +/* Enable general extensions on NetBSD. + Enable NetBSD compatibility extensions on Minix. */ +#ifndef _NETBSD_SOURCE +# define _NETBSD_SOURCE 1 +#endif +/* Enable OpenBSD compatibility extensions on NetBSD. + Oddly enough, this does nothing on OpenBSD. */ +#ifndef _OPENBSD_SOURCE +# define _OPENBSD_SOURCE 1 +#endif +/* Define to 1 if needed for POSIX-compatible behavior. */ +#ifndef _POSIX_SOURCE +/* # undef _POSIX_SOURCE */ +#endif +/* Define to 2 if needed for POSIX-compatible behavior. */ +#ifndef _POSIX_1_SOURCE +/* # undef _POSIX_1_SOURCE */ +#endif +/* Enable POSIX-compatible threading on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# define _POSIX_PTHREAD_SEMANTICS 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */ +#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ +# define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */ +#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ +# define __STDC_WANT_IEC_60559_BFP_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */ +#ifndef __STDC_WANT_IEC_60559_DFP_EXT__ +# define __STDC_WANT_IEC_60559_DFP_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ +#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ +# define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-3:2015. */ +#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ +# define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */ +#ifndef __STDC_WANT_LIB_EXT2__ +# define __STDC_WANT_LIB_EXT2__ 1 +#endif +/* Enable extensions specified by ISO/IEC 24747:2009. */ +#ifndef __STDC_WANT_MATH_SPEC_FUNCS__ +# define __STDC_WANT_MATH_SPEC_FUNCS__ 1 +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# define _TANDEM_SOURCE 1 +#endif +/* Enable X/Open extensions. Define to 500 only if necessary + to make mbstate_t available. */ +#ifndef _XOPEN_SOURCE +/* # undef _XOPEN_SOURCE */ +#endif + + +/* Define if WINDOW in curses.h offers a field _flags. */ +/* #undef WINDOW_HAS_FLAGS */ + +/* 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 + +/* Define if you want to compile in DTrace support */ +/* #undef WITH_DTRACE */ + +/* Define if you want to use the new-style (Openstep, Rhapsody, MacOS) dynamic + linker (dyld) instead of the old-style (NextStep) dynamic linker (rld). + Dyld is necessary to support frameworks. */ +/* #undef WITH_DYLD */ + +/* Define to build the readline module against libedit. */ +/* #undef WITH_EDITLINE */ + +/* Define if you want to compile in object freelists optimization */ +#define WITH_FREELISTS 1 + +/* Define to 1 if libintl is needed for locale functions. */ +/* #undef WITH_LIBINTL */ + +/* Define if you want to compile in mimalloc memory allocator. */ +#define WITH_MIMALLOC 1 + +/* Define if you want to produce an OpenStep/Rhapsody framework (shared + library plus accessory files). */ +#define WITH_NEXT_FRAMEWORK 1 + +/* Define if you want to compile in Python-specific mallocs */ +#define WITH_PYMALLOC 1 + +/* Define if you want pymalloc to be disabled when running under valgrind */ +/* #undef WITH_VALGRIND */ + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +/* # undef WORDS_BIGENDIAN */ +# endif +#endif + +/* Define if arithmetic is subject to x87-style double rounding issue */ +/* #undef X87_DOUBLE_ROUNDING */ + +/* Define on OpenBSD to activate all library features */ +/* #undef _BSD_SOURCE */ + +/* Define on Darwin to activate all library features */ +#define _DARWIN_C_SOURCE 1 + +/* This must be set to 64 on some systems to enable large file support. */ +#define _FILE_OFFSET_BITS 64 + +/* Define to include mbstate_t for mbrtowc */ +/* #undef _INCLUDE__STDC_A1_SOURCE */ + +/* This must be defined on some systems to enable large file support. */ +#define _LARGEFILE_SOURCE 1 + +/* This must be defined on AIX systems to enable large file support. */ +/* #undef _LARGE_FILES */ + +/* Define on NetBSD to activate all library features */ +#define _NETBSD_SOURCE 1 + +/* Define to activate features from IEEE Stds 1003.1-2008 */ +/* #undef _POSIX_C_SOURCE */ + +/* Define if you have POSIX threads, and your system does not define that. */ +/* #undef _POSIX_THREADS */ + +/* framework name */ +#define _PYTHONFRAMEWORK "Python" + +/* Define to force use of thread-safe errno, h_errno, and other functions */ +#define _REENTRANT 1 + +/* Define to 1 if you want to emulate getpid() on WASI */ +/* #undef _WASI_EMULATED_GETPID */ + +/* Define to 1 if you want to emulate process clocks on WASI */ +/* #undef _WASI_EMULATED_PROCESS_CLOCKS */ + +/* Define to 1 if you want to emulate signals on WASI */ +/* #undef _WASI_EMULATED_SIGNAL */ + +/* Define to the level of X/Open that your system supports */ +/* #undef _XOPEN_SOURCE */ + +/* Define to activate Unix95-and-earlier features */ +/* #undef _XOPEN_SOURCE_EXTENDED */ + +/* Define on FreeBSD to activate all library features */ +#define __BSD_VISIBLE 1 + +/* Define to 'long' if does not define clock_t. */ +/* #undef clock_t */ + +/* Define to empty if `const' does not conform to ANSI C. */ +/* #undef const */ + +/* Define to `int' if doesn't define. */ +/* #undef gid_t */ + +/* Define to `int' if does not define. */ +/* #undef mode_t */ + +/* Define to `long int' if does not define. */ +/* #undef off_t */ + +/* Define as a signed integer type capable of holding a process identifier. */ +/* #undef pid_t */ + +/* Define to empty if the keyword does not work. */ +/* #undef signed */ + +/* Define to `unsigned int' if does not define. */ +/* #undef size_t */ + +/* Define to 'int' if does not define. */ +/* #undef socklen_t */ + +/* Define to `int' if doesn't define. */ +/* #undef uid_t */ + + +/* Define the macros needed if on a UnixWare 7.x system. */ +#if defined(__USLC__) && defined(__SCO_VERSION__) +#define STRICT_SYSV_CURSES /* Don't use ncurses extensions */ +#endif + +#endif /*Py_PYCONFIG_H*/ + diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyconfig.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyconfig.h new file mode 100644 index 000000000..03611a820 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyconfig.h @@ -0,0 +1,19 @@ +#ifdef __APPLE__ + #ifdef __arm64__ + #include "pyconfig-ios-arm64.h" + #endif + + #ifdef __x86_64__ + #include "pyconfig-ios-x86_64.h" + #endif +#endif + +#ifdef __ANDROID__ + #ifdef __aarch64__ + #include "pyconfig-android-aarch64.h" + #endif + + #ifdef __x86_64__ + #include "pyconfig-android-x86_64.h" + #endif +#endif diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pydtrace.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pydtrace.h new file mode 100644 index 000000000..e197d3669 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pydtrace.h @@ -0,0 +1,59 @@ +/* Static DTrace probes interface */ + +#ifndef Py_DTRACE_H +#define Py_DTRACE_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef WITH_DTRACE + +#include "pydtrace_probes.h" + +/* pydtrace_probes.h, on systems with DTrace, is auto-generated to include + `PyDTrace_{PROBE}` and `PyDTrace_{PROBE}_ENABLED()` macros for every probe + defined in pydtrace.d. + + Calling these functions must be guarded by a `PyDTrace_{PROBE}_ENABLED()` + check to minimize performance impact when probing is off. For example: + + if (PyDTrace_FUNCTION_ENTRY_ENABLED()) + PyDTrace_FUNCTION_ENTRY(f); +*/ + +#else + +/* Without DTrace, compile to nothing. */ + +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_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 int PyDTrace_LINE_ENABLED(void) { return 0; } +static inline int PyDTrace_FUNCTION_ENTRY_ENABLED(void) { return 0; } +static inline int PyDTrace_FUNCTION_RETURN_ENABLED(void) { return 0; } +static inline int PyDTrace_GC_START_ENABLED(void) { return 0; } +static inline int PyDTrace_GC_DONE_ENABLED(void) { return 0; } +static inline int PyDTrace_INSTANCE_NEW_START_ENABLED(void) { return 0; } +static inline int PyDTrace_INSTANCE_NEW_DONE_ENABLED(void) { return 0; } +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; } + +#endif /* !WITH_DTRACE */ + +#ifdef __cplusplus +} +#endif +#endif /* !Py_DTRACE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyerrors.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyerrors.h new file mode 100644 index 000000000..5d0028c11 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyerrors.h @@ -0,0 +1,335 @@ +// Error handling definitions + +#ifndef Py_ERRORS_H +#define Py_ERRORS_H +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_FUNC(void) PyErr_SetNone(PyObject *); +PyAPI_FUNC(void) PyErr_SetObject(PyObject *, PyObject *); +PyAPI_FUNC(void) PyErr_SetString( + PyObject *exception, + const char *string /* decoded from utf-8 */ + ); +PyAPI_FUNC(PyObject *) PyErr_Occurred(void); +PyAPI_FUNC(void) PyErr_Clear(void); +PyAPI_FUNC(void) PyErr_Fetch(PyObject **, PyObject **, PyObject **); +PyAPI_FUNC(void) PyErr_Restore(PyObject *, PyObject *, PyObject *); +PyAPI_FUNC(PyObject *) PyErr_GetRaisedException(void); +PyAPI_FUNC(void) PyErr_SetRaisedException(PyObject *); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030b0000 +PyAPI_FUNC(PyObject*) PyErr_GetHandledException(void); +PyAPI_FUNC(void) PyErr_SetHandledException(PyObject *); +#endif +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +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); + +/* Error testing and normalization */ +PyAPI_FUNC(int) PyErr_GivenExceptionMatches(PyObject *, PyObject *); +PyAPI_FUNC(int) PyErr_ExceptionMatches(PyObject *); +PyAPI_FUNC(void) PyErr_NormalizeException(PyObject**, PyObject**, PyObject**); + +/* Traceback manipulation (PEP 3134) */ +PyAPI_FUNC(int) PyException_SetTraceback(PyObject *, PyObject *); +PyAPI_FUNC(PyObject *) PyException_GetTraceback(PyObject *); + +/* Cause manipulation (PEP 3134) */ +PyAPI_FUNC(PyObject *) PyException_GetCause(PyObject *); +PyAPI_FUNC(void) PyException_SetCause(PyObject *, PyObject *); + +/* Context manipulation (PEP 3134) */ +PyAPI_FUNC(PyObject *) PyException_GetContext(PyObject *); +PyAPI_FUNC(void) PyException_SetContext(PyObject *, PyObject *); + + +PyAPI_FUNC(PyObject *) PyException_GetArgs(PyObject *); +PyAPI_FUNC(void) PyException_SetArgs(PyObject *, PyObject *); + +/* */ + +#define PyExceptionClass_Check(x) \ + (PyType_Check((x)) && \ + PyType_FastSubclass((PyTypeObject*)(x), Py_TPFLAGS_BASE_EXC_SUBCLASS)) + +#define PyExceptionInstance_Check(x) \ + PyType_FastSubclass(Py_TYPE(x), Py_TPFLAGS_BASE_EXC_SUBCLASS) + +PyAPI_FUNC(const char *) PyExceptionClass_Name(PyObject *); + +#define PyExceptionInstance_Class(x) _PyObject_CAST(Py_TYPE(x)) + +#define _PyBaseExceptionGroup_Check(x) \ + PyObject_TypeCheck((x), (PyTypeObject *)PyExc_BaseExceptionGroup) + +/* Predefined exceptions */ + +PyAPI_DATA(PyObject *) PyExc_BaseException; +PyAPI_DATA(PyObject *) PyExc_Exception; +PyAPI_DATA(PyObject *) PyExc_BaseExceptionGroup; +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 +PyAPI_DATA(PyObject *) PyExc_StopAsyncIteration; +#endif +PyAPI_DATA(PyObject *) PyExc_StopIteration; +PyAPI_DATA(PyObject *) PyExc_GeneratorExit; +PyAPI_DATA(PyObject *) PyExc_ArithmeticError; +PyAPI_DATA(PyObject *) PyExc_LookupError; + +PyAPI_DATA(PyObject *) PyExc_AssertionError; +PyAPI_DATA(PyObject *) PyExc_AttributeError; +PyAPI_DATA(PyObject *) PyExc_BufferError; +PyAPI_DATA(PyObject *) PyExc_EOFError; +PyAPI_DATA(PyObject *) PyExc_FloatingPointError; +PyAPI_DATA(PyObject *) PyExc_OSError; +PyAPI_DATA(PyObject *) PyExc_ImportError; +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03060000 +PyAPI_DATA(PyObject *) PyExc_ModuleNotFoundError; +#endif +PyAPI_DATA(PyObject *) PyExc_IndexError; +PyAPI_DATA(PyObject *) PyExc_KeyError; +PyAPI_DATA(PyObject *) PyExc_KeyboardInterrupt; +PyAPI_DATA(PyObject *) PyExc_MemoryError; +PyAPI_DATA(PyObject *) PyExc_NameError; +PyAPI_DATA(PyObject *) PyExc_OverflowError; +PyAPI_DATA(PyObject *) PyExc_RuntimeError; +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 +PyAPI_DATA(PyObject *) PyExc_RecursionError; +#endif +PyAPI_DATA(PyObject *) PyExc_NotImplementedError; +PyAPI_DATA(PyObject *) PyExc_SyntaxError; +PyAPI_DATA(PyObject *) PyExc_IndentationError; +PyAPI_DATA(PyObject *) PyExc_TabError; +PyAPI_DATA(PyObject *) PyExc_ReferenceError; +PyAPI_DATA(PyObject *) PyExc_SystemError; +PyAPI_DATA(PyObject *) PyExc_SystemExit; +PyAPI_DATA(PyObject *) PyExc_TypeError; +PyAPI_DATA(PyObject *) PyExc_UnboundLocalError; +PyAPI_DATA(PyObject *) PyExc_UnicodeError; +PyAPI_DATA(PyObject *) PyExc_UnicodeEncodeError; +PyAPI_DATA(PyObject *) PyExc_UnicodeDecodeError; +PyAPI_DATA(PyObject *) PyExc_UnicodeTranslateError; +PyAPI_DATA(PyObject *) PyExc_ValueError; +PyAPI_DATA(PyObject *) PyExc_ZeroDivisionError; + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +PyAPI_DATA(PyObject *) PyExc_BlockingIOError; +PyAPI_DATA(PyObject *) PyExc_BrokenPipeError; +PyAPI_DATA(PyObject *) PyExc_ChildProcessError; +PyAPI_DATA(PyObject *) PyExc_ConnectionError; +PyAPI_DATA(PyObject *) PyExc_ConnectionAbortedError; +PyAPI_DATA(PyObject *) PyExc_ConnectionRefusedError; +PyAPI_DATA(PyObject *) PyExc_ConnectionResetError; +PyAPI_DATA(PyObject *) PyExc_FileExistsError; +PyAPI_DATA(PyObject *) PyExc_FileNotFoundError; +PyAPI_DATA(PyObject *) PyExc_InterruptedError; +PyAPI_DATA(PyObject *) PyExc_IsADirectoryError; +PyAPI_DATA(PyObject *) PyExc_NotADirectoryError; +PyAPI_DATA(PyObject *) PyExc_PermissionError; +PyAPI_DATA(PyObject *) PyExc_ProcessLookupError; +PyAPI_DATA(PyObject *) PyExc_TimeoutError; +#endif + + +/* Compatibility aliases */ +PyAPI_DATA(PyObject *) PyExc_EnvironmentError; +PyAPI_DATA(PyObject *) PyExc_IOError; +#ifdef MS_WINDOWS +PyAPI_DATA(PyObject *) PyExc_WindowsError; +#endif + +/* Predefined warning categories */ +PyAPI_DATA(PyObject *) PyExc_Warning; +PyAPI_DATA(PyObject *) PyExc_UserWarning; +PyAPI_DATA(PyObject *) PyExc_DeprecationWarning; +PyAPI_DATA(PyObject *) PyExc_PendingDeprecationWarning; +PyAPI_DATA(PyObject *) PyExc_SyntaxWarning; +PyAPI_DATA(PyObject *) PyExc_RuntimeWarning; +PyAPI_DATA(PyObject *) PyExc_FutureWarning; +PyAPI_DATA(PyObject *) PyExc_ImportWarning; +PyAPI_DATA(PyObject *) PyExc_UnicodeWarning; +PyAPI_DATA(PyObject *) PyExc_BytesWarning; +PyAPI_DATA(PyObject *) PyExc_EncodingWarning; +PyAPI_DATA(PyObject *) PyExc_ResourceWarning; + + +/* Convenience functions */ + +PyAPI_FUNC(int) PyErr_BadArgument(void); +PyAPI_FUNC(PyObject *) PyErr_NoMemory(void); +PyAPI_FUNC(PyObject *) PyErr_SetFromErrno(PyObject *); +PyAPI_FUNC(PyObject *) PyErr_SetFromErrnoWithFilenameObject( + PyObject *, PyObject *); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03040000 +PyAPI_FUNC(PyObject *) PyErr_SetFromErrnoWithFilenameObjects( + PyObject *, PyObject *, PyObject *); +#endif +PyAPI_FUNC(PyObject *) PyErr_SetFromErrnoWithFilename( + PyObject *exc, + const char *filename /* decoded from the filesystem encoding */ + ); + +PyAPI_FUNC(PyObject *) PyErr_Format( + PyObject *exception, + const char *format, /* ASCII-encoded string */ + ... + ); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 +PyAPI_FUNC(PyObject *) PyErr_FormatV( + PyObject *exception, + const char *format, + va_list vargs); +#endif + +#ifdef MS_WINDOWS +PyAPI_FUNC(PyObject *) PyErr_SetFromWindowsErrWithFilename( + int ierr, + const char *filename /* decoded from the filesystem encoding */ + ); +PyAPI_FUNC(PyObject *) PyErr_SetFromWindowsErr(int); +PyAPI_FUNC(PyObject *) PyErr_SetExcFromWindowsErrWithFilenameObject( + PyObject *,int, PyObject *); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03040000 +PyAPI_FUNC(PyObject *) PyErr_SetExcFromWindowsErrWithFilenameObjects( + PyObject *,int, PyObject *, PyObject *); +#endif +PyAPI_FUNC(PyObject *) PyErr_SetExcFromWindowsErrWithFilename( + PyObject *exc, + int ierr, + const char *filename /* decoded from the filesystem encoding */ + ); +PyAPI_FUNC(PyObject *) PyErr_SetExcFromWindowsErr(PyObject *, int); +#endif /* MS_WINDOWS */ + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03060000 +PyAPI_FUNC(PyObject *) PyErr_SetImportErrorSubclass(PyObject *, PyObject *, + PyObject *, PyObject *); +#endif +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +PyAPI_FUNC(PyObject *) PyErr_SetImportError(PyObject *, PyObject *, + PyObject *); +#endif + +/* Export the old function so that the existing API remains available: */ +PyAPI_FUNC(void) PyErr_BadInternalCall(void); +PyAPI_FUNC(void) _PyErr_BadInternalCall(const char *filename, int lineno); +/* Mask the old API with a call to the new API for code compiled under + Python 2.0: */ +#define PyErr_BadInternalCall() _PyErr_BadInternalCall(__FILE__, __LINE__) + +/* Function to create a new exception */ +PyAPI_FUNC(PyObject *) PyErr_NewException( + const char *name, PyObject *base, PyObject *dict); +PyAPI_FUNC(PyObject *) PyErr_NewExceptionWithDoc( + const char *name, const char *doc, PyObject *base, PyObject *dict); +PyAPI_FUNC(void) PyErr_WriteUnraisable(PyObject *); + + +/* In signalmodule.c */ +PyAPI_FUNC(int) PyErr_CheckSignals(void); +PyAPI_FUNC(void) PyErr_SetInterrupt(void); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030A0000 +PyAPI_FUNC(int) PyErr_SetInterruptEx(int signum); +#endif + +/* Support for adding program text to SyntaxErrors */ +PyAPI_FUNC(void) PyErr_SyntaxLocation( + const char *filename, /* decoded from the filesystem encoding */ + int lineno); +PyAPI_FUNC(void) PyErr_SyntaxLocationEx( + const char *filename, /* decoded from the filesystem encoding */ + int lineno, + int col_offset); +PyAPI_FUNC(PyObject *) PyErr_ProgramText( + const char *filename, /* decoded from the filesystem encoding */ + int lineno); + +/* The following functions are used to create and modify unicode + exceptions from C */ + +/* create a UnicodeDecodeError object */ +PyAPI_FUNC(PyObject *) PyUnicodeDecodeError_Create( + const char *encoding, /* UTF-8 encoded string */ + const char *object, + Py_ssize_t length, + Py_ssize_t start, + Py_ssize_t end, + const char *reason /* UTF-8 encoded string */ + ); + +/* get the encoding attribute */ +PyAPI_FUNC(PyObject *) PyUnicodeEncodeError_GetEncoding(PyObject *); +PyAPI_FUNC(PyObject *) PyUnicodeDecodeError_GetEncoding(PyObject *); + +/* get the object attribute */ +PyAPI_FUNC(PyObject *) PyUnicodeEncodeError_GetObject(PyObject *); +PyAPI_FUNC(PyObject *) PyUnicodeDecodeError_GetObject(PyObject *); +PyAPI_FUNC(PyObject *) PyUnicodeTranslateError_GetObject(PyObject *); + +/* get the value of the start attribute (the int * may not be NULL) + return 0 on success, -1 on failure */ +PyAPI_FUNC(int) PyUnicodeEncodeError_GetStart(PyObject *, Py_ssize_t *); +PyAPI_FUNC(int) PyUnicodeDecodeError_GetStart(PyObject *, Py_ssize_t *); +PyAPI_FUNC(int) PyUnicodeTranslateError_GetStart(PyObject *, Py_ssize_t *); + +/* assign a new value to the start attribute + return 0 on success, -1 on failure */ +PyAPI_FUNC(int) PyUnicodeEncodeError_SetStart(PyObject *, Py_ssize_t); +PyAPI_FUNC(int) PyUnicodeDecodeError_SetStart(PyObject *, Py_ssize_t); +PyAPI_FUNC(int) PyUnicodeTranslateError_SetStart(PyObject *, Py_ssize_t); + +/* get the value of the end attribute (the int *may not be NULL) + return 0 on success, -1 on failure */ +PyAPI_FUNC(int) PyUnicodeEncodeError_GetEnd(PyObject *, Py_ssize_t *); +PyAPI_FUNC(int) PyUnicodeDecodeError_GetEnd(PyObject *, Py_ssize_t *); +PyAPI_FUNC(int) PyUnicodeTranslateError_GetEnd(PyObject *, Py_ssize_t *); + +/* assign a new value to the end attribute + return 0 on success, -1 on failure */ +PyAPI_FUNC(int) PyUnicodeEncodeError_SetEnd(PyObject *, Py_ssize_t); +PyAPI_FUNC(int) PyUnicodeDecodeError_SetEnd(PyObject *, Py_ssize_t); +PyAPI_FUNC(int) PyUnicodeTranslateError_SetEnd(PyObject *, Py_ssize_t); + +/* get the value of the reason attribute */ +PyAPI_FUNC(PyObject *) PyUnicodeEncodeError_GetReason(PyObject *); +PyAPI_FUNC(PyObject *) PyUnicodeDecodeError_GetReason(PyObject *); +PyAPI_FUNC(PyObject *) PyUnicodeTranslateError_GetReason(PyObject *); + +/* assign a new value to the reason attribute + return 0 on success, -1 on failure */ +PyAPI_FUNC(int) PyUnicodeEncodeError_SetReason( + PyObject *exc, + const char *reason /* UTF-8 encoded string */ + ); +PyAPI_FUNC(int) PyUnicodeDecodeError_SetReason( + PyObject *exc, + const char *reason /* UTF-8 encoded string */ + ); +PyAPI_FUNC(int) PyUnicodeTranslateError_SetReason( + PyObject *exc, + const char *reason /* UTF-8 encoded string */ + ); + +PyAPI_FUNC(int) PyOS_snprintf(char *str, size_t size, const char *format, ...) + Py_GCC_ATTRIBUTE((format(printf, 3, 4))); +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 + +#ifdef __cplusplus +} +#endif +#endif /* !Py_ERRORS_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyexpat.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyexpat.h new file mode 100644 index 000000000..9824d099c --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyexpat.h @@ -0,0 +1,57 @@ +/* Stuff to export relevant 'expat' entry points from pyexpat to other + * parser modules, such as cElementTree. */ + +/* note: you must import expat.h before importing this module! */ + +#define PyExpat_CAPI_MAGIC "pyexpat.expat_CAPI 1.1" +#define PyExpat_CAPSULE_NAME "pyexpat.expat_CAPI" + +struct PyExpat_CAPI +{ + char* magic; /* set to PyExpat_CAPI_MAGIC */ + int size; /* set to sizeof(struct PyExpat_CAPI) */ + int MAJOR_VERSION; + int MINOR_VERSION; + int MICRO_VERSION; + /* pointers to selected expat functions. add new functions at + the end, if needed */ + const XML_LChar * (*ErrorString)(enum XML_Error code); + enum XML_Error (*GetErrorCode)(XML_Parser parser); + XML_Size (*GetErrorColumnNumber)(XML_Parser parser); + XML_Size (*GetErrorLineNumber)(XML_Parser parser); + enum XML_Status (*Parse)( + XML_Parser parser, const char *s, int len, int isFinal); + XML_Parser (*ParserCreate_MM)( + const XML_Char *encoding, const XML_Memory_Handling_Suite *memsuite, + const XML_Char *namespaceSeparator); + void (*ParserFree)(XML_Parser parser); + void (*SetCharacterDataHandler)( + XML_Parser parser, XML_CharacterDataHandler handler); + void (*SetCommentHandler)( + XML_Parser parser, XML_CommentHandler handler); + void (*SetDefaultHandlerExpand)( + XML_Parser parser, XML_DefaultHandler handler); + void (*SetElementHandler)( + XML_Parser parser, XML_StartElementHandler start, + XML_EndElementHandler end); + void (*SetNamespaceDeclHandler)( + XML_Parser parser, XML_StartNamespaceDeclHandler start, + XML_EndNamespaceDeclHandler end); + void (*SetProcessingInstructionHandler)( + XML_Parser parser, XML_ProcessingInstructionHandler handler); + void (*SetUnknownEncodingHandler)( + XML_Parser parser, XML_UnknownEncodingHandler handler, + void *encodingHandlerData); + void (*SetUserData)(XML_Parser parser, void *userData); + void (*SetStartDoctypeDeclHandler)(XML_Parser parser, + XML_StartDoctypeDeclHandler start); + enum XML_Status (*SetEncoding)(XML_Parser parser, const XML_Char *encoding); + int (*DefaultUnknownEncodingHandler)( + void *encodingHandlerData, const XML_Char *name, XML_Encoding *info); + /* might be NULL for expat < 2.1.0 */ + int (*SetHashSalt)(XML_Parser parser, unsigned long hash_salt); + /* might be NULL for expat < 2.6.0 */ + XML_Bool (*SetReparseDeferralEnabled)(XML_Parser parser, XML_Bool enabled); + /* always add new stuff to the end! */ +}; + diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyframe.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyframe.h new file mode 100644 index 000000000..13d52312e --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyframe.h @@ -0,0 +1,26 @@ +/* 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 + +/* Return the line of code the frame is currently executing. */ +PyAPI_FUNC(int) PyFrame_GetLineNumber(PyFrameObject *); + +PyAPI_FUNC(PyCodeObject *) PyFrame_GetCode(PyFrameObject *frame); + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_PYFRAME_H +# include "cpython/pyframe.h" +# undef Py_CPYTHON_PYFRAME_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_PYFRAME_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyhash.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyhash.h new file mode 100644 index 000000000..3e23e2758 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyhash.h @@ -0,0 +1,59 @@ +#ifndef Py_HASH_H +#define Py_HASH_H +#ifdef __cplusplus +extern "C" { +#endif + +/* Cutoff for small string DJBX33A optimization in range [1, cutoff). + * + * About 50% of the strings in a typical Python application are smaller than + * 6 to 7 chars. However DJBX33A is vulnerable to hash collision attacks. + * NEVER use DJBX33A for long strings! + * + * A Py_HASH_CUTOFF of 0 disables small string optimization. 32 bit platforms + * should use a smaller cutoff because it is easier to create colliding + * strings. A cutoff of 7 on 64bit platforms and 5 on 32bit platforms should + * provide a decent safety margin. + */ +#ifndef Py_HASH_CUTOFF +# define Py_HASH_CUTOFF 0 +#elif (Py_HASH_CUTOFF > 7 || Py_HASH_CUTOFF < 0) +# error Py_HASH_CUTOFF must in range 0...7. +#endif /* Py_HASH_CUTOFF */ + + +/* Hash algorithm selection + * + * The values for Py_HASH_* are hard-coded in the + * configure script. + * + * - FNV and SIPHASH* are available on all platforms and architectures. + * - With EXTERNAL embedders can provide an alternative implementation with:: + * + * PyHash_FuncDef PyHash_Func = {...}; + * + * XXX: Figure out __declspec() for extern PyHash_FuncDef. + */ +#define Py_HASH_EXTERNAL 0 +#define Py_HASH_SIPHASH24 1 +#define Py_HASH_FNV 2 +#define Py_HASH_SIPHASH13 3 + +#ifndef Py_HASH_ALGORITHM +# ifndef HAVE_ALIGNED_REQUIRED +# define Py_HASH_ALGORITHM Py_HASH_SIPHASH13 +# else +# define Py_HASH_ALGORITHM Py_HASH_FNV +# endif /* uint64_t && uint32_t && aligned */ +#endif /* Py_HASH_ALGORITHM */ + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_HASH_H +# include "cpython/pyhash.h" +# undef Py_CPYTHON_HASH_H +#endif + +#ifdef __cplusplus +} +#endif +#endif // !Py_HASH_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pylifecycle.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pylifecycle.h new file mode 100644 index 000000000..de1bcb1d2 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pylifecycle.h @@ -0,0 +1,80 @@ + +/* Interfaces to configure, query, create & destroy the Python runtime */ + +#ifndef Py_PYLIFECYCLE_H +#define Py_PYLIFECYCLE_H +#ifdef __cplusplus +extern "C" { +#endif + + +/* Initialization and finalization */ +PyAPI_FUNC(void) Py_Initialize(void); +PyAPI_FUNC(void) Py_InitializeEx(int); +PyAPI_FUNC(void) Py_Finalize(void); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03060000 +PyAPI_FUNC(int) Py_FinalizeEx(void); +#endif +PyAPI_FUNC(int) Py_IsInitialized(void); + +/* Subinterpreter support */ +PyAPI_FUNC(PyThreadState *) Py_NewInterpreter(void); +PyAPI_FUNC(void) Py_EndInterpreter(PyThreadState *); + + +/* Py_PyAtExit is for the atexit module, Py_AtExit is for low-level + * exit functions. + */ +PyAPI_FUNC(int) Py_AtExit(void (*func)(void)); + +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_BytesMain(int argc, char **argv); + +/* In pathconfig.c */ +Py_DEPRECATED(3.11) PyAPI_FUNC(void) Py_SetProgramName(const wchar_t *); +Py_DEPRECATED(3.13) PyAPI_FUNC(wchar_t *) Py_GetProgramName(void); + +Py_DEPRECATED(3.11) PyAPI_FUNC(void) Py_SetPythonHome(const wchar_t *); +Py_DEPRECATED(3.13) PyAPI_FUNC(wchar_t *) Py_GetPythonHome(void); + +Py_DEPRECATED(3.13) PyAPI_FUNC(wchar_t *) Py_GetProgramFullPath(void); +Py_DEPRECATED(3.13) PyAPI_FUNC(wchar_t *) Py_GetPrefix(void); +Py_DEPRECATED(3.13) PyAPI_FUNC(wchar_t *) Py_GetExecPrefix(void); +Py_DEPRECATED(3.13) PyAPI_FUNC(wchar_t *) Py_GetPath(void); +#ifdef MS_WINDOWS +int _Py_CheckPython3(void); +#endif + +/* In their own files */ +PyAPI_FUNC(const char *) Py_GetVersion(void); +PyAPI_FUNC(const char *) Py_GetPlatform(void); +PyAPI_FUNC(const char *) Py_GetCopyright(void); +PyAPI_FUNC(const char *) Py_GetCompiler(void); +PyAPI_FUNC(const char *) Py_GetBuildInfo(void); + +/* Signals */ +typedef void (*PyOS_sighandler_t)(int); +PyAPI_FUNC(PyOS_sighandler_t) PyOS_getsig(int); +PyAPI_FUNC(PyOS_sighandler_t) PyOS_setsig(int, PyOS_sighandler_t); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030B0000 +PyAPI_DATA(const unsigned long) Py_Version; +#endif + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030D0000 +PyAPI_FUNC(int) Py_IsFinalizing(void); +#endif + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_PYLIFECYCLE_H +# include "cpython/pylifecycle.h" +# undef Py_CPYTHON_PYLIFECYCLE_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_PYLIFECYCLE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pymacconfig.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pymacconfig.h new file mode 100644 index 000000000..615abe103 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pymacconfig.h @@ -0,0 +1,91 @@ +// This file moves some of the autoconf magic to compile-time when building on +// macOS. This is needed for building 4-way universal binaries and for 64-bit +// universal binaries because the values redefined below aren't configure-time +// constant but only compile-time constant in these scenarios. + +#ifndef PY_MACCONFIG_H +#define PY_MACCONFIG_H +#ifdef __APPLE__ + +#undef ALIGNOF_MAX_ALIGN_T +#undef SIZEOF_LONG +#undef SIZEOF_LONG_DOUBLE +#undef SIZEOF_PTHREAD_T +#undef SIZEOF_SIZE_T +#undef SIZEOF_TIME_T +#undef SIZEOF_VOID_P +#undef SIZEOF__BOOL +#undef SIZEOF_UINTPTR_T +#undef SIZEOF_PTHREAD_T +#undef WORDS_BIGENDIAN +#undef DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 +#undef DOUBLE_IS_BIG_ENDIAN_IEEE754 +#undef DOUBLE_IS_LITTLE_ENDIAN_IEEE754 +#undef HAVE_GCC_ASM_FOR_X87 +#undef HAVE_GCC_ASM_FOR_X64 + +#undef VA_LIST_IS_ARRAY +#if defined(__LP64__) && defined(__x86_64__) +# define VA_LIST_IS_ARRAY 1 +#endif + +#undef HAVE_LARGEFILE_SUPPORT +#ifndef __LP64__ +# define HAVE_LARGEFILE_SUPPORT 1 +#endif + +#undef SIZEOF_LONG +#ifdef __LP64__ +# define SIZEOF__BOOL 1 +# define SIZEOF__BOOL 1 +# define SIZEOF_LONG 8 +# define SIZEOF_PTHREAD_T 8 +# define SIZEOF_SIZE_T 8 +# define SIZEOF_TIME_T 8 +# define SIZEOF_VOID_P 8 +# define SIZEOF_UINTPTR_T 8 +# define SIZEOF_PTHREAD_T 8 +#else +# ifdef __ppc__ +# define SIZEOF__BOOL 4 +# else +# define SIZEOF__BOOL 1 +# endif +# define SIZEOF_LONG 4 +# define SIZEOF_PTHREAD_T 4 +# define SIZEOF_SIZE_T 4 +# define SIZEOF_TIME_T 4 +# define SIZEOF_VOID_P 4 +# define SIZEOF_UINTPTR_T 4 +# define SIZEOF_PTHREAD_T 4 +#endif + +// macOS 10.4 (the first release to support 64-bit code +// at all) only supports 64-bit in the UNIX layer. +// Therefore suppress the toolbox-glue in 64-bit mode. +// +// In 64-bit mode setpgrp always has no arguments, in 32-bit +// mode that depends on the compilation environment +#if defined(__LP64__) +# undef SETPGRP_HAVE_ARG +#endif + +#ifdef __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# define DOUBLE_IS_BIG_ENDIAN_IEEE754 +#else +# define DOUBLE_IS_LITTLE_ENDIAN_IEEE754 +#endif + +#if defined(__i386__) || defined(__x86_64__) +# define HAVE_GCC_ASM_FOR_X87 +# define ALIGNOF_MAX_ALIGN_T 16 +# define HAVE_GCC_ASM_FOR_X64 1 +# define SIZEOF_LONG_DOUBLE 16 +#else +# define ALIGNOF_MAX_ALIGN_T 8 +# define SIZEOF_LONG_DOUBLE 8 +#endif + +#endif // __APPLE__ +#endif // !PY_MACCONFIG_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pymacro.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pymacro.h new file mode 100644 index 000000000..e3e9cd135 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pymacro.h @@ -0,0 +1,193 @@ +#ifndef Py_PYMACRO_H +#define Py_PYMACRO_H + +// gh-91782: On FreeBSD 12, if the _POSIX_C_SOURCE and _XOPEN_SOURCE macros are +// defined, disables C11 support and does not define +// the static_assert() macro. +// https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=255290 +// +// macOS <= 10.10 doesn't define static_assert in assert.h at all despite +// having C11 compiler support. +// +// static_assert is defined in glibc from version 2.16. Compiler support for +// the C11 _Static_assert keyword is in gcc >= 4.6. +// +// MSVC makes static_assert a keyword in C11-17, contrary to the standards. +// +// In C++11 and C2x, static_assert is a keyword, redefining is undefined +// behaviour. So only define if building as C, not C++ (if __cplusplus is +// not defined), and only for C11-17. +#if !defined(static_assert) && (defined(__GNUC__) || defined(__clang__)) \ + && !defined(__cplusplus) && defined(__STDC_VERSION__) \ + && __STDC_VERSION__ >= 201112L && __STDC_VERSION__ <= 201710L +# define static_assert _Static_assert +#endif + +/* Minimum value between x and y */ +#define Py_MIN(x, y) (((x) > (y)) ? (y) : (x)) + +/* Maximum value between x and y */ +#define Py_MAX(x, y) (((x) > (y)) ? (x) : (y)) + +/* Absolute value of the number x */ +#define Py_ABS(x) ((x) < 0 ? -(x) : (x)) + +#define _Py_XSTRINGIFY(x) #x + +/* Convert the argument to a string. For example, Py_STRINGIFY(123) is replaced + with "123" by the preprocessor. Defines are also replaced by their value. + For example Py_STRINGIFY(__LINE__) is replaced by the line number, not + by "__LINE__". */ +#define Py_STRINGIFY(x) _Py_XSTRINGIFY(x) + +/* Get the size of a structure member in bytes */ +#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) + +/* Argument must be a char or an int in [-128, 127] or [0, 255]. */ +#define Py_CHARMASK(c) ((unsigned char)((c) & 0xff)) + +#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L \ + && !defined(__cplusplus)) +# define Py_BUILD_ASSERT_EXPR(cond) \ + ((void)sizeof(struct { int dummy; _Static_assert(cond, #cond); }), \ + 0) +#else + /* Assert a build-time dependency, as an expression. + * + * Your compile will fail if the condition isn't true, or can't be evaluated + * by the compiler. This can be used in an expression: its value is 0. + * + * Example: + * + * #define foo_to_char(foo) \ + * ((char *)(foo) \ + * + Py_BUILD_ASSERT_EXPR(offsetof(struct foo, string) == 0)) + * + * Written by Rusty Russell, public domain, http://ccodearchive.net/ + */ +# define Py_BUILD_ASSERT_EXPR(cond) \ + (sizeof(char [1 - 2*!(cond)]) - 1) +#endif + +#if ((defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) \ + || (defined(__cplusplus) && __cplusplus >= 201103L)) + // Use static_assert() on C11 and newer +# define Py_BUILD_ASSERT(cond) \ + do { \ + static_assert((cond), #cond); \ + } while (0) +#else +# define Py_BUILD_ASSERT(cond) \ + do { \ + (void)Py_BUILD_ASSERT_EXPR(cond); \ + } while(0) +#endif + +/* Get the number of elements in a visible array + + This does not work on pointers, or arrays declared as [], or function + parameters. With correct compiler support, such usage will cause a build + error (see Py_BUILD_ASSERT_EXPR). + + Written by Rusty Russell, public domain, http://ccodearchive.net/ + + Requires at GCC 3.1+ */ +#if (defined(__GNUC__) && !defined(__STRICT_ANSI__) && \ + (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1)) || (__GNUC__ >= 4))) +/* Two gcc extensions. + &a[0] degrades to a pointer: a different type from an array */ +#define Py_ARRAY_LENGTH(array) \ + (sizeof(array) / sizeof((array)[0]) \ + + Py_BUILD_ASSERT_EXPR(!__builtin_types_compatible_p(typeof(array), \ + typeof(&(array)[0])))) +#else +#define Py_ARRAY_LENGTH(array) \ + (sizeof(array) / sizeof((array)[0])) +#endif + + +/* Define macros for inline documentation. */ +#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 +#else +#define PyDoc_STR(str) "" +#endif + +/* Below "a" is a power of 2. */ +/* Round down size "n" to be a multiple of "a". */ +#define _Py_SIZE_ROUND_DOWN(n, a) ((size_t)(n) & ~(size_t)((a) - 1)) +/* Round up size "n" to be a multiple of "a". */ +#define _Py_SIZE_ROUND_UP(n, a) (((size_t)(n) + \ + (size_t)((a) - 1)) & ~(size_t)((a) - 1)) +/* Round pointer "p" down to the closest "a"-aligned address <= "p". */ +#define _Py_ALIGN_DOWN(p, a) ((void *)((uintptr_t)(p) & ~(uintptr_t)((a) - 1))) +/* Round pointer "p" up to the closest "a"-aligned address >= "p". */ +#define _Py_ALIGN_UP(p, a) ((void *)(((uintptr_t)(p) + \ + (uintptr_t)((a) - 1)) & ~(uintptr_t)((a) - 1))) +/* 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)) +#elif defined(_MSC_VER) + // Disable warning C4100: unreferenced formal parameter, + // declare the parameter, + // restore old compiler warnings. +# define Py_UNUSED(name) \ + __pragma(warning(push)) \ + __pragma(warning(suppress: 4100)) \ + _unused_ ## name \ + __pragma(warning(pop)) +#else +# 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 + +#define _Py_CONTAINER_OF(ptr, type, member) \ + (type*)((char*)ptr - offsetof(type, member)) + +// Prevent using an expression as a l-value. +// For example, "int x; _Py_RVALUE(x) = 1;" fails with a compiler error. +#define _Py_RVALUE(EXPR) ((void)0, (EXPR)) + +// Return non-zero if the type is signed, return zero if it's unsigned. +// Use "<= 0" rather than "< 0" to prevent the compiler warning: +// "comparison of unsigned expression in '< 0' is always false". +#define _Py_IS_TYPE_SIGNED(type) ((type)(-1) <= 0) + +#endif /* Py_PYMACRO_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pymath.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pymath.h new file mode 100644 index 000000000..4c1e3d998 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pymath.h @@ -0,0 +1,62 @@ +// Symbols and macros to supply platform-independent interfaces to mathematical +// functions and constants. + +#ifndef Py_PYMATH_H +#define Py_PYMATH_H + +/* High precision definition of pi and e (Euler) + * The values are taken from libc6's math.h. + */ +#ifndef Py_MATH_PIl +#define Py_MATH_PIl 3.1415926535897932384626433832795029L +#endif +#ifndef Py_MATH_PI +#define Py_MATH_PI 3.14159265358979323846 +#endif + +#ifndef Py_MATH_El +#define Py_MATH_El 2.7182818284590452353602874713526625L +#endif + +#ifndef Py_MATH_E +#define Py_MATH_E 2.7182818284590452354 +#endif + +/* Tau (2pi) to 40 digits, taken from tauday.com/tau-digits. */ +#ifndef Py_MATH_TAU +#define Py_MATH_TAU 6.2831853071795864769252867665590057683943L +#endif + +// Py_IS_NAN(X) +// Return 1 if float or double arg is a NaN, else 0. +#define Py_IS_NAN(X) isnan(X) + +// Py_IS_INFINITY(X) +// Return 1 if float or double arg is an infinity, else 0. +#define Py_IS_INFINITY(X) isinf(X) + +// Py_IS_FINITE(X) +// Return 1 if float or double arg is neither infinite nor NAN, else 0. +#define Py_IS_FINITE(X) isfinite(X) + +// Py_INFINITY: Value that evaluates to a positive double infinity. +#ifndef Py_INFINITY +# define Py_INFINITY ((double)INFINITY) +#endif + +/* Py_HUGE_VAL should always be the same as Py_INFINITY. But historically + * this was not reliable and Python did not require IEEE floats and C99 + * conformity. Prefer Py_INFINITY for new code. + */ +#ifndef Py_HUGE_VAL +# define Py_HUGE_VAL HUGE_VAL +#endif + +/* Py_NAN: Value that evaluates to a quiet Not-a-Number (NaN). The sign is + * undefined and normally not relevant, but e.g. fixed for float("nan"). + */ +#if !defined(Py_NAN) +# define Py_NAN ((double)NAN) +#endif + +#endif /* Py_PYMATH_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pymem.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pymem.h new file mode 100644 index 000000000..a80da99e1 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pymem.h @@ -0,0 +1,110 @@ +// The PyMem_ family: low-level memory allocation interfaces. +// See objimpl.h for the PyObject_ memory family. + +#ifndef Py_PYMEM_H +#define Py_PYMEM_H +#ifdef __cplusplus +extern "C" { +#endif + +/* BEWARE: + + Each interface exports both functions and macros. Extension modules should + use the functions, to ensure binary compatibility across Python versions. + Because the Python implementation is free to change internal details, and + the macros may (or may not) expose details for speed, if you do use the + macros you must recompile your extensions with each Python release. + + Never mix calls to PyMem_ with calls to the platform malloc/realloc/ + calloc/free. For example, on Windows different DLLs may end up using + different heaps, and if you use PyMem_Malloc you'll get the memory from the + heap used by the Python DLL; it could be a disaster if you free()'ed that + directly in your own extension. Using PyMem_Free instead ensures Python + can return the memory to the proper heap. As another example, in + a debug build (Py_DEBUG macro), Python wraps all calls to all PyMem_ and + PyObject_ memory functions in special debugging wrappers that add additional + debugging info to dynamic memory blocks. The system routines have no idea + what to do with that stuff, and the Python wrappers have no idea what to do + with raw blocks obtained directly by the system routines then. + + The GIL must be held when using these APIs. +*/ + +/* + * Raw memory interface + * ==================== + */ + +/* Functions + + Functions supplying platform-independent semantics for malloc/realloc/ + free. These functions make sure that allocating 0 bytes returns a distinct + non-NULL pointer (whenever possible -- if we're flat out of memory, NULL + may be returned), even if the platform malloc and realloc don't. + Returned pointers must be checked for NULL explicitly. No action is + performed on failure (no exception is set, no warning is printed, etc). +*/ + +PyAPI_FUNC(void *) PyMem_Malloc(size_t size); +PyAPI_FUNC(void *) PyMem_Calloc(size_t nelem, size_t elsize); +PyAPI_FUNC(void *) PyMem_Realloc(void *ptr, size_t new_size); +PyAPI_FUNC(void) PyMem_Free(void *ptr); + +/* + * Type-oriented memory interface + * ============================== + * + * Allocate memory for n objects of the given type. Returns a new pointer + * or NULL if the request was too large or memory allocation failed. Use + * these macros rather than doing the multiplication yourself so that proper + * overflow checking is always done. + */ + +#define PyMem_New(type, n) \ + ( ((size_t)(n) > PY_SSIZE_T_MAX / sizeof(type)) ? NULL : \ + ( (type *) PyMem_Malloc((n) * sizeof(type)) ) ) + +/* + * The value of (p) is always clobbered by this macro regardless of success. + * The caller MUST check if (p) is NULL afterwards and deal with the memory + * error if so. This means the original value of (p) MUST be saved for the + * caller's memory error handler to not lose track of it. + */ +#define PyMem_Resize(p, type, n) \ + ( (p) = ((size_t)(n) > PY_SSIZE_T_MAX / sizeof(type)) ? NULL : \ + (type *) PyMem_Realloc((p), (n) * sizeof(type)) ) + + +// Deprecated aliases only kept for backward compatibility. +// PyMem_Del and PyMem_DEL are defined with no parameter to be able to use +// them as function pointers (ex: dealloc = PyMem_Del). +#define PyMem_MALLOC(n) PyMem_Malloc((n)) +#define PyMem_NEW(type, n) PyMem_New(type, (n)) +#define PyMem_REALLOC(p, n) PyMem_Realloc((p), (n)) +#define PyMem_RESIZE(p, type, n) PyMem_Resize((p), type, (n)) +#define PyMem_FREE(p) PyMem_Free((p)) +#define PyMem_Del(p) PyMem_Free((p)) +#define PyMem_DEL(p) PyMem_Free((p)) + + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030d0000 +// Memory allocator which doesn't require the GIL to be held. +// Usually, it's just a thin wrapper to functions of the standard C library: +// malloc(), calloc(), realloc() and free(). The difference is that +// tracemalloc can track these memory allocations. +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); +#endif + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_PYMEM_H +# include "cpython/pymem.h" +# undef Py_CPYTHON_PYMEM_H +#endif + +#ifdef __cplusplus +} +#endif +#endif // !Py_PYMEM_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyport.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyport.h new file mode 100644 index 000000000..2ba81a4be --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pyport.h @@ -0,0 +1,609 @@ +#ifndef Py_PYPORT_H +#define Py_PYPORT_H + +#ifndef UCHAR_MAX +# error " header must define UCHAR_MAX" +#endif +#if UCHAR_MAX != 255 +# error "Python's source code assumes C's unsigned char is an 8-bit type" +#endif + + +// Macro to use C++ static_cast<> in the Python C API. +#ifdef __cplusplus +# define _Py_STATIC_CAST(type, expr) static_cast(expr) +#else +# define _Py_STATIC_CAST(type, expr) ((type)(expr)) +#endif +// Macro to use the more powerful/dangerous C-style cast even in C++. +#define _Py_CAST(type, expr) ((type)(expr)) + +// Static inline functions should use _Py_NULL rather than using directly NULL +// to prevent C++ compiler warnings. On C23 and newer and on C++11 and newer, +// _Py_NULL is defined as nullptr. +#if (defined (__STDC_VERSION__) && __STDC_VERSION__ > 201710L) \ + || (defined(__cplusplus) && __cplusplus >= 201103) +# define _Py_NULL nullptr +#else +# define _Py_NULL NULL +#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. + +Please try to make documentation here as clear as possible: by definition, +the stuff here is trying to illuminate C's darkest corners. + +Config #defines referenced here: + +SIGNED_RIGHT_SHIFT_ZERO_FILLS +Meaning: To be defined iff i>>j does not extend the sign bit when i is a + signed integral type and i < 0. +Used in: Py_ARITHMETIC_RIGHT_SHIFT + +Py_DEBUG +Meaning: Extra checks compiled in for debug mode. +Used in: Py_SAFE_DOWNCAST + +**************************************************************************/ + +/* typedefs for some C9X-defined synonyms for integral types. + * + * The names in Python are exactly the same as the C9X names, except with a + * Py_ prefix. Until C9X is universally implemented, this is the only way + * to ensure that Python gets reliable names that don't conflict with names + * in non-Python code that are playing their own tricks to define the C9X + * names. + * + * NOTE: don't go nuts here! Python has no use for *most* of the C9X + * integral synonyms. Only define the ones we actually need. + */ + +/* long long is required. Ensure HAVE_LONG_LONG is defined for compatibility. */ +#ifndef HAVE_LONG_LONG +#define HAVE_LONG_LONG 1 +#endif +#ifndef PY_LONG_LONG +#define PY_LONG_LONG long long +/* If LLONG_MAX is defined in limits.h, use that. */ +#define PY_LLONG_MIN LLONG_MIN +#define PY_LLONG_MAX LLONG_MAX +#define PY_ULLONG_MAX ULLONG_MAX +#endif + +#define PY_UINT32_T uint32_t +#define PY_UINT64_T uint64_t + +/* Signed variants of the above */ +#define PY_INT32_T int32_t +#define PY_INT64_T int64_t + +/* PYLONG_BITS_IN_DIGIT describes the number of bits per "digit" (limb) in the + * PyLongObject implementation (longintrepr.h). It's currently either 30 or 15, + * defaulting to 30. The 15-bit digit option may be removed in the future. + */ +#ifndef PYLONG_BITS_IN_DIGIT +#define PYLONG_BITS_IN_DIGIT 30 +#endif + +/* uintptr_t is the C9X name for an unsigned integral type such that a + * legitimate void* can be cast to uintptr_t and then back to void* again + * without loss of information. Similarly for intptr_t, wrt a signed + * integral type. + */ +typedef uintptr_t Py_uintptr_t; +typedef intptr_t Py_intptr_t; + +/* Py_ssize_t is a signed integral type such that sizeof(Py_ssize_t) == + * sizeof(size_t). C99 doesn't define such a thing directly (size_t is an + * unsigned integral type). See PEP 353 for details. + * PY_SSIZE_T_MAX is the largest positive value of type Py_ssize_t. + */ +#ifdef HAVE_PY_SSIZE_T + +#elif HAVE_SSIZE_T +typedef ssize_t Py_ssize_t; +# define PY_SSIZE_T_MAX SSIZE_MAX +#elif SIZEOF_VOID_P == SIZEOF_SIZE_T +typedef Py_intptr_t Py_ssize_t; +# define PY_SSIZE_T_MAX INTPTR_MAX +#else +# error "Python needs a typedef for Py_ssize_t in pyport.h." +#endif + +/* Smallest negative value of type Py_ssize_t. */ +#define PY_SSIZE_T_MIN (-PY_SSIZE_T_MAX-1) + +/* Py_hash_t is the same size as a pointer. */ +#define SIZEOF_PY_HASH_T SIZEOF_SIZE_T +typedef Py_ssize_t Py_hash_t; +/* Py_uhash_t is the unsigned equivalent needed to calculate numeric hash. */ +#define SIZEOF_PY_UHASH_T SIZEOF_SIZE_T +typedef size_t Py_uhash_t; + +/* Now PY_SSIZE_T_CLEAN is mandatory. This is just for backward compatibility. */ +typedef Py_ssize_t Py_ssize_clean_t; + +/* Largest possible value of size_t. */ +#define PY_SIZE_MAX SIZE_MAX + +/* Macro kept for backward compatibility: use directly "z" in new code. + * + * PY_FORMAT_SIZE_T is a modifier for use in a printf format to convert an + * argument with the width of a size_t or Py_ssize_t: "z" (C99). + */ +#ifndef PY_FORMAT_SIZE_T +# define PY_FORMAT_SIZE_T "z" +#endif + +/* Py_LOCAL can be used instead of static to get the fastest possible calling + * convention for functions that are local to a given module. + * + * Py_LOCAL_INLINE does the same thing, and also explicitly requests inlining, + * for platforms that support that. + * + * NOTE: You can only use this for functions that are entirely local to a + * module; functions that are exported via method tables, callbacks, etc, + * should keep using static. + */ + +#if defined(_MSC_VER) + /* 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 +#endif + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 +# define Py_MEMCPY memcpy +#endif + +#ifdef __cplusplus +/* Move this down here since some C++ #include's don't like to be included + inside an extern "C" */ +extern "C" { +#endif + + +/* Py_ARITHMETIC_RIGHT_SHIFT + * C doesn't define whether a right-shift of a signed integer sign-extends + * or zero-fills. Here a macro to force sign extension: + * Py_ARITHMETIC_RIGHT_SHIFT(TYPE, I, J) + * Return I >> J, forcing sign extension. Arithmetically, return the + * floor of I/2**J. + * Requirements: + * I should have signed integer type. In the terminology of C99, this can + * be either one of the five standard signed integer types (signed char, + * short, int, long, long long) or an extended signed integer type. + * J is an integer >= 0 and strictly less than the number of bits in the + * type of I (because C doesn't define what happens for J outside that + * range either). + * TYPE used to specify the type of I, but is now ignored. It's been left + * in for backwards compatibility with versions <= 2.6 or 3.0. + * Caution: + * I may be evaluated more than once. + */ +#ifdef SIGNED_RIGHT_SHIFT_ZERO_FILLS +#define Py_ARITHMETIC_RIGHT_SHIFT(TYPE, I, J) \ + ((I) < 0 ? -1-((-1-(I)) >> (J)) : (I) >> (J)) +#else +#define Py_ARITHMETIC_RIGHT_SHIFT(TYPE, I, J) ((I) >> (J)) +#endif + +/* Py_FORCE_EXPANSION(X) + * "Simply" returns its argument. However, macro expansions within the + * argument are evaluated. This unfortunate trickery is needed to get + * token-pasting to work as desired in some cases. + */ +#define Py_FORCE_EXPANSION(X) X + +/* Py_SAFE_DOWNCAST(VALUE, WIDE, NARROW) + * Cast VALUE to type NARROW from type WIDE. In Py_DEBUG mode, this + * assert-fails if any information is lost. + * Caution: + * VALUE may be evaluated more than once. + */ +#ifdef Py_DEBUG +# define Py_SAFE_DOWNCAST(VALUE, WIDE, NARROW) \ + (assert(_Py_STATIC_CAST(WIDE, _Py_STATIC_CAST(NARROW, (VALUE))) == (VALUE)), \ + _Py_STATIC_CAST(NARROW, (VALUE))) +#else +# define Py_SAFE_DOWNCAST(VALUE, WIDE, NARROW) _Py_STATIC_CAST(NARROW, (VALUE)) +#endif + + +/* Py_DEPRECATED(version) + * Declare a variable, type, or function deprecated. + * 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); + */ +#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)) +#else +#define Py_DEPRECATED(VERSION_UNUSED) +#endif + +// _Py_DEPRECATED_EXTERNALLY(version) +// Deprecated outside CPython core. +#ifdef Py_BUILD_CORE +#define _Py_DEPRECATED_EXTERNALLY(VERSION_UNUSED) +#else +#define _Py_DEPRECATED_EXTERNALLY(version) Py_DEPRECATED(version) +#endif + + +#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 + * more aggressively and on many target it is placed into special subsection of + * the text section so all hot functions appears close together improving + * locality. + * + * Usage: + * int _Py_HOT_FUNCTION x(void) { return 3; } + * + * Issue #28618: This attribute must not be abused, otherwise it can have a + * negative effect on performance. Only the functions were Python spend most of + * its time must use it. Use a profiler when running performance benchmark + * suite to find these functions. + */ +#if defined(__GNUC__) \ + && ((__GNUC__ >= 5) || (__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) +#define _Py_HOT_FUNCTION __attribute__((hot)) +#else +#define _Py_HOT_FUNCTION +#endif + +// Ask the compiler to always inline a static inline function. The compiler can +// ignore it and decides to not inline the function. +// +// It can be used to inline performance critical static inline functions when +// building Python in debug mode with function inlining disabled. For example, +// MSC disables function inlining when building in debug mode. +// +// Marking blindly a static inline function with Py_ALWAYS_INLINE can result in +// worse performances (due to increased code size for example). The compiler is +// usually smarter than the developer for the cost/benefit analysis. +// +// If Python is built in debug mode (if the Py_DEBUG macro is defined), the +// Py_ALWAYS_INLINE macro does nothing. +// +// It must be specified before the function return type. Usage: +// +// static inline Py_ALWAYS_INLINE int random(void) { return 4; } +#if defined(Py_DEBUG) + // If Python is built in debug mode, usually compiler optimizations are + // disabled. In this case, Py_ALWAYS_INLINE can increase a lot the stack + // memory usage. For example, forcing inlining using gcc -O0 increases the + // stack usage from 6 KB to 15 KB per Python function call. +# define Py_ALWAYS_INLINE +#elif defined(__GNUC__) || defined(__clang__) || defined(__INTEL_COMPILER) +# define Py_ALWAYS_INLINE __attribute__((always_inline)) +#elif defined(_MSC_VER) +# define Py_ALWAYS_INLINE __forceinline +#else +# define Py_ALWAYS_INLINE +#endif + +// Py_NO_INLINE +// Disable inlining on a function. For example, it reduces the C stack +// consumption: useful on LTO+PGO builds which heavily inline code (see +// bpo-33720). +// +// Usage: +// +// Py_NO_INLINE static int random(void) { return 4; } +#if defined(__GNUC__) || defined(__clang__) || defined(__INTEL_COMPILER) +# define Py_NO_INLINE __attribute__ ((noinline)) +#elif defined(_MSC_VER) +# define Py_NO_INLINE __declspec(noinline) +#else +# define Py_NO_INLINE +#endif + +#include "exports.h" + +#ifdef Py_LIMITED_API + // The internal C API must not be used with the limited C API: make sure + // that Py_BUILD_CORE macro is not defined in this case. These 3 macros are + // used by exports.h, so only undefine them afterwards. +# undef Py_BUILD_CORE +# undef Py_BUILD_CORE_BUILTIN +# undef Py_BUILD_CORE_MODULE +#endif + +/* limits.h constants that may be missing */ + +#ifndef INT_MAX +#define INT_MAX 2147483647 +#endif + +#ifndef LONG_MAX +#if SIZEOF_LONG == 4 +#define LONG_MAX 0X7FFFFFFFL +#elif SIZEOF_LONG == 8 +#define LONG_MAX 0X7FFFFFFFFFFFFFFFL +#else +#error "could not set LONG_MAX in pyport.h" +#endif +#endif + +#ifndef LONG_MIN +#define LONG_MIN (-LONG_MAX-1) +#endif + +#ifndef LONG_BIT +#define LONG_BIT (8 * SIZEOF_LONG) +#endif + +#if LONG_BIT != 8 * SIZEOF_LONG +/* 04-Oct-2000 LONG_BIT is apparently (mis)defined as 64 on some recent + * 32-bit platforms using gcc. We try to catch that here at compile-time + * rather than waiting for integer multiplication to trigger bogus + * overflows. + */ +#error "LONG_BIT definition appears wrong for platform (bad gcc/glibc config?)." +#endif + +#ifdef __cplusplus +} +#endif + +/* + * Hide GCC attributes from compilers that don't support them. + */ +#if (!defined(__GNUC__) || __GNUC__ < 2 || \ + (__GNUC__ == 2 && __GNUC_MINOR__ < 7) ) +#define Py_GCC_ATTRIBUTE(x) +#else +#define Py_GCC_ATTRIBUTE(x) __attribute__(x) +#endif + +/* + * Specify alignment on compilers that support it. + */ +#if defined(__GNUC__) && __GNUC__ >= 3 +#define Py_ALIGNED(x) __attribute__((aligned(x))) +#else +#define Py_ALIGNED(x) +#endif + +/* Eliminate end-of-loop code not reached warnings from SunPro C + * when using do{...}while(0) macros + */ +#ifdef __SUNPRO_C +#pragma error_messages (off,E_END_OF_LOOP_CODE_NOT_REACHED) +#endif + +#ifndef Py_LL +#define Py_LL(x) x##LL +#endif + +#ifndef Py_ULL +#define Py_ULL(x) Py_LL(x##U) +#endif + +#define Py_VA_COPY va_copy + +/* + * Convenient macros to deal with endianness of the platform. WORDS_BIGENDIAN is + * detected by configure and defined in pyconfig.h. The code in pyconfig.h + * also takes care of Apple's universal builds. + */ + +#ifdef WORDS_BIGENDIAN +# define PY_BIG_ENDIAN 1 +# define PY_LITTLE_ENDIAN 0 +#else +# define PY_BIG_ENDIAN 0 +# define PY_LITTLE_ENDIAN 1 +#endif + +#ifdef __ANDROID__ + /* The Android langinfo.h header is not used. */ +# undef HAVE_LANGINFO_H +# undef CODESET +#endif + +/* Maximum value of the Windows DWORD type */ +#define PY_DWORD_MAX 4294967295U + +/* This macro used to tell whether Python was built with multithreading + * enabled. Now multithreading is always enabled, but keep the macro + * for compatibility. + */ +#ifndef WITH_THREAD +# define WITH_THREAD +#endif + +/* Some WebAssembly platforms do not provide a working pthread implementation. + * Thread support is stubbed and any attempt to create a new thread fails. + */ +#if (!defined(HAVE_PTHREAD_STUBS) && \ + (!defined(__EMSCRIPTEN__) || defined(__EMSCRIPTEN_PTHREADS__))) +# define Py_CAN_START_THREADS 1 +#endif + +#ifdef WITH_THREAD +# ifdef Py_BUILD_CORE +# ifdef HAVE_THREAD_LOCAL +# error "HAVE_THREAD_LOCAL is already defined" +# endif +# define HAVE_THREAD_LOCAL 1 +# ifdef thread_local +# define _Py_thread_local thread_local +# elif __STDC_VERSION__ >= 201112L && !defined(__STDC_NO_THREADS__) +# define _Py_thread_local _Thread_local +# elif defined(_MSC_VER) /* AKA NT_THREADS */ +# define _Py_thread_local __declspec(thread) +# elif defined(__GNUC__) /* includes clang */ +# define _Py_thread_local __thread +# else + // fall back to the PyThread_tss_*() API, or ignore. +# undef HAVE_THREAD_LOCAL +# endif +# endif +#endif + +#if defined(__ANDROID__) || defined(__VXWORKS__) + // Use UTF-8 as the locale encoding, ignore the LC_CTYPE locale. + // See _Py_GetLocaleEncoding(), PyUnicode_DecodeLocale() + // and PyUnicode_EncodeLocale(). +# define _Py_FORCE_UTF8_LOCALE +#endif + +#if defined(_Py_FORCE_UTF8_LOCALE) || defined(__APPLE__) + // Use UTF-8 as the filesystem encoding. + // See PyUnicode_DecodeFSDefaultAndSize(), PyUnicode_EncodeFSDefault(), + // Py_DecodeLocale() and Py_EncodeLocale(). +# 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 */ +#ifndef _Py_NO_RETURN +#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 +#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 + +// _Py_TYPEOF(expr) gets the type of an expression. +// +// Example: _Py_TYPEOF(x) x_copy = (x); +// +// The macro is only defined if GCC or clang compiler is used. +#if defined(__GNUC__) || defined(__clang__) +# define _Py_TYPEOF(expr) __typeof__(expr) +#endif + + +/* 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 +# if __has_feature(thread_sanitizer) +# if !defined(_Py_THREAD_SANITIZER) +# define _Py_THREAD_SANITIZER +# endif +# endif +#elif defined(__GNUC__) +# if defined(__SANITIZE_ADDRESS__) +# define _Py_ADDRESS_SANITIZER +# endif +# if defined(__SANITIZE_THREAD__) +# define _Py_THREAD_SANITIZER +# endif +#endif + + +/* AIX has __bool__ redefined in it's system header file. */ +#if defined(_AIX) && defined(__bool__) +#undef __bool__ +#endif + +// Make sure we have maximum alignment, even if the current compiler +// does not support max_align_t. Note that: +// - Autoconf reports alignment of unknown types to 0. +// - 'long double' has maximum alignment on *most* platforms, +// looks like the best we can do for pre-C11 compilers. +// - The value is tested, see test_alignof_max_align_t +#if !defined(ALIGNOF_MAX_ALIGN_T) || ALIGNOF_MAX_ALIGN_T == 0 +# undef ALIGNOF_MAX_ALIGN_T +# define ALIGNOF_MAX_ALIGN_T _Alignof(long double) +#endif + +#ifndef PY_CXX_CONST +# ifdef __cplusplus +# define PY_CXX_CONST const +# else +# define PY_CXX_CONST +# endif +#endif + +#if defined(__sgi) && !defined(_SGI_MP_SOURCE) +# define _SGI_MP_SOURCE +#endif + +#endif /* Py_PYPORT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pystate.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pystate.h new file mode 100644 index 000000000..727b8fbff --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pystate.h @@ -0,0 +1,132 @@ +/* Thread and interpreter state structures and their interfaces */ + + +#ifndef Py_PYSTATE_H +#define Py_PYSTATE_H +#ifdef __cplusplus +extern "C" { +#endif + +/* This limitation is for performance and simplicity. If needed it can be +removed (with effort). */ +#define MAX_CO_EXTRA_USERS 255 + +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 +/* New in 3.7 */ +PyAPI_FUNC(int64_t) PyInterpreterState_GetID(PyInterpreterState *); +#endif +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 + +/* State unique per thread */ + +/* New in 3.3 */ +PyAPI_FUNC(int) PyState_AddModule(PyObject*, PyModuleDef*); +PyAPI_FUNC(int) PyState_RemoveModule(PyModuleDef*); +#endif +PyAPI_FUNC(PyObject*) PyState_FindModule(PyModuleDef*); + +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_GetUnchecked() and _PyThreadState_GET(). */ +PyAPI_FUNC(PyThreadState *) PyThreadState_Get(void); + +// Alias to 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 + +typedef + enum {PyGILState_LOCKED, PyGILState_UNLOCKED} + PyGILState_STATE; + + +/* Ensure that the current thread is ready to call the Python + C API, regardless of the current state of Python, or of its + thread lock. This may be called as many times as desired + by a thread so long as each call is matched with a call to + PyGILState_Release(). In general, other thread-state APIs may + be used between _Ensure() and _Release() calls, so long as the + thread-state is restored to its previous state before the Release(). + For example, normal use of the Py_BEGIN_ALLOW_THREADS/ + Py_END_ALLOW_THREADS macros are acceptable. + + The return value is an opaque "handle" to the thread state when + PyGILState_Ensure() was called, and must be passed to + PyGILState_Release() to ensure Python is left in the same state. Even + though recursive calls are allowed, these handles can *not* be shared - + each unique call to PyGILState_Ensure must save the handle for its + call to PyGILState_Release. + + When the function returns, the current thread will hold the GIL. + + Failure is a fatal error. +*/ +PyAPI_FUNC(PyGILState_STATE) PyGILState_Ensure(void); + +/* Release any resources previously acquired. After this call, Python's + state will be the same as it was prior to the corresponding + PyGILState_Ensure() call (but generally this state will be unknown to + the caller, hence the use of the GILState API.) + + Every call to PyGILState_Ensure must be matched by a call to + PyGILState_Release on the same thread. +*/ +PyAPI_FUNC(void) PyGILState_Release(PyGILState_STATE); + +/* Helper/diagnostic function - get the current thread state for + this thread. May return NULL if no GILState API has been used + on the current thread. Note that the main thread always has such a + thread-state, even if no auto-thread-state call has been made + on the main thread. +*/ +PyAPI_FUNC(PyThreadState *) PyGILState_GetThisThreadState(void); + + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_PYSTATE_H +# include "cpython/pystate.h" +# undef Py_CPYTHON_PYSTATE_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_PYSTATE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pystats.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pystats.h new file mode 100644 index 000000000..acfa32201 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pystats.h @@ -0,0 +1,26 @@ +// Statistics on Python performance (public API). +// +// Define _Py_INCREF_STAT_INC() and _Py_DECREF_STAT_INC() used by Py_INCREF() +// and Py_DECREF(). +// +// See Include/cpython/pystats.h for the full API. + +#ifndef Py_PYSTATS_H +#define Py_PYSTATS_H +#ifdef __cplusplus +extern "C" { +#endif + +#if defined(Py_STATS) && !defined(Py_LIMITED_API) +# define Py_CPYTHON_PYSTATS_H +# include "cpython/pystats.h" +# undef Py_CPYTHON_PYSTATS_H +#else +# define _Py_INCREF_STAT_INC() ((void)0) +# define _Py_DECREF_STAT_INC() ((void)0) +#endif // !Py_STATS + +#ifdef __cplusplus +} +#endif +#endif // !Py_PYSTATS_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pystrcmp.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pystrcmp.h new file mode 100644 index 000000000..edb12397e --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pystrcmp.h @@ -0,0 +1,23 @@ +#ifndef Py_STRCMP_H +#define Py_STRCMP_H + +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_FUNC(int) PyOS_mystrnicmp(const char *, const char *, Py_ssize_t); +PyAPI_FUNC(int) PyOS_mystricmp(const char *, const char *); + +#ifdef MS_WINDOWS +#define PyOS_strnicmp strnicmp +#define PyOS_stricmp stricmp +#else +#define PyOS_strnicmp PyOS_mystrnicmp +#define PyOS_stricmp PyOS_mystricmp +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* !Py_STRCMP_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pystrtod.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pystrtod.h new file mode 100644 index 000000000..e83d245eb --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pystrtod.h @@ -0,0 +1,37 @@ +#ifndef Py_STRTOD_H +#define Py_STRTOD_H + +#ifdef __cplusplus +extern "C" { +#endif + + +PyAPI_FUNC(double) PyOS_string_to_double(const char *str, + char **endptr, + PyObject *overflow_exception); + +/* The caller is responsible for calling PyMem_Free to free the buffer + that's is returned. */ +PyAPI_FUNC(char *) PyOS_double_to_string(double val, + char format_code, + int precision, + int flags, + int *type); + +/* PyOS_double_to_string's "flags" parameter can be set to 0 or more of: */ +#define Py_DTSF_SIGN 0x01 /* always add the sign */ +#define Py_DTSF_ADD_DOT_0 0x02 /* if the result is an integer add ".0" */ +#define Py_DTSF_ALT 0x04 /* "alternate" formatting. it's format_code + specific */ +#define Py_DTSF_NO_NEG_0 0x08 /* negative zero result is coerced to 0 */ + +/* PyOS_double_to_string's "type", if non-NULL, will be set to one of: */ +#define Py_DTST_FINITE 0 +#define Py_DTST_INFINITE 1 +#define Py_DTST_NAN 2 + +#ifdef __cplusplus +} +#endif + +#endif /* !Py_STRTOD_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pythonrun.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pythonrun.h new file mode 100644 index 000000000..154c7450c --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pythonrun.h @@ -0,0 +1,49 @@ + +/* Interfaces to parse and execute pieces of python code */ + +#ifndef Py_PYTHONRUN_H +#define Py_PYTHONRUN_H +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_FUNC(PyObject *) Py_CompileString(const char *, const char *, int); + +PyAPI_FUNC(void) PyErr_Print(void); +PyAPI_FUNC(void) PyErr_PrintEx(int); +PyAPI_FUNC(void) PyErr_Display(PyObject *, PyObject *, PyObject *); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030C0000 +PyAPI_FUNC(void) PyErr_DisplayException(PyObject *); +#endif + + +/* Stuff with no proper home (yet) */ +PyAPI_DATA(int) (*PyOS_InputHook)(void); + +/* Stack size, in "pointers" (so we get extra safety margins + on 64-bit platforms). On a 32-bit platform, this translates + to an 8k margin. */ +#define PYOS_STACK_MARGIN 2048 + +#if defined(WIN32) && !defined(MS_WIN64) && !defined(_M_ARM) && defined(_MSC_VER) && _MSC_VER >= 1300 +/* Enable stack checking under Microsoft C */ +// When changing the platforms, ensure PyOS_CheckStack() docs are still correct +#define USE_STACKCHECK +#endif + +#ifdef USE_STACKCHECK +/* Check that we aren't overflowing our stack */ +PyAPI_FUNC(int) PyOS_CheckStack(void); +#endif + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_PYTHONRUN_H +# include "cpython/pythonrun.h" +# undef Py_CPYTHON_PYTHONRUN_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_PYTHONRUN_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pythread.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pythread.h new file mode 100644 index 000000000..a3216c51d --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pythread.h @@ -0,0 +1,112 @@ +#ifndef Py_PYTHREAD_H +#define Py_PYTHREAD_H + +typedef void *PyThread_type_lock; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Return status codes for Python lock acquisition. Chosen for maximum + * backwards compatibility, ie failure -> 0, success -> 1. */ +typedef enum PyLockStatus { + PY_LOCK_FAILURE = 0, + PY_LOCK_ACQUIRED = 1, + PY_LOCK_INTR +} 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(unsigned long) PyThread_get_thread_ident(void); + +#if (defined(__APPLE__) || defined(__linux__) || defined(_WIN32) \ + || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) \ + || defined(__OpenBSD__) || defined(__NetBSD__) \ + || defined(__DragonFly__) || 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 + +// PY_TIMEOUT_T is the integral type used to specify timeouts when waiting +// on a lock (see PyThread_acquire_lock_timed() below). +#define PY_TIMEOUT_T long long + + +/* If microseconds == 0, the call is non-blocking: it returns immediately + even when the lock can't be acquired. + If microseconds > 0, the call waits up to the specified duration. + If microseconds < 0, the call waits until success (or abnormal failure) + + If *microseconds* is greater than PY_TIMEOUT_MAX, clamp the timeout to + PY_TIMEOUT_MAX microseconds. + + If intr_flag is true and the acquire is interrupted by a signal, then the + call will return PY_LOCK_INTR. The caller may reattempt to acquire the + lock. +*/ +PyAPI_FUNC(PyLockStatus) PyThread_acquire_lock_timed(PyThread_type_lock, + PY_TIMEOUT_T microseconds, + int intr_flag); + +PyAPI_FUNC(void) PyThread_release_lock(PyThread_type_lock); + +PyAPI_FUNC(size_t) PyThread_get_stacksize(void); +PyAPI_FUNC(int) PyThread_set_stacksize(size_t); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +PyAPI_FUNC(PyObject*) PyThread_GetInfo(void); +#endif + + +/* Thread Local Storage (TLS) API + TLS API is DEPRECATED. Use Thread Specific Storage (TSS) API. + + The existing TLS API has used int to represent TLS keys across all + 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); + +/* Cleanup after a fork */ +Py_DEPRECATED(3.7) PyAPI_FUNC(void) PyThread_ReInitTLS(void); + + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03070000 +/* New in 3.7 */ +/* Thread Specific Storage (TSS) API */ + +typedef struct _Py_tss_t Py_tss_t; /* opaque */ + +PyAPI_FUNC(Py_tss_t *) PyThread_tss_alloc(void); +PyAPI_FUNC(void) PyThread_tss_free(Py_tss_t *key); + +/* The parameter key must not be NULL. */ +PyAPI_FUNC(int) PyThread_tss_is_created(Py_tss_t *key); +PyAPI_FUNC(int) PyThread_tss_create(Py_tss_t *key); +PyAPI_FUNC(void) PyThread_tss_delete(Py_tss_t *key); +PyAPI_FUNC(int) PyThread_tss_set(Py_tss_t *key, void *value); +PyAPI_FUNC(void *) PyThread_tss_get(Py_tss_t *key); +#endif /* New in 3.7 */ + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_PYTHREAD_H +# include "cpython/pythread.h" +# undef Py_CPYTHON_PYTHREAD_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_PYTHREAD_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pytypedefs.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pytypedefs.h new file mode 100644 index 000000000..e78ed56a3 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/pytypedefs.h @@ -0,0 +1,30 @@ +// Forward declarations of types of the Python C API. +// Declare them at the same place since redefining typedef is a C11 feature. +// Only use a forward declaration if there is an interdependency between two +// header files. + +#ifndef Py_PYTYPEDEFS_H +#define Py_PYTYPEDEFS_H +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct PyModuleDef PyModuleDef; +typedef struct PyModuleDef_Slot PyModuleDef_Slot; +typedef struct PyMethodDef PyMethodDef; +typedef struct PyGetSetDef PyGetSetDef; +typedef struct PyMemberDef PyMemberDef; + +typedef struct _object PyObject; +typedef struct _longobject PyLongObject; +typedef struct _typeobject PyTypeObject; +typedef struct PyCodeObject PyCodeObject; +typedef struct _frame PyFrameObject; + +typedef struct _ts PyThreadState; +typedef struct _is PyInterpreterState; + +#ifdef __cplusplus +} +#endif +#endif // !Py_PYTYPEDEFS_H diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/rangeobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/rangeobject.h new file mode 100644 index 000000000..d46ce7cd4 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/rangeobject.h @@ -0,0 +1,27 @@ + +/* Range object interface */ + +#ifndef Py_RANGEOBJECT_H +#define Py_RANGEOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +/* +A range object represents an integer range. This is an immutable object; +a range cannot change its value after creation. + +Range objects behave like the corresponding tuple objects except that +they are represented by a start, stop, and step datamembers. +*/ + +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) + +#ifdef __cplusplus +} +#endif +#endif /* !Py_RANGEOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/setobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/setobject.h new file mode 100644 index 000000000..62c9e6b13 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/setobject.h @@ -0,0 +1,49 @@ +/* Set object interface */ + +#ifndef Py_SETOBJECT_H +#define Py_SETOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_DATA(PyTypeObject) PySet_Type; +PyAPI_DATA(PyTypeObject) PyFrozenSet_Type; +PyAPI_DATA(PyTypeObject) PySetIter_Type; + +PyAPI_FUNC(PyObject *) PySet_New(PyObject *); +PyAPI_FUNC(PyObject *) PyFrozenSet_New(PyObject *); + +PyAPI_FUNC(int) PySet_Add(PyObject *set, PyObject *key); +PyAPI_FUNC(int) PySet_Clear(PyObject *set); +PyAPI_FUNC(int) PySet_Contains(PyObject *anyset, PyObject *key); +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_Check(ob) \ + (Py_IS_TYPE((ob), &PyFrozenSet_Type) || \ + PyType_IsSubtype(Py_TYPE(ob), &PyFrozenSet_Type)) + +#define PyAnySet_CheckExact(ob) \ + (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) || \ + PyType_IsSubtype(Py_TYPE(ob), &PySet_Type) || \ + PyType_IsSubtype(Py_TYPE(ob), &PyFrozenSet_Type)) + +#define PySet_CheckExact(op) Py_IS_TYPE(op, &PySet_Type) +#define PySet_Check(ob) \ + (Py_IS_TYPE((ob), &PySet_Type) || \ + PyType_IsSubtype(Py_TYPE(ob), &PySet_Type)) + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_SETOBJECT_H +# include "cpython/setobject.h" +# undef Py_CPYTHON_SETOBJECT_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_SETOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/sliceobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/sliceobject.h new file mode 100644 index 000000000..35e2ea254 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/sliceobject.h @@ -0,0 +1,69 @@ +#ifndef Py_SLICEOBJECT_H +#define Py_SLICEOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +/* The unique ellipsis object "..." */ + +PyAPI_DATA(PyObject) _Py_EllipsisObject; /* Don't use this directly */ + +#if defined(Py_LIMITED_API) && Py_LIMITED_API+0 >= 0x030D0000 +# define Py_Ellipsis Py_GetConstantBorrowed(Py_CONSTANT_ELLIPSIS) +#else +# define Py_Ellipsis (&_Py_EllipsisObject) +#endif + +/* Slice object interface */ + +/* + +A slice object containing start, stop, and step data members (the +names are from range). After much talk with Guido, it was decided to +let these be any arbitrary python type. Py_None stands for omitted values. +*/ +#ifndef Py_LIMITED_API +typedef struct { + PyObject_HEAD + PyObject *start, *stop, *step; /* not NULL */ +} PySliceObject; +#endif + +PyAPI_DATA(PyTypeObject) PySlice_Type; +PyAPI_DATA(PyTypeObject) PyEllipsis_Type; + +#define PySlice_Check(op) Py_IS_TYPE((op), &PySlice_Type) + +PyAPI_FUNC(PyObject *) PySlice_New(PyObject* start, PyObject* stop, + PyObject* step); +#ifndef Py_LIMITED_API +PyAPI_FUNC(PyObject *) _PySlice_FromIndices(Py_ssize_t start, Py_ssize_t stop); +PyAPI_FUNC(int) _PySlice_GetLongIndices(PySliceObject *self, PyObject *length, + PyObject **start_ptr, PyObject **stop_ptr, + PyObject **step_ptr); +#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) +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); + +#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) ( \ + PySlice_Unpack((slice), (start), (stop), (step)) < 0 ? \ + ((*(slicelen) = 0), -1) : \ + ((*(slicelen) = PySlice_AdjustIndices((length), (start), (stop), *(step))), \ + 0)) +PyAPI_FUNC(int) PySlice_Unpack(PyObject *slice, + Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step); +PyAPI_FUNC(Py_ssize_t) PySlice_AdjustIndices(Py_ssize_t length, + Py_ssize_t *start, Py_ssize_t *stop, + Py_ssize_t step); +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_SLICEOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/structmember.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/structmember.h new file mode 100644 index 000000000..f6e8fd829 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/structmember.h @@ -0,0 +1,56 @@ +#ifndef Py_STRUCTMEMBER_H +#define Py_STRUCTMEMBER_H +#ifdef __cplusplus +extern "C" { +#endif + + +/* Interface to map C struct members to Python object attributes + * + * This header is deprecated: new code should not use stuff from here. + * New definitions are in descrobject.h. + * + * However, there's nothing wrong with old code continuing to use it, + * and there's not much mainenance overhead in maintaining a few aliases. + * So, don't be too eager to convert old code. + * + * It uses names not prefixed with Py_. + * It is also *not* included from Python.h and must be included individually. + */ + +#include /* For offsetof (not always provided by Python.h) */ + +/* Types */ +#define T_SHORT Py_T_SHORT +#define T_INT Py_T_INT +#define T_LONG Py_T_LONG +#define T_FLOAT Py_T_FLOAT +#define T_DOUBLE Py_T_DOUBLE +#define T_STRING Py_T_STRING +#define T_OBJECT _Py_T_OBJECT +#define T_CHAR Py_T_CHAR +#define T_BYTE Py_T_BYTE +#define T_UBYTE Py_T_UBYTE +#define T_USHORT Py_T_USHORT +#define T_UINT Py_T_UINT +#define T_ULONG Py_T_ULONG +#define T_STRING_INPLACE Py_T_STRING_INPLACE +#define T_BOOL Py_T_BOOL +#define T_OBJECT_EX Py_T_OBJECT_EX +#define T_LONGLONG Py_T_LONGLONG +#define T_ULONGLONG Py_T_ULONGLONG +#define T_PYSSIZET Py_T_PYSSIZET +#define T_NONE _Py_T_NONE + +/* Flags */ +#define READONLY Py_READONLY +#define PY_AUDIT_READ Py_AUDIT_READ +#define READ_RESTRICTED Py_AUDIT_READ +#define PY_WRITE_RESTRICTED _Py_WRITE_RESTRICTED +#define RESTRICTED (READ_RESTRICTED | PY_WRITE_RESTRICTED) + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_STRUCTMEMBER_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/structseq.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/structseq.h new file mode 100644 index 000000000..29e24fee5 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/structseq.h @@ -0,0 +1,46 @@ + +/* Named tuple object interface */ + +#ifndef Py_STRUCTSEQ_H +#define Py_STRUCTSEQ_H +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct PyStructSequence_Field { + const char *name; + const char *doc; +} PyStructSequence_Field; + +typedef struct PyStructSequence_Desc { + const char *name; + const char *doc; + PyStructSequence_Field *fields; + int n_in_sequence; +} PyStructSequence_Desc; + +PyAPI_DATA(const char * const) PyStructSequence_UnnamedField; + +#ifndef Py_LIMITED_API +PyAPI_FUNC(void) PyStructSequence_InitType(PyTypeObject *type, + PyStructSequence_Desc *desc); +PyAPI_FUNC(int) PyStructSequence_InitType2(PyTypeObject *type, + PyStructSequence_Desc *desc); +#endif +PyAPI_FUNC(PyTypeObject*) PyStructSequence_NewType(PyStructSequence_Desc *desc); + +PyAPI_FUNC(PyObject *) PyStructSequence_New(PyTypeObject* type); + +PyAPI_FUNC(void) PyStructSequence_SetItem(PyObject*, Py_ssize_t, PyObject*); +PyAPI_FUNC(PyObject*) PyStructSequence_GetItem(PyObject*, Py_ssize_t); + +#ifndef Py_LIMITED_API +typedef PyTupleObject PyStructSequence; +#define PyStructSequence_SET_ITEM PyStructSequence_SetItem +#define PyStructSequence_GET_ITEM PyStructSequence_GetItem +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_STRUCTSEQ_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/sysmodule.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/sysmodule.h new file mode 100644 index 000000000..5a0af2e15 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/sysmodule.h @@ -0,0 +1,44 @@ +#ifndef Py_SYSMODULE_H +#define Py_SYSMODULE_H +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_FUNC(PyObject *) PySys_GetObject(const char *); +PyAPI_FUNC(int) PySys_SetObject(const char *, PyObject *); + +Py_DEPRECATED(3.11) PyAPI_FUNC(void) PySys_SetArgv(int, wchar_t **); +Py_DEPRECATED(3.11) PyAPI_FUNC(void) PySys_SetArgvEx(int, wchar_t **, int); + +PyAPI_FUNC(void) PySys_WriteStdout(const char *format, ...) + Py_GCC_ATTRIBUTE((format(printf, 1, 2))); +PyAPI_FUNC(void) PySys_WriteStderr(const char *format, ...) + Py_GCC_ATTRIBUTE((format(printf, 1, 2))); +PyAPI_FUNC(void) PySys_FormatStdout(const char *format, ...); +PyAPI_FUNC(void) PySys_FormatStderr(const char *format, ...); + +Py_DEPRECATED(3.13) PyAPI_FUNC(void) PySys_ResetWarnOptions(void); + +PyAPI_FUNC(PyObject *) PySys_GetXOptions(void); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030d0000 +PyAPI_FUNC(int) PySys_Audit( + const char *event, + const char *argFormat, + ...); + +PyAPI_FUNC(int) PySys_AuditTuple( + const char *event, + PyObject *args); +#endif + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_SYSMODULE_H +# include "cpython/sysmodule.h" +# undef Py_CPYTHON_SYSMODULE_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_SYSMODULE_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/traceback.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/traceback.h new file mode 100644 index 000000000..2b40cc9fc --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/traceback.h @@ -0,0 +1,26 @@ +#ifndef Py_TRACEBACK_H +#define Py_TRACEBACK_H +#ifdef __cplusplus +extern "C" { +#endif + +/* Traceback interface */ + +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) + + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_TRACEBACK_H +# include "cpython/traceback.h" +# undef Py_CPYTHON_TRACEBACK_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_TRACEBACK_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/tupleobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/tupleobject.h new file mode 100644 index 000000000..1f9ab54be --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/tupleobject.h @@ -0,0 +1,46 @@ +/* Tuple object interface */ + +#ifndef Py_TUPLEOBJECT_H +#define Py_TUPLEOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +/* +Another generally useful object type is a tuple of object pointers. +For Python, this is an immutable type. C code can change the tuple items +(but not their number), and even use tuples as general-purpose arrays of +object references, but in general only brand new tuples should be mutated, +not ones that might already have been exposed to Python code. + +*** WARNING *** PyTuple_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 tuple. Similarly, PyTuple_GetItem does not increment the +returned item's reference count. +*/ + +PyAPI_DATA(PyTypeObject) PyTuple_Type; +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) + +PyAPI_FUNC(PyObject *) PyTuple_New(Py_ssize_t size); +PyAPI_FUNC(Py_ssize_t) PyTuple_Size(PyObject *); +PyAPI_FUNC(PyObject *) PyTuple_GetItem(PyObject *, Py_ssize_t); +PyAPI_FUNC(int) PyTuple_SetItem(PyObject *, Py_ssize_t, PyObject *); +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 +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_TUPLEOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/typeslots.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/typeslots.h new file mode 100644 index 000000000..506b05580 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/typeslots.h @@ -0,0 +1,88 @@ +/* Do not renumber the file; these numbers are part of the stable ABI. */ +#define Py_bf_getbuffer 1 +#define Py_bf_releasebuffer 2 +#define Py_mp_ass_subscript 3 +#define Py_mp_length 4 +#define Py_mp_subscript 5 +#define Py_nb_absolute 6 +#define Py_nb_add 7 +#define Py_nb_and 8 +#define Py_nb_bool 9 +#define Py_nb_divmod 10 +#define Py_nb_float 11 +#define Py_nb_floor_divide 12 +#define Py_nb_index 13 +#define Py_nb_inplace_add 14 +#define Py_nb_inplace_and 15 +#define Py_nb_inplace_floor_divide 16 +#define Py_nb_inplace_lshift 17 +#define Py_nb_inplace_multiply 18 +#define Py_nb_inplace_or 19 +#define Py_nb_inplace_power 20 +#define Py_nb_inplace_remainder 21 +#define Py_nb_inplace_rshift 22 +#define Py_nb_inplace_subtract 23 +#define Py_nb_inplace_true_divide 24 +#define Py_nb_inplace_xor 25 +#define Py_nb_int 26 +#define Py_nb_invert 27 +#define Py_nb_lshift 28 +#define Py_nb_multiply 29 +#define Py_nb_negative 30 +#define Py_nb_or 31 +#define Py_nb_positive 32 +#define Py_nb_power 33 +#define Py_nb_remainder 34 +#define Py_nb_rshift 35 +#define Py_nb_subtract 36 +#define Py_nb_true_divide 37 +#define Py_nb_xor 38 +#define Py_sq_ass_item 39 +#define Py_sq_concat 40 +#define Py_sq_contains 41 +#define Py_sq_inplace_concat 42 +#define Py_sq_inplace_repeat 43 +#define Py_sq_item 44 +#define Py_sq_length 45 +#define Py_sq_repeat 46 +#define Py_tp_alloc 47 +#define Py_tp_base 48 +#define Py_tp_bases 49 +#define Py_tp_call 50 +#define Py_tp_clear 51 +#define Py_tp_dealloc 52 +#define Py_tp_del 53 +#define Py_tp_descr_get 54 +#define Py_tp_descr_set 55 +#define Py_tp_doc 56 +#define Py_tp_getattr 57 +#define Py_tp_getattro 58 +#define Py_tp_hash 59 +#define Py_tp_init 60 +#define Py_tp_is_gc 61 +#define Py_tp_iter 62 +#define Py_tp_iternext 63 +#define Py_tp_methods 64 +#define Py_tp_new 65 +#define Py_tp_repr 66 +#define Py_tp_richcompare 67 +#define Py_tp_setattr 68 +#define Py_tp_setattro 69 +#define Py_tp_str 70 +#define Py_tp_traverse 71 +#define Py_tp_members 72 +#define Py_tp_getset 73 +#define Py_tp_free 74 +#define Py_nb_matrix_multiply 75 +#define Py_nb_inplace_matrix_multiply 76 +#define Py_am_await 77 +#define Py_am_aiter 78 +#define Py_am_anext 79 +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 +/* New in 3.5 */ +#define Py_tp_finalize 80 +#endif +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030A0000 +/* New in 3.10 */ +#define Py_am_send 81 +#endif diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/unicodeobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/unicodeobject.h new file mode 100644 index 000000000..dee00715b --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/unicodeobject.h @@ -0,0 +1,1021 @@ +#ifndef Py_UNICODEOBJECT_H +#define Py_UNICODEOBJECT_H + +/* + +Unicode implementation based on original code by Fredrik Lundh, +modified by Marc-Andre Lemburg (mal@lemburg.com) according to the +Unicode Integration Proposal. (See +http://www.egenix.com/files/python/unicode-proposal.txt). + +Copyright (c) Corporation for National Research Initiatives. + + + Original header: + -------------------------------------------------------------------- + + * Yet another Unicode string type for Python. This type supports the + * 16-bit Basic Multilingual Plane (BMP) only. + * + * Written by Fredrik Lundh, January 1999. + * + * Copyright (c) 1999 by Secret Labs AB. + * Copyright (c) 1999 by Fredrik Lundh. + * + * fredrik@pythonware.com + * http://www.pythonware.com + * + * -------------------------------------------------------------------- + * This Unicode String Type is + * + * Copyright (c) 1999 by Secret Labs AB + * Copyright (c) 1999 by Fredrik Lundh + * + * By obtaining, using, and/or copying this software and/or its + * associated documentation, you agree that you have read, understood, + * and will comply with the following terms and conditions: + * + * Permission to use, copy, modify, and distribute this software and its + * associated documentation for any purpose and without fee is hereby + * granted, provided that the above copyright notice appears in all + * copies, and that both that copyright notice and this permission notice + * appear in supporting documentation, and that the name of Secret Labs + * AB or the author not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior + * permission. + * + * SECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO + * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS. IN NO EVENT SHALL SECRET LABS AB OR THE AUTHOR BE LIABLE 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. + * -------------------------------------------------------------------- */ + +/* === Internal API ======================================================= */ + +/* --- Internal Unicode Format -------------------------------------------- */ + +/* Python 3.x requires unicode */ +#define Py_USING_UNICODE + +#ifndef SIZEOF_WCHAR_T +#error Must define SIZEOF_WCHAR_T +#endif + +#define Py_UNICODE_SIZE SIZEOF_WCHAR_T + +/* If wchar_t can be used for UCS-4 storage, set Py_UNICODE_WIDE. + Otherwise, Unicode strings are stored as UCS-2 (with limited support + for UTF-16) */ + +#if Py_UNICODE_SIZE >= 4 +#define Py_UNICODE_WIDE +#endif + +/* Set these flags if the platform has "wchar.h" and the + wchar_t type is a 16-bit unsigned type */ +/* #define HAVE_WCHAR_H */ +/* #define HAVE_USABLE_WCHAR_T */ + +/* If the compiler provides a wchar_t type we try to support it + through the interface functions PyUnicode_FromWideChar(), + PyUnicode_AsWideChar() and PyUnicode_AsWideCharString(). */ + +#ifdef HAVE_USABLE_WCHAR_T +# ifndef HAVE_WCHAR_H +# define HAVE_WCHAR_H +# endif +#endif + +/* Py_UCS4 and Py_UCS2 are typedefs for the respective + unicode representations. */ +typedef uint32_t Py_UCS4; +typedef uint16_t Py_UCS2; +typedef uint8_t Py_UCS1; + +#ifdef __cplusplus +extern "C" { +#endif + + +PyAPI_DATA(PyTypeObject) PyUnicode_Type; +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) + +/* --- Constants ---------------------------------------------------------- */ + +/* This Unicode character will be used as replacement character during + decoding if the errors argument is set to "replace". Note: the + Unicode character U+FFFD is the official REPLACEMENT CHARACTER in + Unicode 3.0. */ + +#define Py_UNICODE_REPLACEMENT_CHARACTER ((Py_UCS4) 0xFFFD) + +/* === Public API ========================================================= */ + +/* Similar to PyUnicode_FromUnicode(), but u points to UTF-8 encoded bytes */ +PyAPI_FUNC(PyObject*) PyUnicode_FromStringAndSize( + const char *u, /* UTF-8 encoded string */ + Py_ssize_t size /* size of buffer */ + ); + +/* Similar to PyUnicode_FromUnicode(), but u points to null-terminated + UTF-8 encoded bytes. The size is determined with strlen(). */ +PyAPI_FUNC(PyObject*) PyUnicode_FromString( + const char *u /* UTF-8 encoded string */ + ); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +PyAPI_FUNC(PyObject*) PyUnicode_Substring( + PyObject *str, + Py_ssize_t start, + Py_ssize_t end); +#endif + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +/* Copy the string into a UCS4 buffer including the null character if copy_null + is set. Return NULL and raise an exception on error. Raise a SystemError if + the buffer is smaller than the string. Return buffer on success. + + buflen is the length of the buffer in (Py_UCS4) characters. */ +PyAPI_FUNC(Py_UCS4*) PyUnicode_AsUCS4( + PyObject *unicode, + Py_UCS4* buffer, + Py_ssize_t buflen, + int copy_null); + +/* Copy the string into a UCS4 buffer. A new buffer is allocated using + * PyMem_Malloc; if this fails, NULL is returned with a memory error + exception set. */ +PyAPI_FUNC(Py_UCS4*) PyUnicode_AsUCS4Copy(PyObject *unicode); +#endif + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +/* Get the length of the Unicode object. */ + +PyAPI_FUNC(Py_ssize_t) PyUnicode_GetLength( + PyObject *unicode +); +#endif + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +/* Read a character from the string. */ + +PyAPI_FUNC(Py_UCS4) PyUnicode_ReadChar( + PyObject *unicode, + Py_ssize_t index + ); + +/* Write a character to the string. The string must have been created through + PyUnicode_New, must not be shared, and must not have been hashed yet. + + Return 0 on success, -1 on error. */ + +PyAPI_FUNC(int) PyUnicode_WriteChar( + PyObject *unicode, + Py_ssize_t index, + Py_UCS4 character + ); +#endif + +/* Resize a Unicode object. The length is the number of codepoints. + + *unicode is modified to point to the new (resized) object and 0 + returned on success. + + Try to resize the string in place (which is usually faster than allocating + a new string and copy characters), or create a new string. + + Error handling is implemented as follows: an exception is set, -1 + is returned and *unicode left untouched. + + WARNING: The function doesn't check string content, the result may not be a + string in canonical representation. */ + +PyAPI_FUNC(int) PyUnicode_Resize( + PyObject **unicode, /* Pointer to the Unicode object */ + Py_ssize_t length /* New length */ + ); + +/* Decode obj to a Unicode object. + + bytes, bytearray and other bytes-like objects are decoded according to the + given encoding and error handler. The encoding and error handler can be + NULL to have the interface use UTF-8 and "strict". + + All other objects (including Unicode objects) raise an exception. + + The API returns NULL in case of an error. The caller is responsible + for decref'ing the returned objects. + +*/ + +PyAPI_FUNC(PyObject*) PyUnicode_FromEncodedObject( + PyObject *obj, /* Object */ + const char *encoding, /* encoding */ + const char *errors /* error handling */ + ); + +/* Copy an instance of a Unicode subtype to a new true Unicode object if + necessary. If obj is already a true Unicode object (not a subtype), return + the reference with *incremented* refcount. + + The API returns NULL in case of an error. The caller is responsible + for decref'ing the returned objects. + +*/ + +PyAPI_FUNC(PyObject*) PyUnicode_FromObject( + PyObject *obj /* Object */ + ); + +PyAPI_FUNC(PyObject *) PyUnicode_FromFormatV( + const char *format, /* ASCII-encoded string */ + va_list vargs + ); +PyAPI_FUNC(PyObject *) PyUnicode_FromFormat( + const char *format, /* ASCII-encoded string */ + ... + ); + +PyAPI_FUNC(void) PyUnicode_InternInPlace(PyObject **); +PyAPI_FUNC(PyObject *) PyUnicode_InternFromString( + const char *u /* UTF-8 encoded string */ + ); + +/* --- wchar_t support for platforms which support it --------------------- */ + +#ifdef HAVE_WCHAR_H + +/* Create a Unicode Object from the wchar_t buffer w of the given + size. + + The buffer is copied into the new object. */ + +PyAPI_FUNC(PyObject*) PyUnicode_FromWideChar( + const wchar_t *w, /* wchar_t buffer */ + Py_ssize_t size /* size of buffer */ + ); + +/* Copies the Unicode Object contents into the wchar_t buffer w. At + most size wchar_t characters are copied. + + Note that the resulting wchar_t string may or may not be + 0-terminated. It is the responsibility of the caller to make sure + that the wchar_t string is 0-terminated in case this is required by + the application. + + Returns the number of wchar_t characters copied (excluding a + possibly trailing 0-termination character) or -1 in case of an + error. */ + +PyAPI_FUNC(Py_ssize_t) PyUnicode_AsWideChar( + PyObject *unicode, /* Unicode object */ + wchar_t *w, /* wchar_t buffer */ + Py_ssize_t size /* size of buffer */ + ); + +/* Convert the Unicode object to a wide character string. The output string + always ends with a nul character. If size is not NULL, write the number of + wide characters (excluding the null character) into *size. + + Returns a buffer allocated by PyMem_Malloc() (use PyMem_Free() to free it) + on success. On error, returns NULL, *size is undefined and raises a + MemoryError. */ + +PyAPI_FUNC(wchar_t*) PyUnicode_AsWideCharString( + PyObject *unicode, /* Unicode object */ + Py_ssize_t *size /* number of characters of the result */ + ); + +#endif + +/* --- Unicode ordinals --------------------------------------------------- */ + +/* Create a Unicode Object from the given Unicode code point ordinal. + + The ordinal must be in range(0x110000). A ValueError is + raised in case it is not. + +*/ + +PyAPI_FUNC(PyObject*) PyUnicode_FromOrdinal(int ordinal); + +/* === Builtin Codecs ===================================================== + + Many of these APIs take two arguments encoding and errors. These + parameters encoding and errors have the same semantics as the ones + of the builtin str() API. + + Setting encoding to NULL causes the default encoding (UTF-8) to be used. + + Error handling is set by errors which may also be set to NULL + meaning to use the default handling defined for the codec. Default + error handling for all builtin codecs is "strict" (ValueErrors are + raised). + + The codecs all use a similar interface. Only deviation from the + generic ones are documented. + +*/ + +/* --- Manage the default encoding ---------------------------------------- */ + +/* Returns "utf-8". */ +PyAPI_FUNC(const char*) PyUnicode_GetDefaultEncoding(void); + +/* --- Generic Codecs ----------------------------------------------------- */ + +/* Create a Unicode object by decoding the encoded string s of the + given size. */ + +PyAPI_FUNC(PyObject*) PyUnicode_Decode( + const char *s, /* encoded string */ + Py_ssize_t size, /* size of buffer */ + const char *encoding, /* encoding */ + const char *errors /* error handling */ + ); + +/* Decode a Unicode object unicode and return the result as Python + object. + + This API is DEPRECATED. The only supported standard encoding is rot13. + Use PyCodec_Decode() to decode with rot13 and non-standard codecs + that decode from str. */ + +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. + + This API is DEPRECATED. The only supported standard encoding is rot13. + 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( + PyObject *unicode, /* Unicode object */ + const char *encoding, /* encoding */ + const char *errors /* error handling */ + ); + +/* Encodes a Unicode object and returns the result as Python + object. + + This API is DEPRECATED. It is superseded by PyUnicode_AsEncodedString() + since all standard encodings (except rot13) encode str to bytes. + 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( + 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. */ + +PyAPI_FUNC(PyObject*) PyUnicode_AsEncodedString( + PyObject *unicode, /* Unicode object */ + const char *encoding, /* encoding */ + const char *errors /* error handling */ + ); + +/* Encodes a Unicode object and returns the result as Unicode + object. + + This API is DEPRECATED. The only supported standard encodings is rot13. + 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( + PyObject *unicode, /* Unicode object */ + const char *encoding, /* encoding */ + const char *errors /* error handling */ + ); + +/* Build an encoding map. */ + +PyAPI_FUNC(PyObject*) PyUnicode_BuildEncodingMap( + PyObject* string /* 256 character map */ + ); + +/* --- UTF-7 Codecs ------------------------------------------------------- */ + +PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF7( + const char *string, /* UTF-7 encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors /* error handling */ + ); + +PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF7Stateful( + const char *string, /* UTF-7 encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors, /* error handling */ + Py_ssize_t *consumed /* bytes consumed */ + ); + +/* --- UTF-8 Codecs ------------------------------------------------------- */ + +PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF8( + const char *string, /* UTF-8 encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors /* error handling */ + ); + +PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF8Stateful( + const char *string, /* UTF-8 encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors, /* error handling */ + Py_ssize_t *consumed /* bytes consumed */ + ); + +PyAPI_FUNC(PyObject*) PyUnicode_AsUTF8String( + PyObject *unicode /* Unicode object */ + ); + +/* 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. +*/ + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030A0000 +PyAPI_FUNC(const char *) PyUnicode_AsUTF8AndSize( + PyObject *unicode, + Py_ssize_t *size); +#endif + +/* --- UTF-32 Codecs ------------------------------------------------------ */ + +/* Decodes length bytes from a UTF-32 encoded buffer string and returns + the corresponding Unicode object. + + errors (if non-NULL) defines the error handling. It defaults + to "strict". + + If byteorder is non-NULL, the decoder starts decoding using the + given byte order: + + *byteorder == -1: little endian + *byteorder == 0: native order + *byteorder == 1: big endian + + In native mode, the first four bytes of the stream are checked for a + BOM mark. If found, the BOM mark is analysed, the byte order + adjusted and the BOM skipped. In the other modes, no BOM mark + interpretation is done. After completion, *byteorder is set to the + current byte order at the end of input data. + + If byteorder is NULL, the codec starts in native order mode. + +*/ + +PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF32( + const char *string, /* UTF-32 encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors, /* error handling */ + int *byteorder /* pointer to byteorder to use + 0=native;-1=LE,1=BE; updated on + exit */ + ); + +PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF32Stateful( + const char *string, /* UTF-32 encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors, /* error handling */ + int *byteorder, /* pointer to byteorder to use + 0=native;-1=LE,1=BE; updated on + exit */ + Py_ssize_t *consumed /* bytes consumed */ + ); + +/* Returns a Python string using the UTF-32 encoding in native byte + order. The string always starts with a BOM mark. */ + +PyAPI_FUNC(PyObject*) PyUnicode_AsUTF32String( + PyObject *unicode /* Unicode object */ + ); + +/* Returns a Python string object holding the UTF-32 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. + +*/ + +/* --- UTF-16 Codecs ------------------------------------------------------ */ + +/* Decodes length bytes from a UTF-16 encoded buffer string and returns + the corresponding Unicode object. + + errors (if non-NULL) defines the error handling. It defaults + to "strict". + + If byteorder is non-NULL, the decoder starts decoding using the + given byte order: + + *byteorder == -1: little endian + *byteorder == 0: native order + *byteorder == 1: big endian + + In native mode, the first two bytes of the stream are checked for a + BOM mark. If found, the BOM mark is analysed, the byte order + adjusted and the BOM skipped. In the other modes, no BOM mark + interpretation is done. After completion, *byteorder is set to the + current byte order at the end of input data. + + If byteorder is NULL, the codec starts in native order mode. + +*/ + +PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF16( + const char *string, /* UTF-16 encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors, /* error handling */ + int *byteorder /* pointer to byteorder to use + 0=native;-1=LE,1=BE; updated on + exit */ + ); + +PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF16Stateful( + const char *string, /* UTF-16 encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors, /* error handling */ + int *byteorder, /* pointer to byteorder to use + 0=native;-1=LE,1=BE; updated on + exit */ + Py_ssize_t *consumed /* bytes consumed */ + ); + +/* Returns a Python string using the UTF-16 encoding in native byte + order. The string always starts with a BOM mark. */ + +PyAPI_FUNC(PyObject*) PyUnicode_AsUTF16String( + PyObject *unicode /* Unicode object */ + ); + +/* --- Unicode-Escape Codecs ---------------------------------------------- */ + +PyAPI_FUNC(PyObject*) PyUnicode_DecodeUnicodeEscape( + const char *string, /* Unicode-Escape encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors /* error handling */ + ); + +PyAPI_FUNC(PyObject*) PyUnicode_AsUnicodeEscapeString( + PyObject *unicode /* Unicode object */ + ); + +/* --- Raw-Unicode-Escape Codecs ------------------------------------------ */ + +PyAPI_FUNC(PyObject*) PyUnicode_DecodeRawUnicodeEscape( + const char *string, /* Raw-Unicode-Escape encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors /* error handling */ + ); + +PyAPI_FUNC(PyObject*) PyUnicode_AsRawUnicodeEscapeString( + PyObject *unicode /* Unicode object */ + ); + +/* --- Latin-1 Codecs ----------------------------------------------------- + + Note: Latin-1 corresponds to the first 256 Unicode ordinals. */ + +PyAPI_FUNC(PyObject*) PyUnicode_DecodeLatin1( + const char *string, /* Latin-1 encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors /* error handling */ + ); + +PyAPI_FUNC(PyObject*) PyUnicode_AsLatin1String( + PyObject *unicode /* Unicode object */ + ); + +/* --- ASCII Codecs ------------------------------------------------------- + + Only 7-bit ASCII data is expected. All other codes generate errors. + +*/ + +PyAPI_FUNC(PyObject*) PyUnicode_DecodeASCII( + const char *string, /* ASCII encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors /* error handling */ + ); + +PyAPI_FUNC(PyObject*) PyUnicode_AsASCIIString( + PyObject *unicode /* Unicode object */ + ); + +/* --- Character Map Codecs ----------------------------------------------- + + This codec uses mappings to encode and decode characters. + + Decoding mappings must map byte ordinals (integers in the range from 0 to + 255) to Unicode strings, integers (which are then interpreted as Unicode + ordinals) or None. Unmapped data bytes (ones which cause a LookupError) + as well as mapped to None, 0xFFFE or '\ufffe' are treated as "undefined + mapping" and cause an error. + + Encoding mappings must map Unicode ordinal integers to bytes objects, + integers in the range from 0 to 255 or None. Unmapped character + ordinals (ones which cause a LookupError) as well as mapped to + None are treated as "undefined mapping" and cause an error. + +*/ + +PyAPI_FUNC(PyObject*) PyUnicode_DecodeCharmap( + const char *string, /* Encoded string */ + Py_ssize_t length, /* size of string */ + PyObject *mapping, /* decoding mapping */ + const char *errors /* error handling */ + ); + +PyAPI_FUNC(PyObject*) PyUnicode_AsCharmapString( + PyObject *unicode, /* Unicode object */ + PyObject *mapping /* encoding mapping */ + ); + +/* --- MBCS codecs for Windows -------------------------------------------- */ + +#ifdef MS_WINDOWS +PyAPI_FUNC(PyObject*) PyUnicode_DecodeMBCS( + const char *string, /* MBCS encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors /* error handling */ + ); + +PyAPI_FUNC(PyObject*) PyUnicode_DecodeMBCSStateful( + const char *string, /* MBCS encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors, /* error handling */ + Py_ssize_t *consumed /* bytes consumed */ + ); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +PyAPI_FUNC(PyObject*) PyUnicode_DecodeCodePageStateful( + int code_page, /* code page number */ + const char *string, /* encoded string */ + Py_ssize_t length, /* size of string */ + const char *errors, /* error handling */ + Py_ssize_t *consumed /* bytes consumed */ + ); +#endif + +PyAPI_FUNC(PyObject*) PyUnicode_AsMBCSString( + PyObject *unicode /* Unicode object */ + ); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +PyAPI_FUNC(PyObject*) PyUnicode_EncodeCodePage( + int code_page, /* code page number */ + PyObject *unicode, /* Unicode object */ + const char *errors /* error handling */ + ); +#endif + +#endif /* MS_WINDOWS */ + +/* --- Locale encoding --------------------------------------------------- */ + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +/* Decode a string from the current locale encoding. The decoder is strict if + *surrogateescape* is equal to zero, otherwise it uses the 'surrogateescape' + error handler (PEP 383) to escape undecodable bytes. If a byte sequence can + be decoded as a surrogate character and *surrogateescape* is not equal to + zero, the byte sequence is escaped using the 'surrogateescape' error handler + instead of being decoded. *str* must end with a null character but cannot + contain embedded null characters. */ + +PyAPI_FUNC(PyObject*) PyUnicode_DecodeLocaleAndSize( + const char *str, + Py_ssize_t len, + const char *errors); + +/* Similar to PyUnicode_DecodeLocaleAndSize(), but compute the string + length using strlen(). */ + +PyAPI_FUNC(PyObject*) PyUnicode_DecodeLocale( + const char *str, + const char *errors); + +/* Encode a Unicode object to the current locale encoding. The encoder is + strict is *surrogateescape* is equal to zero, otherwise the + "surrogateescape" error handler is used. Return a bytes object. The string + cannot contain embedded null characters. */ + +PyAPI_FUNC(PyObject*) PyUnicode_EncodeLocale( + PyObject *unicode, + const char *errors + ); +#endif + +/* --- File system encoding ---------------------------------------------- */ + +/* ParseTuple converter: encode str objects to bytes using + PyUnicode_EncodeFSDefault(); bytes objects are output as-is. */ + +PyAPI_FUNC(int) PyUnicode_FSConverter(PyObject*, void*); + +/* ParseTuple converter: decode bytes objects to unicode using + PyUnicode_DecodeFSDefaultAndSize(); str objects are output as-is. */ + +PyAPI_FUNC(int) PyUnicode_FSDecoder(PyObject*, void*); + +/* Decode a null-terminated string from the Python filesystem encoding + and error handler. + + If the string length is known, use PyUnicode_DecodeFSDefaultAndSize(). */ +PyAPI_FUNC(PyObject*) PyUnicode_DecodeFSDefault( + const char *s /* encoded string */ + ); + +/* Decode a string from the Python filesystem encoding and error handler. */ +PyAPI_FUNC(PyObject*) PyUnicode_DecodeFSDefaultAndSize( + const char *s, /* encoded string */ + Py_ssize_t size /* size */ + ); + +/* Encode a Unicode object to the Python filesystem encoding and error handler. + Return bytes. */ +PyAPI_FUNC(PyObject*) PyUnicode_EncodeFSDefault( + PyObject *unicode + ); + +/* --- Methods & Slots ---------------------------------------------------- + + These are capable of handling Unicode objects and strings on input + (we refer to them as strings in the descriptions) and return + Unicode objects or integers as appropriate. */ + +/* Concat two strings giving a new Unicode string. */ + +PyAPI_FUNC(PyObject*) PyUnicode_Concat( + PyObject *left, /* Left string */ + PyObject *right /* Right string */ + ); + +/* Concat two strings and put the result in *pleft + (sets *pleft to NULL on error) */ + +PyAPI_FUNC(void) PyUnicode_Append( + PyObject **pleft, /* Pointer to left string */ + PyObject *right /* Right string */ + ); + +/* Concat two strings, put the result in *pleft and drop the right object + (sets *pleft to NULL on error) */ + +PyAPI_FUNC(void) PyUnicode_AppendAndDel( + PyObject **pleft, /* Pointer to left string */ + PyObject *right /* Right string */ + ); + +/* Split a string giving a list of Unicode strings. + + If sep is NULL, splitting will be done at all whitespace + substrings. Otherwise, splits occur at the given separator. + + At most maxsplit splits will be done. If negative, no limit is set. + + Separators are not included in the resulting list. + +*/ + +PyAPI_FUNC(PyObject*) PyUnicode_Split( + PyObject *s, /* String to split */ + PyObject *sep, /* String separator */ + Py_ssize_t maxsplit /* Maxsplit count */ + ); + +/* Dito, but split at line breaks. + + CRLF is considered to be one line break. Line breaks are not + included in the resulting list. */ + +PyAPI_FUNC(PyObject*) PyUnicode_Splitlines( + PyObject *s, /* String to split */ + int keepends /* If true, line end markers are included */ + ); + +/* Partition a string using a given separator. */ + +PyAPI_FUNC(PyObject*) PyUnicode_Partition( + PyObject *s, /* String to partition */ + PyObject *sep /* String separator */ + ); + +/* Partition a string using a given separator, searching from the end of the + string. */ + +PyAPI_FUNC(PyObject*) PyUnicode_RPartition( + PyObject *s, /* String to partition */ + PyObject *sep /* String separator */ + ); + +/* Split a string giving a list of Unicode strings. + + If sep is NULL, splitting will be done at all whitespace + substrings. Otherwise, splits occur at the given separator. + + At most maxsplit splits will be done. But unlike PyUnicode_Split + PyUnicode_RSplit splits from the end of the string. If negative, + no limit is set. + + Separators are not included in the resulting list. + +*/ + +PyAPI_FUNC(PyObject*) PyUnicode_RSplit( + PyObject *s, /* String to split */ + PyObject *sep, /* String separator */ + Py_ssize_t maxsplit /* Maxsplit count */ + ); + +/* Translate a string 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. + +*/ + +PyAPI_FUNC(PyObject *) PyUnicode_Translate( + PyObject *str, /* String */ + PyObject *table, /* Translate table */ + const char *errors /* error handling */ + ); + +/* Join a sequence of strings using the given separator and return + the resulting Unicode string. */ + +PyAPI_FUNC(PyObject*) PyUnicode_Join( + PyObject *separator, /* Separator string */ + PyObject *seq /* Sequence object */ + ); + +/* Return 1 if substr matches str[start:end] at the given tail end, 0 + otherwise. */ + +PyAPI_FUNC(Py_ssize_t) PyUnicode_Tailmatch( + PyObject *str, /* String */ + PyObject *substr, /* Prefix or Suffix string */ + Py_ssize_t start, /* Start index */ + Py_ssize_t end, /* Stop index */ + int direction /* Tail end: -1 prefix, +1 suffix */ + ); + +/* Return the first position of substr in str[start:end] using the + given search direction or -1 if not found. -2 is returned in case + an error occurred and an exception is set. */ + +PyAPI_FUNC(Py_ssize_t) PyUnicode_Find( + PyObject *str, /* String */ + PyObject *substr, /* Substring to find */ + Py_ssize_t start, /* Start index */ + Py_ssize_t end, /* Stop index */ + int direction /* Find direction: +1 forward, -1 backward */ + ); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 +/* Like PyUnicode_Find, but search for single character only. */ +PyAPI_FUNC(Py_ssize_t) PyUnicode_FindChar( + PyObject *str, + Py_UCS4 ch, + Py_ssize_t start, + Py_ssize_t end, + int direction + ); +#endif + +/* Count the number of occurrences of substr in str[start:end]. */ + +PyAPI_FUNC(Py_ssize_t) PyUnicode_Count( + PyObject *str, /* String */ + PyObject *substr, /* Substring to count */ + Py_ssize_t start, /* Start index */ + Py_ssize_t end /* Stop index */ + ); + +/* Replace at most maxcount occurrences of substr in str with replstr + and return the resulting Unicode object. */ + +PyAPI_FUNC(PyObject *) PyUnicode_Replace( + PyObject *str, /* String */ + PyObject *substr, /* Substring to find */ + PyObject *replstr, /* Substring to replace */ + Py_ssize_t maxcount /* Max. number of replacements to apply; + -1 = all */ + ); + +/* Compare two strings and return -1, 0, 1 for less than, equal, + greater than resp. + Raise an exception and return -1 on error. */ + +PyAPI_FUNC(int) PyUnicode_Compare( + PyObject *left, /* Left string */ + PyObject *right /* Right string */ + ); + +/* Compare a Unicode object with C string and return -1, 0, 1 for less than, + 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. + This function does not raise exceptions. */ + +PyAPI_FUNC(int) PyUnicode_CompareWithASCIIString( + PyObject *left, + const char *right /* ASCII-encoded string */ + ); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030D0000 +/* Compare a Unicode object with UTF-8 encoded C string. + Return 1 if they are equal, or 0 otherwise. + This function does not raise exceptions. */ + +PyAPI_FUNC(int) PyUnicode_EqualToUTF8(PyObject *, const char *); +PyAPI_FUNC(int) PyUnicode_EqualToUTF8AndSize(PyObject *, const char *, Py_ssize_t); +#endif + +/* Rich compare two strings and return one of the following: + + - NULL in case an exception was raised + - Py_True or Py_False for successful comparisons + - Py_NotImplemented in case the type combination is unknown + + Possible values for op: + + Py_GT, Py_GE, Py_EQ, Py_NE, Py_LT, Py_LE + +*/ + +PyAPI_FUNC(PyObject *) PyUnicode_RichCompare( + PyObject *left, /* Left string */ + PyObject *right, /* Right string */ + int op /* Operation: Py_EQ, Py_NE, Py_GT, etc. */ + ); + +/* Apply an argument tuple or dictionary to a format string and return + the resulting Unicode string. */ + +PyAPI_FUNC(PyObject *) PyUnicode_Format( + PyObject *format, /* Format string */ + PyObject *args /* Argument tuple or dictionary */ + ); + +/* Checks whether element is contained in container and return 1/0 + accordingly. + + element has to coerce to a one element Unicode string. -1 is + returned in case of an error. */ + +PyAPI_FUNC(int) PyUnicode_Contains( + PyObject *container, /* Container string */ + PyObject *element /* Element string */ + ); + +/* Checks whether argument is a valid identifier. */ + +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 +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_UNICODEOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/warnings.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/warnings.h new file mode 100644 index 000000000..18ac1543a --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/warnings.h @@ -0,0 +1,45 @@ +#ifndef Py_WARNINGS_H +#define Py_WARNINGS_H +#ifdef __cplusplus +extern "C" { +#endif + +PyAPI_FUNC(int) PyErr_WarnEx( + PyObject *category, + const char *message, /* UTF-8 encoded string */ + Py_ssize_t stack_level); + +PyAPI_FUNC(int) PyErr_WarnFormat( + PyObject *category, + Py_ssize_t stack_level, + const char *format, /* ASCII-encoded string */ + ...); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03060000 +/* Emit a ResourceWarning warning */ +PyAPI_FUNC(int) PyErr_ResourceWarning( + PyObject *source, + Py_ssize_t stack_level, + const char *format, /* ASCII-encoded string */ + ...); +#endif + +PyAPI_FUNC(int) PyErr_WarnExplicit( + PyObject *category, + const char *message, /* UTF-8 encoded string */ + const char *filename, /* decoded from the filesystem encoding */ + int lineno, + const char *module, /* UTF-8 encoded string */ + PyObject *registry); + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_WARNINGS_H +# include "cpython/warnings.h" +# undef Py_CPYTHON_WARNINGS_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_WARNINGS_H */ + diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/weakrefobject.h b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/weakrefobject.h new file mode 100644 index 000000000..a6e71eb17 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Headers/weakrefobject.h @@ -0,0 +1,46 @@ +/* Weak references objects for Python. */ + +#ifndef Py_WEAKREFOBJECT_H +#define Py_WEAKREFOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct _PyWeakReference PyWeakReference; + +PyAPI_DATA(PyTypeObject) _PyWeakref_RefType; +PyAPI_DATA(PyTypeObject) _PyWeakref_ProxyType; +PyAPI_DATA(PyTypeObject) _PyWeakref_CallableProxyType; + +#define PyWeakref_CheckRef(op) PyObject_TypeCheck((op), &_PyWeakref_RefType) +#define PyWeakref_CheckRefExact(op) \ + Py_IS_TYPE((op), &_PyWeakref_RefType) +#define PyWeakref_CheckProxy(op) \ + (Py_IS_TYPE((op), &_PyWeakref_ProxyType) \ + || Py_IS_TYPE((op), &_PyWeakref_CallableProxyType)) + +#define PyWeakref_Check(op) \ + (PyWeakref_CheckRef(op) || PyWeakref_CheckProxy(op)) + + +PyAPI_FUNC(PyObject *) PyWeakref_NewRef(PyObject *ob, + PyObject *callback); +PyAPI_FUNC(PyObject *) PyWeakref_NewProxy(PyObject *ob, + PyObject *callback); +Py_DEPRECATED(3.13) PyAPI_FUNC(PyObject *) PyWeakref_GetObject(PyObject *ref); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030D0000 +PyAPI_FUNC(int) PyWeakref_GetRef(PyObject *ref, PyObject **pobj); +#endif + + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_WEAKREFOBJECT_H +# include "cpython/weakrefobject.h" +# undef Py_CPYTHON_WEAKREFOBJECT_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_WEAKREFOBJECT_H */ diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Info.plist b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Info.plist new file mode 100644 index 000000000..7017b4610 --- /dev/null +++ b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Info.plist @@ -0,0 +1,34 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + Python + CFBundleGetInfoString + Python Runtime and Library + CFBundleIdentifier + org.python.python + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + Python + CFBundlePackageType + FMWK + CFBundleShortVersionString + 3.13.0 + CFBundleLongVersionString + 3.13.0, (c) 2001-2024 Python Software Foundation. + CFBundleSignature + ???? + CFBundleVersion + 3.13.0 + CFBundleSupportedPlatforms + + iPhoneOS + + MinimumOSVersion + 13.0 + + diff --git a/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Python b/python-multiplatform/src/nativeInterop/cinterop/lib/ios/Python.xcframework/ios-arm64_x86_64-simulator/Python.framework/Python new file mode 100755 index 0000000000000000000000000000000000000000..95e793c1b0d9078edbbce5e8b9c616eafa6a44fe GIT binary patch literal 10807832 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�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

    +9RqUrz7#K7Rd&bL-2$Q-349+xz(SAI`1s^Mm^P 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 CQXVFGWLhhrwtRF_weKN`*40``H@Ud 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

  • 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⁡-)o_9i@V`0{OsC$>(PI- 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

    n@+J1$ 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 QGZYVfAh_nxla7> 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